react-native-inapp-inspector 1.1.21 → 1.1.23

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.
Files changed (49) hide show
  1. package/dist/commonjs/components/AnalyticsDetail.js +5 -3
  2. package/dist/commonjs/components/AnalyticsEventCard.d.ts +0 -1
  3. package/dist/commonjs/components/AnalyticsEventCard.js +89 -97
  4. package/dist/commonjs/components/ErrorBoundary.js +17 -8
  5. package/dist/commonjs/components/Inspector/BundleTab.d.ts +1 -0
  6. package/dist/commonjs/components/Inspector/BundleTab.js +607 -685
  7. package/dist/commonjs/components/Inspector/LogDetail.js +12 -6
  8. package/dist/commonjs/components/Inspector/PerformanceTab.js +195 -254
  9. package/dist/commonjs/components/Inspector/ReduxDetail.js +2 -2
  10. package/dist/commonjs/components/Inspector/ReduxTab.js +9 -6
  11. package/dist/commonjs/components/NetworkIcons.d.ts +12 -0
  12. package/dist/commonjs/components/NetworkIcons.js +92 -1
  13. package/dist/commonjs/components/TreeNode.js +1 -1
  14. package/dist/commonjs/constants/version.d.ts +1 -1
  15. package/dist/commonjs/constants/version.js +1 -1
  16. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +115 -0
  17. package/dist/commonjs/customHooks/bundleAnalyzer.js +561 -0
  18. package/dist/commonjs/customHooks/performanceTracker.d.ts +84 -0
  19. package/dist/commonjs/customHooks/performanceTracker.js +541 -0
  20. package/dist/commonjs/helpers/index.d.ts +15 -0
  21. package/dist/commonjs/helpers/index.js +112 -1
  22. package/dist/commonjs/i18n/locales/en.json +225 -2
  23. package/dist/commonjs/styles/AppColors.d.ts +110 -0
  24. package/dist/commonjs/styles/AppColors.js +114 -0
  25. package/dist/esm/components/AnalyticsDetail.js +5 -3
  26. package/dist/esm/components/AnalyticsEventCard.d.ts +0 -1
  27. package/dist/esm/components/AnalyticsEventCard.js +89 -96
  28. package/dist/esm/components/ErrorBoundary.js +17 -8
  29. package/dist/esm/components/Inspector/BundleTab.d.ts +1 -0
  30. package/dist/esm/components/Inspector/BundleTab.js +612 -690
  31. package/dist/esm/components/Inspector/LogDetail.js +13 -7
  32. package/dist/esm/components/Inspector/PerformanceTab.js +196 -255
  33. package/dist/esm/components/Inspector/ReduxDetail.js +2 -2
  34. package/dist/esm/components/Inspector/ReduxTab.js +10 -7
  35. package/dist/esm/components/NetworkIcons.d.ts +12 -0
  36. package/dist/esm/components/NetworkIcons.js +79 -0
  37. package/dist/esm/components/TreeNode.js +2 -2
  38. package/dist/esm/constants/version.d.ts +1 -1
  39. package/dist/esm/constants/version.js +1 -1
  40. package/dist/esm/customHooks/bundleAnalyzer.d.ts +115 -0
  41. package/dist/esm/customHooks/bundleAnalyzer.js +554 -0
  42. package/dist/esm/customHooks/performanceTracker.d.ts +84 -0
  43. package/dist/esm/customHooks/performanceTracker.js +537 -0
  44. package/dist/esm/helpers/index.d.ts +15 -0
  45. package/dist/esm/helpers/index.js +107 -0
  46. package/dist/esm/i18n/locales/en.json +225 -2
  47. package/dist/esm/styles/AppColors.d.ts +110 -0
  48. package/dist/esm/styles/AppColors.js +114 -0
  49. package/package.json +1 -1
