@bugpulse/react-native 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +185 -0
  2. package/dist/AnnotationCanvas.d.ts +11 -0
  3. package/dist/AnnotationCanvas.d.ts.map +1 -0
  4. package/dist/AnnotationCanvas.js +154 -0
  5. package/dist/AnnotationCanvas.js.map +1 -0
  6. package/dist/BugReportModal.d.ts +15 -0
  7. package/dist/BugReportModal.d.ts.map +1 -0
  8. package/dist/BugReportModal.js +303 -0
  9. package/dist/BugReportModal.js.map +1 -0
  10. package/dist/BugReportProvider.d.ts +19 -0
  11. package/dist/BugReportProvider.d.ts.map +1 -0
  12. package/dist/BugReportProvider.js +103 -0
  13. package/dist/BugReportProvider.js.map +1 -0
  14. package/dist/DeviceInfo.d.ts +3 -0
  15. package/dist/DeviceInfo.d.ts.map +1 -0
  16. package/dist/DeviceInfo.js +63 -0
  17. package/dist/DeviceInfo.js.map +1 -0
  18. package/dist/ErrorBoundary.d.ts +19 -0
  19. package/dist/ErrorBoundary.d.ts.map +1 -0
  20. package/dist/ErrorBoundary.js +79 -0
  21. package/dist/ErrorBoundary.js.map +1 -0
  22. package/dist/NavigationTracker.d.ts +7 -0
  23. package/dist/NavigationTracker.d.ts.map +1 -0
  24. package/dist/NavigationTracker.js +61 -0
  25. package/dist/NavigationTracker.js.map +1 -0
  26. package/dist/RingBuffer.d.ts +10 -0
  27. package/dist/RingBuffer.d.ts.map +1 -0
  28. package/dist/RingBuffer.js +26 -0
  29. package/dist/RingBuffer.js.map +1 -0
  30. package/dist/ScreenCapture.d.ts +3 -0
  31. package/dist/ScreenCapture.d.ts.map +1 -0
  32. package/dist/ScreenCapture.js +20 -0
  33. package/dist/ScreenCapture.js.map +1 -0
  34. package/dist/ShakeDetector.d.ts +5 -0
  35. package/dist/ShakeDetector.d.ts.map +1 -0
  36. package/dist/ShakeDetector.js +44 -0
  37. package/dist/ShakeDetector.js.map +1 -0
  38. package/dist/StateCapture.d.ts +13 -0
  39. package/dist/StateCapture.d.ts.map +1 -0
  40. package/dist/StateCapture.js +74 -0
  41. package/dist/StateCapture.js.map +1 -0
  42. package/dist/__tests__/DeviceInfo.test.d.ts +2 -0
  43. package/dist/__tests__/DeviceInfo.test.d.ts.map +1 -0
  44. package/dist/__tests__/DeviceInfo.test.js +63 -0
  45. package/dist/__tests__/DeviceInfo.test.js.map +1 -0
  46. package/dist/__tests__/ErrorBoundary.test.d.ts +2 -0
  47. package/dist/__tests__/ErrorBoundary.test.d.ts.map +1 -0
  48. package/dist/__tests__/ErrorBoundary.test.js +64 -0
  49. package/dist/__tests__/ErrorBoundary.test.js.map +1 -0
  50. package/dist/__tests__/NavigationTracker.test.d.ts +2 -0
  51. package/dist/__tests__/NavigationTracker.test.d.ts.map +1 -0
  52. package/dist/__tests__/NavigationTracker.test.js +54 -0
  53. package/dist/__tests__/NavigationTracker.test.js.map +1 -0
  54. package/dist/__tests__/RingBuffer.test.d.ts +2 -0
  55. package/dist/__tests__/RingBuffer.test.d.ts.map +1 -0
  56. package/dist/__tests__/RingBuffer.test.js +43 -0
  57. package/dist/__tests__/RingBuffer.test.js.map +1 -0
  58. package/dist/__tests__/ScreenCapture.test.d.ts +2 -0
  59. package/dist/__tests__/ScreenCapture.test.d.ts.map +1 -0
  60. package/dist/__tests__/ScreenCapture.test.js +27 -0
  61. package/dist/__tests__/ScreenCapture.test.js.map +1 -0
  62. package/dist/__tests__/ShakeDetector.test.d.ts +2 -0
  63. package/dist/__tests__/ShakeDetector.test.d.ts.map +1 -0
  64. package/dist/__tests__/ShakeDetector.test.js +65 -0
  65. package/dist/__tests__/ShakeDetector.test.js.map +1 -0
  66. package/dist/__tests__/StateCapture.test.d.ts +2 -0
  67. package/dist/__tests__/StateCapture.test.d.ts.map +1 -0
  68. package/dist/__tests__/StateCapture.test.js +128 -0
  69. package/dist/__tests__/StateCapture.test.js.map +1 -0
  70. package/dist/__tests__/__mocks__/expo-clipboard.d.ts +3 -0
  71. package/dist/__tests__/__mocks__/expo-clipboard.d.ts.map +1 -0
  72. package/dist/__tests__/__mocks__/expo-clipboard.js +6 -0
  73. package/dist/__tests__/__mocks__/expo-clipboard.js.map +1 -0
  74. package/dist/__tests__/__mocks__/expo-constants.d.ts +17 -0
  75. package/dist/__tests__/__mocks__/expo-constants.d.ts.map +1 -0
  76. package/dist/__tests__/__mocks__/expo-constants.js +8 -0
  77. package/dist/__tests__/__mocks__/expo-constants.js.map +1 -0
  78. package/dist/__tests__/__mocks__/expo-device.d.ts +2 -0
  79. package/dist/__tests__/__mocks__/expo-device.d.ts.map +1 -0
  80. package/dist/__tests__/__mocks__/expo-device.js +5 -0
  81. package/dist/__tests__/__mocks__/expo-device.js.map +1 -0
  82. package/dist/__tests__/__mocks__/expo-file-system-legacy.d.ts +8 -0
  83. package/dist/__tests__/__mocks__/expo-file-system-legacy.d.ts.map +1 -0
  84. package/dist/__tests__/__mocks__/expo-file-system-legacy.js +10 -0
  85. package/dist/__tests__/__mocks__/expo-file-system-legacy.js.map +1 -0
  86. package/dist/__tests__/__mocks__/expo-localization.d.ts +6 -0
  87. package/dist/__tests__/__mocks__/expo-localization.d.ts.map +1 -0
  88. package/dist/__tests__/__mocks__/expo-localization.js +7 -0
  89. package/dist/__tests__/__mocks__/expo-localization.js.map +1 -0
  90. package/dist/__tests__/__mocks__/expo-router.d.ts +5 -0
  91. package/dist/__tests__/__mocks__/expo-router.d.ts.map +1 -0
  92. package/dist/__tests__/__mocks__/expo-router.js +16 -0
  93. package/dist/__tests__/__mocks__/expo-router.js.map +1 -0
  94. package/dist/__tests__/__mocks__/expo-sensors.d.ts +17 -0
  95. package/dist/__tests__/__mocks__/expo-sensors.d.ts.map +1 -0
  96. package/dist/__tests__/__mocks__/expo-sensors.js +22 -0
  97. package/dist/__tests__/__mocks__/expo-sensors.js.map +1 -0
  98. package/dist/__tests__/__mocks__/react-native-gesture-handler.d.ts +11 -0
  99. package/dist/__tests__/__mocks__/react-native-gesture-handler.d.ts.map +1 -0
  100. package/dist/__tests__/__mocks__/react-native-gesture-handler.js +14 -0
  101. package/dist/__tests__/__mocks__/react-native-gesture-handler.js.map +1 -0
  102. package/dist/__tests__/__mocks__/react-native-svg.d.ts +4 -0
  103. package/dist/__tests__/__mocks__/react-native-svg.d.ts.map +1 -0
  104. package/dist/__tests__/__mocks__/react-native-svg.js +7 -0
  105. package/dist/__tests__/__mocks__/react-native-svg.js.map +1 -0
  106. package/dist/__tests__/__mocks__/react-native-view-shot.d.ts +2 -0
  107. package/dist/__tests__/__mocks__/react-native-view-shot.d.ts.map +1 -0
  108. package/dist/__tests__/__mocks__/react-native-view-shot.js +5 -0
  109. package/dist/__tests__/__mocks__/react-native-view-shot.js.map +1 -0
  110. package/dist/__tests__/__mocks__/react-native.d.ts +20 -0
  111. package/dist/__tests__/__mocks__/react-native.d.ts.map +1 -0
  112. package/dist/__tests__/__mocks__/react-native.js +14 -0
  113. package/dist/__tests__/__mocks__/react-native.js.map +1 -0
  114. package/dist/__tests__/fileToBase64.test.d.ts +2 -0
  115. package/dist/__tests__/fileToBase64.test.d.ts.map +1 -0
  116. package/dist/__tests__/fileToBase64.test.js +21 -0
  117. package/dist/__tests__/fileToBase64.test.js.map +1 -0
  118. package/dist/__tests__/integrations/slack.test.d.ts +2 -0
  119. package/dist/__tests__/integrations/slack.test.d.ts.map +1 -0
  120. package/dist/__tests__/integrations/slack.test.js +123 -0
  121. package/dist/__tests__/integrations/slack.test.js.map +1 -0
  122. package/dist/__tests__/integrations/webhook.test.d.ts +2 -0
  123. package/dist/__tests__/integrations/webhook.test.d.ts.map +1 -0
  124. package/dist/__tests__/integrations/webhook.test.js +98 -0
  125. package/dist/__tests__/integrations/webhook.test.js.map +1 -0
  126. package/dist/index.d.ts +8 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +18 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/integrations/index.d.ts +4 -0
  131. package/dist/integrations/index.d.ts.map +1 -0
  132. package/dist/integrations/index.js +8 -0
  133. package/dist/integrations/index.js.map +1 -0
  134. package/dist/integrations/slack.d.ts +9 -0
  135. package/dist/integrations/slack.d.ts.map +1 -0
  136. package/dist/integrations/slack.js +136 -0
  137. package/dist/integrations/slack.js.map +1 -0
  138. package/dist/integrations/types.d.ts +53 -0
  139. package/dist/integrations/types.d.ts.map +1 -0
  140. package/dist/integrations/types.js +3 -0
  141. package/dist/integrations/types.js.map +1 -0
  142. package/dist/integrations/webhook.d.ts +8 -0
  143. package/dist/integrations/webhook.d.ts.map +1 -0
  144. package/dist/integrations/webhook.js +45 -0
  145. package/dist/integrations/webhook.js.map +1 -0
  146. package/dist/utils/fileToBase64.d.ts +2 -0
  147. package/dist/utils/fileToBase64.d.ts.map +1 -0
  148. package/dist/utils/fileToBase64.js +11 -0
  149. package/dist/utils/fileToBase64.js.map +1 -0
  150. package/package.json +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenCapture.test.js","sourceRoot":"","sources":["../../src/__tests__/ScreenCapture.test.ts"],"names":[],"mappings":";;AAAA,oDAAqD;AACrD,mEAAoD;AAEpD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAiB,EAAC,GAAU,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAClD,MAAM,CAAC,mCAAU,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE;YAC3C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC9C,mCAAwB,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAiB,EAAC,GAAU,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ShakeDetector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShakeDetector.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ShakeDetector.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_native_1 = require("@testing-library/react-native");
