@buoy-gg/console 7.0.20 → 7.0.21
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 +1 -0
- package/lib/commonjs/index.js +6 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/preset.js +23 -0
- package/lib/commonjs/preset.js.map +1 -1
- package/lib/commonjs/store/consoleLogStore.js +73 -1
- package/lib/commonjs/store/consoleLogStore.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/preset.js +25 -0
- package/lib/module/preset.js.map +1 -1
- package/lib/module/store/consoleLogStore.js +72 -1
- package/lib/module/store/consoleLogStore.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/preset.d.ts.map +1 -1
- package/lib/typescript/store/consoleLogStore.d.ts +25 -1
- package/lib/typescript/store/consoleLogStore.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +1 -0
- package/src/preset.tsx +27 -0
- package/src/store/consoleLogStore.ts +92 -1
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ That's the whole setup — it patches `console.*` directly, so no logger integra
|
|
|
36
36
|
## What you get
|
|
37
37
|
|
|
38
38
|
- **Everything logged, everywhere** — patches `console.*` directly, so logs from your own code *and* your dependencies are captured with no extra setup.
|
|
39
|
+
- **Fatal crashes captured too** — uncaught JS errors (including fatal render crashes) are hooked from React Native's global error handler and recorded as `[FATAL]`-tagged error entries, so a crashed app's last words are in the log instead of nowhere.
|
|
39
40
|
- **Live, color-coded stream** — `log`, `info`, `warn`, and `error` stream in as they happen, color-coded by level.
|
|
40
41
|
- **Chrome-DevTools-style panel** — a 1:1 port of the Chrome console view: objects and arrays are formatted and expandable, just like the browser.
|
|
41
42
|
- **Filter by level** — focus on just errors and warnings when you're chasing a bug.
|
package/lib/commonjs/index.js
CHANGED
|
@@ -105,6 +105,12 @@ Object.defineProperty(exports, "installConsoleCapture", {
|
|
|
105
105
|
return _consoleLogStore.installConsoleCapture;
|
|
106
106
|
}
|
|
107
107
|
});
|
|
108
|
+
Object.defineProperty(exports, "installFatalErrorCapture", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function () {
|
|
111
|
+
return _consoleLogStore.installFatalErrorCapture;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
108
114
|
Object.defineProperty(exports, "levelStyles", {
|
|
109
115
|
enumerable: true,
|
|
110
116
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_preset","require","_ConsoleRoot","_ConsoleModal","_ConsoleIcon","_ConsoleView","_ConsoleMessageRow","_ConsoleValue","_useConsoleMessages","_theme","_ConsoleLogList","_useConsoleLogs","_consoleSyncAdapter","_consoleLogStore"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_preset","require","_ConsoleRoot","_ConsoleModal","_ConsoleIcon","_ConsoleView","_ConsoleMessageRow","_ConsoleValue","_useConsoleMessages","_theme","_ConsoleLogList","_useConsoleLogs","_consoleSyncAdapter","_consoleLogStore"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAGA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AAEA,IAAAQ,MAAA,GAAAR,OAAA;AAGA,IAAAS,eAAA,GAAAT,OAAA;AAKA,IAAAU,eAAA,GAAAV,OAAA;AAMA,IAAAW,mBAAA,GAAAX,OAAA;AAKA,IAAAY,gBAAA,GAAAZ,OAAA","ignoreList":[]}
|
package/lib/commonjs/preset.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.consoleToolPreset = void 0;
|
|
|
7
7
|
exports.createConsoleTool = createConsoleTool;
|
|
8
8
|
var _ConsoleIcon = require("./components/ConsoleIcon");
|
|
9
9
|
var _ConsoleModal = require("./components/ConsoleModal");
|
|
10
|
+
var _consoleLogStore = require("./store/consoleLogStore");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
/**
|
|
12
13
|
* Pre-configured Console tool for FloatingDevTools.
|
|
@@ -19,6 +20,28 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
19
20
|
* ```
|
|
20
21
|
*/
|
|
21
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Install console + fatal-error capture at IMPORT time, not first UI mount.
|
|
25
|
+
*
|
|
26
|
+
* Deliberately a module side effect (same pattern as @buoy-gg/network's
|
|
27
|
+
* override hydration): a fatal error thrown during the app's FIRST render
|
|
28
|
+
* kills the tree before FloatingDevTools' effects ever run, so mount-time
|
|
29
|
+
* install (`ConsoleRoot`) captured nothing for exactly the crashes that most
|
|
30
|
+
* need capturing. Importing the preset happens at bundle-eval, before any
|
|
31
|
+
* rendering, so both the `console.*` patch and the `ErrorUtils` fatal hook are
|
|
32
|
+
* live from the first line of app code.
|
|
33
|
+
*
|
|
34
|
+
* Guards:
|
|
35
|
+
* - `ErrorUtils` present = a real React Native runtime. The desktop dashboard
|
|
36
|
+
* and web mirrors import this package too, and must never patch their OWN
|
|
37
|
+
* console (they mirror device entries via `replaceEntries`).
|
|
38
|
+
* - Dev-only. In production the existing mount-time path still applies (the
|
|
39
|
+
* tools only mount there for licensed users), so end-user builds are never
|
|
40
|
+
* patched at import.
|
|
41
|
+
*/const isReactNativeRuntime = typeof globalThis.ErrorUtils?.setGlobalHandler === "function";
|
|
42
|
+
if (isReactNativeRuntime && typeof __DEV__ !== "undefined" && __DEV__) {
|
|
43
|
+
(0, _consoleLogStore.installConsoleCapture)();
|
|
44
|
+
}
|
|
22
45
|
const consoleToolPreset = exports.consoleToolPreset = {
|
|
23
46
|
id: "console",
|
|
24
47
|
name: "CONSOLE",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ConsoleIcon","require","_ConsoleModal","_jsxRuntime","consoleToolPreset","exports","id","name","description","slot","icon","size","color","jsx","ConsoleIcon","CONSOLE_ICON_COLOR","component","ConsoleModal","createConsoleTool","options"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;;;;;;AAWA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_ConsoleIcon","require","_ConsoleModal","_consoleLogStore","_jsxRuntime","isReactNativeRuntime","globalThis","ErrorUtils","setGlobalHandler","__DEV__","installConsoleCapture","consoleToolPreset","exports","id","name","description","slot","icon","size","color","jsx","ConsoleIcon","CONSOLE_ICON_COLOR","component","ConsoleModal","createConsoleTool","options"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;;;;;;AAWA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAAgE,IAAAG,WAAA,GAAAH,OAAA;AAbhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,MAAMI,oBAAoB,GACxB,OAAQC,UAAU,CACfC,UAAU,EAAEC,gBAAgB,KAAK,UAAU;AAChD,IAAIH,oBAAoB,IAAI,OAAOI,OAAO,KAAK,WAAW,IAAIA,OAAO,EAAE;EACrE,IAAAC,sCAAqB,EAAC,CAAC;AACzB;AAEO,MAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,EAAE,EAAE,SAAS;EACbC,IAAI,EAAE,SAAS;EACfC,WAAW,EAAE,2BAA2B;EACxCC,IAAI,EAAE,MAAe;EACrBC,IAAI,EAAEA,CAAC;IAAEC,IAAI;IAAEC;EAAwC,CAAC,kBACtD,IAAAf,WAAA,CAAAgB,GAAA,EAACpB,YAAA,CAAAqB,WAAW;IAACH,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA,KAAK,IAAIG;EAAmB,CAAE,CAC/D;EACDC,SAAS,EAAEC;AACb,CAAC;;AAED;AACO,SAASC,iBAAiBA,CAC/BC,OAAgD,GAAG,CAAC,CAAC,EACrD;EACA,OAAO;IACL,GAAGf,iBAAiB;IACpBG,IAAI,EAAEY,OAAO,CAACZ,IAAI,IAAIH,iBAAiB,CAACG,IAAI;IAC5CC,WAAW,EAAEW,OAAO,CAACX,WAAW,IAAIJ,iBAAiB,CAACI;EACxD,CAAC;AACH","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ exports.getEntries = getEntries;
|
|
|
8
8
|
exports.getPreserveLog = getPreserveLog;
|
|
9
9
|
exports.initConsolePersistence = initConsolePersistence;
|
|
10
10
|
exports.installConsoleCapture = installConsoleCapture;
|
|
11
|
+
exports.installFatalErrorCapture = installFatalErrorCapture;
|
|
11
12
|
exports.onClear = onClear;
|
|
12
13
|
exports.replaceEntries = replaceEntries;
|
|
13
14
|
exports.setPreserveLog = setPreserveLog;
|
|
@@ -64,6 +65,13 @@ const MAX_ENTRIES = 1000;
|
|
|
64
65
|
let entries = [];
|
|
65
66
|
let nextId = 1;
|
|
66
67
|
let installed = false;
|
|
68
|
+
let fatalInstalled = false;
|
|
69
|
+
/**
|
|
70
|
+
* Raised by an explicit `uninstallConsoleCapture()`. The fatal-error hook can't
|
|
71
|
+
* be safely unwound once chained (another library may have chained on top of
|
|
72
|
+
* ours since), so an explicit user OFF mutes fatal recording instead.
|
|
73
|
+
*/
|
|
74
|
+
let captureDisabledByUser = false;
|
|
67
75
|
const listeners = new Set();
|
|
68
76
|
const clearListeners = new Set();
|
|
69
77
|
|
|
@@ -135,12 +143,74 @@ function record(method, args) {
|
|
|
135
143
|
scheduleSave();
|
|
136
144
|
}
|
|
137
145
|
|
|
146
|
+
/** Minimal shape of React Native's global `ErrorUtils`. */
|
|
147
|
+
|
|
148
|
+
/** Record an uncaught JS error from the global handler as an error entry. */
|
|
149
|
+
function recordFatalError(error, isFatal) {
|
|
150
|
+
const err = error instanceof Error ? error : undefined;
|
|
151
|
+
// RN passes isFatal:false for non-fatal uncaught errors (e.g. errors thrown
|
|
152
|
+
// in event handlers on some setups); anything else is treated as fatal.
|
|
153
|
+
const label = isFatal === false ? "[UNCAUGHT]" : "[FATAL]";
|
|
154
|
+
const headline = err ? `${err.name}: ${err.message}` : formatArg(error);
|
|
155
|
+
// The label leads the args (not just the pre-rendered message): the
|
|
156
|
+
// DevTools-style row renders from args, so this is what makes the tag
|
|
157
|
+
// visible in the UI — exactly like `console.error("[FATAL]", err)`.
|
|
158
|
+
const entry = {
|
|
159
|
+
id: nextId++,
|
|
160
|
+
method: "error",
|
|
161
|
+
level: "error",
|
|
162
|
+
args: [label, error],
|
|
163
|
+
message: `${label} ${headline}`,
|
|
164
|
+
timestamp: Date.now(),
|
|
165
|
+
// The error's OWN stack — the crash site, not this handler's call site.
|
|
166
|
+
stack: err?.stack,
|
|
167
|
+
fatal: true
|
|
168
|
+
};
|
|
169
|
+
entries = entries.length >= MAX_ENTRIES ? [...entries.slice(entries.length - MAX_ENTRIES + 1), entry] : [...entries, entry];
|
|
170
|
+
emit();
|
|
171
|
+
scheduleSave();
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Hook React Native's global error handler (`ErrorUtils.setGlobalHandler`) so
|
|
176
|
+
* FATAL/uncaught JS errors land in the console store. A fatal render error
|
|
177
|
+
* kills the tree without ever calling `console.error` through our patch —
|
|
178
|
+
* without this hook a crashing app reads as "0 entries captured", the most
|
|
179
|
+
* misleading possible answer to "why is my app broken".
|
|
180
|
+
*
|
|
181
|
+
* - Chains the previous handler (LogBox/redbox still fire; nothing swallowed).
|
|
182
|
+
* - Idempotent, and a silent no-op off React Native (no `ErrorUtils` global) —
|
|
183
|
+
* which also keeps it inert on the desktop dashboard / web mirrors.
|
|
184
|
+
* - Recording respects an explicit `uninstallConsoleCapture()` (user OFF), but
|
|
185
|
+
* the hook itself stays chained — it can't be safely removed.
|
|
186
|
+
*/
|
|
187
|
+
function installFatalErrorCapture() {
|
|
188
|
+
if (fatalInstalled) return;
|
|
189
|
+
const errorUtils = globalThis.ErrorUtils;
|
|
190
|
+
if (typeof errorUtils?.setGlobalHandler !== "function") return;
|
|
191
|
+
fatalInstalled = true;
|
|
192
|
+
const previous = typeof errorUtils.getGlobalHandler === "function" ? errorUtils.getGlobalHandler() : undefined;
|
|
193
|
+
errorUtils.setGlobalHandler((error, isFatal) => {
|
|
194
|
+
try {
|
|
195
|
+
if (!captureDisabledByUser) recordFatalError(error, isFatal);
|
|
196
|
+
} catch {
|
|
197
|
+
// Capture must never interfere with error reporting.
|
|
198
|
+
}
|
|
199
|
+
if (typeof previous === "function") previous(error, isFatal);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
|
|
138
203
|
/**
|
|
139
204
|
* Patch the global console methods. Idempotent — safe to call more than once.
|
|
140
205
|
* Each patched method still forwards to the original so normal logging keeps
|
|
141
206
|
* working (Metro terminal, Chrome, native logcat/Xcode).
|
|
207
|
+
*
|
|
208
|
+
* Also installs the fatal-error hook (see `installFatalErrorCapture`) so every
|
|
209
|
+
* install path captures crashes, not just `console.*` calls.
|
|
142
210
|
*/
|
|
143
211
|
function installConsoleCapture() {
|
|
212
|
+
captureDisabledByUser = false;
|
|
213
|
+
installFatalErrorCapture();
|
|
144
214
|
if (installed) return;
|
|
145
215
|
installed = true;
|
|
146
216
|
for (const method of METHODS) {
|
|
@@ -157,8 +227,10 @@ function installConsoleCapture() {
|
|
|
157
227
|
}
|
|
158
228
|
}
|
|
159
229
|
|
|
160
|
-
/** Restore the original console methods.
|
|
230
|
+
/** Restore the original console methods. Also mutes fatal-error recording
|
|
231
|
+
* (the hook itself stays chained — see `installFatalErrorCapture`). */
|
|
161
232
|
function uninstallConsoleCapture() {
|
|
233
|
+
captureDisabledByUser = true;
|
|
162
234
|
if (!installed) return;
|
|
163
235
|
installed = false;
|
|
164
236
|
for (const method of METHODS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_sharedUi","_sanitize","_origin","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","METHODS","STACK_METHODS","Set","METHOD_LEVEL","error","assert","warn","debug","log","info","trace","dir","table","group","groupCollapsed","groupEnd","MAX_ENTRIES","entries","nextId","installed","listeners","clearListeners","originals","emitScheduled","emit","requestAnimationFrame","listener","formatArg","arg","Error","stack","name","message","undefined","JSON","stringify","String","formatArgs","args","map","join","cleanStack","raw","split","slice","captureOwnerStack","fn","record","method","rawStack","origin","parseOrigin","entry","id","level","timestamp","Date","now","length","scheduleSave","installConsoleCapture","original","console","buoyConsoleProxy","apply","uninstallConsoleCapture","subscribe","add","delete","getEntries","clearEntries","clearSavedBuffer","replaceEntries","next","onClear","PRESERVE_KEY","BUFFER_KEY","SAVE_DEBOUNCE_MS","preserveLog","persistenceReady","preserveListeners","saveTimer","emitPreserve","clearTimeout","setTimeout","saveBuffer","serializable","sanitizeArgs","persistentStorage","setItem","removeItem","initConsolePersistence","getItem","saved","parse","Array","isArray","Math","max","getPreserveLog","setPreserveLog","catch","subscribePreserveLog"],"sourceRoot":"../../../src","sources":["store/consoleLogStore.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_sharedUi","_sanitize","_origin","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","METHODS","STACK_METHODS","Set","METHOD_LEVEL","error","assert","warn","debug","log","info","trace","dir","table","group","groupCollapsed","groupEnd","MAX_ENTRIES","entries","nextId","installed","fatalInstalled","captureDisabledByUser","listeners","clearListeners","originals","emitScheduled","emit","requestAnimationFrame","listener","formatArg","arg","Error","stack","name","message","undefined","JSON","stringify","String","formatArgs","args","map","join","cleanStack","raw","split","slice","captureOwnerStack","fn","record","method","rawStack","origin","parseOrigin","entry","id","level","timestamp","Date","now","length","scheduleSave","recordFatalError","isFatal","err","label","headline","fatal","installFatalErrorCapture","errorUtils","globalThis","ErrorUtils","setGlobalHandler","previous","getGlobalHandler","installConsoleCapture","original","console","buoyConsoleProxy","apply","uninstallConsoleCapture","subscribe","add","delete","getEntries","clearEntries","clearSavedBuffer","replaceEntries","next","onClear","PRESERVE_KEY","BUFFER_KEY","SAVE_DEBOUNCE_MS","preserveLog","persistenceReady","preserveListeners","saveTimer","emitPreserve","clearTimeout","setTimeout","saveBuffer","serializable","sanitizeArgs","persistentStorage","setItem","removeItem","initConsolePersistence","getItem","saved","parse","Array","isArray","Math","max","getPreserveLog","setPreserveLog","catch","subscribePreserveLog"],"sourceRoot":"../../../src","sources":["store/consoleLogStore.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -48,5 +48,5 @@ export { consoleSyncAdapter } from "./sync/consoleSyncAdapter";
|
|
|
48
48
|
// =============================================================================
|
|
49
49
|
// CAPTURE STORE (install/teardown + types)
|
|
50
50
|
// =============================================================================
|
|
51
|
-
export { installConsoleCapture, uninstallConsoleCapture, clearEntries, getEntries, subscribe, replaceEntries, onClear, initConsolePersistence, getPreserveLog, setPreserveLog, subscribePreserveLog } from "./store/consoleLogStore";
|
|
51
|
+
export { installConsoleCapture, installFatalErrorCapture, uninstallConsoleCapture, clearEntries, getEntries, subscribe, replaceEntries, onClear, initConsolePersistence, getPreserveLog, setPreserveLog, subscribePreserveLog } from "./store/consoleLogStore";
|
|
52
52
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["consoleToolPreset","createConsoleTool","ConsoleRoot","ConsoleModal","ConsoleIcon","CONSOLE_ICON_COLOR","ConsoleView","ConsoleMessageRow","ConsoleValue","useConsoleMessages","consoleTheme","levelStyles","ConsoleLogList","useConsoleLogs","consoleSyncAdapter","installConsoleCapture","uninstallConsoleCapture","clearEntries","getEntries","subscribe","replaceEntries","onClear","initConsolePersistence","getPreserveLog","setPreserveLog","subscribePreserveLog"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,iBAAiB,EAAEC,iBAAiB,QAAQ,UAAU;;AAE/D;AACA;AACA;AACA,SAASC,WAAW,QAAQ,0BAA0B;;AAEtD;AACA;AACA;AACA,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,0BAA0B;;AAE1E;AACA,SAASC,WAAW,QAAQ,wBAAwB;AACpD,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,kBAAkB,QAAQ,+BAA+B;AAElE,SAASC,YAAY,EAAEC,WAAW,QAAQ,kBAAkB;;AAE5D;AACA,SAASC,cAAc,QAAQ,6BAA6B;;AAE5D;AACA;AACA;AACA,SAASC,cAAc,QAAQ,wBAAwB;AAGvD;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,2BAA2B;;AAE9D;AACA;AACA;AACA,SACEC,qBAAqB,EACrBC,uBAAuB,EACvBC,YAAY,EACZC,UAAU,EACVC,SAAS,EACTC,cAAc,EACdC,OAAO,EACPC,sBAAsB,EACtBC,cAAc,EACdC,cAAc,EACdC,oBAAoB,QACf,yBAAyB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["consoleToolPreset","createConsoleTool","ConsoleRoot","ConsoleModal","ConsoleIcon","CONSOLE_ICON_COLOR","ConsoleView","ConsoleMessageRow","ConsoleValue","useConsoleMessages","consoleTheme","levelStyles","ConsoleLogList","useConsoleLogs","consoleSyncAdapter","installConsoleCapture","installFatalErrorCapture","uninstallConsoleCapture","clearEntries","getEntries","subscribe","replaceEntries","onClear","initConsolePersistence","getPreserveLog","setPreserveLog","subscribePreserveLog"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,iBAAiB,EAAEC,iBAAiB,QAAQ,UAAU;;AAE/D;AACA;AACA;AACA,SAASC,WAAW,QAAQ,0BAA0B;;AAEtD;AACA;AACA;AACA,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,0BAA0B;;AAE1E;AACA,SAASC,WAAW,QAAQ,wBAAwB;AACpD,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,kBAAkB,QAAQ,+BAA+B;AAElE,SAASC,YAAY,EAAEC,WAAW,QAAQ,kBAAkB;;AAE5D;AACA,SAASC,cAAc,QAAQ,6BAA6B;;AAE5D;AACA;AACA;AACA,SAASC,cAAc,QAAQ,wBAAwB;AAGvD;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,2BAA2B;;AAE9D;AACA;AACA;AACA,SACEC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,YAAY,EACZC,UAAU,EACVC,SAAS,EACTC,cAAc,EACdC,OAAO,EACPC,sBAAsB,EACtBC,cAAc,EACdC,cAAc,EACdC,oBAAoB,QACf,yBAAyB","ignoreList":[]}
|
package/lib/module/preset.js
CHANGED
|
@@ -13,7 +13,32 @@
|
|
|
13
13
|
|
|
14
14
|
import { ConsoleIcon, CONSOLE_ICON_COLOR } from "./components/ConsoleIcon";
|
|
15
15
|
import { ConsoleModal } from "./components/ConsoleModal";
|
|
16
|
+
import { installConsoleCapture } from "./store/consoleLogStore";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Install console + fatal-error capture at IMPORT time, not first UI mount.
|
|
20
|
+
*
|
|
21
|
+
* Deliberately a module side effect (same pattern as @buoy-gg/network's
|
|
22
|
+
* override hydration): a fatal error thrown during the app's FIRST render
|
|
23
|
+
* kills the tree before FloatingDevTools' effects ever run, so mount-time
|
|
24
|
+
* install (`ConsoleRoot`) captured nothing for exactly the crashes that most
|
|
25
|
+
* need capturing. Importing the preset happens at bundle-eval, before any
|
|
26
|
+
* rendering, so both the `console.*` patch and the `ErrorUtils` fatal hook are
|
|
27
|
+
* live from the first line of app code.
|
|
28
|
+
*
|
|
29
|
+
* Guards:
|
|
30
|
+
* - `ErrorUtils` present = a real React Native runtime. The desktop dashboard
|
|
31
|
+
* and web mirrors import this package too, and must never patch their OWN
|
|
32
|
+
* console (they mirror device entries via `replaceEntries`).
|
|
33
|
+
* - Dev-only. In production the existing mount-time path still applies (the
|
|
34
|
+
* tools only mount there for licensed users), so end-user builds are never
|
|
35
|
+
* patched at import.
|
|
36
|
+
*/
|
|
16
37
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
38
|
+
const isReactNativeRuntime = typeof globalThis.ErrorUtils?.setGlobalHandler === "function";
|
|
39
|
+
if (isReactNativeRuntime && typeof __DEV__ !== "undefined" && __DEV__) {
|
|
40
|
+
installConsoleCapture();
|
|
41
|
+
}
|
|
17
42
|
export const consoleToolPreset = {
|
|
18
43
|
id: "console",
|
|
19
44
|
name: "CONSOLE",
|
package/lib/module/preset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ConsoleIcon","CONSOLE_ICON_COLOR","ConsoleModal","jsx","_jsx","consoleToolPreset","id","name","description","slot","icon","size","color","component","createConsoleTool","options"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,kBAAkB,QAAQ,0BAA0B;AAC1E,SAASC,YAAY,QAAQ,2BAA2B;
|
|
1
|
+
{"version":3,"names":["ConsoleIcon","CONSOLE_ICON_COLOR","ConsoleModal","installConsoleCapture","jsx","_jsx","isReactNativeRuntime","globalThis","ErrorUtils","setGlobalHandler","__DEV__","consoleToolPreset","id","name","description","slot","icon","size","color","component","createConsoleTool","options"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,kBAAkB,QAAQ,0BAA0B;AAC1E,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,qBAAqB,QAAQ,yBAAyB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlBA,SAAAC,GAAA,IAAAC,IAAA;AAmBA,MAAMC,oBAAoB,GACxB,OAAQC,UAAU,CACfC,UAAU,EAAEC,gBAAgB,KAAK,UAAU;AAChD,IAAIH,oBAAoB,IAAI,OAAOI,OAAO,KAAK,WAAW,IAAIA,OAAO,EAAE;EACrEP,qBAAqB,CAAC,CAAC;AACzB;AAEA,OAAO,MAAMQ,iBAAiB,GAAG;EAC/BC,EAAE,EAAE,SAAS;EACbC,IAAI,EAAE,SAAS;EACfC,WAAW,EAAE,2BAA2B;EACxCC,IAAI,EAAE,MAAe;EACrBC,IAAI,EAAEA,CAAC;IAAEC,IAAI;IAAEC;EAAwC,CAAC,kBACtDb,IAAA,CAACL,WAAW;IAACiB,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA,KAAK,IAAIjB;EAAmB,CAAE,CAC/D;EACDkB,SAAS,EAAEjB;AACb,CAAC;;AAED;AACA,OAAO,SAASkB,iBAAiBA,CAC/BC,OAAgD,GAAG,CAAC,CAAC,EACrD;EACA,OAAO;IACL,GAAGV,iBAAiB;IACpBE,IAAI,EAAEQ,OAAO,CAACR,IAAI,IAAIF,iBAAiB,CAACE,IAAI;IAC5CC,WAAW,EAAEO,OAAO,CAACP,WAAW,IAAIH,iBAAiB,CAACG;EACxD,CAAC;AACH","ignoreList":[]}
|
|
@@ -50,6 +50,13 @@ const MAX_ENTRIES = 1000;
|
|
|
50
50
|
let entries = [];
|
|
51
51
|
let nextId = 1;
|
|
52
52
|
let installed = false;
|
|
53
|
+
let fatalInstalled = false;
|
|
54
|
+
/**
|
|
55
|
+
* Raised by an explicit `uninstallConsoleCapture()`. The fatal-error hook can't
|
|
56
|
+
* be safely unwound once chained (another library may have chained on top of
|
|
57
|
+
* ours since), so an explicit user OFF mutes fatal recording instead.
|
|
58
|
+
*/
|
|
59
|
+
let captureDisabledByUser = false;
|
|
53
60
|
const listeners = new Set();
|
|
54
61
|
const clearListeners = new Set();
|
|
55
62
|
|
|
@@ -121,12 +128,74 @@ function record(method, args) {
|
|
|
121
128
|
scheduleSave();
|
|
122
129
|
}
|
|
123
130
|
|
|
131
|
+
/** Minimal shape of React Native's global `ErrorUtils`. */
|
|
132
|
+
|
|
133
|
+
/** Record an uncaught JS error from the global handler as an error entry. */
|
|
134
|
+
function recordFatalError(error, isFatal) {
|
|
135
|
+
const err = error instanceof Error ? error : undefined;
|
|
136
|
+
// RN passes isFatal:false for non-fatal uncaught errors (e.g. errors thrown
|
|
137
|
+
// in event handlers on some setups); anything else is treated as fatal.
|
|
138
|
+
const label = isFatal === false ? "[UNCAUGHT]" : "[FATAL]";
|
|
139
|
+
const headline = err ? `${err.name}: ${err.message}` : formatArg(error);
|
|
140
|
+
// The label leads the args (not just the pre-rendered message): the
|
|
141
|
+
// DevTools-style row renders from args, so this is what makes the tag
|
|
142
|
+
// visible in the UI — exactly like `console.error("[FATAL]", err)`.
|
|
143
|
+
const entry = {
|
|
144
|
+
id: nextId++,
|
|
145
|
+
method: "error",
|
|
146
|
+
level: "error",
|
|
147
|
+
args: [label, error],
|
|
148
|
+
message: `${label} ${headline}`,
|
|
149
|
+
timestamp: Date.now(),
|
|
150
|
+
// The error's OWN stack — the crash site, not this handler's call site.
|
|
151
|
+
stack: err?.stack,
|
|
152
|
+
fatal: true
|
|
153
|
+
};
|
|
154
|
+
entries = entries.length >= MAX_ENTRIES ? [...entries.slice(entries.length - MAX_ENTRIES + 1), entry] : [...entries, entry];
|
|
155
|
+
emit();
|
|
156
|
+
scheduleSave();
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Hook React Native's global error handler (`ErrorUtils.setGlobalHandler`) so
|
|
161
|
+
* FATAL/uncaught JS errors land in the console store. A fatal render error
|
|
162
|
+
* kills the tree without ever calling `console.error` through our patch —
|
|
163
|
+
* without this hook a crashing app reads as "0 entries captured", the most
|
|
164
|
+
* misleading possible answer to "why is my app broken".
|
|
165
|
+
*
|
|
166
|
+
* - Chains the previous handler (LogBox/redbox still fire; nothing swallowed).
|
|
167
|
+
* - Idempotent, and a silent no-op off React Native (no `ErrorUtils` global) —
|
|
168
|
+
* which also keeps it inert on the desktop dashboard / web mirrors.
|
|
169
|
+
* - Recording respects an explicit `uninstallConsoleCapture()` (user OFF), but
|
|
170
|
+
* the hook itself stays chained — it can't be safely removed.
|
|
171
|
+
*/
|
|
172
|
+
export function installFatalErrorCapture() {
|
|
173
|
+
if (fatalInstalled) return;
|
|
174
|
+
const errorUtils = globalThis.ErrorUtils;
|
|
175
|
+
if (typeof errorUtils?.setGlobalHandler !== "function") return;
|
|
176
|
+
fatalInstalled = true;
|
|
177
|
+
const previous = typeof errorUtils.getGlobalHandler === "function" ? errorUtils.getGlobalHandler() : undefined;
|
|
178
|
+
errorUtils.setGlobalHandler((error, isFatal) => {
|
|
179
|
+
try {
|
|
180
|
+
if (!captureDisabledByUser) recordFatalError(error, isFatal);
|
|
181
|
+
} catch {
|
|
182
|
+
// Capture must never interfere with error reporting.
|
|
183
|
+
}
|
|
184
|
+
if (typeof previous === "function") previous(error, isFatal);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
124
188
|
/**
|
|
125
189
|
* Patch the global console methods. Idempotent — safe to call more than once.
|
|
126
190
|
* Each patched method still forwards to the original so normal logging keeps
|
|
127
191
|
* working (Metro terminal, Chrome, native logcat/Xcode).
|
|
192
|
+
*
|
|
193
|
+
* Also installs the fatal-error hook (see `installFatalErrorCapture`) so every
|
|
194
|
+
* install path captures crashes, not just `console.*` calls.
|
|
128
195
|
*/
|
|
129
196
|
export function installConsoleCapture() {
|
|
197
|
+
captureDisabledByUser = false;
|
|
198
|
+
installFatalErrorCapture();
|
|
130
199
|
if (installed) return;
|
|
131
200
|
installed = true;
|
|
132
201
|
for (const method of METHODS) {
|
|
@@ -143,8 +212,10 @@ export function installConsoleCapture() {
|
|
|
143
212
|
}
|
|
144
213
|
}
|
|
145
214
|
|
|
146
|
-
/** Restore the original console methods.
|
|
215
|
+
/** Restore the original console methods. Also mutes fatal-error recording
|
|
216
|
+
* (the hook itself stays chained — see `installFatalErrorCapture`). */
|
|
147
217
|
export function uninstallConsoleCapture() {
|
|
218
|
+
captureDisabledByUser = true;
|
|
148
219
|
if (!installed) return;
|
|
149
220
|
installed = false;
|
|
150
221
|
for (const method of METHODS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","persistentStorage","sanitizeArgs","parseOrigin","METHODS","STACK_METHODS","Set","METHOD_LEVEL","error","assert","warn","debug","log","info","trace","dir","table","group","groupCollapsed","groupEnd","MAX_ENTRIES","entries","nextId","installed","listeners","clearListeners","originals","emitScheduled","emit","requestAnimationFrame","listener","formatArg","arg","Error","stack","name","message","undefined","JSON","stringify","String","formatArgs","args","map","join","cleanStack","raw","split","slice","captureOwnerStack","fn","record","method","rawStack","origin","entry","id","level","timestamp","Date","now","has","length","scheduleSave","installConsoleCapture","original","console","buoyConsoleProxy","apply","uninstallConsoleCapture","subscribe","add","delete","getEntries","clearEntries","clearSavedBuffer","replaceEntries","next","onClear","PRESERVE_KEY","BUFFER_KEY","SAVE_DEBOUNCE_MS","preserveLog","persistenceReady","preserveListeners","saveTimer","emitPreserve","clearTimeout","setTimeout","saveBuffer","serializable","setItem","removeItem","initConsolePersistence","getItem","saved","parse","Array","isArray","Math","max","e","getPreserveLog","setPreserveLog","catch","subscribePreserveLog"],"sourceRoot":"../../../src","sources":["store/consoleLogStore.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","persistentStorage","sanitizeArgs","parseOrigin","METHODS","STACK_METHODS","Set","METHOD_LEVEL","error","assert","warn","debug","log","info","trace","dir","table","group","groupCollapsed","groupEnd","MAX_ENTRIES","entries","nextId","installed","fatalInstalled","captureDisabledByUser","listeners","clearListeners","originals","emitScheduled","emit","requestAnimationFrame","listener","formatArg","arg","Error","stack","name","message","undefined","JSON","stringify","String","formatArgs","args","map","join","cleanStack","raw","split","slice","captureOwnerStack","fn","record","method","rawStack","origin","entry","id","level","timestamp","Date","now","has","length","scheduleSave","recordFatalError","isFatal","err","label","headline","fatal","installFatalErrorCapture","errorUtils","globalThis","ErrorUtils","setGlobalHandler","previous","getGlobalHandler","installConsoleCapture","original","console","buoyConsoleProxy","apply","uninstallConsoleCapture","subscribe","add","delete","getEntries","clearEntries","clearSavedBuffer","replaceEntries","next","onClear","PRESERVE_KEY","BUFFER_KEY","SAVE_DEBOUNCE_MS","preserveLog","persistenceReady","preserveListeners","saveTimer","emitPreserve","clearTimeout","setTimeout","saveBuffer","serializable","setItem","removeItem","initConsolePersistence","getItem","saved","parse","Array","isArray","Math","max","e","getPreserveLog","setPreserveLog","catch","subscribePreserveLog"],"sourceRoot":"../../../src","sources":["store/consoleLogStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,6 +21,6 @@ export { ConsoleLogList } from "./components/ConsoleLogList";
|
|
|
21
21
|
export { useConsoleLogs } from "./hooks/useConsoleLogs";
|
|
22
22
|
export type { UseConsoleLogsResult } from "./hooks/useConsoleLogs";
|
|
23
23
|
export { consoleSyncAdapter } from "./sync/consoleSyncAdapter";
|
|
24
|
-
export { installConsoleCapture, uninstallConsoleCapture, clearEntries, getEntries, subscribe, replaceEntries, onClear, initConsolePersistence, getPreserveLog, setPreserveLog, subscribePreserveLog, } from "./store/consoleLogStore";
|
|
24
|
+
export { installConsoleCapture, installFatalErrorCapture, uninstallConsoleCapture, clearEntries, getEntries, subscribe, replaceEntries, onClear, initConsolePersistence, getPreserveLog, setPreserveLog, subscribePreserveLog, } from "./store/consoleLogStore";
|
|
25
25
|
export type { ConsoleLogEntry, ConsoleLevel, ConsoleMethod, } from "./store/consoleLogStore";
|
|
26
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAKhE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAKnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAK/D,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,OAAO,EACP,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAKhE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAKnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAK/D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,OAAO,EACP,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/preset.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/preset.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AA6BzD,eAAO,MAAM,iBAAiB;;;;;4BAKJ;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;CAIzD,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;4BAR7B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;EAezD"}
|
|
@@ -33,15 +33,39 @@ export interface ConsoleLogEntry {
|
|
|
33
33
|
stack?: string;
|
|
34
34
|
/** Where the log came from (component / function / call site). */
|
|
35
35
|
origin?: LogOrigin;
|
|
36
|
+
/**
|
|
37
|
+
* True when this entry came from React Native's global error handler (an
|
|
38
|
+
* uncaught — usually fatal — JS error), not from a `console.*` call. The
|
|
39
|
+
* message carries a matching `[FATAL]` / `[UNCAUGHT]` prefix.
|
|
40
|
+
*/
|
|
41
|
+
fatal?: boolean;
|
|
36
42
|
}
|
|
37
43
|
type Listener = () => void;
|
|
44
|
+
/**
|
|
45
|
+
* Hook React Native's global error handler (`ErrorUtils.setGlobalHandler`) so
|
|
46
|
+
* FATAL/uncaught JS errors land in the console store. A fatal render error
|
|
47
|
+
* kills the tree without ever calling `console.error` through our patch —
|
|
48
|
+
* without this hook a crashing app reads as "0 entries captured", the most
|
|
49
|
+
* misleading possible answer to "why is my app broken".
|
|
50
|
+
*
|
|
51
|
+
* - Chains the previous handler (LogBox/redbox still fire; nothing swallowed).
|
|
52
|
+
* - Idempotent, and a silent no-op off React Native (no `ErrorUtils` global) —
|
|
53
|
+
* which also keeps it inert on the desktop dashboard / web mirrors.
|
|
54
|
+
* - Recording respects an explicit `uninstallConsoleCapture()` (user OFF), but
|
|
55
|
+
* the hook itself stays chained — it can't be safely removed.
|
|
56
|
+
*/
|
|
57
|
+
export declare function installFatalErrorCapture(): void;
|
|
38
58
|
/**
|
|
39
59
|
* Patch the global console methods. Idempotent — safe to call more than once.
|
|
40
60
|
* Each patched method still forwards to the original so normal logging keeps
|
|
41
61
|
* working (Metro terminal, Chrome, native logcat/Xcode).
|
|
62
|
+
*
|
|
63
|
+
* Also installs the fatal-error hook (see `installFatalErrorCapture`) so every
|
|
64
|
+
* install path captures crashes, not just `console.*` calls.
|
|
42
65
|
*/
|
|
43
66
|
export declare function installConsoleCapture(): void;
|
|
44
|
-
/** Restore the original console methods.
|
|
67
|
+
/** Restore the original console methods. Also mutes fatal-error recording
|
|
68
|
+
* (the hook itself stays chained — see `installFatalErrorCapture`). */
|
|
45
69
|
export declare function uninstallConsoleCapture(): void;
|
|
46
70
|
/** Subscribe to changes. Returns an unsubscribe function. */
|
|
47
71
|
export declare function subscribe(listener: Listener): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleLogStore.d.ts","sourceRoot":"","sources":["../../../src/store/consoleLogStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,iDAAiD;AACjD,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,OAAO,GACP,gBAAgB,GAChB,UAAU,CAAC;AAEf,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,MAAM,EAAE,aAAa,CAAC;IACtB,+CAA+C;IAC/C,KAAK,EAAE,YAAY,CAAC;IACpB,sDAAsD;IACtD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"consoleLogStore.d.ts","sourceRoot":"","sources":["../../../src/store/consoleLogStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,iDAAiD;AACjD,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,OAAO,GACP,gBAAgB,GAChB,UAAU,CAAC;AAEf,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,MAAM,EAAE,aAAa,CAAC;IACtB,+CAA+C;IAC/C,KAAK,EAAE,YAAY,CAAC;IACpB,sDAAsD;IACtD,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAwCD,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAiI3B;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAiB/C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAkB5C;AAED;uEACuE;AACvE,wBAAgB,uBAAuB,IAAI,IAAI,CAS9C;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAKxD;AAED,sFAAsF;AACtF,wBAAgB,UAAU,IAAI,eAAe,EAAE,CAE9C;AAED;4DAC4D;AAC5D,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAOD,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,CAG5D;AAED;kFACkF;AAClF,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAKtD;AA+CD;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B5D;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAOlD;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAKnE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/console",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.21",
|
|
4
4
|
"description": "Chrome DevTools-style console for React Native — captures every console.* on device, even in release builds. Part of Buoy devtools.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
],
|
|
14
14
|
"sideEffects": false,
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
16
|
+
"@buoy-gg/shared-ui": "^7.0.21"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"react": "*",
|
package/src/index.tsx
CHANGED
|
@@ -51,6 +51,7 @@ export { consoleSyncAdapter } from "./sync/consoleSyncAdapter";
|
|
|
51
51
|
// =============================================================================
|
|
52
52
|
export {
|
|
53
53
|
installConsoleCapture,
|
|
54
|
+
installFatalErrorCapture,
|
|
54
55
|
uninstallConsoleCapture,
|
|
55
56
|
clearEntries,
|
|
56
57
|
getEntries,
|
package/src/preset.tsx
CHANGED
|
@@ -11,6 +11,33 @@
|
|
|
11
11
|
|
|
12
12
|
import { ConsoleIcon, CONSOLE_ICON_COLOR } from "./components/ConsoleIcon";
|
|
13
13
|
import { ConsoleModal } from "./components/ConsoleModal";
|
|
14
|
+
import { installConsoleCapture } from "./store/consoleLogStore";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Install console + fatal-error capture at IMPORT time, not first UI mount.
|
|
18
|
+
*
|
|
19
|
+
* Deliberately a module side effect (same pattern as @buoy-gg/network's
|
|
20
|
+
* override hydration): a fatal error thrown during the app's FIRST render
|
|
21
|
+
* kills the tree before FloatingDevTools' effects ever run, so mount-time
|
|
22
|
+
* install (`ConsoleRoot`) captured nothing for exactly the crashes that most
|
|
23
|
+
* need capturing. Importing the preset happens at bundle-eval, before any
|
|
24
|
+
* rendering, so both the `console.*` patch and the `ErrorUtils` fatal hook are
|
|
25
|
+
* live from the first line of app code.
|
|
26
|
+
*
|
|
27
|
+
* Guards:
|
|
28
|
+
* - `ErrorUtils` present = a real React Native runtime. The desktop dashboard
|
|
29
|
+
* and web mirrors import this package too, and must never patch their OWN
|
|
30
|
+
* console (they mirror device entries via `replaceEntries`).
|
|
31
|
+
* - Dev-only. In production the existing mount-time path still applies (the
|
|
32
|
+
* tools only mount there for licensed users), so end-user builds are never
|
|
33
|
+
* patched at import.
|
|
34
|
+
*/
|
|
35
|
+
const isReactNativeRuntime =
|
|
36
|
+
typeof (globalThis as { ErrorUtils?: { setGlobalHandler?: unknown } })
|
|
37
|
+
.ErrorUtils?.setGlobalHandler === "function";
|
|
38
|
+
if (isReactNativeRuntime && typeof __DEV__ !== "undefined" && __DEV__) {
|
|
39
|
+
installConsoleCapture();
|
|
40
|
+
}
|
|
14
41
|
|
|
15
42
|
export const consoleToolPreset = {
|
|
16
43
|
id: "console",
|
|
@@ -52,6 +52,12 @@ export interface ConsoleLogEntry {
|
|
|
52
52
|
stack?: string;
|
|
53
53
|
/** Where the log came from (component / function / call site). */
|
|
54
54
|
origin?: LogOrigin;
|
|
55
|
+
/**
|
|
56
|
+
* True when this entry came from React Native's global error handler (an
|
|
57
|
+
* uncaught — usually fatal — JS error), not from a `console.*` call. The
|
|
58
|
+
* message carries a matching `[FATAL]` / `[UNCAUGHT]` prefix.
|
|
59
|
+
*/
|
|
60
|
+
fatal?: boolean;
|
|
55
61
|
}
|
|
56
62
|
|
|
57
63
|
/** Methods we intercept, in the order we install them. */
|
|
@@ -97,6 +103,13 @@ type Listener = () => void;
|
|
|
97
103
|
let entries: ConsoleLogEntry[] = [];
|
|
98
104
|
let nextId = 1;
|
|
99
105
|
let installed = false;
|
|
106
|
+
let fatalInstalled = false;
|
|
107
|
+
/**
|
|
108
|
+
* Raised by an explicit `uninstallConsoleCapture()`. The fatal-error hook can't
|
|
109
|
+
* be safely unwound once chained (another library may have chained on top of
|
|
110
|
+
* ours since), so an explicit user OFF mutes fatal recording instead.
|
|
111
|
+
*/
|
|
112
|
+
let captureDisabledByUser = false;
|
|
100
113
|
|
|
101
114
|
const listeners = new Set<Listener>();
|
|
102
115
|
const clearListeners = new Set<Listener>();
|
|
@@ -175,12 +188,88 @@ function record(method: ConsoleMethod, args: unknown[]): void {
|
|
|
175
188
|
scheduleSave();
|
|
176
189
|
}
|
|
177
190
|
|
|
191
|
+
/** Minimal shape of React Native's global `ErrorUtils`. */
|
|
192
|
+
interface RNErrorUtils {
|
|
193
|
+
getGlobalHandler?: () =>
|
|
194
|
+
| ((error: unknown, isFatal?: boolean) => void)
|
|
195
|
+
| undefined;
|
|
196
|
+
setGlobalHandler?: (
|
|
197
|
+
handler: (error: unknown, isFatal?: boolean) => void
|
|
198
|
+
) => void;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** Record an uncaught JS error from the global handler as an error entry. */
|
|
202
|
+
function recordFatalError(error: unknown, isFatal?: boolean): void {
|
|
203
|
+
const err = error instanceof Error ? error : undefined;
|
|
204
|
+
// RN passes isFatal:false for non-fatal uncaught errors (e.g. errors thrown
|
|
205
|
+
// in event handlers on some setups); anything else is treated as fatal.
|
|
206
|
+
const label = isFatal === false ? "[UNCAUGHT]" : "[FATAL]";
|
|
207
|
+
const headline = err ? `${err.name}: ${err.message}` : formatArg(error);
|
|
208
|
+
// The label leads the args (not just the pre-rendered message): the
|
|
209
|
+
// DevTools-style row renders from args, so this is what makes the tag
|
|
210
|
+
// visible in the UI — exactly like `console.error("[FATAL]", err)`.
|
|
211
|
+
const entry: ConsoleLogEntry = {
|
|
212
|
+
id: nextId++,
|
|
213
|
+
method: "error",
|
|
214
|
+
level: "error",
|
|
215
|
+
args: [label, error],
|
|
216
|
+
message: `${label} ${headline}`,
|
|
217
|
+
timestamp: Date.now(),
|
|
218
|
+
// The error's OWN stack — the crash site, not this handler's call site.
|
|
219
|
+
stack: err?.stack,
|
|
220
|
+
fatal: true,
|
|
221
|
+
};
|
|
222
|
+
entries =
|
|
223
|
+
entries.length >= MAX_ENTRIES
|
|
224
|
+
? [...entries.slice(entries.length - MAX_ENTRIES + 1), entry]
|
|
225
|
+
: [...entries, entry];
|
|
226
|
+
emit();
|
|
227
|
+
scheduleSave();
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Hook React Native's global error handler (`ErrorUtils.setGlobalHandler`) so
|
|
232
|
+
* FATAL/uncaught JS errors land in the console store. A fatal render error
|
|
233
|
+
* kills the tree without ever calling `console.error` through our patch —
|
|
234
|
+
* without this hook a crashing app reads as "0 entries captured", the most
|
|
235
|
+
* misleading possible answer to "why is my app broken".
|
|
236
|
+
*
|
|
237
|
+
* - Chains the previous handler (LogBox/redbox still fire; nothing swallowed).
|
|
238
|
+
* - Idempotent, and a silent no-op off React Native (no `ErrorUtils` global) —
|
|
239
|
+
* which also keeps it inert on the desktop dashboard / web mirrors.
|
|
240
|
+
* - Recording respects an explicit `uninstallConsoleCapture()` (user OFF), but
|
|
241
|
+
* the hook itself stays chained — it can't be safely removed.
|
|
242
|
+
*/
|
|
243
|
+
export function installFatalErrorCapture(): void {
|
|
244
|
+
if (fatalInstalled) return;
|
|
245
|
+
const errorUtils = (globalThis as { ErrorUtils?: RNErrorUtils }).ErrorUtils;
|
|
246
|
+
if (typeof errorUtils?.setGlobalHandler !== "function") return;
|
|
247
|
+
fatalInstalled = true;
|
|
248
|
+
const previous =
|
|
249
|
+
typeof errorUtils.getGlobalHandler === "function"
|
|
250
|
+
? errorUtils.getGlobalHandler()
|
|
251
|
+
: undefined;
|
|
252
|
+
errorUtils.setGlobalHandler((error: unknown, isFatal?: boolean) => {
|
|
253
|
+
try {
|
|
254
|
+
if (!captureDisabledByUser) recordFatalError(error, isFatal);
|
|
255
|
+
} catch {
|
|
256
|
+
// Capture must never interfere with error reporting.
|
|
257
|
+
}
|
|
258
|
+
if (typeof previous === "function") previous(error, isFatal);
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
|
|
178
262
|
/**
|
|
179
263
|
* Patch the global console methods. Idempotent — safe to call more than once.
|
|
180
264
|
* Each patched method still forwards to the original so normal logging keeps
|
|
181
265
|
* working (Metro terminal, Chrome, native logcat/Xcode).
|
|
266
|
+
*
|
|
267
|
+
* Also installs the fatal-error hook (see `installFatalErrorCapture`) so every
|
|
268
|
+
* install path captures crashes, not just `console.*` calls.
|
|
182
269
|
*/
|
|
183
270
|
export function installConsoleCapture(): void {
|
|
271
|
+
captureDisabledByUser = false;
|
|
272
|
+
installFatalErrorCapture();
|
|
184
273
|
if (installed) return;
|
|
185
274
|
installed = true;
|
|
186
275
|
|
|
@@ -198,8 +287,10 @@ export function installConsoleCapture(): void {
|
|
|
198
287
|
}
|
|
199
288
|
}
|
|
200
289
|
|
|
201
|
-
/** Restore the original console methods.
|
|
290
|
+
/** Restore the original console methods. Also mutes fatal-error recording
|
|
291
|
+
* (the hook itself stays chained — see `installFatalErrorCapture`). */
|
|
202
292
|
export function uninstallConsoleCapture(): void {
|
|
293
|
+
captureDisabledByUser = true;
|
|
203
294
|
if (!installed) return;
|
|
204
295
|
installed = false;
|
|
205
296
|
for (const method of METHODS) {
|