react-native-inapp-inspector 2.0.4 → 2.0.6

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 (108) hide show
  1. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  6. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  7. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  8. package/android/.gradle/8.9/gc.properties +0 -0
  9. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  10. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  11. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  12. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  13. package/android/.gradle/9.2.0/gc.properties +0 -0
  14. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  15. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  16. package/android/.gradle/vcs-1/gc.properties +0 -0
  17. package/android/build/reports/problems/problems-report.html +659 -0
  18. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +11 -0
  19. package/dist/commonjs/components/Inspector/AuditTab.d.ts +3 -0
  20. package/dist/commonjs/components/Inspector/AuditTab.js +741 -0
  21. package/dist/commonjs/components/Inspector/DeviceTab.d.ts +3 -0
  22. package/dist/commonjs/components/Inspector/DeviceTab.js +717 -0
  23. package/dist/commonjs/components/Inspector/InspectorHeader.js +115 -75
  24. package/dist/commonjs/components/Inspector/MainScreen.js +16 -2
  25. package/dist/commonjs/components/Inspector/NetworkDetail.js +15 -0
  26. package/dist/commonjs/components/Inspector/NetworkTab.js +317 -12
  27. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +88 -39
  28. package/dist/commonjs/components/Inspector/PerformanceHud.d.ts +7 -0
  29. package/dist/commonjs/components/Inspector/PerformanceHud.js +210 -0
  30. package/dist/commonjs/components/Inspector/PerformanceTab.js +30 -18
  31. package/dist/commonjs/components/Inspector/RequestReplayModal.d.ts +9 -0
  32. package/dist/commonjs/components/Inspector/RequestReplayModal.js +792 -0
  33. package/dist/commonjs/components/Inspector/RequestReplayView.d.ts +8 -0
  34. package/dist/commonjs/components/Inspector/RequestReplayView.js +871 -0
  35. package/dist/commonjs/components/Inspector/SettingsPanel.js +847 -370
  36. package/dist/commonjs/components/Inspector/StorageTab.d.ts +3 -0
  37. package/dist/commonjs/components/Inspector/StorageTab.js +610 -0
  38. package/dist/commonjs/components/Inspector/TabBar.js +23 -2
  39. package/dist/commonjs/components/Inspector/UpdateAvailableModal.d.ts +8 -0
  40. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +469 -0
  41. package/dist/commonjs/components/NetworkIcons.d.ts +12 -0
  42. package/dist/commonjs/components/NetworkIcons.js +72 -3
  43. package/dist/commonjs/constants/version.d.ts +1 -1
  44. package/dist/commonjs/constants/version.js +1 -1
  45. package/dist/commonjs/customHooks/storageInspector.d.ts +13 -0
  46. package/dist/commonjs/customHooks/storageInspector.js +179 -0
  47. package/dist/commonjs/helpers/deviceInfo.d.ts +4 -0
  48. package/dist/commonjs/helpers/deviceInfo.js +94 -0
  49. package/dist/commonjs/helpers/index.d.ts +2 -0
  50. package/dist/commonjs/helpers/index.js +12 -1
  51. package/dist/commonjs/helpers/packageAuditor.d.ts +5 -0
  52. package/dist/commonjs/helpers/packageAuditor.js +182 -0
  53. package/dist/commonjs/helpers/searchQueryParser.d.ts +8 -3
  54. package/dist/commonjs/helpers/searchQueryParser.js +85 -31
  55. package/dist/commonjs/helpers/telemetry.js +4 -4
  56. package/dist/commonjs/i18n/locales/en.json +3 -2
  57. package/dist/commonjs/index.d.ts +1 -0
  58. package/dist/commonjs/index.js +171 -16
  59. package/dist/commonjs/native/NativeInspector.d.ts +1 -0
  60. package/dist/commonjs/types/enums.d.ts +7 -0
  61. package/dist/commonjs/types/enums.js +7 -0
  62. package/dist/commonjs/types/interfaces.d.ts +82 -0
  63. package/dist/esm/components/Inspector/AuditTab.d.ts +3 -0
  64. package/dist/esm/components/Inspector/AuditTab.js +702 -0
  65. package/dist/esm/components/Inspector/DeviceTab.d.ts +3 -0
  66. package/dist/esm/components/Inspector/DeviceTab.js +678 -0
  67. package/dist/esm/components/Inspector/InspectorHeader.js +115 -75
  68. package/dist/esm/components/Inspector/MainScreen.js +16 -2
  69. package/dist/esm/components/Inspector/NetworkDetail.js +16 -1
  70. package/dist/esm/components/Inspector/NetworkTab.js +317 -12
  71. package/dist/esm/components/Inspector/NpmUpdateToast.js +88 -39
  72. package/dist/esm/components/Inspector/PerformanceHud.d.ts +7 -0
  73. package/dist/esm/components/Inspector/PerformanceHud.js +170 -0
  74. package/dist/esm/components/Inspector/PerformanceTab.js +31 -19
  75. package/dist/esm/components/Inspector/RequestReplayModal.d.ts +9 -0
  76. package/dist/esm/components/Inspector/RequestReplayModal.js +752 -0
  77. package/dist/esm/components/Inspector/RequestReplayView.d.ts +8 -0
  78. package/dist/esm/components/Inspector/RequestReplayView.js +831 -0
  79. package/dist/esm/components/Inspector/SettingsPanel.js +848 -371
  80. package/dist/esm/components/Inspector/StorageTab.d.ts +3 -0
  81. package/dist/esm/components/Inspector/StorageTab.js +571 -0
  82. package/dist/esm/components/Inspector/TabBar.js +24 -3
  83. package/dist/esm/components/Inspector/UpdateAvailableModal.d.ts +8 -0
  84. package/dist/esm/components/Inspector/UpdateAvailableModal.js +432 -0
  85. package/dist/esm/components/NetworkIcons.d.ts +12 -0
  86. package/dist/esm/components/NetworkIcons.js +57 -0
  87. package/dist/esm/constants/version.d.ts +1 -1
  88. package/dist/esm/constants/version.js +1 -1
  89. package/dist/esm/customHooks/storageInspector.d.ts +13 -0
  90. package/dist/esm/customHooks/storageInspector.js +170 -0
  91. package/dist/esm/helpers/deviceInfo.d.ts +4 -0
  92. package/dist/esm/helpers/deviceInfo.js +89 -0
  93. package/dist/esm/helpers/index.d.ts +2 -0
  94. package/dist/esm/helpers/index.js +10 -0
  95. package/dist/esm/helpers/packageAuditor.d.ts +5 -0
  96. package/dist/esm/helpers/packageAuditor.js +173 -0
  97. package/dist/esm/helpers/searchQueryParser.d.ts +8 -3
  98. package/dist/esm/helpers/searchQueryParser.js +85 -31
  99. package/dist/esm/helpers/telemetry.js +4 -4
  100. package/dist/esm/i18n/locales/en.json +3 -2
  101. package/dist/esm/index.d.ts +1 -0
  102. package/dist/esm/index.js +167 -15
  103. package/dist/esm/native/NativeInspector.d.ts +1 -0
  104. package/dist/esm/types/enums.d.ts +7 -0
  105. package/dist/esm/types/enums.js +7 -0
  106. package/dist/esm/types/interfaces.d.ts +82 -0
  107. package/ios/NetworkInspectorModule.mm +12 -5
  108. package/package.json +4 -1