4
+ const ShakeDetector_1 = require("../ShakeDetector");
5
+ const expo_sensors_1 = require("expo-sensors");
6
+ describe('useShakeDetector', () => {
7
+ beforeEach(() => {
8
+ jest.clearAllMocks();
9
+ expo_sensors_1.Accelerometer._reset();
10
+ jest.useFakeTimers();
11
+ });
12
+ afterEach(() => {
13
+ jest.useRealTimers();
14
+ });
15
+ it('sets up accelerometer subscription when enabled', () => {
16
+ const onShake = jest.fn();
17
+ (0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { enabled: true }));
18
+ expect(expo_sensors_1.Accelerometer.setUpdateInterval).toHaveBeenCalledWith(100);
19
+ expect(expo_sensors_1.Accelerometer.addListener).toHaveBeenCalled();
20
+ });
21
+ it('does not subscribe when disabled', () => {
22
+ const onShake = jest.fn();
23
+ (0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { enabled: false }));
24
+ expect(expo_sensors_1.Accelerometer.addListener).not.toHaveBeenCalled();
25
+ });
26
+ it('ignores acceleration below threshold', () => {
27
+ const onShake = jest.fn();
28
+ (0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { threshold: 1.8 }));
29
+ expo_sensors_1.Accelerometer._simulateData({ x: 0.5, y: 0.5, z: 0.5 });
30
+ expect(onShake).not.toHaveBeenCalled();
31
+ });
32
+ it('triggers onShake after 3 shakes within window', () => {
33
+ const onShake = jest.fn();
34
+ (0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { threshold: 1.8 }));
35
+ const strongShake = { x: 2.0, y: 2.0, z: 2.0 };
36
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
37
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
38
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
39
+ expect(onShake).toHaveBeenCalledTimes(1);
40
+ });
41
+ it('respects cooldown period', () => {
42
+ const onShake = jest.fn();
43
+ (0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { threshold: 1.8 }));
44
+ const strongShake = { x: 2.0, y: 2.0, z: 2.0 };
45
+ // First shake sequence
46
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
47
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
48
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
49
+ expect(onShake).toHaveBeenCalledTimes(1);
50
+ // Immediately try again (within cooldown)
51
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
52
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
53
+ expo_sensors_1.Accelerometer._simulateData(strongShake);
54
+ expect(onShake).toHaveBeenCalledTimes(1);
55
+ });
56
+ it('cleans up subscription on unmount', () => {
57
+ const onShake = jest.fn();
58
+ const removeMock = jest.fn();
59
+ expo_sensors_1.Accelerometer.addListener.mockReturnValue({ remove: removeMock });
60
+ const { unmount } = (0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake));
61
+ unmount();
62
+ expect(removeMock).toHaveBeenCalled();
63
+ });
64
+ });
65
+ //# sourceMappingURL=ShakeDetector.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShakeDetector.test.js","sourceRoot":"","sources":["../../src/__tests__/ShakeDetector.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StateCapture.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateCapture.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/StateCapture.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const StateCapture_1 = require("../StateCapture");
4
+ function createMockStore(initialState) {
5
+ let state = initialState;
6
+ const listeners = new Set();
7
+ return {
8
+ getState: () => state,
9
+ subscribe: (listener) => {
10
+ listeners.add(listener);
11
+ return () => listeners.delete(listener);
12
+ },
13
+ setState: (newState) => {
14
+ state = newState;
15
+ listeners.forEach((l) => l());
16
+ },
17
+ };
18
+ }
19
+ describe('StateCapture', () => {
20
+ afterEach(() => {
21
+ (0, StateCapture_1.resetAllStores)();
22
+ });
23
+ it('records state changes to ring buffer', () => {
24
+ const store = createMockStore({ count: 0 });
25
+ (0, StateCapture_1.trackStore)(store, { name: 'counter' });
26
+ store.setState({ count: 1 });
27
+ store.setState({ count: 2 });
28
+ (0, StateCapture_1.freezeStateSnapshot)();
29
+ const snapshots = (0, StateCapture_1.getStateSnapshot)();
30
+ expect(snapshots).toHaveLength(2);
31
+ expect(snapshots[0].name).toBe('counter');
32
+ expect(JSON.parse(snapshots[0].state)).toEqual({ count: 1 });
33
+ expect(JSON.parse(snapshots[1].state)).toEqual({ count: 2 });
34
+ });
35
+ it('evicts oldest when buffer is full (N=10)', () => {
36
+ const store = createMockStore({ v: 0 });
37
+ (0, StateCapture_1.trackStore)(store, { name: 'test' });
38
+ for (let i = 1; i <= 11; i++) {
39
+ store.setState({ v: i });
40
+ }
41
+ (0, StateCapture_1.freezeStateSnapshot)();
42
+ const snapshots = (0, StateCapture_1.getStateSnapshot)();
43
+ expect(snapshots).toHaveLength(10);
44
+ expect(JSON.parse(snapshots[0].state)).toEqual({ v: 2 });
45
+ expect(JSON.parse(snapshots[9].state)).toEqual({ v: 11 });
46
+ });
47
+ it('truncates snapshots exceeding 50KB', () => {
48
+ const store = createMockStore({});
49
+ (0, StateCapture_1.trackStore)(store, { name: 'big' });
50
+ const bigState = { data: 'x'.repeat(60 * 1024) };
51
+ store.setState(bigState);
52
+ (0, StateCapture_1.freezeStateSnapshot)();
53
+ const snapshots = (0, StateCapture_1.getStateSnapshot)();
54
+ expect(snapshots).toHaveLength(1);
55
+ expect(snapshots[0].truncated).toBe(true);
56
+ expect(snapshots[0].state).toContain('STATE TOO LARGE');
57
+ // Truncated state should still be valid JSON
58
+ expect(() => JSON.parse(snapshots[0].state)).not.toThrow();
59
+ });
60
+ it('tracks multiple named stores', () => {
61
+ const store1 = createMockStore({ a: 1 });
62
+ const store2 = createMockStore({ b: 2 });
63
+ (0, StateCapture_1.trackStore)(store1, { name: 'store1' });
64
+ (0, StateCapture_1.trackStore)(store2, { name: 'store2' });
65
+ store1.setState({ a: 10 });
66
+ store2.setState({ b: 20 });
67
+ (0, StateCapture_1.freezeStateSnapshot)();
68
+ const snapshots = (0, StateCapture_1.getStateSnapshot)();
69
+ expect(snapshots).toHaveLength(2);
70
+ const names = snapshots.map((s) => s.name);
71
+ expect(names).toContain('store1');
72
+ expect(names).toContain('store2');
73
+ });
74
+ it('untrackStore removes subscription', () => {
75
+ const store = createMockStore({ x: 0 });
76
+ (0, StateCapture_1.trackStore)(store, { name: 'temp' });
77
+ store.setState({ x: 1 });
78
+ // Freeze before untracking to capture the one change
79
+ (0, StateCapture_1.freezeStateSnapshot)();
80
+ const beforeUntrack = (0, StateCapture_1.getStateSnapshot)();
81
+ expect(beforeUntrack).toHaveLength(1);
82
+ expect(JSON.parse(beforeUntrack[0].state)).toEqual({ x: 1 });
83
+ // After untracking, new state changes should not be recorded
84
+ (0, StateCapture_1.clearStateCapture)();
85
+ (0, StateCapture_1.untrackStore)('temp');
86
+ store.setState({ x: 2 });
87
+ (0, StateCapture_1.freezeStateSnapshot)();
88
+ const afterUntrack = (0, StateCapture_1.getStateSnapshot)();
89
+ expect(afterUntrack).toHaveLength(0);
90
+ });
91
+ it('freezeStateSnapshot creates independent copy', () => {
92
+ const store = createMockStore({ v: 0 });
93
+ (0, StateCapture_1.trackStore)(store, { name: 'test' });
94
+ store.setState({ v: 1 });
95
+ (0, StateCapture_1.freezeStateSnapshot)();
96
+ store.setState({ v: 2 });
97
+ const frozen = (0, StateCapture_1.getStateSnapshot)();
98
+ expect(frozen).toHaveLength(1);
99
+ expect(JSON.parse(frozen[0].state)).toEqual({ v: 1 });
100
+ });
101
+ it('returns empty array when nothing tracked', () => {
102
+ (0, StateCapture_1.freezeStateSnapshot)();
103
+ expect((0, StateCapture_1.getStateSnapshot)()).toEqual([]);
104
+ });
105
+ it('handles circular references gracefully', () => {
106
+ const store = createMockStore({});
107
+ (0, StateCapture_1.trackStore)(store, { name: 'circular' });
108
+ const circular = { a: 1 };
109
+ circular.self = circular;
110
+ const warnSpy = jest.spyOn(console, 'warn').mockImplementation();
111
+ store.setState(circular);
112
+ warnSpy.mockRestore();
113
+ (0, StateCapture_1.freezeStateSnapshot)();
114
+ const snapshots = (0, StateCapture_1.getStateSnapshot)();
115
+ expect(snapshots).toHaveLength(1);
116
+ expect(snapshots[0].truncated).toBe(true);
117
+ });
118
+ it('clearStateCapture resets frozen snapshot', () => {
119
+ const store = createMockStore({ v: 1 });
120
+ (0, StateCapture_1.trackStore)(store, { name: 'test' });
121
+ store.setState({ v: 2 });
122
+ (0, StateCapture_1.freezeStateSnapshot)();
123
+ expect((0, StateCapture_1.getStateSnapshot)()).toHaveLength(1);
124
+ (0, StateCapture_1.clearStateCapture)();
125
+ expect((0, StateCapture_1.getStateSnapshot)()).toEqual([]);
126
+ });
127
+ });
128
+ //# sourceMappingURL=StateCapture.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateCapture.test.js","sourceRoot":"","sources":["../../src/__tests__/StateCapture.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const setStringAsync: jest.Mock<any, any, any>;
2
+ export declare const getStringAsync: jest.Mock<Promise<string>, [], any>;
3
+ //# sourceMappingURL=expo-clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-clipboard.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-clipboard.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,0BAAY,CAAC;AACxC,eAAO,MAAM,cAAc,qCAAqC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStringAsync = exports.setStringAsync = void 0;
4
+ exports.setStringAsync = jest.fn();
5
+ exports.getStringAsync = jest.fn(() => Promise.resolve(''));
6
+ //# sourceMappingURL=expo-clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-clipboard.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-clipboard.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3B,QAAA,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ declare const _default: {
2
+ expoConfig: {
3
+ version: string;
4
+ name: string;
5
+ slug: string;
6
+ };
7
+ manifest2: {
8
+ extra: {
9
+ expoClient: {
10
+ version: string;
11
+ };
12
+ };
13
+ };
14
+ installationId: string;
15
+ };
16
+ export default _default;
17
+ //# sourceMappingURL=expo-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-constants.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wBAIE"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ expoConfig: { version: '1.0.0', name: 'TestApp', slug: 'test-app' },
5
+ manifest2: { extra: { expoClient: { version: '1.0.0' } } },
6
+ installationId: 'test-installation-id',
7
+ };
8
+ //# sourceMappingURL=expo-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-constants.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-constants.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IACnE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1D,cAAc,EAAE,sBAAsB;CACvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const modelName = "iPhone 15 Pro";
2
+ //# sourceMappingURL=expo-device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-device.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-device.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.modelName = void 0;
4
+ exports.modelName = 'iPhone 15 Pro';
5
+ //# sourceMappingURL=expo-device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-device.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-device.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare enum EncodingType {
2
+ UTF8 = "utf8",
3
+ Base64 = "base64"
4
+ }
5
+ export declare const readAsStringAsync: jest.Mock<Promise<string>, [_uri: string, _options?: {
6
+ encoding?: EncodingType;
7
+ } | undefined], any>;
8
+ //# sourceMappingURL=expo-file-system-legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-file-system-legacy.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-file-system-legacy.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,iBAAiB;eACW,YAAY;oBAEpD,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readAsStringAsync = exports.EncodingType = void 0;
4
+ var EncodingType;
5
+ (function (EncodingType) {
6
+ EncodingType["UTF8"] = "utf8";
7
+ EncodingType["Base64"] = "base64";
8
+ })(EncodingType || (exports.EncodingType = EncodingType = {}));
9
+ exports.readAsStringAsync = jest.fn((_uri, _options) => Promise.resolve('dGVzdGJhc2U2NA=='));
10
+ //# sourceMappingURL=expo-file-system-legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-file-system-legacy.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-file-system-legacy.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACnB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAEY,QAAA,iBAAiB,GAAG,IAAI,CAAC,EAAE,CACtC,CAAC,IAAY,EAAE,QAAsC,EAAE,EAAE,CACvD,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CACtC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const getLocales: jest.Mock<{
2
+ languageTag: string;
3
+ languageCode: string;
4
+ textDirection: string;
5
+ }[], [], any>;
6
+ //# sourceMappingURL=expo-localization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-localization.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-localization.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;aAErB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLocales = void 0;
4
+ exports.getLocales = jest.fn(() => [
5
+ { languageTag: 'en-US', languageCode: 'en', textDirection: 'ltr' },
6
+ ]);
7
+ //# sourceMappingURL=expo-localization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-localization.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-localization.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IACtC,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACnE,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const usePathname: jest.Mock<string, [], any>;
2
+ export declare const useSegments: jest.Mock<string[], [], any>;
3
+ export declare function __setPathname(pathname: string): void;
4
+ export declare function __setSegments(segments: string[]): void;
5
+ //# sourceMappingURL=expo-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-router.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-router.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,4BAA2B,CAAC;AACpD,eAAO,MAAM,WAAW,8BAA2B,CAAC;AAEpD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAEtD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSegments = exports.usePathname = void 0;
4
+ exports.__setPathname = __setPathname;
5
+ exports.__setSegments = __setSegments;
6
+ let _pathname = '/';
7
+ let _segments = [];
8
+ exports.usePathname = jest.fn(() => _pathname);
9
+ exports.useSegments = jest.fn(() => _segments);
10
+ function __setPathname(pathname) {
11
+ _pathname = pathname;
12
+ }
13
+ function __setSegments(segments) {
14
+ _segments = segments;
15
+ }
16
+ //# sourceMappingURL=expo-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-router.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-router.ts"],"names":[],"mappings":";;;AAMA,sCAEC;AAED,sCAEC;AAZD,IAAI,SAAS,GAAG,GAAG,CAAC;AACpB,IAAI,SAAS,GAAa,EAAE,CAAC;AAEhB,QAAA,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AACvC,QAAA,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAEpD,SAAgB,aAAa,CAAC,QAAgB;IAC5C,SAAS,GAAG,QAAQ,CAAC;AACvB,CAAC;AAED,SAAgB,aAAa,CAAC,QAAkB;IAC9C,SAAS,GAAG,QAAQ,CAAC;AACvB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const Accelerometer: {
2
+ setUpdateInterval: jest.Mock<any, any, any>;
3
+ addListener: jest.Mock<{
4
+ remove: jest.Mock<void, [], any>;
5
+ }, [callback: (data: {
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ }) => void], any>;
10
+ _simulateData: (data: {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ }) => void;
15
+ _reset: () => void;
16
+ };
17
+ //# sourceMappingURL=expo-sensors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-sensors.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-sensors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;yBAEe;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;0BAO7D;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;;CAM1D,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Accelerometer = void 0;
4
+ const listeners = [];
5
+ exports.Accelerometer = {
6
+ setUpdateInterval: jest.fn(),
7
+ addListener: jest.fn((callback) => {
8
+ listeners.push(callback);
9
+ return { remove: jest.fn(() => {
10
+ const idx = listeners.indexOf(callback);
11
+ if (idx >= 0)
12
+ listeners.splice(idx, 1);
13
+ }) };
14
+ }),
15
+ _simulateData: (data) => {
16
+ listeners.forEach((cb) => cb(data));
17
+ },
18
+ _reset: () => {
19
+ listeners.length = 0;
20
+ },
21
+ };
22
+ //# sourceMappingURL=expo-sensors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo-sensors.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-sensors.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAA+D,EAAE,CAAC;AAEpE,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;IAC5B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,QAA6D,EAAE,EAAE;QACrF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;gBAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,GAAG,IAAI,CAAC;oBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IACF,aAAa,EAAE,CAAC,IAAyC,EAAE,EAAE;QAC3D,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,EAAE,GAAG,EAAE;QACX,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,CAAC;CACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const GestureDetector = "GestureDetector";
2
+ export declare const GestureHandlerRootView = "GestureHandlerRootView";
3
+ export declare const Gesture: {
4
+ Pan: () => {
5
+ onStart: jest.Mock<any, any, any>;
6
+ onUpdate: jest.Mock<any, any, any>;
7
+ onEnd: jest.Mock<any, any, any>;
8
+ minDistance: jest.Mock<any, any, any>;
9
+ };
10
+ };
11
+ //# sourceMappingURL=react-native-gesture-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-gesture-handler.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-gesture-handler.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Gesture = exports.GestureHandlerRootView = exports.GestureDetector = void 0;
4
+ exports.GestureDetector = 'GestureDetector';
5
+ exports.GestureHandlerRootView = 'GestureHandlerRootView';
6
+ exports.Gesture = {
7
+ Pan: () => ({
8
+ onStart: jest.fn().mockReturnThis(),
9
+ onUpdate: jest.fn().mockReturnThis(),
10
+ onEnd: jest.fn().mockReturnThis(),
11
+ minDistance: jest.fn().mockReturnThis(),
12
+ }),
13
+ };
14
+ //# sourceMappingURL=react-native-gesture-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-gesture-handler.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-gesture-handler.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,OAAO,GAAG;IACrB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACV,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QACnC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QACpC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QACjC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;KACxC,CAAC;CACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const Svg = "Svg";
2
+ export declare const Path = "Path";
3
+ export default Svg;
4
+ //# sourceMappingURL=react-native-svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-svg.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-svg.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,QAAQ,CAAC;AACzB,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAe,GAAG,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Path = exports.Svg = void 0;
4
+ exports.Svg = 'Svg';
5
+ exports.Path = 'Path';
6
+ exports.default = exports.Svg;
7
+ //# sourceMappingURL=react-native-svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-svg.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-svg.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,KAAK,CAAC;AACZ,QAAA,IAAI,GAAG,MAAM,CAAC;AAC3B,kBAAe,WAAG,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const captureRef: jest.Mock<Promise<string>, [], any>;
2
+ //# sourceMappingURL=react-native-view-shot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-view-shot.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-view-shot.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,qCAA+D,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.captureRef = void 0;
4
+ exports.captureRef = jest.fn(() => Promise.resolve('file:///tmp/screenshot.png'));
5
+ //# sourceMappingURL=react-native-view-shot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-view-shot.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-view-shot.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare const Platform: {
2
+ OS: string;
3
+ Version: string;
4
+ select: (obj: any) => any;
5
+ };
6
+ export declare const Dimensions: {
7
+ get: () => {
8
+ width: number;
9
+ height: number;
10
+ };
11
+ };
12
+ export declare const View = "View";
13
+ export declare const Text = "Text";
14
+ export declare const Modal = "Modal";
15
+ export declare const TextInput = "TextInput";
16
+ export declare const TouchableOpacity = "TouchableOpacity";
17
+ export declare const Image = "Image";
18
+ export declare const ActivityIndicator = "ActivityIndicator";
19
+ export declare const KeyboardAvoidingView = "KeyboardAvoidingView";
20
+ //# sourceMappingURL=react-native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;kBAA+C,GAAG;CAAc,CAAC;AACtF,eAAO,MAAM,UAAU;;;;;CAA+C,CAAC;AACvE,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyboardAvoidingView = exports.ActivityIndicator = exports.Image = exports.TouchableOpacity = exports.TextInput = exports.Modal = exports.Text = exports.View = exports.Dimensions = exports.Platform = void 0;
4
+ exports.Platform = { OS: 'ios', Version: '17.0', select: (obj) => obj.ios };
5
+ exports.Dimensions = { get: () => ({ width: 390, height: 844 }) };
6
+ exports.View = 'View';
7
+ exports.Text = 'Text';
8
+ exports.Modal = 'Modal';
9
+ exports.TextInput = 'TextInput';
10
+ exports.TouchableOpacity = 'TouchableOpacity';
11
+ exports.Image = 'Image';
12
+ exports.ActivityIndicator = 'ActivityIndicator';
13
+ exports.KeyboardAvoidingView = 'KeyboardAvoidingView';
14
+ //# sourceMappingURL=react-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzE,QAAA,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC1D,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fileToBase64.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileToBase64.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fileToBase64.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fileToBase64_1 = require("../utils/fileToBase64");
4
+ const legacy_1 = require("expo-file-system/legacy");
5
+ describe('fileToBase64', () => {
6
+ beforeEach(() => {
7
+ jest.clearAllMocks();
8
+ });
9
+ it('reads file as base64 using expo-file-system', async () => {
10
+ const result = await (0, fileToBase64_1.fileToBase64)('file:///tmp/test.png');
11
+ expect(legacy_1.readAsStringAsync).toHaveBeenCalledWith('file:///tmp/test.png', {
12
+ encoding: legacy_1.EncodingType.Base64,
13
+ });
14
+ expect(result).toBe('dGVzdGJhc2U2NA==');
15
+ });
16
+ it('propagates errors from readAsStringAsync', async () => {
17
+ legacy_1.readAsStringAsync.mockRejectedValueOnce(new Error('File not found'));
18
+ await expect((0, fileToBase64_1.fileToBase64)('file:///nonexistent')).rejects.toThrow('File not found');
19
+ });
20
+ });
21
+ //# sourceMappingURL=fileToBase64.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileToBase64.test.js","sourceRoot":"","sources":["../../src/__tests__/fileToBase64.test.ts"],"names":[],"mappings":";;AAAA,wDAAqD;AACrD,oDAA0E;AAE1E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,CAAC,0BAAiB,CAAC,CAAC,oBAAoB,CAAC,sBAAsB,EAAE;YACrE,QAAQ,EAAE,qBAAY,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACvD,0BAA+B,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,CAAC,IAAA,2BAAY,EAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=slack.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integrations/slack.test.ts"],"names":[],"mappings":""}