react-native-inapp-inspector 2.5.8 → 2.5.10
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/commonjs/components/BrandCircleIcon.js +8 -3
- package/dist/commonjs/components/Inspector/ConsoleExportModal.d.ts +10 -0
- package/dist/commonjs/components/Inspector/ConsoleExportModal.js +317 -0
- package/dist/commonjs/components/Inspector/ConsoleTab.js +20 -15
- package/dist/commonjs/components/Inspector/FabLauncher.js +8 -8
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +4 -4
- package/dist/commonjs/components/Inspector/InspectorHeader.js +30 -45
- package/dist/commonjs/components/Inspector/MainScreen.js +1 -1
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +34 -20
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +49 -44
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +5 -5
- package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +3 -3
- package/dist/commonjs/components/SkeletonPlaceholder.js +3 -3
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/networkLogger.d.ts +1 -17
- package/dist/commonjs/customHooks/networkLogger.js +1 -1
- package/dist/commonjs/helpers/shareFormatter.d.ts +15 -0
- package/dist/commonjs/helpers/shareFormatter.js +15 -8
- package/dist/commonjs/i18n/locales/ar.json +1 -1
- package/dist/commonjs/i18n/locales/bn.json +1 -1
- package/dist/commonjs/i18n/locales/de.json +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -1
- package/dist/commonjs/i18n/locales/fr.json +1 -1
- package/dist/commonjs/i18n/locales/gu.json +1 -1
- package/dist/commonjs/i18n/locales/hi.json +1 -1
- package/dist/commonjs/i18n/locales/id.json +1 -1
- package/dist/commonjs/i18n/locales/it.json +1 -1
- package/dist/commonjs/i18n/locales/ja.json +1 -1
- package/dist/commonjs/i18n/locales/kn.json +1 -1
- package/dist/commonjs/i18n/locales/ko.json +1 -1
- package/dist/commonjs/i18n/locales/ml.json +1 -1
- package/dist/commonjs/i18n/locales/mr.json +1 -1
- package/dist/commonjs/i18n/locales/nl.json +1 -1
- package/dist/commonjs/i18n/locales/pa.json +1 -1
- package/dist/commonjs/i18n/locales/pl.json +1 -1
- package/dist/commonjs/i18n/locales/pt.json +1 -1
- package/dist/commonjs/i18n/locales/ru.json +1 -1
- package/dist/commonjs/i18n/locales/ta.json +1 -1
- package/dist/commonjs/i18n/locales/te.json +1 -1
- package/dist/commonjs/i18n/locales/tr.json +1 -1
- package/dist/commonjs/i18n/locales/vi.json +1 -1
- package/dist/commonjs/i18n/locales/zh.json +1 -1
- package/dist/commonjs/index.js +1 -1
- package/dist/commonjs/styles/index.d.ts +3 -0
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/interfaces.d.ts +4 -2
- package/dist/esm/components/BrandCircleIcon.js +9 -4
- package/dist/esm/components/Inspector/ConsoleExportModal.d.ts +10 -0
- package/dist/esm/components/Inspector/ConsoleExportModal.js +317 -0
- package/dist/esm/components/Inspector/ConsoleTab.js +38 -33
- package/dist/esm/components/Inspector/FabLauncher.js +1 -1
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +9 -9
- package/dist/esm/components/Inspector/InspectorHeader.js +75 -90
- package/dist/esm/components/Inspector/MainScreen.js +1 -1
- package/dist/esm/components/Inspector/MediaGalleryTab.js +88 -74
- package/dist/esm/components/Inspector/MediaPreviewModal.js +178 -173
- package/dist/esm/components/Inspector/NpmUpdateToast.js +18 -18
- package/dist/esm/components/Inspector/SkeletonPlaceholder.js +11 -11
- package/dist/esm/components/SkeletonPlaceholder.js +11 -11
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/networkLogger.d.ts +1 -17
- package/dist/esm/customHooks/networkLogger.js +1 -1
- package/dist/esm/helpers/shareFormatter.d.ts +15 -0
- package/dist/esm/helpers/shareFormatter.js +15 -8
- package/dist/esm/i18n/locales/ar.json +1 -1
- package/dist/esm/i18n/locales/bn.json +1 -1
- package/dist/esm/i18n/locales/de.json +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -1
- package/dist/esm/i18n/locales/fr.json +1 -1
- package/dist/esm/i18n/locales/gu.json +1 -1
- package/dist/esm/i18n/locales/hi.json +1 -1
- package/dist/esm/i18n/locales/id.json +1 -1
- package/dist/esm/i18n/locales/it.json +1 -1
- package/dist/esm/i18n/locales/ja.json +1 -1
- package/dist/esm/i18n/locales/kn.json +1 -1
- package/dist/esm/i18n/locales/ko.json +1 -1
- package/dist/esm/i18n/locales/ml.json +1 -1
- package/dist/esm/i18n/locales/mr.json +1 -1
- package/dist/esm/i18n/locales/nl.json +1 -1
- package/dist/esm/i18n/locales/pa.json +1 -1
- package/dist/esm/i18n/locales/pl.json +1 -1
- package/dist/esm/i18n/locales/pt.json +1 -1
- package/dist/esm/i18n/locales/ru.json +1 -1
- package/dist/esm/i18n/locales/ta.json +1 -1
- package/dist/esm/i18n/locales/te.json +1 -1
- package/dist/esm/i18n/locales/tr.json +1 -1
- package/dist/esm/i18n/locales/vi.json +1 -1
- package/dist/esm/i18n/locales/zh.json +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/styles/index.d.ts +3 -0
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/interfaces.d.ts +4 -2
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<react_native_svg_1.Path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
10
10
|
<react_native_svg_1.Path d="M15 3h6v6"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
11
11
|
<react_native_svg_1.Path d="M10 14L21 3"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
12
|
-
</react_native_svg_1.default>,TOAST_TIMEOUT_MS=7e3,NpmUpdateToast=()=>{const{t}=(0,i18n_1.useTranslation)(),{updateAvailable:e,latestNpmVersion:o,showUpdateToast:r}=(0,InspectorContext_1.useInspector)(),[
|
|
12
|
+
</react_native_svg_1.default>,TOAST_TIMEOUT_MS=7e3,NpmUpdateToast=()=>{const{t}=(0,i18n_1.useTranslation)(),{updateAvailable:e,latestNpmVersion:o,showUpdateToast:r,setIsUpdatePopupVisible:i}=(0,InspectorContext_1.useInspector)(),[d,f]=(0,react_1.useState)(!1),[v,u]=(0,react_1.useState)(!1),[n,h]=(0,react_1.useState)(!1),a=(0,react_1.useRef)(new react_native_1.Animated.Value(60)).current,s=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,l=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,p=(0,react_1.useRef)(null);(0,react_1.useEffect)(()=>(r&&e&&o&&!d&&(u(!0),i?.(!0),react_native_1.Animated.parallel([react_native_1.Animated.spring(a,{toValue:0,friction:8,tension:40,useNativeDriver:!0}),react_native_1.Animated.timing(s,{toValue:1,duration:250,useNativeDriver:!0})]).start(),l.setValue(1),react_native_1.Animated.timing(l,{toValue:0,duration:TOAST_TIMEOUT_MS,useNativeDriver:!1}).start(),p.current=setTimeout(()=>{c()},TOAST_TIMEOUT_MS)),()=>{p.current&&clearTimeout(p.current),i?.(!1)}),[r,e,o,d,i]);const c=()=>{react_native_1.Animated.parallel([react_native_1.Animated.timing(s,{toValue:0,duration:180,useNativeDriver:!0}),react_native_1.Animated.timing(a,{toValue:60,duration:180,useNativeDriver:!0})]).start(()=>{u(!1),f(!0),i?.(!1)})},g=()=>{(0,helpers_1.copyToClipboard)("npm install react-native-inapp-inspector@latest","Install Command"),h(!0),(0,toast_1.showToast)(t("about.copiedInstallCommand","Copied npm install command!")),setTimeout(()=>{h(!1)},2e3)},_=()=>{react_native_1.Linking.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{}),c()};if(typeof __DEV__>"u"||!__DEV__||!r||!v||!e||!o)return null;const w=l.interpolate({inputRange:[0,1],outputRange:["0%","100%"]});return<react_native_1.Animated.View style={[styles.container,{opacity:s,transform:[{translateY:a}]}]}>
|
|
13
13
|
<react_native_1.View style={styles.contentRow}>
|
|
14
14
|
|
|
15
15
|
<react_native_1.View style={styles.npmIconContainer}>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
</react_native_1.View>
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<react_native_1.TouchableOpacity style={styles.copyButton}onPress={
|
|
32
|
+
<react_native_1.TouchableOpacity style={styles.copyButton}onPress={g}activeOpacity={.7}hitSlop={{top:8,bottom:8,left:4,right:4}}>
|
|
33
33
|
{n?<CheckSvg size={11}color={AppColors_1.AppColors.greenColor}/>:<CopySvg size={11}color={AppColors_1.AppColors.slate400}/>}
|
|
34
34
|
<react_native_1.Text style={[styles.copyButtonText,n&&{color:AppColors_1.AppColors.greenColor}]}>
|
|
35
35
|
{n?t("common.copied","Copied"):t("header.copyCommand","Copy")}
|
|
@@ -37,19 +37,19 @@
|
|
|
37
37
|
</react_native_1.TouchableOpacity>
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
<react_native_1.TouchableOpacity style={styles.actionButton}onPress={
|
|
40
|
+
<react_native_1.TouchableOpacity style={styles.actionButton}onPress={_}activeOpacity={.8}hitSlop={{top:8,bottom:8,left:4,right:4}}>
|
|
41
41
|
<react_native_1.Text style={styles.actionButtonText}>{t("header.viewNpm","View")}</react_native_1.Text>
|
|
42
42
|
<ExternalLinkSvg size={10}color={AppColors_1.AppColors.white}/>
|
|
43
43
|
</react_native_1.TouchableOpacity>
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
<react_native_1.TouchableOpacity style={styles.closeButton}onPress={
|
|
46
|
+
<react_native_1.TouchableOpacity style={styles.closeButton}onPress={c}activeOpacity={.7}hitSlop={{top:10,bottom:10,left:10,right:10}}>
|
|
47
47
|
<CloseSvg size={12}color={AppColors_1.AppColors.slate400}/>
|
|
48
48
|
</react_native_1.TouchableOpacity>
|
|
49
49
|
</react_native_1.View>
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
<react_native_1.View style={styles.progressBarTrack}>
|
|
53
|
-
<react_native_1.Animated.View style={[styles.progressBarFill,{width:
|
|
53
|
+
<react_native_1.Animated.View style={[styles.progressBarFill,{width:w}]}/>
|
|
54
54
|
</react_native_1.View>
|
|
55
55
|
</react_native_1.Animated.View>};exports.NpmUpdateToast=NpmUpdateToast;const fontStack={fontFamily:AppFonts_1.AppFonts.interRegular},styles=react_native_1.StyleSheet.create({container:{position:"absolute",bottom:24,left:14,right:14,backgroundColor:AppColors_1.AppColors.slate900,borderRadius:16,borderWidth:1,borderColor:AppColors_1.AppColors.slate700,shadowColor:AppColors_1.AppColors.black,shadowOffset:{width:0,height:12},shadowOpacity:.4,shadowRadius:24,elevation:24,overflow:"hidden",zIndex:99999},contentRow:{flexDirection:"row",alignItems:"center",paddingVertical:11,paddingHorizontal:12,gap:8},npmIconContainer:{width:32,height:32,borderRadius:9,backgroundColor:AppColors_1.AppColors.white,justifyContent:"center",alignItems:"center",borderWidth:1,borderColor:AppColors_1.AppColors.slate200,flexShrink:0,shadowColor:AppColors_1.AppColors.black,shadowOffset:{width:0,height:1},shadowOpacity:.15,shadowRadius:2,elevation:2},textContainer:{flex:1,minWidth:0},titleRow:{flexDirection:"row",alignItems:"center",gap:5},titleText:{fontSize:12.5,fontWeight:"700",color:AppColors_1.AppColors.slate50,letterSpacing:-.2,...fontStack},versionPill:{backgroundColor:`${AppColors_1.AppColors.offerPurple}33`,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:5,borderWidth:1,borderColor:`${AppColors_1.AppColors.violet500}80`},versionPillText:{fontSize:10,fontWeight:"700",color:AppColors_1.AppColors.purpleLightMuted,...fontStack},subtitleText:{fontSize:10.5,color:AppColors_1.AppColors.slate400,marginTop:1,...fontStack},copyButton:{flexDirection:"row",alignItems:"center",gap:3.5,backgroundColor:AppColors_1.AppColors.slate800,paddingVertical:5.5,paddingHorizontal:8,borderRadius:7,borderWidth:1,borderColor:AppColors_1.AppColors.slate700,flexShrink:0},copyButtonText:{fontSize:10.5,fontWeight:"600",color:AppColors_1.AppColors.slate400,...fontStack},actionButton:{flexDirection:"row",alignItems:"center",gap:3.5,backgroundColor:AppColors_1.AppColors.offerPurple,paddingVertical:5.5,paddingHorizontal:9,borderRadius:7,flexShrink:0,shadowColor:AppColors_1.AppColors.offerPurple,shadowOffset:{width:0,height:2},shadowOpacity:.35,shadowRadius:4,elevation:3},actionButtonText:{fontSize:11,fontWeight:"700",color:AppColors_1.AppColors.white,...fontStack},closeButton:{width:22,height:22,borderRadius:11,backgroundColor:AppColors_1.AppColors.slate800,justifyContent:"center",alignItems:"center",flexShrink:0},progressBarTrack:{height:2.5,width:"100%",backgroundColor:AppColors_1.AppColors.slate800},progressBarFill:{height:"100%",backgroundColor:AppColors_1.AppColors.violet500}});exports.default=exports.NpmUpdateToast;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,t,e,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,t,e,o){o===void 0&&(o=e);var r=Object.getOwnPropertyDescriptor(t,e);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(i,o,r)}):(function(i,t,e,o){o===void 0&&(o=e),i[o]=t[e]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,t){Object.defineProperty(i,"default",{enumerable:!0,value:t})}):function(i,t){i.default=t}),__importStar=this&&this.__importStar||(function(){var i=function(t){return i=Object.getOwnPropertyNames||function(e){var o=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(o[o.length]=r);return o},i(t)};return function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var o=i(t),r=0;r<o.length;r++)o[r]!=="default"&&__createBinding(e,t,o[r]);return __setModuleDefault(e,t),e}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.SkeletonPlaceholder=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../../styles/AppColors");exports.SkeletonPlaceholder=react_1.default.memo(function({cardCount:t=4}){const e=(0,react_1.useRef)(new react_native_1.Animated.Value(.45)).current;return(0,react_1.useEffect)(()=>{const o=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(e,{toValue:.95,duration:750,useNativeDriver:!1}),react_native_1.Animated.timing(e,{toValue:.45,duration:750,useNativeDriver:!1})]));return o.start(),()=>o.stop()},[e]),<react_native_1.View style={skeletonStyles.container}>
|
|
2
2
|
|
|
3
3
|
<react_native_1.View style={skeletonStyles.toolbarSkeleton}>
|
|
4
4
|
<react_native_1.Animated.View style={[skeletonStyles.searchBarSkeleton,{opacity:e}]}/>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
</react_native_1.View>
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
{Array.from({length:t}).map((r
|
|
20
|
+
{Array.from({length:t}).map((o,r)=><react_native_1.Animated.View key={`skeleton_card_${r}`}style={[skeletonStyles.cardSkeleton,{opacity:e}]}>
|
|
21
21
|
|
|
22
22
|
<react_native_1.View style={skeletonStyles.cardTopRow}>
|
|
23
23
|
<react_native_1.View style={skeletonStyles.badgeGroup}>
|
|
@@ -37,4 +37,4 @@
|
|
|
37
37
|
<react_native_1.View style={skeletonStyles.metaPillSkeleton}/>
|
|
38
38
|
</react_native_1.View>
|
|
39
39
|
</react_native_1.Animated.View>)}
|
|
40
|
-
</react_native_1.View>});const skeletonStyles=react_native_1.StyleSheet.create({container:{flex:1,paddingHorizontal:12,paddingTop:8},toolbarSkeleton:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},searchBarSkeleton:{flex:1,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardSkeleton:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardTopRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:8},badgeGroup:{flexDirection:"row",alignItems:"center",gap:6},statusBadgeSkeleton:{width:38,height:18,borderRadius:4,backgroundColor:AppColors_1.AppColors.
|
|
40
|
+
</react_native_1.View>});const skeletonStyles=react_native_1.StyleSheet.create({container:{flex:1,paddingHorizontal:12,paddingTop:8},toolbarSkeleton:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},searchBarSkeleton:{flex:1,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardSkeleton:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardTopRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:8},badgeGroup:{flexDirection:"row",alignItems:"center",gap:6},statusBadgeSkeleton:{width:38,height:18,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200},methodBadgeSkeleton:{width:44,height:18,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200},timeSkeleton:{width:48,height:12,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200},urlLineLong:{height:13,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200,marginBottom:5,width:"90%"},urlLineShort:{height:11,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200,marginBottom:8,width:"55%"},cardBottomRow:{flexDirection:"row",gap:8,marginTop:2},metaPillSkeleton:{width:52,height:14,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200}});exports.default=exports.SkeletonPlaceholder;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,t,e,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,t,e,o){o===void 0&&(o=e);var r=Object.getOwnPropertyDescriptor(t,e);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(i,o,r)}):(function(i,t,e,o){o===void 0&&(o=e),i[o]=t[e]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,t){Object.defineProperty(i,"default",{enumerable:!0,value:t})}):function(i,t){i.default=t}),__importStar=this&&this.__importStar||(function(){var i=function(t){return i=Object.getOwnPropertyNames||function(e){var o=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(o[o.length]=r);return o},i(t)};return function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var o=i(t),r=0;r<o.length;r++)o[r]!=="default"&&__createBinding(e,t,o[r]);return __setModuleDefault(e,t),e}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.SkeletonPlaceholder=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../styles/AppColors");exports.SkeletonPlaceholder=react_1.default.memo(function({cardCount:t=4}){const e=(0,react_1.useRef)(new react_native_1.Animated.Value(.45)).current;return(0,react_1.useEffect)(()=>{const o=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(e,{toValue:.95,duration:750,useNativeDriver:!1}),react_native_1.Animated.timing(e,{toValue:.45,duration:750,useNativeDriver:!1})]));return o.start(),()=>o.stop()},[e]),<react_native_1.View style={skeletonStyles.container}>
|
|
2
2
|
|
|
3
3
|
<react_native_1.View style={skeletonStyles.toolbarSkeleton}>
|
|
4
4
|
<react_native_1.Animated.View style={[skeletonStyles.searchBarSkeleton,{opacity:e}]}/>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
</react_native_1.View>
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
{Array.from({length:t}).map((r
|
|
20
|
+
{Array.from({length:t}).map((o,r)=><react_native_1.Animated.View key={`skeleton_card_${r}`}style={[skeletonStyles.cardSkeleton,{opacity:e}]}>
|
|
21
21
|
|
|
22
22
|
<react_native_1.View style={skeletonStyles.cardTopRow}>
|
|
23
23
|
<react_native_1.View style={skeletonStyles.badgeGroup}>
|
|
@@ -37,4 +37,4 @@
|
|
|
37
37
|
<react_native_1.View style={skeletonStyles.metaPillSkeleton}/>
|
|
38
38
|
</react_native_1.View>
|
|
39
39
|
</react_native_1.Animated.View>)}
|
|
40
|
-
</react_native_1.View>});const skeletonStyles=react_native_1.StyleSheet.create({container:{flex:1,paddingHorizontal:12,paddingTop:8},toolbarSkeleton:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},searchBarSkeleton:{flex:1,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardSkeleton:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardTopRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:8},badgeGroup:{flexDirection:"row",alignItems:"center",gap:6},statusBadgeSkeleton:{width:38,height:18,borderRadius:4,backgroundColor:AppColors_1.AppColors.
|
|
40
|
+
</react_native_1.View>});const skeletonStyles=react_native_1.StyleSheet.create({container:{flex:1,paddingHorizontal:12,paddingTop:8},toolbarSkeleton:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},searchBarSkeleton:{flex:1,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:AppColors_1.AppColors.graySurface,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardSkeleton:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},cardTopRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:8},badgeGroup:{flexDirection:"row",alignItems:"center",gap:6},statusBadgeSkeleton:{width:38,height:18,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200},methodBadgeSkeleton:{width:44,height:18,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200},timeSkeleton:{width:48,height:12,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200},urlLineLong:{height:13,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200,marginBottom:5,width:"90%"},urlLineShort:{height:11,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200,marginBottom:8,width:"55%"},cardBottomRow:{flexDirection:"row",gap:8,marginTop:2},metaPillSkeleton:{width:52,height:14,borderRadius:4,backgroundColor:AppColors_1.AppColors.slate200}});exports.default=exports.SkeletonPlaceholder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "2.5.
|
|
1
|
+
export declare const LIB_VERSION = "2.5.10";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LIB_VERSION=void 0,exports.LIB_VERSION="2.5.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LIB_VERSION=void 0,exports.LIB_VERSION="2.5.10";
|
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
import { RouteInfo } from "../types";
|
|
2
|
-
type NetworkLog = {
|
|
3
|
-
id: number;
|
|
4
|
-
url: string;
|
|
5
|
-
method: string;
|
|
6
|
-
status?: number;
|
|
7
|
-
request?: any;
|
|
8
|
-
response?: any;
|
|
9
|
-
duration?: number;
|
|
10
|
-
startTime: number;
|
|
11
|
-
caller?: string;
|
|
12
|
-
client?: string;
|
|
13
|
-
requestHeaders?: Record<string, string>;
|
|
14
|
-
responseHeaders?: Record<string, string>;
|
|
15
|
-
routeInfo?: RouteInfo;
|
|
16
|
-
};
|
|
1
|
+
import { NetworkLog, RouteInfo } from "../types";
|
|
17
2
|
export declare const setRouteInfoProvider: (provider: (() => RouteInfo | null) | null) => void;
|
|
18
3
|
export declare const setNetworkModuleEnabled: (enabled: boolean) => void;
|
|
19
4
|
export declare const getNetworkModuleEnabled: () => boolean;
|
|
@@ -25,4 +10,3 @@ export declare const getMaxNetworkLogsLimit: () => number;
|
|
|
25
10
|
export declare const pruneNetworkLogs: (targetCount?: number) => number;
|
|
26
11
|
export declare const setupNetworkLogger: () => void;
|
|
27
12
|
export declare const addAxiosInterceptors: (axiosInstance: any) => void;
|
|
28
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addAxiosInterceptors=exports.setupNetworkLogger=exports.pruneNetworkLogs=exports.getMaxNetworkLogsLimit=exports.setMaxNetworkLogsLimit=exports.getNetworkLogs=exports.clearNetworkLogs=exports.subscribeNetworkLogs=exports.getNetworkModuleEnabled=exports.setNetworkModuleEnabled=exports.setRouteInfoProvider=void 0;const axios_1=__importDefault(require("axios")),crashHandler_1=require("./crashHandler");let logs=[],listeners=[],counter=0,isNetworkModuleEnabled=!0,currentRouteProvider=null;const setRouteInfoProvider=e=>{currentRouteProvider=e};exports.setRouteInfoProvider=setRouteInfoProvider;const setNetworkModuleEnabled=e=>{isNetworkModuleEnabled=e};exports.setNetworkModuleEnabled=setNetworkModuleEnabled;const getNetworkModuleEnabled=()=>isNetworkModuleEnabled;exports.getNetworkModuleEnabled=getNetworkModuleEnabled;const ALLOWED_METHODS=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","CONNECT","TRACE"],IGNORED_URL_PATTERNS=[/\/symbolicate(?:\?|$)/i,/\/index\.bundle(?:\?|$)/i,/\/open-debugger(?:\?|$)/i,/:(?:8081|8082|8083|19000|19001)\/(?:index\.bundle|symbolicate|hot|message|status)/i,/google-analytics\.com\/mp\/collect/i,/analytics\.google\.com/i];function shouldIgnoreUrl(e){return e?IGNORED_URL_PATTERNS.some(t=>t.test(e)):!1}function parseXHRResponseHeaders(e){if(!e||typeof e!="string")return;const t=e.trim().split(/[\r\n]+/),s={};return t.forEach(o=>{const r=o.indexOf(":");if(r>0){const i=o.substring(0,r).trim().toLowerCase(),n=o.substring(r+1).trim();s[i]=n}}),Object.keys(s).length>0?s:void 0}function normaliseHeaders(e){if(!e)return;if(typeof e.forEach=="function"){const o={};return e.forEach((r,i)=>{o[i]=r}),Object.keys(o).length>0?o:void 0}if(Array.isArray(e)){const o={};return e.forEach(([r,i])=>{o[r]=i}),Object.keys(o).length>0?o:void 0}const t=e,s={};return Object.entries(t).forEach(([o,r])=>{r!=null&&(s[o]=String(r))}),Object.keys(s).length>0?s:void 0}function parseRequestData(e){if(!e)return e;if(e&&e._parts&&Array.isArray(e._parts)){const t={};return e._parts.forEach(s=>{const o=s[0],r=s[1];r&&typeof r=="object"&&r.uri?t[o]={_isFile:!0,name:r.name||"unknown",type:r.type||"unknown",uri:r.uri}:t[o]=r}),{_isFormData:!0,...t}}return e}const subscribeNetworkLogs=e=>(listeners.push(e),e([...logs]),()=>{listeners=listeners.filter(t=>t!==e)});exports.subscribeNetworkLogs=subscribeNetworkLogs;const clearNetworkLogs=()=>{logs=[],notify()};exports.clearNetworkLogs=clearNetworkLogs;const getNetworkLogs=()=>[...logs];exports.getNetworkLogs=getNetworkLogs;let maxNetworkLogsLimit=1/0;const setMaxNetworkLogsLimit=e=>{maxNetworkLogsLimit=e};exports.setMaxNetworkLogsLimit=setMaxNetworkLogsLimit;const getMaxNetworkLogsLimit=()=>maxNetworkLogsLimit;exports.getMaxNetworkLogsLimit=getMaxNetworkLogsLimit;const pruneNetworkLogs=e=>{const t=e!==void 0?Math.max(0,e):Math.floor(logs.length/2),s=logs.length-t;return s>0&&(logs=logs.slice(0,t),notify()),Math.max(0,s)};exports.pruneNetworkLogs=pruneNetworkLogs;const notify=()=>{const e=[...logs];listeners.forEach(t=>t(e))},addOrUpdateLog=e=>{if(!isNetworkModuleEnabled)return;const t=e.method
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.addAxiosInterceptors=exports.setupNetworkLogger=exports.pruneNetworkLogs=exports.getMaxNetworkLogsLimit=exports.setMaxNetworkLogsLimit=exports.getNetworkLogs=exports.clearNetworkLogs=exports.subscribeNetworkLogs=exports.getNetworkModuleEnabled=exports.setNetworkModuleEnabled=exports.setRouteInfoProvider=void 0;const axios_1=__importDefault(require("axios")),crashHandler_1=require("./crashHandler");let logs=[],listeners=[],counter=0,isNetworkModuleEnabled=!0,currentRouteProvider=null;const setRouteInfoProvider=e=>{currentRouteProvider=e};exports.setRouteInfoProvider=setRouteInfoProvider;const setNetworkModuleEnabled=e=>{isNetworkModuleEnabled=e};exports.setNetworkModuleEnabled=setNetworkModuleEnabled;const getNetworkModuleEnabled=()=>isNetworkModuleEnabled;exports.getNetworkModuleEnabled=getNetworkModuleEnabled;const ALLOWED_METHODS=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","CONNECT","TRACE"],IGNORED_URL_PATTERNS=[/\/symbolicate(?:\?|$)/i,/\/index\.bundle(?:\?|$)/i,/\/open-debugger(?:\?|$)/i,/:(?:8081|8082|8083|19000|19001)\/(?:index\.bundle|symbolicate|hot|message|status)/i,/google-analytics\.com\/mp\/collect/i,/analytics\.google\.com/i];function shouldIgnoreUrl(e){return e?IGNORED_URL_PATTERNS.some(t=>t.test(e)):!1}function parseXHRResponseHeaders(e){if(!e||typeof e!="string")return;const t=e.trim().split(/[\r\n]+/),s={};return t.forEach(o=>{const r=o.indexOf(":");if(r>0){const i=o.substring(0,r).trim().toLowerCase(),n=o.substring(r+1).trim();s[i]=n}}),Object.keys(s).length>0?s:void 0}function normaliseHeaders(e){if(!e)return;if(typeof e.forEach=="function"){const o={};return e.forEach((r,i)=>{o[i]=r}),Object.keys(o).length>0?o:void 0}if(Array.isArray(e)){const o={};return e.forEach(([r,i])=>{o[r]=i}),Object.keys(o).length>0?o:void 0}const t=e,s={};return Object.entries(t).forEach(([o,r])=>{r!=null&&(s[o]=String(r))}),Object.keys(s).length>0?s:void 0}function parseRequestData(e){if(!e)return e;if(e&&e._parts&&Array.isArray(e._parts)){const t={};return e._parts.forEach(s=>{const o=s[0],r=s[1];r&&typeof r=="object"&&r.uri?t[o]={_isFile:!0,name:r.name||"unknown",type:r.type||"unknown",uri:r.uri}:t[o]=r}),{_isFormData:!0,...t}}return e}const subscribeNetworkLogs=e=>(listeners.push(e),e([...logs]),()=>{listeners=listeners.filter(t=>t!==e)});exports.subscribeNetworkLogs=subscribeNetworkLogs;const clearNetworkLogs=()=>{logs=[],notify()};exports.clearNetworkLogs=clearNetworkLogs;const getNetworkLogs=()=>[...logs];exports.getNetworkLogs=getNetworkLogs;let maxNetworkLogsLimit=1/0;const setMaxNetworkLogsLimit=e=>{maxNetworkLogsLimit=e};exports.setMaxNetworkLogsLimit=setMaxNetworkLogsLimit;const getMaxNetworkLogsLimit=()=>maxNetworkLogsLimit;exports.getMaxNetworkLogsLimit=getMaxNetworkLogsLimit;const pruneNetworkLogs=e=>{const t=e!==void 0?Math.max(0,e):Math.floor(logs.length/2),s=logs.length-t;return s>0&&(logs=logs.slice(0,t),notify()),Math.max(0,s)};exports.pruneNetworkLogs=pruneNetworkLogs;const notify=()=>{const e=[...logs];listeners.forEach(t=>t(e))},addOrUpdateLog=e=>{if(!isNetworkModuleEnabled)return;const t=(e.method||"GET").toUpperCase();if(t&&!ALLOWED_METHODS.includes(t)||shouldIgnoreUrl(e.url))return;const s={...e,method:t},o=logs.findIndex(r=>r.id===e.id);o>=0?logs[o]={...logs[o],...s}:(logs.unshift(s),logs.length>maxNetworkLogsLimit&&(logs=logs.slice(0,maxNetworkLogsLimit))),notify()};let isInsideFetch=!1;const setupNetworkLogger=()=>{if(globalThis.__NETWORK_LOGGER_INITIALIZED__)return;globalThis.__NETWORK_LOGGER__=addOrUpdateLog;const e=globalThis.XMLHttpRequest;if(e&&e.prototype&&!globalThis.__XHR_LOGGER_INITIALIZED__){globalThis.__XHR_LOGGER_INITIALIZED__=!0;const s=e.prototype.open,o=e.prototype.send,r=e.prototype.setRequestHeader;e.prototype.open=function(i,n,u,c,l){return this.__logMethod=(i||"GET").toUpperCase(),this.__logUrl=typeof n=="string"?n:String(n),this.__logRequestHeaders={},this.__logStartTime=Date.now(),s.apply(this,[i,n,u!==!1,c,l])},e.prototype.setRequestHeader=function(i,n){return i&&n!=null&&(this.__logRequestHeaders||(this.__logRequestHeaders={}),this.__logRequestHeaders[i.toLowerCase()]=String(n)),r.apply(this,[i,n])},e.prototype.send=function(i){if(!isNetworkModuleEnabled||isInsideFetch||this.__inAppInspectorTracked)return o.apply(this,[i]);const n=this.__logUrl||"",u=this.__logMethod||"GET";if(shouldIgnoreUrl(n))return o.apply(this,[i]);const c=counter++;this.__logId=c;const l=this.__logStartTime||Date.now(),a=this.__logRequestHeaders;let d="xhr";(a?.["apollographql-client-name"]||n.toLowerCase().includes("/graphql"))&&(d="apollo");const g=currentRouteProvider?currentRouteProvider():null;addOrUpdateLog({id:c,url:n,method:u,startTime:l,client:d,routeInfo:g||void 0,request:u==="GET"?void 0:parseRequestData(i),requestHeaders:Object.keys(a||{}).length>0?a:void 0});const h=()=>{if(this.__logFinished)return;this.__logFinished=!0;const p=Date.now()-l;let f=null;try{if(this.responseType===""||this.responseType==="text"){const T=this.responseText;try{f=JSON.parse(T)}catch{f=T}}else this.responseType==="json"?f=this.response:this.responseType==="blob"?f=`[Blob: ${this.response?.size||0} bytes]`:f=`[${this.responseType||"Unknown"} Data]`}catch{f=this.response||null}const x=this.getAllResponseHeaders?this.getAllResponseHeaders():"",L=parseXHRResponseHeaders(x);addOrUpdateLog({id:c,url:n,method:u,status:this.status,response:f,duration:p,startTime:l,client:d,responseHeaders:L})},_=()=>{if(this.__logFinished)return;this.__logFinished=!0;const p=Date.now()-l;addOrUpdateLog({id:c,url:n,method:u,status:this.status||0,response:"Network request failed",duration:p,startTime:l,client:d})};this.addEventListener("load",h),this.addEventListener("error",_),this.addEventListener("abort",_),this.addEventListener("timeout",_);const y=this.onreadystatechange;return this.onreadystatechange=function(...p){if(this.readyState===4&&(this.status>=200?h():_()),typeof y=="function")return y.apply(this,p)},o.apply(this,[i])}}const t=globalThis.fetch;t&&(globalThis.fetch=async(s,o={})=>{if(!isNetworkModuleEnabled)return t(s,o);const r=(o?.method||"GET").toUpperCase(),i=counter++,n=Date.now(),u=typeof s=="string"?s:s?.url||s?.href||(s?String(s):"");if(shouldIgnoreUrl(u))return t(s,o);let c,l="fetch";try{c=normaliseHeaders(o?.headers),c?.["apollographql-client-name"]||u?.toLowerCase().includes("/graphql")?l="apollo":c?.["x-requested-with"]?.toLowerCase().includes("xmlhttprequest")&&(l="xhr");const a=currentRouteProvider?currentRouteProvider():null;addOrUpdateLog({id:i,url:u,method:r,startTime:n,client:l,routeInfo:a||void 0,request:r==="GET"?void 0:parseRequestData(o?.body),requestHeaders:c})}catch{}try{isInsideFetch=!0;let a;try{a=await t(s,o)}finally{isInsideFetch=!1}const d=Date.now()-n;try{const g=normaliseHeaders(a.headers);let h=null;if((g?.["content-type"]||g?.["Content-Type"]||"").includes("image/"))h="[Image Data]";else try{const p=await a.clone().text();try{h=JSON.parse(p)}catch{h=p}}catch{}addOrUpdateLog({id:i,url:u,method:r,status:a.status,response:h,duration:d,startTime:n,client:l,responseHeaders:g})}catch{}return a}catch(a){try{const d=a instanceof Error?a.message||a.name||"Network request failed":String(a||"Network request failed");addOrUpdateLog({id:i,url:u,method:r,status:0,startTime:n,response:d,client:l,duration:Date.now()-n})}catch{}throw a}});try{if(axios_1.default){(0,exports.addAxiosInterceptors)(axios_1.default);const s=axios_1.default.create;typeof s=="function"&&(axios_1.default.create=function(...o){const r=s.apply(this,o);return(0,exports.addAxiosInterceptors)(r),r})}}catch{}try{(0,crashHandler_1.setupGlobalCrashHandler)()}catch{}globalThis.__NETWORK_LOGGER_INITIALIZED__=!0};exports.setupNetworkLogger=setupNetworkLogger;const addAxiosInterceptors=e=>{e.interceptors.request.use(async t=>{const s=(t.method||"GET").toUpperCase(),o=counter++,r=Date.now();let i=t.url??"";if(i.startsWith("http")||(i=`${t.baseURL??""}${i}`),shouldIgnoreUrl(i))return t;t.__logId=o,t.__logStart=r;const n=currentRouteProvider?currentRouteProvider():null;return addOrUpdateLog({id:o,url:i,method:s,startTime:r,client:"axios",routeInfo:n||void 0,request:s==="GET"?void 0:parseRequestData(t.data),requestHeaders:normaliseHeaders(t.headers)}),t}),e.interceptors.response.use(t=>{const s=t.config||{},o=s.__logId,r=s.__logStart,i=(s.method||"GET").toUpperCase();if(o==null)return t;let n=s.url??"";return n.startsWith("http")||(n=`${s.baseURL??""}${n}`),addOrUpdateLog({id:o,url:n,method:i,status:t.status,response:t.data,startTime:r||Date.now(),duration:r!=null?Date.now()-r:void 0,client:"axios",responseHeaders:normaliseHeaders(t.headers)}),t},t=>{const s=t.config||{},o=s.__logId,r=s.__logStart,i=(s.method||"GET").toUpperCase();if(o!=null){let n=s.url??"";n.startsWith("http")||(n=`${s.baseURL??""}${n}`),addOrUpdateLog({id:o,url:n,method:i,status:t.response?.status??0,response:t.response?.data??(t instanceof Error?t.message:String(t||"Network request failed")),startTime:r||Date.now(),duration:r!=null?Date.now()-r:void 0,client:"axios",responseHeaders:normaliseHeaders(t.response?.headers)})}return Promise.reject(t)})};if(exports.addAxiosInterceptors=addAxiosInterceptors,typeof globalThis<"u")try{(0,exports.setupNetworkLogger)()}catch{}
|
|
@@ -13,3 +13,18 @@ export declare function shareReduxReport(action: ReduxHistoryEntry): Promise<voi
|
|
|
13
13
|
export declare function shareLogReport(log: ConsoleLog): Promise<void>;
|
|
14
14
|
export declare function formatSocketReport(record: SocketConnectionRecord): string;
|
|
15
15
|
export declare function shareSocketReport(record: SocketConnectionRecord): Promise<void>;
|
|
16
|
+
export type ConsoleLogExportFormat = 'txt' | 'log' | 'json' | 'text' | 'markdown' | 'csv';
|
|
17
|
+
export interface ConsoleLogExportOptions {
|
|
18
|
+
includeStackTrace?: boolean;
|
|
19
|
+
includeArguments?: boolean;
|
|
20
|
+
includeCaller?: boolean;
|
|
21
|
+
includeTimestamps?: boolean;
|
|
22
|
+
includeAppInfo?: boolean;
|
|
23
|
+
includeDuplicates?: boolean;
|
|
24
|
+
ignorePattern?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const DEFAULT_CONSOLE_EXPORT_OPTIONS: ConsoleLogExportOptions;
|
|
27
|
+
export declare function generateConsoleLogsFilename(format?: ConsoleLogExportFormat): string;
|
|
28
|
+
export declare function formatConsoleLogsExport(logs: ConsoleLog[], format?: ConsoleLogExportFormat, options?: ConsoleLogExportOptions): string;
|
|
29
|
+
export declare function estimateConsoleLogsExportSize(logs: ConsoleLog[], format?: ConsoleLogExportFormat, options?: ConsoleLogExportOptions): number;
|
|
30
|
+
export declare function shareConsoleLogs(logs: ConsoleLog[], format?: ConsoleLogExportFormat, options?: ConsoleLogExportOptions, customTitle?: string): Promise<void>;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatApiReport=formatApiReport,exports.formatPushReport=formatPushReport,exports.formatCrashReport=formatCrashReport,exports.formatAnalyticsReport=formatAnalyticsReport,exports.formatReduxReport=formatReduxReport,exports.formatLogReport=formatLogReport,exports.shareApiReport=shareApiReport,exports.sharePushReport=sharePushReport,exports.shareCrashReport=shareCrashReport,exports.shareAnalyticsReport=shareAnalyticsReport,exports.shareReduxReport=shareReduxReport,exports.shareLogReport=shareLogReport,exports.formatSocketReport=formatSocketReport,exports.shareSocketReport=shareSocketReport;const react_native_1=require("react-native"),index_1=require("./index");function safeStringify(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function formatApiReport(e){const
|
|
2
|
-
`)}function formatPushReport(e){const
|
|
3
|
-
`)}function formatCrashReport(e){const
|
|
4
|
-
`)}function formatAnalyticsReport(e){const
|
|
5
|
-
`)}function formatReduxReport(e){const
|
|
6
|
-
`)}function formatLogReport(e){const
|
|
7
|
-
`)}async function triggerNativeShare(e,
|
|
8
|
-
`)}async function shareSocketReport(e){const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_CONSOLE_EXPORT_OPTIONS=void 0,exports.formatApiReport=formatApiReport,exports.formatPushReport=formatPushReport,exports.formatCrashReport=formatCrashReport,exports.formatAnalyticsReport=formatAnalyticsReport,exports.formatReduxReport=formatReduxReport,exports.formatLogReport=formatLogReport,exports.shareApiReport=shareApiReport,exports.sharePushReport=sharePushReport,exports.shareCrashReport=shareCrashReport,exports.shareAnalyticsReport=shareAnalyticsReport,exports.shareReduxReport=shareReduxReport,exports.shareLogReport=shareLogReport,exports.formatSocketReport=formatSocketReport,exports.shareSocketReport=shareSocketReport,exports.generateConsoleLogsFilename=generateConsoleLogsFilename,exports.formatConsoleLogsExport=formatConsoleLogsExport,exports.estimateConsoleLogsExportSize=estimateConsoleLogsExportSize,exports.shareConsoleLogs=shareConsoleLogs;const react_native_1=require("react-native"),index_1=require("./index");function safeStringify(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function formatApiReport(e){const n=(e.method||"GET").toUpperCase(),t=e.status===0?"Failed / Network Error":e.status!=null?`${e.status} ${e.status===200?"OK":""}`.trim():"Pending",o=e.duration!=null?`${e.duration}ms`:"N/A",i=(0,index_1.formatDateTime)(e.startTime||Date.now()),s=(0,index_1.getCurlCommand)(e),a=["\u{1F680} API INSPECTION REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Method: ${n}`,`\u{1F4CA} Status: ${t}`,`\u23F1\uFE0F Duration: ${o}`,`\u{1F552} Time: ${i}`];return e.client&&a.push(`\u{1F50C} Client: ${e.client.toUpperCase()}`),a.push(`\u{1F310} URL: ${e.url||"N/A"}`),a.push(""),e.requestHeaders&&Object.keys(e.requestHeaders).length>0&&(a.push("\u{1F4CB} Request Headers:"),a.push(safeStringify(e.requestHeaders)),a.push("")),e.request!=null&&e.request!==""&&(a.push("\u{1F4DD} Request Body:"),a.push(safeStringify(e.request)),a.push("")),e.responseHeaders&&Object.keys(e.responseHeaders).length>0&&(a.push("\u{1F4D1} Response Headers:"),a.push(safeStringify(e.responseHeaders)),a.push("")),e.response!=null&&e.response!==""&&(a.push("\u{1F4E5} Response Data:"),a.push(safeStringify(e.response)),a.push("")),s&&(a.push("\u{1F4BB} cURL Command:"),a.push(s),a.push("")),a.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),a.push("Generated by React Native InApp Inspector"),a.join(`
|
|
2
|
+
`)}function formatPushReport(e){const n=(0,index_1.formatDateTime)(e.timestamp||Date.now()),t=(e.source||"push").toUpperCase(),o=(e.appState||"unknown").toUpperCase(),i=(e.action||"received").toUpperCase(),s=["\u{1F514} PUSH NOTIFICATION REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Title: ${e.title||"(No Title)"}`,`\u{1F4DD} Body: ${e.body||"(No Body)"}`,`\u{1F3E2} Source: ${t}${e.domain?` (${e.domain})`:""}`,`\u{1F194} Message ID: ${e.id||"N/A"}`,`\u{1F4F1} App State: ${o}`,`\u{1F3AF} Action: ${i}`,`\u{1F552} Time: ${n}`];return e.subtitle&&s.push(`\u{1F4D1} Subtitle: ${e.subtitle}`),e.channelId&&s.push(`\u{1F3F7}\uFE0F Channel: ${e.channelId}`),e.priority&&s.push(`\u26A1 Priority: ${e.priority}`),e.badge!=null&&s.push(`\u{1F522} Badge: ${e.badge}`),e.sound&&s.push(`\u{1F50A} Sound: ${e.sound}`),e.imageUrl&&s.push(`\u{1F5BC}\uFE0F Image: ${e.imageUrl}`),s.push(""),e.data&&Object.keys(e.data).length>0&&(s.push("\u{1F4E6} Custom Data Payload:"),s.push(safeStringify(e.data)),s.push("")),e.customDomainAttributes&&Object.keys(e.customDomainAttributes).length>0&&(s.push("\u{1F3E2} Domain Attributes:"),s.push(safeStringify(e.customDomainAttributes)),s.push("")),e.rawPayload!=null&&(s.push("\u2699\uFE0F Raw Payload:"),s.push(safeStringify(e.rawPayload)),s.push("")),s.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),s.push("Generated by React Native InApp Inspector"),s.join(`
|
|
3
|
+
`)}function formatCrashReport(e){const n=`${e.dateStr||""} ${e.timeStr||""}`.trim()||(0,index_1.formatDateTime)(e.timestamp),t=["\u{1F4A5} CRASH REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u26A0\uFE0F Error: ${e.name||"Error"}: ${e.message||"Unknown error"}`,`\u{1F6A8} Fatal: ${e.isFatal?"YES (Fatal)":"NO (Caught)"}`,`\u{1F3F7}\uFE0F Type: ${(e.type||"js").toUpperCase()}`,`\u{1F552} Time: ${n}`];return e.deviceInfo&&t.push(`\u{1F4F1} Platform: ${e.deviceInfo.platform||"N/A"} (OS: ${e.deviceInfo.osVersion||"N/A"}, RN: ${e.deviceInfo.rnVersion||"N/A"})`),e.memoryInfo?.usedJSHeapSize&&t.push(`\u{1F4BE} Used Heap: ${Math.round(e.memoryInfo.usedJSHeapSize/(1024*1024))} MB`),t.push(""),e.stack&&(t.push("\u{1F4DC} Stack Trace:"),t.push(e.stack),t.push("")),e.breadcrumbs&&e.breadcrumbs.length>0&&(t.push(`\u{1F43E} Breadcrumbs (${e.breadcrumbs.length}):`),e.breadcrumbs.slice(-10).forEach(o=>{t.push(` \u2022 [${o.type}] ${o.message} (${(0,index_1.formatDateTime)(o.timestamp)})`)}),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
4
|
+
`)}function formatAnalyticsReport(e){const n=(0,index_1.formatDateTime)(e.timestamp),t=["\u{1F4CA} ANALYTICS EVENT REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Event Name: ${e.name||"Unknown"}`,`\u{1F3E2} Source: ${(e.source||"manual").toUpperCase()}`,`\u{1F552} Timestamp: ${n}`];return e.screenName&&t.push(`\u{1F4F1} Screen Name: ${e.screenName}`),e.userId&&t.push(`\u{1F464} User ID: ${e.userId}`),e.trackingId&&t.push(`\u{1F194} Tracking ID: ${e.trackingId}`),t.push(""),e.params&&Object.keys(e.params).length>0&&(t.push("\u{1F4E6} Event Parameters:"),t.push(safeStringify(e.params)),t.push("")),e.userProperties&&Object.keys(e.userProperties).length>0&&(t.push("\u{1F464} User Properties:"),t.push(safeStringify(e.userProperties)),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
5
|
+
`)}function formatReduxReport(e){const n=typeof e.timestamp=="number"?(0,index_1.formatDateTime)(e.timestamp):e.timestamp,t=["\u{1F504} REDUX ACTION REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Action Type: ${e.type||"UNKNOWN"}`,`\u{1F552} Timestamp: ${n}`];return e.caller&&t.push(`\u{1F4CD} Caller: ${e.caller}`),e.originType&&t.push(`\u2699\uFE0F Origin: ${e.originType}`),e.affectedSlices&&e.affectedSlices.length>0&&t.push(`\u{1F370} Slices: ${e.affectedSlices.join(", ")}`),t.push(""),t.push("\u{1F4E6} Action Payload:"),t.push(safeStringify(e.payload)),t.push(""),e.prevState!==void 0&&(t.push("\u23EE\uFE0F Previous State:"),t.push(safeStringify(e.prevState)),t.push("")),e.nextState!==void 0&&(t.push("\u23ED\uFE0F Next State:"),t.push(safeStringify(e.nextState)),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
6
|
+
`)}function formatLogReport(e){const n=(0,index_1.formatDateTime)(e.timestamp),t=["\u{1F4DC} CONSOLE LOG REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Level: ${(e.type||"info").toUpperCase()}`,`\u{1F552} Timestamp: ${n}`,`\u{1F4AC} Message: ${e.message||""}`];return e.caller&&t.push(`\u{1F4CD} Caller: ${e.caller}`),t.push(""),e.rawArgs&&e.rawArgs.length>0&&(t.push("\u{1F4E6} Arguments:"),t.push(safeStringify(e.rawArgs)),t.push("")),(e.stack||e.errorStack)&&(t.push("\u{1F4DC} Stack Trace:"),t.push(e.stack||e.errorStack||""),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
7
|
+
`)}async function triggerNativeShare(e,n){try{await react_native_1.Share.share({title:e,message:n},{dialogTitle:e})}catch(t){t?.message!=="User did not share"&&react_native_1.Alert.alert("Share Error",t?.message||"Failed to open share sheet")}}async function shareApiReport(e){const n=formatApiReport(e),t=`API: ${e.method||"GET"} ${e.url?.substring(0,40)||""}`;await triggerNativeShare(t,n)}async function sharePushReport(e){const n=formatPushReport(e),t=`Push: ${e.title||e.id||"Notification"}`;await triggerNativeShare(t,n)}async function shareCrashReport(e){const n=formatCrashReport(e),t=`Crash: ${e.name||e.message||"Error"}`;await triggerNativeShare(t,n)}async function shareAnalyticsReport(e){const n=formatAnalyticsReport(e),t=`Analytics: ${e.name||"Event"}`;await triggerNativeShare(t,n)}async function shareReduxReport(e){const n=formatReduxReport(e),t=`Redux: ${e.type||"Action"}`;await triggerNativeShare(t,n)}async function shareLogReport(e){const n=formatLogReport(e),t=`Log: ${(e.type||"info").toUpperCase()} - ${e.message?.substring(0,30)||""}`;await triggerNativeShare(t,n)}function formatSocketReport(e){const n=(e.client||"websocket").toUpperCase(),t=(e.status||"open").toUpperCase(),o=e.duration!=null?`${e.duration}ms`:"Active / Open",i=(0,index_1.formatDateTime)(e.startTime||Date.now()),s=["\u{1F50C} WEBSOCKET / SOCKET.IO REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4E1} Client: ${n}`,`\u{1F310} URL: ${e.url||"N/A"}`,`\u26A1 Status: ${t}`,`\u23F1\uFE0F Connected: ${i}`,`\u23F3 Duration: ${o}`,`\u{1F4E6} Total Frames: ${e.frames?.length||0} (${e.sentCount||0} sent, ${e.receivedCount||0} recvd)`,`\u{1F4CA} Data Size: ${(e.totalBytesSent||0)+(e.totalBytesReceived||0)} bytes`];return e.protocols&&s.push(`\u{1F4DC} Protocols: ${Array.isArray(e.protocols)?e.protocols.join(", "):e.protocols}`),e.closeCode!=null&&s.push(`\u{1F6D1} Close Code: ${e.closeCode} (${e.closeReason||"N/A"})`),e.error&&s.push(`\u274C Error: ${e.error}`),e.caller&&s.push(`\u{1F4CD} Caller: ${e.caller}`),e.query&&Object.keys(e.query).length>0&&(s.push(""),s.push("\u{1F50D} Query Parameters:"),s.push(safeStringify(e.query))),e.frames&&e.frames.length>0&&(s.push(""),s.push("\u{1F4AC} Recent Message Frames:"),e.frames.slice(-10).forEach((a,h)=>{const S=a.direction==="send"?"\u2B06\uFE0F SEND":"\u2B07\uFE0F RECV",c=a.eventName?` [${a.eventName}]`:"";s.push(`--- Frame #${h+1} (${S}${c}, ${a.type}, ${a.size||0}B) ---`),s.push(safeStringify(a.data))})),s.push(""),s.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),s.push("Generated by React Native InApp Inspector"),s.join(`
|
|
8
|
+
`)}async function shareSocketReport(e){const n=formatSocketReport(e),t=`Socket: ${e.client?.toUpperCase()||"WS"} ${e.url?.substring(0,35)||""}`;await triggerNativeShare(t,n)}exports.DEFAULT_CONSOLE_EXPORT_OPTIONS={includeStackTrace:!1,includeArguments:!1,includeCaller:!1,includeTimestamps:!1,includeAppInfo:!1,includeDuplicates:!1,ignorePattern:""};function generateConsoleLogsFilename(e="txt"){const n=new Date,t=String(n.getDate()).padStart(2,"0"),o=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getFullYear()).slice(-2),s=Math.random().toString(36).substring(2,8).padEnd(6,"0");return`log_${t}${o}${i}_${s}.${e==="log"?"log":"txt"}`}function formatConsoleLogsExport(e,n="txt",t=exports.DEFAULT_CONSOLE_EXPORT_OPTIONS){if(!e||e.length===0)return"No console logs to export.";const{includeStackTrace:o=!1,includeArguments:i=!1,includeCaller:s=!1,includeTimestamps:a=!1,includeAppInfo:h=!1,includeDuplicates:S=!1,ignorePattern:c=""}=t;let d=e;if(c&&c.trim().length>0)try{const r=new RegExp(c.trim(),"i");d=e.filter(m=>{const l=m.message||"",f=m.rawArgs?safeStringify(m.rawArgs):"",$=m.caller||"";return!r.test(l)&&!r.test(f)&&!r.test($)})}catch{}if(d.length===0)return"No console logs to export (all filtered out).";const R=new Date().toLocaleString(),u="********************************************************************************",y=[];h&&y.push(`/${u}`,` * \u{1F4DC} CONSOLE LOGS EXPORT (${n.toUpperCase()})`,` * \u{1F552} Exported At: ${R}`,` * \u{1F4CA} Total Logs: ${e.length}`," * \u2699\uFE0F Generator: React Native InApp Inspector",` ${u}/`,"");const g=e.map((r,m)=>{const l=m+1,f=(0,index_1.formatDateTime)(r.timestamp),$=(r.type||"info").toUpperCase(),C=S&&r.duplicateCount&&r.duplicateCount>1?` [DUPLICATES: \xD7${r.duplicateCount}]`:"",p=[`/${u}`,` * \u{1F4CC} LOG #${l} Starts [${$}]${a?` - ${f}`:""}${C}`,` ${u}/`];if(s&&r.caller&&p.push(`\u{1F4CD} Caller: ${r.caller}`),a&&p.push(`\u{1F552} Time: ${f}`),p.push(`\u{1F3F7}\uFE0F Level: ${$}`),r.sourceMethod&&r.sourceMethod!==r.type&&p.push(`\u2699\uFE0F Method: console.${r.sourceMethod}()`),p.push(""),p.push("\u{1F4AC} Message:"),p.push(r.message||"(Empty message)"),i&&r.rawArgs&&r.rawArgs.length>0&&(p.push(""),p.push("\u{1F4E6} Arguments / Data:"),p.push(safeStringify(r.rawArgs))),o&&(r.stack||r.errorStack)){p.push(""),p.push("\u{1F4DC} Stack Trace & Frames:");const O=(r.stack||r.errorStack||"").split(`
|
|
9
|
+
`).map(A=>` ${A}`).join(`
|
|
10
|
+
`);p.push(O)}return p.push(""),p.push(`/${u}`),p.push(` * \u{1F3C1} LOG #${l} Ends`),p.push(` ${u}/`),p.join(`
|
|
11
|
+
`)}).join(`
|
|
12
|
+
|
|
13
|
+
`),T=h?["",`/${u}`," * \u{1F3C1} END OF CONSOLE LOGS EXPORT",` ${u}/`].join(`
|
|
14
|
+
`):"";return`${y.join(`
|
|
15
|
+
`)}${g}${T}`}function estimateConsoleLogsExportSize(e,n="txt",t=exports.DEFAULT_CONSOLE_EXPORT_OPTIONS){if(!e||e.length===0)return 0;const o=Math.min(e.length,20),i=e.slice(0,o),a=formatConsoleLogsExport(i,n,t).length/o;return Math.round(a*e.length)}async function shareConsoleLogs(e,n="txt",t=exports.DEFAULT_CONSOLE_EXPORT_OPTIONS,o){const i=formatConsoleLogsExport(e,n,t),s=generateConsoleLogsFilename(n);await triggerNativeShare(o||s,i)}
|