@@ -0,0 +1,432 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Modal, View, Text, TouchableOpacity, StyleSheet, Animated, Platform, Linking, } from 'react-native';
3
+ import Svg, { Path } from 'react-native-svg';
4
+ import { BrandSquareIcon } from '../BrandSquareIcon';
5
+ import { NpmIcon } from '../NetworkIcons';
6
+ import { LIB_VERSION } from '../../constants';
7
+ import { copyToClipboard } from '../../helpers';
8
+ import { showToast } from '../../helpers/toast';
9
+ // ─── Crisp SVG Icons ─────────────────────────────────────────────────────────
10
+ const CopySvg = ({ size = 14, color = '#64748B' }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
11
+ <Path d="M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2z" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
12
+ <Path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
13
+ </Svg>);
14
+ const CheckSvg = ({ size = 14, color = '#10B981' }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
15
+ <Path d="M20 6L9 17l-5-5" stroke={color} strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round"/>
16
+ </Svg>);
17
+ const ExternalLinkSvg = ({ size = 13, color = '#FFFFFF' }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
18
+ <Path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
19
+ <Path d="M15 3h6v6" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
20
+ <Path d="M10 14L21 3" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
21
+ </Svg>);
22
+ const CloseSvg = ({ size = 13, color = '#64748B' }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
23
+ <Path d="M18 6L6 18M6 6l12 12" stroke={color} strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round"/>
24
+ </Svg>);
25
+ const SparkleSvg = ({ size = 14, color = '#F59E0B' }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
26
+ <Path d="M12 2l2.4 6.6L21 11l-6.6 2.4L12 20l-2.4-6.6L3 11l6.6-2.4L12 2z" fill={color}/>
27
+ </Svg>);
28
+ export const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
29
+ const [copied, setCopied] = useState(false);
30
+ const fadeAnim = useState(new Animated.Value(0))[0];
31
+ const scaleAnim = useState(new Animated.Value(0.92))[0];
32
+ const installCommand = `npm install react-native-inapp-inspector@latest`;
33
+ useEffect(() => {
34
+ if (visible) {
35
+ setCopied(false);
36
+ Animated.parallel([
37
+ Animated.timing(fadeAnim, {
38
+ toValue: 1,
39
+ duration: 220,
40
+ useNativeDriver: true,
41
+ }),
42
+ Animated.spring(scaleAnim, {
43
+ toValue: 1,
44
+ friction: 8,
45
+ tension: 50,
46
+ useNativeDriver: true,
47
+ }),
48
+ ]).start();
49
+ }
50
+ }, [visible, fadeAnim, scaleAnim]);
51
+ const handleClose = () => {
52
+ Animated.parallel([
53
+ Animated.timing(fadeAnim, {
54
+ toValue: 0,
55
+ duration: 160,
56
+ useNativeDriver: true,
57
+ }),
58
+ Animated.timing(scaleAnim, {
59
+ toValue: 0.92,
60
+ duration: 160,
61
+ useNativeDriver: true,
62
+ }),
63
+ ]).start(() => {
64
+ onClose();
65
+ });
66
+ };
67
+ const handleCopyCommand = () => {
68
+ copyToClipboard(installCommand, 'Install Command');
69
+ setCopied(true);
70
+ showToast('Copied npm install command to clipboard!');
71
+ setTimeout(() => {
72
+ setCopied(false);
73
+ }, 2500);
74
+ };
75
+ const handleOpenNpm = () => {
76
+ Linking.openURL('https://www.npmjs.com/package/react-native-inapp-inspector').catch(() => { });
77
+ handleClose();
78
+ };
79
+ if (!visible)
80
+ return null;
81
+ return (<Modal transparent visible={visible} animationType="none" statusBarTranslucent onRequestClose={handleClose}>
82
+ <View style={styles.overlay}>
83
+ <Animated.View style={[
84
+ styles.card,
85
+ {
86
+ opacity: fadeAnim,
87
+ transform: [{ scale: scaleAnim }],
88
+ },
89
+ ]}>
90
+ {/* Top-Right Dismiss Button */}
91
+ <TouchableOpacity style={styles.topCloseButton} onPress={handleClose} hitSlop={10} activeOpacity={0.7}>
92
+ <CloseSvg size={13} color="#64748B"/>
93
+ </TouchableOpacity>
94
+
95
+ {/* Header section with brand square icon & sparkle */}
96
+ <View style={styles.headerSection}>
97
+ <View style={styles.iconHaloRing}>
98
+ <BrandSquareIcon size={52}/>
99
+ <View style={styles.sparkleBadge}>
100
+ <SparkleSvg size={13} color="#F59E0B"/>
101
+ </View>
102
+ </View>
103
+
104
+ <Text style={styles.title}>Update Available</Text>
105
+ <Text style={styles.subtitle}>
106
+ A newer release of react-native-inapp-inspector is ready
107
+ </Text>
108
+ </View>
109
+
110
+ {/* Version Comparison Card */}
111
+ <View style={styles.versionComparisonCard}>
112
+ <View style={styles.versionColumn}>
113
+ <Text style={styles.versionLabel}>INSTALLED</Text>
114
+ <View style={styles.installedChip}>
115
+ <Text style={styles.installedText}>v{LIB_VERSION}</Text>
116
+ </View>
117
+ </View>
118
+
119
+ <View style={styles.arrowContainer}>
120
+ <Text style={styles.arrowText}>➔</Text>
121
+ </View>
122
+
123
+ <View style={styles.versionColumn}>
124
+ <Text style={styles.versionLabel}>LATEST ON NPM</Text>
125
+ <View style={styles.latestChip}>
126
+ <NpmIcon size={12} color="#CB3837"/>
127
+ <Text style={styles.latestText}>v{latestVersion || 'latest'}</Text>
128
+ </View>
129
+ </View>
130
+ </View>
131
+
132
+ {/* Quick Install Snippet Box */}
133
+ <View style={styles.codeSnippetBox}>
134
+ <View style={styles.codeSnippetHeader}>
135
+ <Text style={styles.codeSnippetLabel}>UPGRADE COMMAND</Text>
136
+ {copied && (<View style={styles.copiedIndicator}>
137
+ <CheckSvg size={11} color="#10B981"/>
138
+ <Text style={styles.copiedText}>Copied</Text>
139
+ </View>)}
140
+ </View>
141
+
142
+ <TouchableOpacity style={styles.commandRow} onPress={handleCopyCommand} activeOpacity={0.75}>
143
+ <Text style={styles.commandText} numberOfLines={1}>
144
+ {installCommand}
145
+ </Text>
146
+ <View style={styles.copyIconWrapper}>
147
+ {copied ? <CheckSvg size={14} color="#10B981"/> : <CopySvg size={14} color="#64748B"/>}
148
+ </View>
149
+ </TouchableOpacity>
150
+ </View>
151
+
152
+ {/* Action Buttons */}
153
+ <View style={styles.buttonRow}>
154
+ <TouchableOpacity style={styles.secondaryButton} onPress={handleClose} activeOpacity={0.7}>
155
+ <Text style={styles.secondaryButtonText}>Later</Text>
156
+ </TouchableOpacity>
157
+
158
+ <TouchableOpacity style={styles.primaryButton} onPress={handleOpenNpm} activeOpacity={0.85}>
159
+ <Text style={styles.primaryButtonText}>View on NPM</Text>
160
+ <ExternalLinkSvg size={12} color="#FFFFFF"/>
161
+ </TouchableOpacity>
162
+ </View>
163
+ </Animated.View>
164
+ </View>
165
+ </Modal>);
166
+ };
167
+ const fontStack = Platform.select({
168
+ ios: {
169
+ fontFamily: 'System',
170
+ },
171
+ android: {
172
+ fontFamily: 'sans-serif',
173
+ },
174
+ default: {},
175
+ });
176
+ const styles = StyleSheet.create({
177
+ overlay: {
178
+ flex: 1,
179
+ backgroundColor: 'rgba(15, 23, 42, 0.62)',
180
+ justifyContent: 'center',
181
+ alignItems: 'center',
182
+ paddingHorizontal: 20,
183
+ zIndex: 999999,
184
+ },
185
+ card: {
186
+ width: '100%',
187
+ maxWidth: 360,
188
+ backgroundColor: '#FFFFFF',
189
+ borderRadius: 24,
190
+ borderWidth: 1,
191
+ borderColor: '#E2E8F0',
192
+ paddingHorizontal: 20,
193
+ paddingTop: 22,
194
+ paddingBottom: 20,
195
+ alignItems: 'center',
196
+ shadowColor: '#0F172A',
197
+ shadowOffset: { width: 0, height: 18 },
198
+ shadowOpacity: 0.24,
199
+ shadowRadius: 36,
200
+ elevation: 24,
201
+ },
202
+ topCloseButton: {
203
+ position: 'absolute',
204
+ top: 14,
205
+ right: 14,
206
+ width: 28,
207
+ height: 28,
208
+ borderRadius: 14,
209
+ backgroundColor: '#F8FAFC',
210
+ justifyContent: 'center',
211
+ alignItems: 'center',
212
+ borderWidth: 1,
213
+ borderColor: '#E2E8F0',
214
+ zIndex: 10,
215
+ },
216
+ headerSection: {
217
+ alignItems: 'center',
218
+ width: '100%',
219
+ marginBottom: 12,
220
+ },
221
+ iconHaloRing: {
222
+ width: 66,
223
+ height: 66,
224
+ borderRadius: 20,
225
+ backgroundColor: '#FAF5FF',
226
+ justifyContent: 'center',
227
+ alignItems: 'center',
228
+ borderWidth: 1.5,
229
+ borderColor: '#F3E8FF',
230
+ marginBottom: 8,
231
+ shadowColor: '#7C3AED',
232
+ shadowOffset: { width: 0, height: 4 },
233
+ shadowOpacity: 0.16,
234
+ shadowRadius: 10,
235
+ elevation: 4,
236
+ },
237
+ sparkleBadge: {
238
+ position: 'absolute',
239
+ top: -4,
240
+ right: -4,
241
+ width: 22,
242
+ height: 22,
243
+ borderRadius: 11,
244
+ backgroundColor: '#FEF3C7',
245
+ justifyContent: 'center',
246
+ alignItems: 'center',
247
+ borderWidth: 1.5,
248
+ borderColor: '#FFFFFF',
249
+ },
250
+ title: {
251
+ fontSize: 17.5,
252
+ fontWeight: '800',
253
+ color: '#0F172A',
254
+ letterSpacing: -0.4,
255
+ textAlign: 'center',
256
+ lineHeight: 22,
257
+ marginBottom: 2,
258
+ ...fontStack,
259
+ },
260
+ subtitle: {
261
+ fontSize: 12,
262
+ fontWeight: '500',
263
+ color: '#64748B',
264
+ textAlign: 'center',
265
+ lineHeight: 16,
266
+ paddingHorizontal: 8,
267
+ ...fontStack,
268
+ },
269
+ versionComparisonCard: {
270
+ flexDirection: 'row',
271
+ alignItems: 'center',
272
+ justifyContent: 'space-between',
273
+ backgroundColor: '#F8FAFC',
274
+ borderRadius: 14,
275
+ borderWidth: 1,
276
+ borderColor: '#E2E8F0',
277
+ paddingVertical: 10,
278
+ paddingHorizontal: 14,
279
+ marginBottom: 12,
280
+ width: '100%',
281
+ },
282
+ versionColumn: {
283
+ alignItems: 'center',
284
+ gap: 4,
285
+ },
286
+ versionLabel: {
287
+ fontSize: 9.5,
288
+ fontWeight: '700',
289
+ color: '#94A3B8',
290
+ letterSpacing: 0.6,
291
+ ...fontStack,
292
+ },
293
+ installedChip: {
294
+ backgroundColor: '#E2E8F0',
295
+ paddingHorizontal: 8,
296
+ paddingVertical: 3,
297
+ borderRadius: 6,
298
+ },
299
+ installedText: {
300
+ fontSize: 12,
301
+ fontWeight: '700',
302
+ color: '#475569',
303
+ ...fontStack,
304
+ },
305
+ arrowContainer: {
306
+ paddingHorizontal: 6,
307
+ },
308
+ arrowText: {
309
+ fontSize: 14,
310
+ color: '#94A3B8',
311
+ fontWeight: '700',
312
+ },
313
+ latestChip: {
314
+ flexDirection: 'row',
315
+ alignItems: 'center',
316
+ gap: 4,
317
+ backgroundColor: '#EDE9FE',
318
+ paddingHorizontal: 8,
319
+ paddingVertical: 3,
320
+ borderRadius: 6,
321
+ borderWidth: 1,
322
+ borderColor: '#DDD6FE',
323
+ },
324
+ latestText: {
325
+ fontSize: 12,
326
+ fontWeight: '800',
327
+ color: '#6D28D9',
328
+ ...fontStack,
329
+ },
330
+ codeSnippetBox: {
331
+ backgroundColor: '#0F172A',
332
+ borderRadius: 12,
333
+ padding: 10,
334
+ width: '100%',
335
+ marginBottom: 14,
336
+ borderWidth: 1,
337
+ borderColor: '#1E293B',
338
+ },
339
+ codeSnippetHeader: {
340
+ flexDirection: 'row',
341
+ justifyContent: 'space-between',
342
+ alignItems: 'center',
343
+ marginBottom: 6,
344
+ },
345
+ codeSnippetLabel: {
346
+ fontSize: 9.5,
347
+ fontWeight: '700',
348
+ color: '#64748B',
349
+ letterSpacing: 0.6,
350
+ ...fontStack,
351
+ },
352
+ copiedIndicator: {
353
+ flexDirection: 'row',
354
+ alignItems: 'center',
355
+ gap: 3,
356
+ },
357
+ copiedText: {
358
+ fontSize: 9.5,
359
+ fontWeight: '600',
360
+ color: '#10B981',
361
+ ...fontStack,
362
+ },
363
+ commandRow: {
364
+ flexDirection: 'row',
365
+ alignItems: 'center',
366
+ justifyContent: 'space-between',
367
+ backgroundColor: '#1E293B',
368
+ borderRadius: 8,
369
+ paddingVertical: 7,
370
+ paddingHorizontal: 9,
371
+ gap: 8,
372
+ },
373
+ commandText: {
374
+ flex: 1,
375
+ fontSize: 11,
376
+ fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',
377
+ color: '#38BDF8',
378
+ },
379
+ copyIconWrapper: {
380
+ width: 22,
381
+ height: 22,
382
+ borderRadius: 6,
383
+ backgroundColor: '#334155',
384
+ justifyContent: 'center',
385
+ alignItems: 'center',
386
+ },
387
+ buttonRow: {
388
+ flexDirection: 'row',
389
+ justifyContent: 'space-between',
390
+ alignItems: 'center',
391
+ gap: 10,
392
+ width: '100%',
393
+ },
394
+ secondaryButton: {
395
+ flex: 1,
396
+ alignItems: 'center',
397
+ justifyContent: 'center',
398
+ paddingVertical: 11,
399
+ borderRadius: 12,
400
+ backgroundColor: '#F1F5F9',
401
+ borderWidth: 1,
402
+ borderColor: '#E2E8F0',
403
+ },
404
+ secondaryButtonText: {
405
+ fontSize: 13,
406
+ fontWeight: '600',
407
+ color: '#475569',
408
+ ...fontStack,
409
+ },
410
+ primaryButton: {
411
+ flex: 1.3,
412
+ flexDirection: 'row',
413
+ alignItems: 'center',
414
+ justifyContent: 'center',
415
+ gap: 6,
416
+ paddingVertical: 11,
417
+ borderRadius: 12,
418
+ backgroundColor: '#7C3AED',
419
+ shadowColor: '#7C3AED',
420
+ shadowOffset: { width: 0, height: 3 },
421
+ shadowOpacity: 0.28,
422
+ shadowRadius: 6,
423
+ elevation: 4,
424
+ },
425
+ primaryButtonText: {
426
+ fontSize: 13,
427
+ fontWeight: '700',
428
+ color: '#FFFFFF',
429
+ ...fontStack,
430
+ },
431
+ });
432
+ export default UpdateAvailableModal;
@@ -22,6 +22,7 @@ export declare const SizeIcon: ({ color }: IconProps) => React.JSX.Element;
22
22
  export declare const RequestIcon: ({ color }: IconProps) => React.JSX.Element;
