@mongrov/core 0.2.0 → 0.4.0
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/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +0 -1
- package/dist/logger.js.map +1 -1
- package/dist/ui/DevToolsLogPanel.d.ts +3 -0
- package/dist/ui/DevToolsLogPanel.d.ts.map +1 -0
- package/dist/ui/DevToolsLogPanel.js +18 -0
- package/dist/ui/DevToolsLogPanel.js.map +1 -0
- package/dist/ui/LogEntryRow.d.ts +3 -0
- package/dist/ui/LogEntryRow.d.ts.map +1 -0
- package/dist/ui/LogEntryRow.js +21 -0
- package/dist/ui/LogEntryRow.js.map +1 -0
- package/dist/ui/LogExportButton.d.ts +3 -0
- package/dist/ui/LogExportButton.d.ts.map +1 -0
- package/dist/ui/LogExportButton.js +18 -0
- package/dist/ui/LogExportButton.js.map +1 -0
- package/dist/ui/LogFilterBar.d.ts +3 -0
- package/dist/ui/LogFilterBar.d.ts.map +1 -0
- package/dist/ui/LogFilterBar.js +14 -0
- package/dist/ui/LogFilterBar.js.map +1 -0
- package/dist/ui/LogViewer.d.ts +3 -0
- package/dist/ui/LogViewer.d.ts.map +1 -0
- package/dist/ui/LogViewer.js +7 -0
- package/dist/ui/LogViewer.js.map +1 -0
- package/dist/ui/index.d.ts +8 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +9 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/types.d.ts +33 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +2 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/ui/useLogViewer.d.ts +3 -0
- package/dist/ui/useLogViewer.d.ts.map +1 -0
- package/dist/ui/useLogViewer.js +39 -0
- package/dist/ui/useLogViewer.js.map +1 -0
- package/package.json +27 -10
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,SAAS,EACT,YAAY,EAKb,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,SAAS,EACT,YAAY,EAKb,MAAM,SAAS,CAAA;AAuChB,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC5D,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAEvE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5C,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,EAAE,CAAA;IACvC,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAEtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA6IzD"}
|
package/dist/logger.js
CHANGED
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,WAAW,GAA6B;IAC5C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAA;AAED,IAAI,OAAO,GAAG,CAAC,CAAA;AACf,SAAS,UAAU;IACjB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;AACnE,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5C,OAAO,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,KAAK;IACZ,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DevToolsLogPanel.d.ts","sourceRoot":"","sources":["../../src/ui/DevToolsLogPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAmB,EACnB,MAAM,GACP,EAAE,qBAAqB,2CAqCvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { Text, View } from 'react-native';
|
|
4
|
+
import { LogExportButton } from './LogExportButton';
|
|
5
|
+
import { LogFilterBar } from './LogFilterBar';
|
|
6
|
+
import { LogViewer } from './LogViewer';
|
|
7
|
+
import { useLogViewer } from './useLogViewer';
|
|
8
|
+
export function DevToolsLogPanel({ title = 'Dev Tools', testID, }) {
|
|
9
|
+
const { entries, filter, refresh, setLevelFilter, exportLogs } = useLogViewer();
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
refresh();
|
|
12
|
+
}, [refresh]);
|
|
13
|
+
return (_jsxs(View, { className: "flex-1", testID: testID, children: [_jsxs(View, { className: "flex-row items-center justify-between px-4 py-2", children: [_jsx(Text, { className: "text-xl font-bold text-neutral-900 dark:text-neutral-100", children: title }), _jsx(LogExportButton, { getExportData: exportLogs, testID: testID ? `${testID}-export` : undefined })] }), _jsx(LogFilterBar, { activeLevel: filter.level, onSelectLevel: (level) => {
|
|
14
|
+
setLevelFilter(level);
|
|
15
|
+
setTimeout(refresh, 0);
|
|
16
|
+
}, testID: testID ? `${testID}-filter` : undefined }), _jsxs(Text, { className: "px-4 py-1 text-xs text-neutral-500 dark:text-neutral-400", children: [entries.length, " entries"] }), _jsx(LogViewer, { entries: entries, testID: testID ? `${testID}-viewer` : undefined })] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=DevToolsLogPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DevToolsLogPanel.js","sourceRoot":"","sources":["../../src/ui/DevToolsLogPanel.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,GAAG,WAAW,EACnB,MAAM,GACgB;IACtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,GAC5D,YAAY,EAAE,CAAC;IAEjB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,MAAM,EAAE,MAAM,aACrC,MAAC,IAAI,IAAC,SAAS,EAAC,iDAAiD,aAC/D,KAAC,IAAI,IAAC,SAAS,EAAC,0DAA0D,YAAE,KAAK,GAAQ,EACzF,KAAC,eAAe,IACd,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,SAAS,GAC/C,IACG,EAEP,KAAC,YAAY,IACX,WAAW,EAAE,MAAM,CAAC,KAAK,EACzB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,cAAc,CAAC,KAAK,CAAC,CAAC;oBACtB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACzB,CAAC,EACD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,SAAS,GAC/C,EAEF,MAAC,IAAI,IAAC,SAAS,EAAC,0DAA0D,aACvE,OAAO,CAAC,MAAM,gBACV,EAEP,KAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,SAAS,GAC/C,IACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogEntryRow.d.ts","sourceRoot":"","sources":["../../src/ui/LogEntryRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAgBhD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAwB9D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
|
+
const LEVEL_COLORS = {
|
|
4
|
+
debug: 'text-neutral-600 dark:text-neutral-300',
|
|
5
|
+
info: 'text-blue-600 dark:text-blue-400',
|
|
6
|
+
warn: 'text-warning-600 dark:text-warning-400',
|
|
7
|
+
error: 'text-danger-600 dark:text-danger-400',
|
|
8
|
+
};
|
|
9
|
+
const LEVEL_BG = {
|
|
10
|
+
debug: 'bg-neutral-50 dark:bg-neutral-900',
|
|
11
|
+
info: 'bg-blue-50 dark:bg-blue-900/30',
|
|
12
|
+
warn: 'bg-warning-50 dark:bg-warning-900/30',
|
|
13
|
+
error: 'bg-danger-50 dark:bg-danger-900/30',
|
|
14
|
+
};
|
|
15
|
+
export function LogEntryRow({ entry, testID }) {
|
|
16
|
+
const time = new Date(entry.timestamp).toLocaleTimeString();
|
|
17
|
+
const levelColor = LEVEL_COLORS[entry.level] ?? 'text-neutral-500 dark:text-neutral-400';
|
|
18
|
+
const bgColor = LEVEL_BG[entry.level] ?? 'bg-neutral-100 dark:bg-neutral-800';
|
|
19
|
+
return (_jsxs(View, { className: `border-b border-neutral-200 dark:border-neutral-700 px-4 py-2 ${bgColor}`, testID: testID, children: [_jsxs(View, { className: "flex-row items-center justify-between", children: [_jsx(Text, { className: `text-xs font-bold uppercase ${levelColor}`, children: entry.level }), _jsx(Text, { className: "text-xs text-neutral-500 dark:text-neutral-400", children: time })] }), _jsx(Text, { className: "mt-1 text-sm text-neutral-900 dark:text-neutral-100", children: entry.message }), entry.data && (_jsx(Text, { className: "mt-1 font-mono text-xs text-neutral-500 dark:text-neutral-400", children: JSON.stringify(entry.data, null, 2).slice(0, 200) }))] }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=LogEntryRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogEntryRow.js","sourceRoot":"","sources":["../../src/ui/LogEntryRow.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,YAAY,GAA2B;IAC3C,KAAK,EAAE,wCAAwC;IAC/C,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,wCAAwC;IAC9C,KAAK,EAAE,sCAAsC;CAC9C,CAAC;AAEF,MAAM,QAAQ,GAA2B;IACvC,KAAK,EAAE,mCAAmC;IAC1C,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,sCAAsC;IAC5C,KAAK,EAAE,oCAAoC;CAC5C,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAoB;IAC7D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,wCAAwC,CAAC;IACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,oCAAoC,CAAC;IAE9E,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAE,iEAAiE,OAAO,EAAE,EACrF,MAAM,EAAE,MAAM,aAEd,MAAC,IAAI,IAAC,SAAS,EAAC,uCAAuC,aACrD,KAAC,IAAI,IAAC,SAAS,EAAE,+BAA+B,UAAU,EAAE,YACzD,KAAK,CAAC,KAAK,GACP,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,gDAAgD,YAAE,IAAI,GAAQ,IACzE,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,qDAAqD,YAAE,KAAK,CAAC,OAAO,GAAQ,EAC3F,KAAK,CAAC,IAAI,IAAI,CACb,KAAC,IAAI,IAAC,SAAS,EAAC,+DAA+D,YAC5E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAC7C,CACR,IACI,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogExportButton.d.ts","sourceRoot":"","sources":["../../src/ui/LogExportButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,eAAe,CAAC,EAC9B,aAAa,EACb,KAAqB,EACrB,MAAM,GACP,EAAE,oBAAoB,2CAwBtB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, Share, Text } from 'react-native';
|
|
3
|
+
export function LogExportButton({ getExportData, label = 'Export Logs', testID, }) {
|
|
4
|
+
const handleExport = async () => {
|
|
5
|
+
const data = getExportData();
|
|
6
|
+
try {
|
|
7
|
+
await Share.share({
|
|
8
|
+
message: data,
|
|
9
|
+
title: 'App Logs',
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// Share cancelled or failed
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
return (_jsx(Pressable, { onPress: handleExport, className: "rounded-lg bg-primary-500 dark:bg-primary-600 px-4 py-2 active:bg-primary-600 dark:active:bg-primary-700", testID: testID, children: _jsx(Text, { className: "text-sm font-semibold text-white", children: label }) }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=LogExportButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogExportButton.js","sourceRoot":"","sources":["../../src/ui/LogExportButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,UAAU,eAAe,CAAC,EAC9B,aAAa,EACb,KAAK,GAAG,aAAa,EACrB,MAAM,GACe;IACrB,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC9B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,0GAA0G,EACpH,MAAM,EAAE,MAAM,YAEd,KAAC,IAAI,IAAC,SAAS,EAAC,kCAAkC,YAC/C,KAAK,GACD,GACG,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogFilterBar.d.ts","sourceRoot":"","sources":["../../src/ui/LogFilterBar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD,wBAAgB,YAAY,CAAC,EAC3B,WAAW,EACX,aAAa,EACb,MAAM,GACP,EAAE,iBAAiB,2CA+BnB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Pressable, Text, View } from 'react-native';
|
|
3
|
+
const LEVELS = ['all', 'debug', 'info', 'warn', 'error'];
|
|
4
|
+
export function LogFilterBar({ activeLevel, onSelectLevel, testID, }) {
|
|
5
|
+
return (_jsx(View, { className: "flex-row gap-2 px-4 py-3 border-b border-neutral-200 dark:border-neutral-800", testID: testID, children: LEVELS.map((level) => {
|
|
6
|
+
const isActive = level === 'all' ? !activeLevel : activeLevel === level;
|
|
7
|
+
return (_jsx(Pressable, { onPress: () => onSelectLevel(level === 'all' ? undefined : level), className: `rounded-full px-3 py-1.5 ${isActive
|
|
8
|
+
? 'bg-primary-500 dark:bg-primary-600'
|
|
9
|
+
: 'bg-neutral-100 dark:bg-neutral-800 border border-neutral-300 dark:border-neutral-600'}`, testID: testID ? `${testID}-${level}` : undefined, children: _jsx(Text, { className: `text-xs font-semibold uppercase ${isActive
|
|
10
|
+
? 'text-white'
|
|
11
|
+
: 'text-neutral-600 dark:text-neutral-300'}`, children: level }) }, level));
|
|
12
|
+
}) }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=LogFilterBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogFilterBar.js","sourceRoot":"","sources":["../../src/ui/LogFilterBar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIrD,MAAM,MAAM,GAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/E,MAAM,UAAU,YAAY,CAAC,EAC3B,WAAW,EACX,aAAa,EACb,MAAM,GACY;IAClB,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,8EAA8E,EAAC,MAAM,EAAE,MAAM,YAC1G,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,MAAM,QAAQ,GACZ,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC;YACzD,OAAO,CACL,KAAC,SAAS,IAER,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EACjE,SAAS,EAAE,4BACT,QAAQ;oBACN,CAAC,CAAC,oCAAoC;oBACtC,CAAC,CAAC,sFACN,EAAE,EACF,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,YAEjD,KAAC,IAAI,IACH,SAAS,EAAE,mCACT,QAAQ;wBACN,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,wCACN,EAAE,YAED,KAAK,GACD,IAjBF,KAAK,CAkBA,CACb,CAAC;QACJ,CAAC,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogViewer.d.ts","sourceRoot":"","sources":["../../src/ui/LogViewer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,2CAU5D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FlatList, View } from 'react-native';
|
|
3
|
+
import { LogEntryRow } from './LogEntryRow';
|
|
4
|
+
export function LogViewer({ entries, testID }) {
|
|
5
|
+
return (_jsx(View, { className: "flex-1", testID: testID, children: _jsx(FlatList, { data: entries, renderItem: ({ item }) => _jsx(LogEntryRow, { entry: item }), keyExtractor: (item) => item.id }) }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=LogViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogViewer.js","sourceRoot":"","sources":["../../src/ui/LogViewer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,UAAU,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAkB;IAC3D,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,MAAM,EAAE,MAAM,YACrC,KAAC,QAAQ,IACP,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAC,WAAW,IAAC,KAAK,EAAE,IAAI,GAAI,EACtD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAC/B,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { LogEntryRow } from './LogEntryRow';
|
|
2
|
+
export { LogFilterBar } from './LogFilterBar';
|
|
3
|
+
export { LogExportButton } from './LogExportButton';
|
|
4
|
+
export { LogViewer } from './LogViewer';
|
|
5
|
+
export { DevToolsLogPanel } from './DevToolsLogPanel';
|
|
6
|
+
export { useLogViewer } from './useLogViewer';
|
|
7
|
+
export type { LogEntryRowProps, LogFilterBarProps, LogExportButtonProps, LogViewerProps, DevToolsLogPanelProps, UseLogViewerReturn, } from './types';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Components
|
|
2
|
+
export { LogEntryRow } from './LogEntryRow';
|
|
3
|
+
export { LogFilterBar } from './LogFilterBar';
|
|
4
|
+
export { LogExportButton } from './LogExportButton';
|
|
5
|
+
export { LogViewer } from './LogViewer';
|
|
6
|
+
export { DevToolsLogPanel } from './DevToolsLogPanel';
|
|
7
|
+
// Hooks
|
|
8
|
+
export { useLogViewer } from './useLogViewer';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { LogEntry, LogFilter, LogLevel } from '../types';
|
|
2
|
+
export interface LogEntryRowProps {
|
|
3
|
+
entry: LogEntry;
|
|
4
|
+
testID?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface LogFilterBarProps {
|
|
7
|
+
activeLevel: LogLevel | undefined;
|
|
8
|
+
onSelectLevel: (level: LogLevel | undefined) => void;
|
|
9
|
+
testID?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface LogExportButtonProps {
|
|
12
|
+
getExportData: () => string;
|
|
13
|
+
label?: string;
|
|
14
|
+
testID?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface LogViewerProps {
|
|
17
|
+
entries: LogEntry[];
|
|
18
|
+
testID?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DevToolsLogPanelProps {
|
|
21
|
+
title?: string;
|
|
22
|
+
testID?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface UseLogViewerReturn {
|
|
25
|
+
entries: LogEntry[];
|
|
26
|
+
filter: LogFilter;
|
|
27
|
+
refresh: () => void;
|
|
28
|
+
setLevelFilter: (level: LogLevel | undefined) => void;
|
|
29
|
+
setSearchFilter: (search: string | undefined) => void;
|
|
30
|
+
exportLogs: () => string;
|
|
31
|
+
}
|
|
32
|
+
export type { LogEntry, LogFilter, LogLevel };
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,MAAM,MAAM,CAAC;CAC1B;AAED,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/ui/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogViewer.d.ts","sourceRoot":"","sources":["../../src/ui/useLogViewer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,YAAY,IAAI,kBAAkB,CAsCjD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
|
+
import { useLogger } from '../context/logging-provider';
|
|
3
|
+
export function useLogViewer() {
|
|
4
|
+
const logger = useLogger();
|
|
5
|
+
const [filter, setFilter] = useState({});
|
|
6
|
+
const [entries, setEntries] = useState([]);
|
|
7
|
+
const refresh = useCallback(() => {
|
|
8
|
+
try {
|
|
9
|
+
const logs = logger.getLogs(filter);
|
|
10
|
+
setEntries(logs);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
setEntries([]);
|
|
14
|
+
}
|
|
15
|
+
}, [logger, filter]);
|
|
16
|
+
const setLevelFilter = useCallback((level) => {
|
|
17
|
+
setFilter((prev) => ({ ...prev, level }));
|
|
18
|
+
}, []);
|
|
19
|
+
const setSearchFilter = useCallback((search) => {
|
|
20
|
+
setFilter((prev) => ({ ...prev, search: search || undefined }));
|
|
21
|
+
}, []);
|
|
22
|
+
const exportLogs = useCallback(() => {
|
|
23
|
+
try {
|
|
24
|
+
return logger.exportLogs(filter);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return '[]';
|
|
28
|
+
}
|
|
29
|
+
}, [logger, filter]);
|
|
30
|
+
return {
|
|
31
|
+
entries,
|
|
32
|
+
filter,
|
|
33
|
+
refresh,
|
|
34
|
+
setLevelFilter,
|
|
35
|
+
setSearchFilter,
|
|
36
|
+
exportLogs,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=useLogViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogViewer.js","sourceRoot":"","sources":["../../src/ui/useLogViewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAIxD,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,KAA2B,EAAE,EAAE;QACjE,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,MAA0B,EAAE,EAAE;QACjE,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAW,EAAE;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,OAAO;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,cAAc;QACd,eAAe;QACf,UAAU;KACX,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongrov/core",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Structured logging for React Native / Expo — ring buffer, file, and webhook transports with offline queue",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Structured logging for React Native / Expo — ring buffer, file, and webhook transports with offline queue. Includes dev-tools UI components.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/mongrov/mongrov-
|
|
8
|
+
"url": "https://github.com/mongrov/mongrov-packages.git",
|
|
9
|
+
"directory": "packages/core"
|
|
9
10
|
},
|
|
10
11
|
"keywords": [
|
|
11
12
|
"react-native",
|
|
@@ -14,7 +15,8 @@
|
|
|
14
15
|
"structured-logging",
|
|
15
16
|
"ring-buffer",
|
|
16
17
|
"webhook",
|
|
17
|
-
"offline-queue"
|
|
18
|
+
"offline-queue",
|
|
19
|
+
"dev-tools"
|
|
18
20
|
],
|
|
19
21
|
"engines": {
|
|
20
22
|
"node": ">=18"
|
|
@@ -26,6 +28,11 @@
|
|
|
26
28
|
"types": "./dist/index.d.ts",
|
|
27
29
|
"import": "./dist/index.js",
|
|
28
30
|
"default": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./ui": {
|
|
33
|
+
"types": "./dist/ui/index.d.ts",
|
|
34
|
+
"import": "./dist/ui/index.js",
|
|
35
|
+
"default": "./dist/ui/index.js"
|
|
29
36
|
}
|
|
30
37
|
},
|
|
31
38
|
"files": [
|
|
@@ -34,18 +41,20 @@
|
|
|
34
41
|
"scripts": {
|
|
35
42
|
"build": "tsc -p tsconfig.build.json",
|
|
36
43
|
"clean": "rm -rf dist",
|
|
37
|
-
"prebuild": "
|
|
38
|
-
"
|
|
39
|
-
"test": "jest",
|
|
44
|
+
"prebuild": "pnpm run clean",
|
|
45
|
+
"test": "jest --coverage",
|
|
40
46
|
"test:watch": "jest --watch",
|
|
41
|
-
"typecheck": "tsc --noEmit"
|
|
47
|
+
"typecheck": "tsc --noEmit",
|
|
48
|
+
"prepublishOnly": "pnpm run build"
|
|
42
49
|
},
|
|
43
50
|
"peerDependencies": {
|
|
44
51
|
"expo-file-system": ">=17",
|
|
45
52
|
"expo-network": ">=6",
|
|
46
53
|
"react": ">=18",
|
|
47
54
|
"react-native": ">=0.74",
|
|
48
|
-
"react-native-mmkv": ">=3"
|
|
55
|
+
"react-native-mmkv": ">=3",
|
|
56
|
+
"expo-router": ">=4",
|
|
57
|
+
"uniwind": ">=1"
|
|
49
58
|
},
|
|
50
59
|
"peerDependenciesMeta": {
|
|
51
60
|
"expo-file-system": {
|
|
@@ -56,6 +65,12 @@
|
|
|
56
65
|
},
|
|
57
66
|
"react-native-mmkv": {
|
|
58
67
|
"optional": true
|
|
68
|
+
},
|
|
69
|
+
"expo-router": {
|
|
70
|
+
"optional": true
|
|
71
|
+
},
|
|
72
|
+
"uniwind": {
|
|
73
|
+
"optional": true
|
|
59
74
|
}
|
|
60
75
|
},
|
|
61
76
|
"devDependencies": {
|
|
@@ -67,7 +82,9 @@
|
|
|
67
82
|
"react": "^18.2.0",
|
|
68
83
|
"react-dom": "^18.3.1",
|
|
69
84
|
"react-native": "^0.74.0",
|
|
85
|
+
"react-test-renderer": "^18.2.0",
|
|
70
86
|
"ts-jest": "^29.1.2",
|
|
71
|
-
"typescript": "^5.
|
|
87
|
+
"typescript": "^5.9.3",
|
|
88
|
+
"uniwind": "^1.6.1"
|
|
72
89
|
}
|
|
73
90
|
}
|