@@ -370,7 +370,7 @@ const reduxDetailStyles = react_native_1.StyleSheet.create({
370
370
  paddingVertical: 2,
371
371
  borderRadius: 4,
372
372
  borderWidth: 1,
373
- borderColor: '#A7F3D0',
373
+ borderColor: AppColors_1.AppColors.emeraldBorder,
374
374
  },
375
375
  persistedChipText: {
376
376
  fontFamily: AppFonts_1.AppFonts.interBold,
@@ -541,7 +541,7 @@ const reduxDetailStyles = react_native_1.StyleSheet.create({
541
541
  alignItems: 'center',
542
542
  justifyContent: 'center',
543
543
  gap: 6,
544
- backgroundColor: '#FEF2F2',
544
+ backgroundColor: AppColors_1.AppColors.errorCardBg,
545
545
  borderWidth: 1,
546
546
  borderColor: '#FEE2E2',
547
547
  borderRadius: 8,
@@ -221,9 +221,12 @@ const ReduxTab = react_1.default.memo(() => {
221
221
  <react_native_1.Text style={reduxTabStyles.resultCount}>
222
222
  Showing {filteredSlices.length} of {sliceItems.length} state slices
223
223
  </react_native_1.Text>
224
- <react_native_1.Text style={reduxTabStyles.sortLabel}>
225
- {sortMode === 'latest' ? '⚡ Newest Updates First' : '🔤 Alphabetical (A-Z)'}
226
- </react_native_1.Text>
224
+ <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 4 }}>
225
+ {sortMode === 'latest' ? (<NetworkIcons_1.BoltIcon color={AppColors_1.AppColors.brandPurple} size={11}/>) : (<NetworkIcons_1.TextAaIcon color={AppColors_1.AppColors.brandPurple} size={11}/>)}
226
+ <react_native_1.Text style={reduxTabStyles.sortLabel}>
227
+ {sortMode === 'latest' ? 'Newest Updates First' : 'Alphabetical (A-Z)'}
228
+ </react_native_1.Text>
229
+ </react_native_1.View>
227
230
  </react_native_1.View>
228
231
  </react_native_1.View>
229
232
 
@@ -409,18 +412,18 @@ const reduxTabStyles = react_native_1.StyleSheet.create({
409
412
  flexDirection: 'row',
410
413
  alignItems: 'center',
411
414
  gap: 4,
412
- backgroundColor: '#ECFDF5',
415
+ backgroundColor: AppColors_1.AppColors.emeraldBg,
413
416
  paddingHorizontal: 6,
414
417
  paddingVertical: 3,
415
418
  borderRadius: 5,
416
419
  borderWidth: 1,
417
- borderColor: '#A7F3D0',
420
+ borderColor: AppColors_1.AppColors.emeraldBorder,
418
421
  },
419
422
  liveDot: {
420
423
  width: 6,
421
424
  height: 6,
422
425
  borderRadius: 3,
423
- backgroundColor: '#10B981',
426
+ backgroundColor: AppColors_1.AppColors.emerald500,
424
427
  },
425
428
  livePillText: {
426
429
  fontFamily: AppFonts_1.AppFonts.interBold,
@@ -66,3 +66,15 @@ export declare const StorageIcon: ({ color, size, }: any) => React.JSX.Element;
66
66
  export declare const MetadataIcon: ({ color, size, }: any) => React.JSX.Element;
67
67
  export declare const ReduxIcon: ({ color, size, }: any) => React.JSX.Element;
68
68
  export declare const PerformanceIcon: ({ color, size, }: any) => React.JSX.Element;
69
+ export declare const BoltIcon: ({ color, size }: any) => React.JSX.Element;
70
+ export declare const BanIcon: ({ color, size }: any) => React.JSX.Element;
71
+ export declare const FolderOpenIcon: ({ color, size }: any) => React.JSX.Element;
72
+ export declare const DocIcon: ({ color, size }: any) => React.JSX.Element;
73
+ export declare const LightbulbIcon: ({ color, size }: any) => React.JSX.Element;
74
+ export declare const SparkleIcon: ({ color, size }: any) => React.JSX.Element;
75
+ export declare const MapIcon: ({ color, size }: any) => React.JSX.Element;
76
+ export declare const AtomIcon: ({ color, size }: any) => React.JSX.Element;
77
+ export declare const BrainIcon: ({ color, size }: any) => React.JSX.Element;
78
+ export declare const TextAaIcon: ({ color, size }: any) => React.JSX.Element;
79
+ export declare const CartIcon: ({ color, size }: any) => React.JSX.Element;
80
+ export declare const MoneyIcon: ({ color, size }: any) => React.JSX.Element;
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.InfoCircleIcon = exports.UserIcon = exports.LayersIcon = exports.WipeIcon = exports.FolderIcon = exports.SettingsIcon = exports.EyeIcon = exports.JsIcon = exports.CssIcon = exports.HtmlIcon = exports.BrandSquareIcon = exports.BrandCircleIcon = exports.MoonIcon = exports.SunIcon = exports.DebugIcon = exports.InsightsIcon = exports.AnalyticsIcon = exports.WhiteBackNavigation = exports.CloseWhite = exports.DownloadIcon = exports.FilterIcon = exports.ChevronIcon = exports.SortArrowIcon = exports.GlobeIcon = exports.DiffIcon = exports.SignalIcon = exports.ExportIcon = exports.HeaderPauseIcon = exports.TrashIcon = exports.FailIcon = exports.CircleAlertIcon = exports.CircleXIcon = exports.CircleCheckIcon = exports.CheckIcon = exports.TerminalIcon = exports.FetchIcon = exports.CopyIcon = exports.HeadersIcon = exports.ResponseIcon = exports.RequestIcon = exports.SizeIcon = exports.StatusIcon = exports.CalendarIcon = exports.ClockIcon = exports.ClearIcon = exports.SearchIcon = exports.ExpandCollapseIcon = exports.ScreenIcon = exports.MapPinIcon = exports.EmptyRadarIcon = void 0;
40
- exports.PerformanceIcon = exports.ReduxIcon = exports.MetadataIcon = exports.StorageIcon = exports.TimelineIcon = exports.LiveStateIcon = exports.BundleIcon = exports.ForwardChevronIcon = exports.PackageIcon = exports.TableIcon = exports.RawIcon = exports.PrettyIcon = exports.SortIcon = exports.MotionIcon = exports.TrendingUpIcon = exports.ErrorCircleIcon = exports.WarningTriangleIcon = void 0;
40
+ exports.MoneyIcon = exports.CartIcon = exports.TextAaIcon = exports.BrainIcon = exports.AtomIcon = exports.MapIcon = exports.SparkleIcon = exports.LightbulbIcon = exports.DocIcon = exports.FolderOpenIcon = exports.BanIcon = exports.BoltIcon = exports.PerformanceIcon = exports.ReduxIcon = exports.MetadataIcon = exports.StorageIcon = exports.TimelineIcon = exports.LiveStateIcon = exports.BundleIcon = exports.ForwardChevronIcon = exports.PackageIcon = exports.TableIcon = exports.RawIcon = exports.PrettyIcon = exports.SortIcon = exports.MotionIcon = exports.TrendingUpIcon = exports.ErrorCircleIcon = exports.WarningTriangleIcon = void 0;
41
41
  const react_1 = __importDefault(require("react"));
42
42
  const react_native_svg_1 = __importStar(require("react-native-svg"));
43
43
  // Stylesheet
@@ -508,3 +508,94 @@ const PerformanceIcon = ({ color = AppColors_1.AppColors.purple, size = 14, }) =
508
508
  </react_native_svg_1.default>);
509
509
  };
510
510
  exports.PerformanceIcon = PerformanceIcon;
511
+ // ─── App-wide Vector Icons (emoji-free, render on every device) ─────────────
512
+ const BoltIcon = ({ color = AppColors_1.AppColors.amber500, size = 14 }) => {
513
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
514
+ <react_native_svg_1.Path d="M13 2 4.5 13.5 H10.5 L9 22 19.5 9.5 H13.5 Z" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
515
+ </react_native_svg_1.default>);
516
+ };
517
+ exports.BoltIcon = BoltIcon;
518
+ const BanIcon = ({ color = AppColors_1.AppColors.errorColor, size = 14 }) => {
519
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
520
+ <react_native_svg_1.Circle cx="12" cy="12" r="8.5" stroke={color} strokeWidth="1.8"/>
521
+ <react_native_svg_1.Path d="M5.5 5.5 18.5 18.5" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
522
+ </react_native_svg_1.default>);
523
+ };
524
+ exports.BanIcon = BanIcon;
525
+ const FolderOpenIcon = ({ color = AppColors_1.AppColors.amber500, size = 14 }) => {
526
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
527
+ <react_native_svg_1.Path d="M8.4 11 10 5.5a2 2 0 0 1 1.9-1.5h3.7a1.5 1.5 0 0 1 1.4 2L15.5 11" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
528
+ <react_native_svg_1.Path d="M6.7 20.4 4.3 12.9A1.6 1.6 0 0 1 5.8 11h14.6a1.6 1.6 0 0 1 1.6 1.9l-2.4 7.5a2 2 0 0 1-2 1.4H8.7a2 2 0 0 1-2-1.4Z" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
529
+ </react_native_svg_1.default>);
530
+ };
531
+ exports.FolderOpenIcon = FolderOpenIcon;
532
+ const DocIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14 }) => {
533
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
534
+ <react_native_svg_1.Path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
535
+ <react_native_svg_1.Path d="M14 2v4a2 2 0 0 0 2 2h4" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
536
+ <react_native_svg_1.Path d="M8 13h8 M8 17h8" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
537
+ </react_native_svg_1.default>);
538
+ };
539
+ exports.DocIcon = DocIcon;
540
+ const LightbulbIcon = ({ color = AppColors_1.AppColors.amber500, size = 14 }) => {
541
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
542
+ <react_native_svg_1.Path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1.3.5 2.6 1.5 3.5.8.8 1.3 1.5 1.5 2.5" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
543
+ <react_native_svg_1.Path d="M9 18h6" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
544
+ <react_native_svg_1.Path d="M10 22h4" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
545
+ </react_native_svg_1.default>);
546
+ };
547
+ exports.LightbulbIcon = LightbulbIcon;
548
+ const SparkleIcon = ({ color = AppColors_1.AppColors.amber500, size = 14 }) => {
549
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
550
+ <react_native_svg_1.Path d="M11.1 3.9c.2-.6 1-.6 1.2 0l1.2 4.2 4.2 1.2c.6.2.6 1 0 1.2l-4.2 1.2-1.2 4.2c-.2.6-1 .6-1.2 0l-1.2-4.2-4.2-1.2c-.6-.2-.6-1 0-1.2l4.2-1.2Z" fill={color}/>
551
+ <react_native_svg_1.Path d="M18.5 3.5v4 M16.5 5.5h4" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
552
+ </react_native_svg_1.default>);
553
+ };
554
+ exports.SparkleIcon = SparkleIcon;
555
+ const MapIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14 }) => {
556
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
557
+ <react_native_svg_1.Path d="M3 5.5 9 3.5l6 2 6-2v15l-6 2-6-2-6 2Z" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
558
+ <react_native_svg_1.Path d="M9 3.5v15M15 5.5v15" stroke={color} strokeWidth="1.8"/>
559
+ <react_native_svg_1.Circle cx="12" cy="11" r="1.9" stroke={color} strokeWidth="1.6"/>
560
+ </react_native_svg_1.default>);
561
+ };
562
+ exports.MapIcon = MapIcon;
563
+ const AtomIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14 }) => {
564
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
565
+ <react_native_svg_1.Ellipse cx="12" cy="12" rx="9" ry="3.8" stroke={color} strokeWidth="1.6"/>
566
+ <react_native_svg_1.Ellipse cx="12" cy="12" rx="9" ry="3.8" stroke={color} strokeWidth="1.6" transform="rotate(60 12 12)"/>
567
+ <react_native_svg_1.Ellipse cx="12" cy="12" rx="9" ry="3.8" stroke={color} strokeWidth="1.6" transform="rotate(120 12 12)"/>
568
+ <react_native_svg_1.Circle cx="12" cy="12" r="1.6" fill={color}/>
569
+ </react_native_svg_1.default>);
570
+ };
571
+ exports.AtomIcon = AtomIcon;
572
+ const BrainIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14 }) => {
573
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
574
+ <react_native_svg_1.Path d="M9.5 2a2.5 2.5 0 0 0-2.5 2.5v.5a2.5 2.5 0 0 0-3 3.17A2.5 2.5 0 0 0 2 10.5c0 .76.34 1.44.88 1.9A2.5 2.5 0 0 0 2 15.5c0 .76.34 1.44.88 1.9A2.5 2.5 0 0 0 5 19.75c0 .75.5 1.5 1.25 1.75A2.5 2.5 0 0 0 8.5 23h.25a2.5 2.5 0 0 0 2.5-2.5V4a2.5 2.5 0 0 0-1.75-2ZM14.5 2a2.5 2.5 0 0 1 2.5 2.5v.5a2.5 2.5 0 0 1 3 3.17A2.5 2.5 0 0 1 22 10.5c0 .76-.34 1.44-.88 1.9a2.5 2.5 0 0 1 .88 1.9c0 .76-.34 1.44-.88 1.9A2.5 2.5 0 0 1 19 19.75c0 .75-.5 1.5-1.25 1.75A2.5 2.5 0 0 1 15.5 23h-.25a2.5 2.5 0 0 1-2.5-2.5V4a2.5 2.5 0 0 1 1.75-2Z" stroke={color} strokeWidth="1.6" strokeLinejoin="round"/>
575
+ </react_native_svg_1.default>);
576
+ };
577
+ exports.BrainIcon = BrainIcon;
578
+ const TextAaIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14 }) => {
579
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
580
+ <react_native_svg_1.Path d="M4 19 7.5 7 11 19" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
581
+ <react_native_svg_1.Path d="M5.5 15h4" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
582
+ <react_native_svg_1.Path d="M16 19l1.7-6.6 1.7 6.6" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
583
+ <react_native_svg_1.Path d="M16.9 15.8h1.6" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
584
+ </react_native_svg_1.default>);
585
+ };
586
+ exports.TextAaIcon = TextAaIcon;
587
+ const CartIcon = ({ color = AppColors_1.AppColors.amber500, size = 14 }) => {
588
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
589
+ <react_native_svg_1.Circle cx="9.5" cy="20" r="1.3" stroke={color} strokeWidth="1.8"/>
590
+ <react_native_svg_1.Circle cx="18.5" cy="20" r="1.3" stroke={color} strokeWidth="1.8"/>
591
+ <react_native_svg_1.Path d="M3 3.5h1.8a1 1 0 0 1 .97.75l3.1 9.75a1.5 1.5 0 0 0 1.44 1.1h9.2a1 1 0 0 0 .95-.7l2.5-7.5a.8.8 0 0 0-.75-1.05H7" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
592
+ </react_native_svg_1.default>);
593
+ };
594
+ exports.CartIcon = CartIcon;
595
+ const MoneyIcon = ({ color = AppColors_1.AppColors.emerald500, size = 14 }) => {
596
+ return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
597
+ <react_native_svg_1.Circle cx="12" cy="12" r="8.5" stroke={color} strokeWidth="1.8"/>
598
+ <react_native_svg_1.Path d="M12 7v10M14.5 9.5c-.6-1-1.5-1.5-2.5-1.5-1.5 0-2.5.9-2.5 2s1 1.8 2.5 2 2.5.8 2.5 2-1 2-2.5 2c-1 0-1.9-.5-2.5-1.5" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
599
+ </react_native_svg_1.default>);
600
+ };
601
+ exports.MoneyIcon = MoneyIcon;
@@ -81,7 +81,7 @@ const TreeNode = react_1.default.memo(function TreeNode({ data, name, level = 0,
81
81
  {name !== undefined && (<react_native_1.Text style={[styles_1.default.codeKey, { marginBottom: 4 }]}>{`"${String(name)}": `}</react_native_1.Text>)}
82
82
  <react_native_1.View style={styles_1.default.filePreviewCard}>
83
83
  {isImage ? (<react_native_1.Image source={{ uri: file.uri }} style={styles_1.default.filePreviewThumb} resizeMode="cover"/>) : (<react_native_1.View style={styles_1.default.filePreviewDoc}>
84
- <react_native_1.Text style={{ fontSize: 20 }}>📄</react_native_1.Text>
84
+ <NetworkIcons_1.DocIcon color={AppColors_1.AppColors.grayTextWeak} size={20}/>
85
85
  </react_native_1.View>)}
86
86
  <react_native_1.View style={{ flex: 1 }}>
87
87
  <react_native_1.Text style={styles_1.default.filePreviewName} numberOfLines={1}>
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "1.1.21";
1
+ export declare const LIB_VERSION = "1.1.23";
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LIB_VERSION = void 0;
4
4
  // AUTO-GENERATED FILE — do not edit by hand.
5
5
  // Regenerated from package.json on every build by scripts/gen-version.js.
6
- exports.LIB_VERSION = '1.1.21';
6
+ exports.LIB_VERSION = '1.1.23';
@@ -0,0 +1,115 @@
1
+ export type FileTypeCategory = 'image' | 'typescript' | 'javascript' | 'font' | 'json';
2
+ export interface HostBundleFileItem {
3
+ id: string;
4
+ name: string;
5
+ path: string;
6
+ ext: string;
7
+ category: FileTypeCategory;
8
+ sizeKb: number;
9
+ meta: string;
10
+ color: string;
11
+ status?: 'optimal' | 'warning' | 'info';
12
+ advice?: string;
13
+ isConsumed?: boolean;
14
+ previewUri?: string;
15
+ }
16
+ export interface HostBundlePackageItem {
17
+ id: string;
18
+ name: string;
19
+ version: string;
20
+ latestVersion?: string;
21
+ sizeKb: number;
22
+ percentage: number;
23
+ type: 'direct' | 'peer' | 'transitive';
24
+ isDirectDefined?: boolean;
25
+ parentPackageName?: string;
26
+ subpackages?: HostBundlePackageItem[];
27
+ category: 'core' | 'navigation' | 'network' | 'ui' | 'utils';
28
+ color: string;
29
+ description: string;
30
+ npmUrl?: string;
31
+ isDeprecated?: boolean;
32
+ deprecationReason?: string;
33
+ lastActive?: string;
34
+ }
35
+ export interface HostBinaryComponentItem {
36
+ id: string;
37
+ name: string;
38
+ category: 'js' | 'native' | 'frameworks' | 'assets' | 'meta';
39
+ sizeMb: number;
40
+ pct: number;
41
+ color: string;
42
+ description: string;
43
+ advice: string;
44
+ }
45
+ export interface HostBundleAnalysisResult {
46
+ isLive: boolean;
47
+ scriptURL: string;
48
+ totalDevBytes: number;
49
+ totalDevMb: number;
50
+ totalDevKb: number;
51
+ isHermes: boolean;
52
+ moduleCount: number;
53
+ packageCount: number;
54
+ filesCount: number;
55
+ splitUp: {
56
+ appSource: {
57
+ kb: number;
58
+ mb: number;
59
+ pct: number;
60
+ };
61
+ nodeModules: {
62
+ kb: number;
63
+ mb: number;
64
+ pct: number;
65
+ };
66
+ assetsMedia: {
67
+ kb: number;
68
+ mb: number;
69
+ pct: number;
70
+ };
71
+ metroDevOverhead: {
72
+ kb: number;
73
+ mb: number;
74
+ pct: number;
75
+ };
76
+ };
77
+ files: HostBundleFileItem[];
78
+ packages: HostBundlePackageItem[];
79
+ production: {
80
+ ios: {
81
+ totalInstallMb: number;
82
+ totalDownloadMb: number;
83
+ compressionRatioPct: number;
84
+ components: HostBinaryComponentItem[];
85
+ };
86
+ androidAab: {
87
+ totalInstallMb: number;
88
+ totalDownloadMb: number;
89
+ compressionRatioPct: number;
90
+ components: HostBinaryComponentItem[];
91
+ };
92
+ androidApk: {
93
+ totalInstallMb: number;
94
+ totalDownloadMb: number;
95
+ compressionRatioPct: number;
96
+ components: HostBinaryComponentItem[];
97
+ };
98
+ android: {
99
+ totalInstallMb: number;
100
+ totalDownloadMb: number;
101
+ compressionRatioPct: number;
102
+ components: HostBinaryComponentItem[];
103
+ };
104
+ };
105
+ }
106
+ export declare const getHostScriptURL: () => string;
107
+ /**
108
+ * Parses raw Metro bundle source code to discover real modules and packages in the host app.
109
+ */
110
+ export declare const parseBundleSource: (bundleText: string, totalBytes: number, scriptURL: string) => HostBundleAnalysisResult;
111
+ /**
112
+ * Automatically fetch and analyze the real running bundle for the host app.
113
+ */
114
+ export declare const analyzeHostAppBundle: () => Promise<HostBundleAnalysisResult>;
115
+ export declare const getCachedBundleAnalysis: () => HostBundleAnalysisResult | null;