23
23
  export declare const ResponseIcon: ({ color }: IconProps) => React.JSX.Element;
24
24
  export declare const HeadersIcon: ({ color }: IconProps) => React.JSX.Element;
25
+ export declare const ReplayIcon: ({ color, size, }: IconProps) => React.JSX.Element;
25
26
  export declare const CopyIcon: ({ color, size }: IconProps) => React.JSX.Element;
26
27
  export declare const FetchIcon: ({ color, size }: IconProps) => React.JSX.Element;
27
28
  export declare const TerminalIcon: ({ color, size, }: IconProps) => React.JSX.Element;
@@ -127,3 +128,14 @@ export declare const TagIcon: ({ color, size }: IconProps) => React.JSX.Element;
127
128
  export declare const NpmIcon: ({ color, size }: IconProps) => React.JSX.Element;
128
129
  export declare const ResetIcon: ({ color, size }: IconProps) => React.JSX.Element;
129
130
  export declare const ChevronDownIcon: ({ color, size }: IconProps) => React.JSX.Element;
131
+ export declare const DatabaseIcon: ({ color, size }: IconProps) => React.JSX.Element;
132
+ export declare const DevicePhoneIcon: ({ color, size }: IconProps) => React.JSX.Element;
133
+ export declare const FlagIcon: ({ color, size }: IconProps) => React.JSX.Element;
134
+ export declare const EditIcon: ({ color, size }: IconProps) => React.JSX.Element;
135
+ export declare const PlusIcon: ({ color, size }: IconProps) => React.JSX.Element;
136
+ export declare const CodeIcon: ({ color, size }: IconProps) => React.JSX.Element;
137
+ export declare const CpuIcon: ({ color, size }: IconProps) => React.JSX.Element;
138
+ export declare const FingerprintIcon: ({ color, size }: IconProps) => React.JSX.Element;
139
+ export declare const MonitorIcon: ({ color, size }: IconProps) => React.JSX.Element;
140
+ export declare const ShieldCheckIcon: ({ color, size }: IconProps) => React.JSX.Element;
141
+ export declare const SparklesIcon: ({ color, size }: IconProps) => React.JSX.Element;
@@ -79,6 +79,13 @@ export const HeadersIcon = ({ color = AppColors.skyBlue }) => {
79
79
  <Path d="M4 6h16M4 12h16M4 18h10" stroke={color} strokeWidth="2" strokeLinecap="round"/>
80
80
  </Svg>);
