rn-backstage 1.0.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/README.md +80 -0
- package/lib/commonjs/Backstage.js +130 -0
- package/lib/commonjs/Backstage.js.map +1 -0
- package/lib/commonjs/components/BackstagePanel.js +192 -0
- package/lib/commonjs/components/BackstagePanel.js.map +1 -0
- package/lib/commonjs/components/FloatingPill.js +147 -0
- package/lib/commonjs/components/FloatingPill.js.map +1 -0
- package/lib/commonjs/components/InfoTab.js +260 -0
- package/lib/commonjs/components/InfoTab.js.map +1 -0
- package/lib/commonjs/components/JsonTreeView.js +245 -0
- package/lib/commonjs/components/JsonTreeView.js.map +1 -0
- package/lib/commonjs/components/LogItem.js +191 -0
- package/lib/commonjs/components/LogItem.js.map +1 -0
- package/lib/commonjs/components/LogsTab.js +235 -0
- package/lib/commonjs/components/LogsTab.js.map +1 -0
- package/lib/commonjs/components/TabBar.js +132 -0
- package/lib/commonjs/components/TabBar.js.map +1 -0
- package/lib/commonjs/constants.js +89 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/index.js +20 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/log-interceptor.js +114 -0
- package/lib/commonjs/log-interceptor.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types.js +21 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils/formatTimestamp.js +26 -0
- package/lib/commonjs/utils/formatTimestamp.js.map +1 -0
- package/lib/commonjs/utils/stringify.js +78 -0
- package/lib/commonjs/utils/stringify.js.map +1 -0
- package/lib/module/Backstage.js +125 -0
- package/lib/module/Backstage.js.map +1 -0
- package/lib/module/components/BackstagePanel.js +187 -0
- package/lib/module/components/BackstagePanel.js.map +1 -0
- package/lib/module/components/FloatingPill.js +142 -0
- package/lib/module/components/FloatingPill.js.map +1 -0
- package/lib/module/components/InfoTab.js +255 -0
- package/lib/module/components/InfoTab.js.map +1 -0
- package/lib/module/components/JsonTreeView.js +241 -0
- package/lib/module/components/JsonTreeView.js.map +1 -0
- package/lib/module/components/LogItem.js +186 -0
- package/lib/module/components/LogItem.js.map +1 -0
- package/lib/module/components/LogsTab.js +230 -0
- package/lib/module/components/LogsTab.js.map +1 -0
- package/lib/module/components/TabBar.js +127 -0
- package/lib/module/components/TabBar.js.map +1 -0
- package/lib/module/constants.js +85 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/log-interceptor.js +108 -0
- package/lib/module/log-interceptor.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types.js +25 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/formatTimestamp.js +22 -0
- package/lib/module/utils/formatTimestamp.js.map +1 -0
- package/lib/module/utils/stringify.js +73 -0
- package/lib/module/utils/stringify.js.map +1 -0
- package/lib/typescript/Backstage.d.ts +4 -0
- package/lib/typescript/Backstage.d.ts.map +1 -0
- package/lib/typescript/components/BackstagePanel.d.ts +21 -0
- package/lib/typescript/components/BackstagePanel.d.ts.map +1 -0
- package/lib/typescript/components/FloatingPill.d.ts +13 -0
- package/lib/typescript/components/FloatingPill.d.ts.map +1 -0
- package/lib/typescript/components/InfoTab.d.ts +16 -0
- package/lib/typescript/components/InfoTab.d.ts.map +1 -0
- package/lib/typescript/components/JsonTreeView.d.ts +10 -0
- package/lib/typescript/components/JsonTreeView.d.ts.map +1 -0
- package/lib/typescript/components/LogItem.d.ts +10 -0
- package/lib/typescript/components/LogItem.d.ts.map +1 -0
- package/lib/typescript/components/LogsTab.d.ts +11 -0
- package/lib/typescript/components/LogsTab.d.ts.map +1 -0
- package/lib/typescript/components/TabBar.d.ts +14 -0
- package/lib/typescript/components/TabBar.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +43 -0
- package/lib/typescript/constants.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/log-interceptor.d.ts +16 -0
- package/lib/typescript/log-interceptor.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +110 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/utils/formatTimestamp.d.ts +7 -0
- package/lib/typescript/utils/formatTimestamp.d.ts.map +1 -0
- package/lib/typescript/utils/stringify.d.ts +9 -0
- package/lib/typescript/utils/stringify.d.ts.map +1 -0
- package/package.json +91 -0
- package/src/Backstage.tsx +145 -0
- package/src/components/BackstagePanel.tsx +208 -0
- package/src/components/FloatingPill.tsx +150 -0
- package/src/components/InfoTab.tsx +264 -0
- package/src/components/JsonTreeView.tsx +259 -0
- package/src/components/LogItem.tsx +189 -0
- package/src/components/LogsTab.tsx +239 -0
- package/src/components/TabBar.tsx +150 -0
- package/src/constants.ts +82 -0
- package/src/index.ts +14 -0
- package/src/log-interceptor.ts +137 -0
- package/src/types.ts +147 -0
- package/src/utils/formatTimestamp.ts +22 -0
- package/src/utils/stringify.ts +90 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","useState","FlatList","StyleSheet","Text","TextInput","TouchableOpacity","View","DarkTheme","MonospaceFont","TestIDs","LogItem","formatTimestamp","jsx","_jsx","jsxs","_jsxs","LogsTab","logs","onRefresh","onCopyLogs","styles","propStyles","searchText","setSearchText","filteredLogs","trim","query","toLowerCase","filter","log","message","includes","level","handleCopyAll","text","map","toUpperCase","timestamp","join","handleCopyItem","renderItem","item","onCopy","undefined","keyExtractor","id","style","container","children","searchContainer","searchInputWrapper","searchIcon","testID","logsTab","searchInput","placeholder","placeholderTextColor","textMuted","value","onChangeText","autoCapitalize","autoCorrect","clearButtonMode","returnKeyType","copyButton","copyAllButton","onPress","activeOpacity","copyAllText","countBar","countText","length","pullHint","list","data","refreshing","contentContainerStyle","emptyContainer","ListEmptyComponent","emptyState","emptyIcon","emptyTitle","emptySubtitle","maxToRenderPerBatch","windowSize","initialNumToRender","removeClippedSubviews","getItemLayout","create","flex","flexDirection","alignItems","paddingHorizontal","paddingVertical","gap","borderBottomWidth","borderBottomColor","border","backgroundColor","surfaceElevated","borderRadius","borderWidth","borderColor","height","fontSize","color","marginRight","fontFamily","padding","accentDim","accent","justifyContent","fontWeight","letterSpacing","surface","fontStyle","marginBottom","opacity","textSecondary","textAlign"],"sourceRoot":"../../../src","sources":["components/LogsTab.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useRef, useEffect } from 'react';
|
|
4
|
+
import { Animated, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
|
5
|
+
import { DarkTheme, MonospaceFont } from '../constants';
|
|
6
|
+
|
|
7
|
+
// ─── Types ───────────────────────────────────────────────────────────────────
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
// ─── Component ───────────────────────────────────────────────────────────────
|
|
10
|
+
|
|
11
|
+
export const TabBar = ({
|
|
12
|
+
tabs,
|
|
13
|
+
activeTab,
|
|
14
|
+
onTabChange
|
|
15
|
+
}) => {
|
|
16
|
+
const indicatorAnim = useRef(new Animated.Value(0)).current;
|
|
17
|
+
const tabWidths = useRef({});
|
|
18
|
+
const tabOffsets = useRef({});
|
|
19
|
+
const scrollRef = useRef(null);
|
|
20
|
+
|
|
21
|
+
// Animate indicator when active tab changes
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const offset = tabOffsets.current[activeTab] || 0;
|
|
24
|
+
Animated.spring(indicatorAnim, {
|
|
25
|
+
toValue: offset,
|
|
26
|
+
useNativeDriver: true,
|
|
27
|
+
friction: 8,
|
|
28
|
+
tension: 60
|
|
29
|
+
}).start();
|
|
30
|
+
}, [activeTab, indicatorAnim]);
|
|
31
|
+
const handleTabLayout = useCallback(key => e => {
|
|
32
|
+
const {
|
|
33
|
+
x,
|
|
34
|
+
width
|
|
35
|
+
} = e.nativeEvent.layout;
|
|
36
|
+
tabWidths.current[key] = width;
|
|
37
|
+
tabOffsets.current[key] = x;
|
|
38
|
+
|
|
39
|
+
// Re-animate if this is the active tab
|
|
40
|
+
if (key === activeTab) {
|
|
41
|
+
indicatorAnim.setValue(x);
|
|
42
|
+
}
|
|
43
|
+
}, [activeTab, indicatorAnim]);
|
|
44
|
+
const activeWidth = tabWidths.current[activeTab] || 80;
|
|
45
|
+
return /*#__PURE__*/_jsx(View, {
|
|
46
|
+
style: styles.container,
|
|
47
|
+
children: /*#__PURE__*/_jsxs(ScrollView, {
|
|
48
|
+
ref: scrollRef,
|
|
49
|
+
horizontal: true,
|
|
50
|
+
showsHorizontalScrollIndicator: false,
|
|
51
|
+
contentContainerStyle: styles.scrollContent,
|
|
52
|
+
children: [tabs.map(tab => {
|
|
53
|
+
const isActive = tab.key === activeTab;
|
|
54
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
55
|
+
onPress: () => onTabChange(tab.key),
|
|
56
|
+
onLayout: handleTabLayout(tab.key),
|
|
57
|
+
style: styles.tab,
|
|
58
|
+
activeOpacity: 0.7,
|
|
59
|
+
testID: `backstage.tab.${tab.key}`,
|
|
60
|
+
children: [tab.icon && /*#__PURE__*/_jsx(Text, {
|
|
61
|
+
style: [styles.tabIcon, isActive && styles.tabIconActive],
|
|
62
|
+
children: tab.icon
|
|
63
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
64
|
+
style: [styles.tabText, isActive && styles.tabTextActive],
|
|
65
|
+
children: tab.title
|
|
66
|
+
})]
|
|
67
|
+
}, tab.key);
|
|
68
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
69
|
+
style: [styles.indicator, {
|
|
70
|
+
width: activeWidth,
|
|
71
|
+
transform: [{
|
|
72
|
+
translateX: indicatorAnim
|
|
73
|
+
}]
|
|
74
|
+
}]
|
|
75
|
+
})]
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// ─── Styles ──────────────────────────────────────────────────────────────────
|
|
81
|
+
|
|
82
|
+
const styles = StyleSheet.create({
|
|
83
|
+
container: {
|
|
84
|
+
borderBottomWidth: 1,
|
|
85
|
+
borderBottomColor: DarkTheme.border
|
|
86
|
+
},
|
|
87
|
+
scrollContent: {
|
|
88
|
+
flexDirection: 'row',
|
|
89
|
+
position: 'relative',
|
|
90
|
+
paddingBottom: 0
|
|
91
|
+
},
|
|
92
|
+
tab: {
|
|
93
|
+
flexDirection: 'row',
|
|
94
|
+
alignItems: 'center',
|
|
95
|
+
justifyContent: 'center',
|
|
96
|
+
paddingHorizontal: 20,
|
|
97
|
+
paddingVertical: 14,
|
|
98
|
+
minWidth: 80
|
|
99
|
+
},
|
|
100
|
+
tabIcon: {
|
|
101
|
+
fontSize: 14,
|
|
102
|
+
marginRight: 6,
|
|
103
|
+
opacity: 0.5
|
|
104
|
+
},
|
|
105
|
+
tabIconActive: {
|
|
106
|
+
opacity: 1
|
|
107
|
+
},
|
|
108
|
+
tabText: {
|
|
109
|
+
fontFamily: MonospaceFont,
|
|
110
|
+
fontSize: 13,
|
|
111
|
+
fontWeight: '600',
|
|
112
|
+
color: DarkTheme.textMuted,
|
|
113
|
+
textTransform: 'uppercase',
|
|
114
|
+
letterSpacing: 1
|
|
115
|
+
},
|
|
116
|
+
tabTextActive: {
|
|
117
|
+
color: DarkTheme.accent
|
|
118
|
+
},
|
|
119
|
+
indicator: {
|
|
120
|
+
position: 'absolute',
|
|
121
|
+
bottom: 0,
|
|
122
|
+
height: 2,
|
|
123
|
+
backgroundColor: DarkTheme.accent,
|
|
124
|
+
borderRadius: 1
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=TabBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useRef","useEffect","Animated","ScrollView","StyleSheet","Text","TouchableOpacity","View","DarkTheme","MonospaceFont","jsx","_jsx","jsxs","_jsxs","TabBar","tabs","activeTab","onTabChange","indicatorAnim","Value","current","tabWidths","tabOffsets","scrollRef","offset","spring","toValue","useNativeDriver","friction","tension","start","handleTabLayout","key","e","x","width","nativeEvent","layout","setValue","activeWidth","style","styles","container","children","ref","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","scrollContent","map","tab","isActive","onPress","onLayout","activeOpacity","testID","icon","tabIcon","tabIconActive","tabText","tabTextActive","title","indicator","transform","translateX","create","borderBottomWidth","borderBottomColor","border","flexDirection","position","paddingBottom","alignItems","justifyContent","paddingHorizontal","paddingVertical","minWidth","fontSize","marginRight","opacity","fontFamily","fontWeight","color","textMuted","textTransform","letterSpacing","accent","bottom","height","backgroundColor","borderRadius"],"sourceRoot":"../../../src","sources":["components/TabBar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Dimensions, Platform } from 'react-native';
|
|
4
|
+
// ─── Metrics ─────────────────────────────────────────────────────────────────
|
|
5
|
+
|
|
6
|
+
const {
|
|
7
|
+
width: screenWidth,
|
|
8
|
+
height: screenHeight
|
|
9
|
+
} = Dimensions.get('window');
|
|
10
|
+
export const Metrics = {
|
|
11
|
+
screenWidth,
|
|
12
|
+
screenHeight,
|
|
13
|
+
isIOS: Platform.OS === 'ios',
|
|
14
|
+
pillWidth: 72,
|
|
15
|
+
pillHeight: 32,
|
|
16
|
+
panelBorderRadius: 20,
|
|
17
|
+
tabBarHeight: 48,
|
|
18
|
+
headerHeight: 52,
|
|
19
|
+
sectionSpacing: 16,
|
|
20
|
+
contentPadding: 16
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// ─── Dark Theme ──────────────────────────────────────────────────────────────
|
|
24
|
+
|
|
25
|
+
export const DarkTheme = {
|
|
26
|
+
background: '#0D0D12',
|
|
27
|
+
surface: '#16161E',
|
|
28
|
+
surfaceElevated: '#1E1E2A',
|
|
29
|
+
border: '#2A2A3A',
|
|
30
|
+
text: '#E8E8ED',
|
|
31
|
+
textSecondary: '#A0A0B0',
|
|
32
|
+
textMuted: '#606075',
|
|
33
|
+
accent: '#7C5CFC',
|
|
34
|
+
accentDim: 'rgba(124, 92, 252, 0.15)',
|
|
35
|
+
error: '#FF4D6A',
|
|
36
|
+
errorDim: 'rgba(255, 77, 106, 0.12)',
|
|
37
|
+
warning: '#FFB224',
|
|
38
|
+
warningDim: 'rgba(255, 178, 36, 0.12)',
|
|
39
|
+
success: '#34D399',
|
|
40
|
+
info: '#38BDF8',
|
|
41
|
+
infoDim: 'rgba(56, 189, 248, 0.12)',
|
|
42
|
+
debugColor: '#A78BFA',
|
|
43
|
+
debugDim: 'rgba(167, 139, 250, 0.12)'
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// ─── Max Logs ────────────────────────────────────────────────────────────────
|
|
47
|
+
|
|
48
|
+
export const DEFAULT_MAX_LOGS = 500;
|
|
49
|
+
|
|
50
|
+
// ─── Monospace Font ──────────────────────────────────────────────────────────
|
|
51
|
+
|
|
52
|
+
export const MonospaceFont = Platform.select({
|
|
53
|
+
ios: 'Menlo',
|
|
54
|
+
default: 'monospace'
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// ─── Test IDs ────────────────────────────────────────────────────────────────
|
|
58
|
+
|
|
59
|
+
export const TestIDs = {
|
|
60
|
+
floatingPill: 'backstage.floating-pill',
|
|
61
|
+
panel: 'backstage.panel',
|
|
62
|
+
header: {
|
|
63
|
+
container: 'backstage.header',
|
|
64
|
+
title: 'backstage.header.title',
|
|
65
|
+
closeButton: 'backstage.header.close'
|
|
66
|
+
},
|
|
67
|
+
tabBar: 'backstage.tab-bar',
|
|
68
|
+
tabs: {
|
|
69
|
+
info: 'backstage.tab.info',
|
|
70
|
+
logs: 'backstage.tab.logs'
|
|
71
|
+
},
|
|
72
|
+
infoTab: {
|
|
73
|
+
section: 'backstage.info',
|
|
74
|
+
deviceInfo: 'backstage.info.device',
|
|
75
|
+
stateTree: 'backstage.info.state-tree',
|
|
76
|
+
quickActions: 'backstage.info.quick-actions'
|
|
77
|
+
},
|
|
78
|
+
logsTab: {
|
|
79
|
+
section: 'backstage.logs',
|
|
80
|
+
searchInput: 'backstage.logs.search',
|
|
81
|
+
copyButton: 'backstage.logs.copy',
|
|
82
|
+
list: 'backstage.logs.list'
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Dimensions","Platform","width","screenWidth","height","screenHeight","get","Metrics","isIOS","OS","pillWidth","pillHeight","panelBorderRadius","tabBarHeight","headerHeight","sectionSpacing","contentPadding","DarkTheme","background","surface","surfaceElevated","border","text","textSecondary","textMuted","accent","accentDim","error","errorDim","warning","warningDim","success","info","infoDim","debugColor","debugDim","DEFAULT_MAX_LOGS","MonospaceFont","select","ios","default","TestIDs","floatingPill","panel","header","container","title","closeButton","tabBar","tabs","logs","infoTab","section","deviceInfo","stateTree","quickActions","logsTab","searchInput","copyButton","list"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,cAAc;AAGnD;;AAEA,MAAM;EAAEC,KAAK,EAAEC,WAAW;EAAEC,MAAM,EAAEC;AAAa,CAAC,GAAGL,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC;AAE7E,OAAO,MAAMC,OAAO,GAAG;EACrBJ,WAAW;EACXE,YAAY;EACZG,KAAK,EAAEP,QAAQ,CAACQ,EAAE,KAAK,KAAK;EAC5BC,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE,EAAE;EACdC,iBAAiB,EAAE,EAAE;EACrBC,YAAY,EAAE,EAAE;EAChBC,YAAY,EAAE,EAAE;EAChBC,cAAc,EAAE,EAAE;EAClBC,cAAc,EAAE;AAClB,CAAC;;AAED;;AAEA,OAAO,MAAMC,SAAyB,GAAG;EACvCC,UAAU,EAAE,SAAS;EACrBC,OAAO,EAAE,SAAS;EAClBC,eAAe,EAAE,SAAS;EAC1BC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,aAAa,EAAE,SAAS;EACxBC,SAAS,EAAE,SAAS;EACpBC,MAAM,EAAE,SAAS;EACjBC,SAAS,EAAE,0BAA0B;EACrCC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE,0BAA0B;EACpCC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,0BAA0B;EACtCC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE,SAAS;EACfC,OAAO,EAAE,0BAA0B;EACnCC,UAAU,EAAE,SAAS;EACrBC,QAAQ,EAAE;AACZ,CAAC;;AAED;;AAEA,OAAO,MAAMC,gBAAgB,GAAG,GAAG;;AAEnC;;AAEA,OAAO,MAAMC,aAAa,GAAGpC,QAAQ,CAACqC,MAAM,CAAC;EAC3CC,GAAG,EAAE,OAAO;EACZC,OAAO,EAAE;AACX,CAAC,CAAC;;AAEF;;AAEA,OAAO,MAAMC,OAAO,GAAG;EACrBC,YAAY,EAAE,yBAAyB;EACvCC,KAAK,EAAE,iBAAiB;EACxBC,MAAM,EAAE;IACNC,SAAS,EAAE,kBAAkB;IAC7BC,KAAK,EAAE,wBAAwB;IAC/BC,WAAW,EAAE;EACf,CAAC;EACDC,MAAM,EAAE,mBAAmB;EAC3BC,IAAI,EAAE;IACJjB,IAAI,EAAE,oBAAoB;IAC1BkB,IAAI,EAAE;EACR,CAAC;EACDC,OAAO,EAAE;IACPC,OAAO,EAAE,gBAAgB;IACzBC,UAAU,EAAE,uBAAuB;IACnCC,SAAS,EAAE,2BAA2B;IACtCC,YAAY,EAAE;EAChB,CAAC;EACDC,OAAO,EAAE;IACPJ,OAAO,EAAE,gBAAgB;IACzBK,WAAW,EAAE,uBAAuB;IACpCC,UAAU,EAAE,qBAAqB;IACjCC,IAAI,EAAE;EACR;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Backstage","LogLevel"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,aAAa;AAavC,SAASC,QAAQ,QAAQ,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { LogLevel } from './types';
|
|
4
|
+
import { formatLogMessage } from './utils/stringify';
|
|
5
|
+
import { DEFAULT_MAX_LOGS } from './constants';
|
|
6
|
+
|
|
7
|
+
// ─── Original Console Methods ────────────────────────────────────────────────
|
|
8
|
+
|
|
9
|
+
const originalConsole = {
|
|
10
|
+
log: console.log,
|
|
11
|
+
debug: console.debug,
|
|
12
|
+
info: console.info,
|
|
13
|
+
warn: console.warn,
|
|
14
|
+
error: console.error
|
|
15
|
+
};
|
|
16
|
+
let activeCallback = null;
|
|
17
|
+
let isInstalled = false;
|
|
18
|
+
|
|
19
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
20
|
+
|
|
21
|
+
function generateId() {
|
|
22
|
+
return `${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
23
|
+
}
|
|
24
|
+
function createLogEntry(level, message, optionalParams) {
|
|
25
|
+
const formattedMessage = formatLogMessage(message, optionalParams);
|
|
26
|
+
const hasObjectData = typeof message === 'object' && message !== null || optionalParams.some(p => typeof p === 'object' && p !== null);
|
|
27
|
+
return {
|
|
28
|
+
id: generateId(),
|
|
29
|
+
level,
|
|
30
|
+
message: formattedMessage,
|
|
31
|
+
data: hasObjectData ? {
|
|
32
|
+
message,
|
|
33
|
+
params: optionalParams
|
|
34
|
+
} : undefined,
|
|
35
|
+
timestamp: Date.now()
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function shouldLog(message, filters) {
|
|
39
|
+
if (filters.length === 0) return true;
|
|
40
|
+
const messageStr = typeof message === 'string' ? message.toLowerCase() : typeof message === 'object' && message !== null ? JSON.stringify(message).toLowerCase() : String(message).toLowerCase();
|
|
41
|
+
return !filters.some(filter => messageStr.includes(filter.toLowerCase()));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// ─── Install / Uninstall ─────────────────────────────────────────────────────
|
|
45
|
+
|
|
46
|
+
export function installInterceptor(callback, filters = []) {
|
|
47
|
+
if (isInstalled) {
|
|
48
|
+
// Just update callback if already installed
|
|
49
|
+
activeCallback = callback;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
activeCallback = callback;
|
|
53
|
+
isInstalled = true;
|
|
54
|
+
const levels = [[LogLevel.log, 'log'], [LogLevel.debug, 'debug'], [LogLevel.info, 'info'], [LogLevel.warn, 'warn'], [LogLevel.error, 'error']];
|
|
55
|
+
for (const [level, method] of levels) {
|
|
56
|
+
console[method] = (message, ...optionalParams) => {
|
|
57
|
+
// Always forward to original console
|
|
58
|
+
originalConsole[method](message, ...optionalParams);
|
|
59
|
+
|
|
60
|
+
// Check filters
|
|
61
|
+
if (!shouldLog(message, filters)) return;
|
|
62
|
+
|
|
63
|
+
// Create log entry and notify
|
|
64
|
+
if (activeCallback) {
|
|
65
|
+
const entry = createLogEntry(level, message, optionalParams);
|
|
66
|
+
activeCallback(entry);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export function uninstallInterceptor() {
|
|
72
|
+
if (!isInstalled) return;
|
|
73
|
+
console.log = originalConsole.log;
|
|
74
|
+
console.debug = originalConsole.debug;
|
|
75
|
+
console.info = originalConsole.info;
|
|
76
|
+
console.warn = originalConsole.warn;
|
|
77
|
+
console.error = originalConsole.error;
|
|
78
|
+
activeCallback = null;
|
|
79
|
+
isInstalled = false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// ─── Log Buffer ──────────────────────────────────────────────────────────────
|
|
83
|
+
|
|
84
|
+
export class LogBuffer {
|
|
85
|
+
logs = [];
|
|
86
|
+
constructor(maxSize = DEFAULT_MAX_LOGS) {
|
|
87
|
+
this.maxSize = maxSize;
|
|
88
|
+
}
|
|
89
|
+
push(entry) {
|
|
90
|
+
this.logs.unshift(entry);
|
|
91
|
+
if (this.logs.length > this.maxSize) {
|
|
92
|
+
this.logs = this.logs.slice(0, this.maxSize);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
getAll() {
|
|
96
|
+
return [...this.logs];
|
|
97
|
+
}
|
|
98
|
+
clear() {
|
|
99
|
+
this.logs = [];
|
|
100
|
+
}
|
|
101
|
+
get hasErrors() {
|
|
102
|
+
return this.logs.some(log => log.level === LogLevel.error);
|
|
103
|
+
}
|
|
104
|
+
get size() {
|
|
105
|
+
return this.logs.length;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=log-interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LogLevel","formatLogMessage","DEFAULT_MAX_LOGS","originalConsole","log","console","debug","info","warn","error","activeCallback","isInstalled","generateId","Date","now","Math","random","toString","substring","createLogEntry","level","message","optionalParams","formattedMessage","hasObjectData","some","p","id","data","params","undefined","timestamp","shouldLog","filters","length","messageStr","toLowerCase","JSON","stringify","String","filter","includes","installInterceptor","callback","levels","method","entry","uninstallInterceptor","LogBuffer","logs","constructor","maxSize","push","unshift","slice","getAll","clear","hasErrors","size"],"sourceRoot":"../../src","sources":["log-interceptor.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ─── Log Types ───────────────────────────────────────────────────────────────
|
|
4
|
+
|
|
5
|
+
export let LogLevel = /*#__PURE__*/function (LogLevel) {
|
|
6
|
+
LogLevel["log"] = "log";
|
|
7
|
+
LogLevel["debug"] = "debug";
|
|
8
|
+
LogLevel["info"] = "info";
|
|
9
|
+
LogLevel["warn"] = "warn";
|
|
10
|
+
LogLevel["error"] = "error";
|
|
11
|
+
return LogLevel;
|
|
12
|
+
}({});
|
|
13
|
+
|
|
14
|
+
// ─── App Info ────────────────────────────────────────────────────────────────
|
|
15
|
+
|
|
16
|
+
// ─── Quick Actions ───────────────────────────────────────────────────────────
|
|
17
|
+
|
|
18
|
+
// ─── Extensible Tabs ─────────────────────────────────────────────────────────
|
|
19
|
+
|
|
20
|
+
// ─── Theme ───────────────────────────────────────────────────────────────────
|
|
21
|
+
|
|
22
|
+
// ─── Main Props ──────────────────────────────────────────────────────────────
|
|
23
|
+
|
|
24
|
+
// ─── Ref Methods ─────────────────────────────────────────────────────────────
|
|
25
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LogLevel"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAGA;;AAEA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;;AAgBpB;;AAOA;;AAWA;;AASA;;AAuBA;;AAkEA","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Formats a timestamp (Date.now()) into a human-readable local time string.
|
|
5
|
+
* Format: "h:mm:ss.SSS AM/PM"
|
|
6
|
+
* No external dependencies — uses native Date API.
|
|
7
|
+
*/
|
|
8
|
+
export function formatTimestamp(timestamp) {
|
|
9
|
+
const date = new Date(timestamp);
|
|
10
|
+
let hours = date.getHours();
|
|
11
|
+
const minutes = date.getMinutes();
|
|
12
|
+
const seconds = date.getSeconds();
|
|
13
|
+
const milliseconds = date.getMilliseconds();
|
|
14
|
+
const ampm = hours >= 12 ? 'PM' : 'AM';
|
|
15
|
+
hours = hours % 12;
|
|
16
|
+
hours = hours || 12;
|
|
17
|
+
const mm = minutes.toString().padStart(2, '0');
|
|
18
|
+
const ss = seconds.toString().padStart(2, '0');
|
|
19
|
+
const ms = milliseconds.toString().padStart(3, '0');
|
|
20
|
+
return `${hours}:${mm}:${ss}.${ms} ${ampm}`;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=formatTimestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["formatTimestamp","timestamp","date","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","ampm","mm","toString","padStart","ss","ms"],"sourceRoot":"../../../src","sources":["utils/formatTimestamp.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAACC,SAAiB,EAAU;EACzD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAChC,IAAIG,KAAK,GAAGF,IAAI,CAACG,QAAQ,CAAC,CAAC;EAC3B,MAAMC,OAAO,GAAGJ,IAAI,CAACK,UAAU,CAAC,CAAC;EACjC,MAAMC,OAAO,GAAGN,IAAI,CAACO,UAAU,CAAC,CAAC;EACjC,MAAMC,YAAY,GAAGR,IAAI,CAACS,eAAe,CAAC,CAAC;EAC3C,MAAMC,IAAI,GAAGR,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;EAEtCA,KAAK,GAAGA,KAAK,GAAG,EAAE;EAClBA,KAAK,GAAGA,KAAK,IAAI,EAAE;EAEnB,MAAMS,EAAE,GAAGP,OAAO,CAACQ,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC9C,MAAMC,EAAE,GAAGR,OAAO,CAACM,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC9C,MAAME,EAAE,GAAGP,YAAY,CAACI,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAEnD,OAAO,GAAGX,KAAK,IAAIS,EAAE,IAAIG,EAAE,IAAIC,EAAE,IAAIL,IAAI,EAAE;AAC7C","ignoreList":[]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Safely stringifies a value, handling circular references and Error objects.
|
|
5
|
+
*/
|
|
6
|
+
export function safeStringify(value, indent = 2) {
|
|
7
|
+
if (value === undefined) return 'undefined';
|
|
8
|
+
if (value === null) return 'null';
|
|
9
|
+
if (value instanceof Error) {
|
|
10
|
+
return JSON.stringify({
|
|
11
|
+
name: value.name,
|
|
12
|
+
message: value.message,
|
|
13
|
+
stack: value.stack
|
|
14
|
+
}, null, indent);
|
|
15
|
+
}
|
|
16
|
+
const seen = new WeakSet();
|
|
17
|
+
try {
|
|
18
|
+
return JSON.stringify(value, (_key, val) => {
|
|
19
|
+
if (typeof val === 'object' && val !== null) {
|
|
20
|
+
if (seen.has(val)) {
|
|
21
|
+
return '[Circular]';
|
|
22
|
+
}
|
|
23
|
+
seen.add(val);
|
|
24
|
+
}
|
|
25
|
+
if (typeof val === 'bigint') {
|
|
26
|
+
return val.toString();
|
|
27
|
+
}
|
|
28
|
+
if (typeof val === 'function') {
|
|
29
|
+
return `[Function: ${val.name || 'anonymous'}]`;
|
|
30
|
+
}
|
|
31
|
+
if (typeof val === 'symbol') {
|
|
32
|
+
return val.toString();
|
|
33
|
+
}
|
|
34
|
+
return val;
|
|
35
|
+
}, indent);
|
|
36
|
+
} catch {
|
|
37
|
+
return String(value);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Formats a console message and its optional params into a single string.
|
|
43
|
+
*/
|
|
44
|
+
export function formatLogMessage(message, optionalParams) {
|
|
45
|
+
const parts = [];
|
|
46
|
+
if (message instanceof Error) {
|
|
47
|
+
parts.push(`${message.name}: ${message.message}`);
|
|
48
|
+
} else if (typeof message === 'object' && message !== null) {
|
|
49
|
+
parts.push(safeStringify(message, 0));
|
|
50
|
+
} else if (typeof message === 'string') {
|
|
51
|
+
// Strip console color formatting (%c)
|
|
52
|
+
parts.push(message.replace(/%c/g, '').trim());
|
|
53
|
+
} else {
|
|
54
|
+
parts.push(String(message));
|
|
55
|
+
}
|
|
56
|
+
if (optionalParams && optionalParams.length > 0) {
|
|
57
|
+
for (const param of optionalParams) {
|
|
58
|
+
if (typeof param === 'string' && isColorString(param)) {
|
|
59
|
+
continue; // skip css color strings from console.log('%c ...', 'color: ...')
|
|
60
|
+
}
|
|
61
|
+
if (typeof param === 'object' && param !== null) {
|
|
62
|
+
parts.push(safeStringify(param, 0));
|
|
63
|
+
} else {
|
|
64
|
+
parts.push(String(param));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return parts.join(' ');
|
|
69
|
+
}
|
|
70
|
+
function isColorString(str) {
|
|
71
|
+
return str.includes('color:') || str.includes('background:') || str.includes('font-') || /^#[0-9A-Fa-f]{3,8}$/.test(str.trim());
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=stringify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["safeStringify","value","indent","undefined","Error","JSON","stringify","name","message","stack","seen","WeakSet","_key","val","has","add","toString","String","formatLogMessage","optionalParams","parts","push","replace","trim","length","param","isColorString","join","str","includes","test"],"sourceRoot":"../../../src","sources":["utils/stringify.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Backstage.d.ts","sourceRoot":"","sources":["../../src/Backstage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAA;AAMd,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAY,MAAM,SAAS,CAAA;AAIrE,eAAO,MAAM,SAAS,qFAmHrB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AppInfoItem, BackstageStyleOverrides, BackstageTab, LogEntry, QuickAction } from '../types';
|
|
3
|
+
interface BackstagePanelProps {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
appVersion?: string;
|
|
7
|
+
buildNumber?: string;
|
|
8
|
+
bundleId?: string;
|
|
9
|
+
deviceInfo?: AppInfoItem[];
|
|
10
|
+
state?: Record<string, unknown>;
|
|
11
|
+
quickActions?: QuickAction[];
|
|
12
|
+
logs: LogEntry[];
|
|
13
|
+
onRefreshLogs: () => void;
|
|
14
|
+
onCopyLogs?: (logs: string) => void;
|
|
15
|
+
extraTabs?: BackstageTab[];
|
|
16
|
+
styles?: BackstageStyleOverrides;
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export declare const BackstagePanel: React.FC<BackstagePanelProps>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=BackstagePanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackstagePanel.d.ts","sourceRoot":"","sources":["../../../src/components/BackstagePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAcvC,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,YAAY,EACZ,QAAQ,EACR,WAAW,EACZ,MAAM,UAAU,CAAA;AAIjB,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,IAAI,CAAA;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,WAAW,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAG5B,IAAI,EAAE,QAAQ,EAAE,CAAA;IAChB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAGnC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAG1B,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAWD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkGxD,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BackstageStyleOverrides } from '../types';
|
|
3
|
+
interface FloatingPillProps {
|
|
4
|
+
text: string;
|
|
5
|
+
hasError: boolean;
|
|
6
|
+
onPress: () => void;
|
|
7
|
+
initialX?: number;
|
|
8
|
+
initialY?: number;
|
|
9
|
+
styles?: BackstageStyleOverrides;
|
|
10
|
+
}
|
|
11
|
+
export declare const FloatingPill: React.FC<FloatingPillProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=FloatingPill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingPill.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingPill.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAA;AAGrC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAIvD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,uBAAuB,CAAA;CACjC;AAkBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2FpD,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AppInfoItem, BackstageStyleOverrides, QuickAction } from '../types';
|
|
3
|
+
interface InfoTabProps {
|
|
4
|
+
appVersion?: string;
|
|
5
|
+
buildNumber?: string;
|
|
6
|
+
bundleId?: string;
|
|
7
|
+
deviceInfo?: AppInfoItem[];
|
|
8
|
+
state?: Record<string, unknown>;
|
|
9
|
+
quickActions?: QuickAction[];
|
|
10
|
+
onClosePanel?: () => void;
|
|
11
|
+
styles?: BackstageStyleOverrides;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export declare const InfoTab: React.FC<InfoTabProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=InfoTab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InfoTab.d.ts","sourceRoot":"","sources":["../../../src/components/InfoTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAIjF,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,WAAW,EAAE,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAqED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAqF1C,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface JsonTreeViewProps {
|
|
3
|
+
data: unknown;
|
|
4
|
+
hideRoot?: boolean;
|
|
5
|
+
initialExpanded?: boolean;
|
|
6
|
+
maxDepth?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const JsonTreeView: React.FC<JsonTreeViewProps>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=JsonTreeView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonTreeView.d.ts","sourceRoot":"","sources":["../../../src/components/JsonTreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAmBpD,UAAU,iBAAiB;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA4ID,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8CpD,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { LogEntry, BackstageStyleOverrides } from '../types';
|
|
3
|
+
interface LogItemProps {
|
|
4
|
+
item: LogEntry;
|
|
5
|
+
onCopy?: (text: string) => void;
|
|
6
|
+
styles?: BackstageStyleOverrides;
|
|
7
|
+
}
|
|
8
|
+
export declare const LogItem: React.FC<LogItemProps>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=LogItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogItem.d.ts","sourceRoot":"","sources":["../../../src/components/LogItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAIpD,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAMjE,UAAU,YAAY;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,MAAM,CAAC,EAAE,uBAAuB,CAAA;CACjC;AAmDD,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA+D1C,CAAA"}
|