81
81
  };
82
+ export const ReplayIcon = ({ color = AppColors.purple, size = 14, }) => {
83
+ return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
84
+ <Path d="M21 2v6h-6" stroke={color} strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round"/>
85
+ <Path d="M21 8A10 10 0 1 0 21.8 14" stroke={color} strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round"/>
86
+ <Path d="M10 8.5l5.5 3.5-5.5 3.5v-7z" fill={color}/>
87
+ </Svg>);
88
+ };
82
89
  export const CopyIcon = ({ color = AppColors.grayTextWeak, size = 14 }) => {
83
90
  return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
84
91
  <Path d="M9 9V5a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-4" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
@@ -711,3 +718,53 @@ export const ResetIcon = ({ color = AppColors.white, size = 16 }) => (<Svg width
711
718
  export const ChevronDownIcon = ({ color = AppColors.grayTextWeak, size = 14 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
712
719
  <Path d="M6 9l6 6 6-6" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
713
720
  </Svg>);
721
+ export const DatabaseIcon = ({ color = AppColors.purple, size = 16 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
722
+ <Ellipse cx="12" cy="5" rx="9" ry="3" stroke={color} strokeWidth="1.8"/>
723
+ <Path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
724
+ <Path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
725
+ </Svg>);
726
+ export const DevicePhoneIcon = ({ color = AppColors.purple, size = 16 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
727
+ <Rect x="5" y="2" width="14" height="20" rx="3" stroke={color} strokeWidth="1.8"/>
728
+ <Line x1="12" y1="18" x2="12.01" y2="18" stroke={color} strokeWidth="2.5" strokeLinecap="round"/>
729
+ <Line x1="9" y1="5" x2="15" y2="5" stroke={color} strokeWidth="1.5" strokeLinecap="round"/>
730
+ </Svg>);
731
+ export const FlagIcon = ({ color = AppColors.purple, size = 16 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
732
+ <Path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
733
+ </Svg>);
734
+ export const EditIcon = ({ color = AppColors.grayText, size = 14 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
735
+ <Path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
736
+ </Svg>);
737
+ export const PlusIcon = ({ color = AppColors.white, size = 14 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
738
+ <Line x1="12" y1="5" x2="12" y2="19" stroke={color} strokeWidth="2" strokeLinecap="round"/>
739
+ <Line x1="5" y1="12" x2="19" y2="12" stroke={color} strokeWidth="2" strokeLinecap="round"/>
740
+ </Svg>);
741
+ export const CodeIcon = ({ color = AppColors.grayText, size = 14 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
742
+ <Path d="M16 18l6-6-6-6M8 6l-6 6 6 6" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
743
+ </Svg>);
744
+ export const CpuIcon = ({ color = AppColors.grayText, size = 14 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
745
+ <Rect x="4" y="4" width="16" height="16" rx="2" stroke={color} strokeWidth="1.8"/>
746
+ <Rect x="9" y="9" width="6" height="6" stroke={color} strokeWidth="1.8"/>
747
+ <Line x1="9" y1="1" x2="9" y2="4" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
748
+ <Line x1="15" y1="1" x2="15" y2="4" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
749
+ <Line x1="9" y1="20" x2="9" y2="23" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
750
+ <Line x1="15" y1="20" x2="15" y2="23" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
751
+ <Line x1="20" y1="9" x2="23" y2="9" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
752
+ <Line x1="20" y1="15" x2="23" y2="15" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
753
+ <Line x1="1" y1="9" x2="4" y2="9" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
754
+ <Line x1="1" y1="15" x2="4" y2="15" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
755
+ </Svg>);
756
+ export const FingerprintIcon = ({ color = AppColors.grayText, size = 14 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
757
+ <Path d="M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10c0 2.21-.895 4.21-2.343 5.657M12 7c-2.761 0-5 2.239-5 5 0 1.38.56 2.63 1.464 3.536M12 11c-.552 0-1 .448-1 1 0 2.5 1.5 4.5 4 5" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
758
+ </Svg>);
759
+ export const MonitorIcon = ({ color = AppColors.grayText, size = 14 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
760
+ <Rect x="2" y="3" width="20" height="14" rx="2" stroke={color} strokeWidth="1.8"/>
761
+ <Line x1="8" y1="21" x2="16" y2="21" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
762
+ <Line x1="12" y1="17" x2="12" y2="21" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
763
+ </Svg>);
764
+ export const ShieldCheckIcon = ({ color = AppColors.greenColor, size = 16 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
765
+ <Path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
766
+ <Path d="M9 12l2 2 4-4" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
767
+ </Svg>);
768
+ export const SparklesIcon = ({ color = AppColors.purple, size = 16 }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
769
+ <Path d="M12 3l1.912 5.885L20 10.8l-4.756 3.63L16.824 20 12 16.3 7.176 20l1.58-5.57L4 10.8l6.088-1.915L12 3z" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
770
+ </Svg>);
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "2.0.4";
1
+ export declare const LIB_VERSION = "2.0.6";
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED FILE — do not edit by hand.
2
2
  // Regenerated from package.json on every build by scripts/gen-version.js.
3
- export const LIB_VERSION = '2.0.4';
3
+ export const LIB_VERSION = '2.0.6';
@@ -0,0 +1,13 @@
1
+ import { StorageEntry } from '../types';
2
+ type StorageListener = () => void;
3
+ export declare function setCustomStorageAdapter(adapter: any): void;
4
+ export declare function subscribeStorageChanges(listener: StorageListener): () => void;
5
+ export declare function notifyStorageChange(): void;
6
+ /**
7
+ * Reads all entries from on-device storage (AsyncStorage or fallback store).
8
+ */
9
+ export declare function fetchAllStorageEntries(): Promise<StorageEntry[]>;
10
+ export declare function setStorageItem(key: string, value: string): Promise<void>;
11
+ export declare function removeStorageItem(key: string): Promise<void>;
12
+ export declare function clearAllStorage(): Promise<void>;
13
+ export {};