@swiftpatch/react-native 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +430 -0
  2. package/android/build.gradle +105 -0
  3. package/android/src/main/AndroidManifest.xml +6 -0
  4. package/android/src/main/java/com/swiftpatch/BundleManager.kt +107 -0
  5. package/android/src/main/java/com/swiftpatch/CrashDetector.kt +79 -0
  6. package/android/src/main/java/com/swiftpatch/CryptoVerifier.kt +69 -0
  7. package/android/src/main/java/com/swiftpatch/DownloadManager.kt +120 -0
  8. package/android/src/main/java/com/swiftpatch/EventQueue.kt +86 -0
  9. package/android/src/main/java/com/swiftpatch/FileUtils.kt +60 -0
  10. package/android/src/main/java/com/swiftpatch/PatchApplier.kt +60 -0
  11. package/android/src/main/java/com/swiftpatch/SignalCrashHandler.kt +84 -0
  12. package/android/src/main/java/com/swiftpatch/SlotManager.kt +299 -0
  13. package/android/src/main/java/com/swiftpatch/SwiftPatchModule.kt +630 -0
  14. package/android/src/main/java/com/swiftpatch/SwiftPatchPackage.kt +21 -0
  15. package/android/src/main/jni/CMakeLists.txt +12 -0
  16. package/android/src/main/jni/bspatch.c +188 -0
  17. package/android/src/main/jni/bspatch.h +57 -0
  18. package/android/src/main/jni/bspatch_jni.c +28 -0
  19. package/ios/Libraries/bspatch/bspatch.c +188 -0
  20. package/ios/Libraries/bspatch/bspatch.h +50 -0
  21. package/ios/Libraries/bspatch/module.modulemap +4 -0
  22. package/ios/SwiftPatch/BundleManager.swift +113 -0
  23. package/ios/SwiftPatch/CrashDetector.swift +71 -0
  24. package/ios/SwiftPatch/CryptoVerifier.swift +70 -0
  25. package/ios/SwiftPatch/DownloadManager.swift +125 -0
  26. package/ios/SwiftPatch/EventQueue.swift +116 -0
  27. package/ios/SwiftPatch/FileUtils.swift +38 -0
  28. package/ios/SwiftPatch/PatchApplier.swift +41 -0
  29. package/ios/SwiftPatch/SignalCrashHandler.swift +129 -0
  30. package/ios/SwiftPatch/SlotManager.swift +360 -0
  31. package/ios/SwiftPatch/SwiftPatchModule.m +56 -0
  32. package/ios/SwiftPatch/SwiftPatchModule.swift +621 -0
  33. package/lib/commonjs/SwiftPatchCore.js +140 -0
  34. package/lib/commonjs/SwiftPatchCore.js.map +1 -0
  35. package/lib/commonjs/SwiftPatchProvider.js +617 -0
  36. package/lib/commonjs/SwiftPatchProvider.js.map +1 -0
  37. package/lib/commonjs/constants.js +50 -0
  38. package/lib/commonjs/constants.js.map +1 -0
  39. package/lib/commonjs/core/Downloader.js +63 -0
  40. package/lib/commonjs/core/Downloader.js.map +1 -0
  41. package/lib/commonjs/core/Installer.js +46 -0
  42. package/lib/commonjs/core/Installer.js.map +1 -0
  43. package/lib/commonjs/core/Rollback.js +36 -0
  44. package/lib/commonjs/core/Rollback.js.map +1 -0
  45. package/lib/commonjs/core/UpdateChecker.js +57 -0
  46. package/lib/commonjs/core/UpdateChecker.js.map +1 -0
  47. package/lib/commonjs/core/Verifier.js +82 -0
  48. package/lib/commonjs/core/Verifier.js.map +1 -0
  49. package/lib/commonjs/core/index.js +41 -0
  50. package/lib/commonjs/core/index.js.map +1 -0
  51. package/lib/commonjs/index.js +154 -0
  52. package/lib/commonjs/index.js.map +1 -0
  53. package/lib/commonjs/modal/SwiftPatchModal.js +667 -0
  54. package/lib/commonjs/modal/SwiftPatchModal.js.map +1 -0
  55. package/lib/commonjs/modal/useSwiftPatchModal.js +26 -0
  56. package/lib/commonjs/modal/useSwiftPatchModal.js.map +1 -0
  57. package/lib/commonjs/native/NativeSwiftPatch.js +85 -0
  58. package/lib/commonjs/native/NativeSwiftPatch.js.map +1 -0
  59. package/lib/commonjs/native/NativeSwiftPatchSpec.js +15 -0
  60. package/lib/commonjs/native/NativeSwiftPatchSpec.js.map +1 -0
  61. package/lib/commonjs/package.json +1 -0
  62. package/lib/commonjs/types.js +126 -0
  63. package/lib/commonjs/types.js.map +1 -0
  64. package/lib/commonjs/useSwiftPatch.js +31 -0
  65. package/lib/commonjs/useSwiftPatch.js.map +1 -0
  66. package/lib/commonjs/utils/api.js +206 -0
  67. package/lib/commonjs/utils/api.js.map +1 -0
  68. package/lib/commonjs/utils/device.js +23 -0
  69. package/lib/commonjs/utils/device.js.map +1 -0
  70. package/lib/commonjs/utils/logger.js +30 -0
  71. package/lib/commonjs/utils/logger.js.map +1 -0
  72. package/lib/commonjs/utils/storage.js +31 -0
  73. package/lib/commonjs/utils/storage.js.map +1 -0
  74. package/lib/commonjs/withSwiftPatch.js +42 -0
  75. package/lib/commonjs/withSwiftPatch.js.map +1 -0
  76. package/lib/module/SwiftPatchCore.js +135 -0
  77. package/lib/module/SwiftPatchCore.js.map +1 -0
  78. package/lib/module/SwiftPatchProvider.js +611 -0
  79. package/lib/module/SwiftPatchProvider.js.map +1 -0
  80. package/lib/module/constants.js +46 -0
  81. package/lib/module/constants.js.map +1 -0
  82. package/lib/module/core/Downloader.js +57 -0
  83. package/lib/module/core/Downloader.js.map +1 -0
  84. package/lib/module/core/Installer.js +41 -0
  85. package/lib/module/core/Installer.js.map +1 -0
  86. package/lib/module/core/Rollback.js +31 -0
  87. package/lib/module/core/Rollback.js.map +1 -0
  88. package/lib/module/core/UpdateChecker.js +51 -0
  89. package/lib/module/core/UpdateChecker.js.map +1 -0
  90. package/lib/module/core/Verifier.js +76 -0
  91. package/lib/module/core/Verifier.js.map +1 -0
  92. package/lib/module/core/index.js +8 -0
  93. package/lib/module/core/index.js.map +1 -0
  94. package/lib/module/index.js +34 -0
  95. package/lib/module/index.js.map +1 -0
  96. package/lib/module/modal/SwiftPatchModal.js +661 -0
  97. package/lib/module/modal/SwiftPatchModal.js.map +1 -0
  98. package/lib/module/modal/useSwiftPatchModal.js +22 -0
  99. package/lib/module/modal/useSwiftPatchModal.js.map +1 -0
  100. package/lib/module/native/NativeSwiftPatch.js +78 -0
  101. package/lib/module/native/NativeSwiftPatch.js.map +1 -0
  102. package/lib/module/native/NativeSwiftPatchSpec.js +12 -0
  103. package/lib/module/native/NativeSwiftPatchSpec.js.map +1 -0
  104. package/lib/module/types.js +139 -0
  105. package/lib/module/types.js.map +1 -0
  106. package/lib/module/useSwiftPatch.js +26 -0
  107. package/lib/module/useSwiftPatch.js.map +1 -0
  108. package/lib/module/utils/api.js +197 -0
  109. package/lib/module/utils/api.js.map +1 -0
  110. package/lib/module/utils/device.js +18 -0
  111. package/lib/module/utils/device.js.map +1 -0
  112. package/lib/module/utils/logger.js +26 -0
  113. package/lib/module/utils/logger.js.map +1 -0
  114. package/lib/module/utils/storage.js +24 -0
  115. package/lib/module/utils/storage.js.map +1 -0
  116. package/lib/module/withSwiftPatch.js +37 -0
  117. package/lib/module/withSwiftPatch.js.map +1 -0
  118. package/lib/typescript/SwiftPatchCore.d.ts +64 -0
  119. package/lib/typescript/SwiftPatchCore.d.ts.map +1 -0
  120. package/lib/typescript/SwiftPatchProvider.d.ts +22 -0
  121. package/lib/typescript/SwiftPatchProvider.d.ts.map +1 -0
  122. package/lib/typescript/constants.d.ts +33 -0
  123. package/lib/typescript/constants.d.ts.map +1 -0
  124. package/lib/typescript/core/Downloader.d.ts +34 -0
  125. package/lib/typescript/core/Downloader.d.ts.map +1 -0
  126. package/lib/typescript/core/Installer.d.ts +25 -0
  127. package/lib/typescript/core/Installer.d.ts.map +1 -0
  128. package/lib/typescript/core/Rollback.d.ts +18 -0
  129. package/lib/typescript/core/Rollback.d.ts.map +1 -0
  130. package/lib/typescript/core/UpdateChecker.d.ts +27 -0
  131. package/lib/typescript/core/UpdateChecker.d.ts.map +1 -0
  132. package/lib/typescript/core/Verifier.d.ts +31 -0
  133. package/lib/typescript/core/Verifier.d.ts.map +1 -0
  134. package/lib/typescript/core/index.d.ts +8 -0
  135. package/lib/typescript/core/index.d.ts.map +1 -0
  136. package/lib/typescript/index.d.ts +13 -0
  137. package/lib/typescript/index.d.ts.map +1 -0
  138. package/lib/typescript/modal/SwiftPatchModal.d.ts +11 -0
  139. package/lib/typescript/modal/SwiftPatchModal.d.ts.map +1 -0
  140. package/lib/typescript/modal/useSwiftPatchModal.d.ts +7 -0
  141. package/lib/typescript/modal/useSwiftPatchModal.d.ts.map +1 -0
  142. package/lib/typescript/native/NativeSwiftPatch.d.ts +61 -0
  143. package/lib/typescript/native/NativeSwiftPatch.d.ts.map +1 -0
  144. package/lib/typescript/native/NativeSwiftPatchSpec.d.ts +67 -0
  145. package/lib/typescript/native/NativeSwiftPatchSpec.d.ts.map +1 -0
  146. package/lib/typescript/types.d.ts +266 -0
  147. package/lib/typescript/types.d.ts.map +1 -0
  148. package/lib/typescript/useSwiftPatch.d.ts +12 -0
  149. package/lib/typescript/useSwiftPatch.d.ts.map +1 -0
  150. package/lib/typescript/utils/api.d.ts +87 -0
  151. package/lib/typescript/utils/api.d.ts.map +1 -0
  152. package/lib/typescript/utils/device.d.ts +9 -0
  153. package/lib/typescript/utils/device.d.ts.map +1 -0
  154. package/lib/typescript/utils/logger.d.ts +8 -0
  155. package/lib/typescript/utils/logger.d.ts.map +1 -0
  156. package/lib/typescript/utils/storage.d.ts +14 -0
  157. package/lib/typescript/utils/storage.d.ts.map +1 -0
  158. package/lib/typescript/withSwiftPatch.d.ts +12 -0
  159. package/lib/typescript/withSwiftPatch.d.ts.map +1 -0
  160. package/package.json +99 -0
  161. package/react-native-swiftpatch.podspec +50 -0
  162. package/src/SwiftPatchCore.ts +148 -0
  163. package/src/SwiftPatchProvider.tsx +514 -0
  164. package/src/constants.ts +49 -0
  165. package/src/core/Downloader.ts +74 -0
  166. package/src/core/Installer.ts +38 -0
  167. package/src/core/Rollback.ts +28 -0
  168. package/src/core/UpdateChecker.ts +70 -0
  169. package/src/core/Verifier.ts +92 -0
  170. package/src/core/index.ts +11 -0
  171. package/src/index.ts +64 -0
  172. package/src/modal/SwiftPatchModal.tsx +657 -0
  173. package/src/modal/useSwiftPatchModal.ts +24 -0
  174. package/src/native/NativeSwiftPatch.ts +205 -0
  175. package/src/native/NativeSwiftPatchSpec.ts +139 -0
  176. package/src/types.ts +336 -0
  177. package/src/useSwiftPatch.ts +29 -0
  178. package/src/utils/api.ts +244 -0
  179. package/src/utils/device.ts +15 -0
  180. package/src/utils/logger.ts +29 -0
  181. package/src/utils/storage.ts +23 -0
  182. package/src/withSwiftPatch.tsx +41 -0
@@ -0,0 +1,611 @@
1
+ "use strict";
2
+
3
+ import React, { createContext, useContext, useEffect, useReducer, useCallback, useRef } from 'react';
4
+ import { AppState } from 'react-native';
5
+ import { UpdateStatus as Status, InstallMode, SwiftPatchErrorCode, EnvironmentMode } from './types';
6
+ import { DEFAULT_CONFIG, EVENT_POLL_INTERVAL_MS } from './constants';
7
+ import NativeSwiftPatch, { onDownloadProgress, onRollback, onVersionChanged } from './native/NativeSwiftPatch';
8
+ import { reportInstallStatus, logBulkEvents } from './utils/api';
9
+ import { logger } from './utils/logger';
10
+ import { UpdateChecker } from './core/UpdateChecker';
11
+ import { Downloader } from './core/Downloader';
12
+ import { Installer } from './core/Installer';
13
+ import { Rollback as RollbackModule } from './core/Rollback';
14
+
15
+ // Context
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ const SwiftPatchContext = /*#__PURE__*/createContext(null);
18
+
19
+ // State reducer
20
+
21
+ function reducer(state, action) {
22
+ switch (action.type) {
23
+ case 'SET_STATUS':
24
+ return {
25
+ ...state,
26
+ status: action.payload
27
+ };
28
+ case 'SET_DOWNLOAD_PROGRESS':
29
+ return {
30
+ ...state,
31
+ downloadProgress: action.payload
32
+ };
33
+ case 'SET_AVAILABLE_UPDATE':
34
+ return {
35
+ ...state,
36
+ availableUpdate: action.payload
37
+ };
38
+ case 'SET_ERROR':
39
+ return {
40
+ ...state,
41
+ error: action.payload,
42
+ status: action.payload ? Status.ERROR : state.status
43
+ };
44
+ case 'SET_RESTART_REQUIRED':
45
+ return {
46
+ ...state,
47
+ isRestartRequired: action.payload
48
+ };
49
+ case 'SET_LAST_CHECKED':
50
+ return {
51
+ ...state,
52
+ lastCheckedAt: action.payload
53
+ };
54
+ case 'SET_CURRENT_BUNDLE':
55
+ return {
56
+ ...state,
57
+ currentBundle: action.payload
58
+ };
59
+ case 'SET_SLOT_METADATA':
60
+ return {
61
+ ...state,
62
+ slotMetadata: action.payload
63
+ };
64
+ case 'SET_ENVIRONMENT':
65
+ return {
66
+ ...state,
67
+ environment: action.payload
68
+ };
69
+ default:
70
+ return state;
71
+ }
72
+ }
73
+ const initialState = {
74
+ status: Status.UP_TO_DATE,
75
+ downloadProgress: null,
76
+ currentBundle: null,
77
+ availableUpdate: null,
78
+ isRestartRequired: false,
79
+ error: null,
80
+ lastCheckedAt: null,
81
+ slotMetadata: null,
82
+ environment: EnvironmentMode.PRODUCTION
83
+ };
84
+
85
+ // Provider Props
86
+
87
+ /**
88
+ * SwiftPatch Provider Component
89
+ *
90
+ * Wrap your app with this provider to enable OTA updates
91
+ * with dual-slot architecture, crash detection, and event analytics.
92
+ */
93
+ export function SwiftPatchProvider({
94
+ config,
95
+ children
96
+ }) {
97
+ const mergedConfig = {
98
+ ...DEFAULT_CONFIG,
99
+ ...config
100
+ };
101
+ const [state, dispatch] = useReducer(reducer, initialState);
102
+ const lastCheckRef = useRef(0);
103
+ const isCheckingRef = useRef(false);
104
+ const configRef = useRef(mergedConfig);
105
+ configRef.current = mergedConfig;
106
+
107
+ // Core modules refs
108
+ const updateCheckerRef = useRef(null);
109
+ const downloaderRef = useRef(null);
110
+ const installerRef = useRef(null);
111
+ const rollbackModuleRef = useRef(null);
112
+ const eventPollIntervalRef = useRef(null);
113
+
114
+ // Initialize native module and core modules
115
+ useEffect(() => {
116
+ const init = async () => {
117
+ try {
118
+ await NativeSwiftPatch.initialize({
119
+ deploymentKey: mergedConfig.deploymentKey,
120
+ serverUrl: mergedConfig.serverUrl,
121
+ publicKey: mergedConfig.publicKey || null
122
+ });
123
+ NativeSwiftPatch.setDebugMode(mergedConfig.debug || false);
124
+ logger.setDebug(mergedConfig.debug || false);
125
+
126
+ // Mark app as mounted (for signal crash detection)
127
+ await NativeSwiftPatch.markMounted();
128
+
129
+ // Initialize core modules
130
+ updateCheckerRef.current = new UpdateChecker({
131
+ serverUrl: mergedConfig.serverUrl,
132
+ deploymentKey: mergedConfig.deploymentKey,
133
+ customHeaders: mergedConfig.customHeaders
134
+ });
135
+ downloaderRef.current = new Downloader();
136
+ installerRef.current = new Installer();
137
+ rollbackModuleRef.current = new RollbackModule();
138
+
139
+ // Get current bundle info
140
+ const currentBundle = await NativeSwiftPatch.getCurrentBundle();
141
+ if (currentBundle) {
142
+ dispatch({
143
+ type: 'SET_CURRENT_BUNDLE',
144
+ payload: currentBundle
145
+ });
146
+ dispatch({
147
+ type: 'SET_STATUS',
148
+ payload: Status.UP_TO_DATE
149
+ });
150
+ }
151
+
152
+ // Get slot metadata
153
+ const metadata = await NativeSwiftPatch.getSlotMetadata();
154
+ dispatch({
155
+ type: 'SET_SLOT_METADATA',
156
+ payload: metadata
157
+ });
158
+ dispatch({
159
+ type: 'SET_ENVIRONMENT',
160
+ payload: metadata.environment
161
+ });
162
+
163
+ // Check for pending install (temp hash set)
164
+ const hasPending = await NativeSwiftPatch.hasPendingInstall();
165
+ if (hasPending) {
166
+ dispatch({
167
+ type: 'SET_RESTART_REQUIRED',
168
+ payload: true
169
+ });
170
+ dispatch({
171
+ type: 'SET_STATUS',
172
+ payload: Status.RESTART_REQUIRED
173
+ });
174
+ }
175
+
176
+ // Record successful launch & auto-stabilize
177
+ if (currentBundle && !currentBundle.isOriginal) {
178
+ const launchCount = await NativeSwiftPatch.recordSuccessfulLaunch(currentBundle.hash);
179
+ const autoStabilizeThreshold = mergedConfig.autoStabilizeAfterLaunches || 0;
180
+ if (autoStabilizeThreshold > 0 && launchCount >= autoStabilizeThreshold) {
181
+ if (metadata.prod.currentSlot === 'NEW_SLOT') {
182
+ try {
183
+ await NativeSwiftPatch.stabilize();
184
+ const updatedMeta = await NativeSwiftPatch.getSlotMetadata();
185
+ dispatch({
186
+ type: 'SET_SLOT_METADATA',
187
+ payload: updatedMeta
188
+ });
189
+ logger.info('Auto-stabilized after', launchCount, 'successful launches');
190
+ } catch (_e) {
191
+ logger.warn('Auto-stabilization failed');
192
+ }
193
+ }
194
+ }
195
+ }
196
+ logger.info('SwiftPatch initialized (v2.0.0 with dual-slot architecture)');
197
+ } catch (error) {
198
+ const message = error instanceof Error ? error.message : 'Unknown initialization error';
199
+ logger.error('Failed to initialize SwiftPatch', error);
200
+ dispatch({
201
+ type: 'SET_ERROR',
202
+ payload: {
203
+ code: SwiftPatchErrorCode.CONFIG_ERROR,
204
+ message
205
+ }
206
+ });
207
+ }
208
+ };
209
+ init();
210
+
211
+ // Cleanup mount state on unmount
212
+ return () => {
213
+ NativeSwiftPatch.markUnmounted().catch(() => {});
214
+ };
215
+ }, [mergedConfig.deploymentKey, mergedConfig.serverUrl, mergedConfig.publicKey, mergedConfig.debug, mergedConfig.autoStabilizeAfterLaunches]);
216
+
217
+ // Event queue polling
218
+ useEffect(() => {
219
+ const pollEvents = async () => {
220
+ try {
221
+ const events = await NativeSwiftPatch.popEvents();
222
+ if (events && events.length > 0) {
223
+ const deviceId = await NativeSwiftPatch.getDeviceId();
224
+ const cfg = configRef.current;
225
+ const result = await logBulkEvents({
226
+ serverUrl: cfg.serverUrl,
227
+ deploymentKey: cfg.deploymentKey,
228
+ deviceId,
229
+ events: events,
230
+ customHeaders: cfg.customHeaders
231
+ });
232
+ if (result.acknowledged.length > 0) {
233
+ await NativeSwiftPatch.acknowledgeEvents(JSON.stringify(result.acknowledged));
234
+ }
235
+ }
236
+ } catch (_e) {
237
+ // Silent - event polling is non-critical
238
+ }
239
+ };
240
+ eventPollIntervalRef.current = setInterval(pollEvents, EVENT_POLL_INTERVAL_MS);
241
+ return () => {
242
+ if (eventPollIntervalRef.current) {
243
+ clearInterval(eventPollIntervalRef.current);
244
+ }
245
+ };
246
+ }, []);
247
+
248
+ // Subscribe to download progress
249
+ useEffect(() => {
250
+ const unsubscribe = onDownloadProgress(progress => {
251
+ dispatch({
252
+ type: 'SET_DOWNLOAD_PROGRESS',
253
+ payload: progress
254
+ });
255
+ });
256
+ return unsubscribe;
257
+ }, []);
258
+
259
+ // Subscribe to rollback events
260
+ useEffect(() => {
261
+ const unsubscribe = onRollback(reason => {
262
+ logger.warn('Rollback occurred:', reason);
263
+ dispatch({
264
+ type: 'SET_STATUS',
265
+ payload: Status.UP_TO_DATE
266
+ });
267
+ dispatch({
268
+ type: 'SET_AVAILABLE_UPDATE',
269
+ payload: null
270
+ });
271
+ dispatch({
272
+ type: 'SET_RESTART_REQUIRED',
273
+ payload: false
274
+ });
275
+ // Refresh metadata
276
+ NativeSwiftPatch.getSlotMetadata().then(meta => {
277
+ dispatch({
278
+ type: 'SET_SLOT_METADATA',
279
+ payload: meta
280
+ });
281
+ }).catch(() => {});
282
+ });
283
+ return unsubscribe;
284
+ }, []);
285
+
286
+ // Subscribe to version change events
287
+ useEffect(() => {
288
+ const unsubscribe = onVersionChanged(reason => {
289
+ logger.info('Version changed:', reason);
290
+ dispatch({
291
+ type: 'SET_STATUS',
292
+ payload: Status.UP_TO_DATE
293
+ });
294
+ dispatch({
295
+ type: 'SET_AVAILABLE_UPDATE',
296
+ payload: null
297
+ });
298
+ dispatch({
299
+ type: 'SET_RESTART_REQUIRED',
300
+ payload: false
301
+ });
302
+ NativeSwiftPatch.getSlotMetadata().then(meta => {
303
+ dispatch({
304
+ type: 'SET_SLOT_METADATA',
305
+ payload: meta
306
+ });
307
+ }).catch(() => {});
308
+ });
309
+ return unsubscribe;
310
+ }, []);
311
+
312
+ // Check for update
313
+ const checkForUpdate = useCallback(async () => {
314
+ if (isCheckingRef.current) return null;
315
+ if (!updateCheckerRef.current) return null;
316
+ isCheckingRef.current = true;
317
+ dispatch({
318
+ type: 'SET_STATUS',
319
+ payload: Status.CHECKING
320
+ });
321
+ dispatch({
322
+ type: 'SET_ERROR',
323
+ payload: null
324
+ });
325
+ try {
326
+ const result = await updateCheckerRef.current.check();
327
+ lastCheckRef.current = Date.now();
328
+ dispatch({
329
+ type: 'SET_LAST_CHECKED',
330
+ payload: new Date()
331
+ });
332
+ if (result.updateAvailable && result.release) {
333
+ dispatch({
334
+ type: 'SET_AVAILABLE_UPDATE',
335
+ payload: result.release
336
+ });
337
+ dispatch({
338
+ type: 'SET_STATUS',
339
+ payload: Status.UPDATE_AVAILABLE
340
+ });
341
+ return result.release;
342
+ } else {
343
+ dispatch({
344
+ type: 'SET_STATUS',
345
+ payload: Status.UP_TO_DATE
346
+ });
347
+ return null;
348
+ }
349
+ } catch (error) {
350
+ const message = error instanceof Error ? error.message : 'Failed to check for update';
351
+ dispatch({
352
+ type: 'SET_ERROR',
353
+ payload: {
354
+ code: SwiftPatchErrorCode.NETWORK_ERROR,
355
+ message
356
+ }
357
+ });
358
+ return null;
359
+ } finally {
360
+ isCheckingRef.current = false;
361
+ }
362
+ }, []);
363
+
364
+ // Check on resume
365
+ useEffect(() => {
366
+ if (!mergedConfig.checkOnResume) return;
367
+ const handleAppStateChange = nextState => {
368
+ if (nextState === 'active') {
369
+ const now = Date.now();
370
+ if (now - lastCheckRef.current >= (mergedConfig.checkInterval ?? 60_000)) {
371
+ checkForUpdate();
372
+ }
373
+ }
374
+ };
375
+ const subscription = AppState.addEventListener('change', handleAppStateChange);
376
+ return () => subscription.remove();
377
+ }, [mergedConfig.checkOnResume, mergedConfig.checkInterval, checkForUpdate]);
378
+
379
+ // Restart
380
+ const restart = useCallback(() => {
381
+ NativeSwiftPatch.restart();
382
+ }, []);
383
+
384
+ // Install update
385
+ const installUpdate = useCallback(async () => {
386
+ const update = state.availableUpdate;
387
+ if (!update) throw new Error('No update available to install');
388
+ dispatch({
389
+ type: 'SET_STATUS',
390
+ payload: Status.INSTALLING
391
+ });
392
+ try {
393
+ await NativeSwiftPatch.installUpdate(update.bundleHash);
394
+ dispatch({
395
+ type: 'SET_STATUS',
396
+ payload: Status.RESTART_REQUIRED
397
+ });
398
+ dispatch({
399
+ type: 'SET_RESTART_REQUIRED',
400
+ payload: true
401
+ });
402
+ const cfg = configRef.current;
403
+ await reportInstallStatus({
404
+ serverUrl: cfg.serverUrl,
405
+ releaseId: update.id,
406
+ status: 'installed',
407
+ deploymentKey: cfg.deploymentKey
408
+ });
409
+
410
+ // Auto-restart for immediate install mode
411
+ if (update.isMandatory && cfg.mandatoryInstallMode === InstallMode.IMMEDIATE || !update.isMandatory && cfg.installMode === InstallMode.IMMEDIATE) {
412
+ restart();
413
+ }
414
+ } catch (error) {
415
+ const message = error instanceof Error ? error.message : 'Failed to install update';
416
+ dispatch({
417
+ type: 'SET_ERROR',
418
+ payload: {
419
+ code: SwiftPatchErrorCode.INSTALL_ERROR,
420
+ message
421
+ }
422
+ });
423
+ }
424
+ }, [state.availableUpdate, restart]);
425
+
426
+ // Download update
427
+ const downloadUpdate = useCallback(async () => {
428
+ const update = state.availableUpdate;
429
+ if (!update) throw new Error('No update available to download');
430
+ if (!downloaderRef.current) throw new Error('Downloader not initialized');
431
+ dispatch({
432
+ type: 'SET_STATUS',
433
+ payload: Status.DOWNLOADING
434
+ });
435
+ dispatch({
436
+ type: 'SET_DOWNLOAD_PROGRESS',
437
+ payload: {
438
+ downloadedBytes: 0,
439
+ totalBytes: update.downloadSize,
440
+ percentage: 0
441
+ }
442
+ });
443
+ try {
444
+ await downloaderRef.current.downloadRelease(update);
445
+ dispatch({
446
+ type: 'SET_STATUS',
447
+ payload: Status.READY_TO_INSTALL
448
+ });
449
+ dispatch({
450
+ type: 'SET_DOWNLOAD_PROGRESS',
451
+ payload: null
452
+ });
453
+ const cfg = configRef.current;
454
+ await reportInstallStatus({
455
+ serverUrl: cfg.serverUrl,
456
+ releaseId: update.id,
457
+ status: 'downloaded',
458
+ deploymentKey: cfg.deploymentKey
459
+ });
460
+
461
+ // Auto-install for mandatory updates
462
+ if (update.isMandatory && cfg.mandatoryInstallMode === InstallMode.IMMEDIATE) {
463
+ await installUpdate();
464
+ }
465
+ } catch (error) {
466
+ const message = error instanceof Error ? error.message : 'Failed to download update';
467
+ dispatch({
468
+ type: 'SET_ERROR',
469
+ payload: {
470
+ code: SwiftPatchErrorCode.DOWNLOAD_ERROR,
471
+ message
472
+ }
473
+ });
474
+ dispatch({
475
+ type: 'SET_DOWNLOAD_PROGRESS',
476
+ payload: null
477
+ });
478
+ }
479
+ }, [state.availableUpdate, installUpdate]);
480
+
481
+ // Rollback
482
+ const rollback = useCallback(async () => {
483
+ await NativeSwiftPatch.rollback();
484
+ dispatch({
485
+ type: 'SET_STATUS',
486
+ payload: Status.UP_TO_DATE
487
+ });
488
+ dispatch({
489
+ type: 'SET_AVAILABLE_UPDATE',
490
+ payload: null
491
+ });
492
+ dispatch({
493
+ type: 'SET_RESTART_REQUIRED',
494
+ payload: false
495
+ });
496
+ const meta = await NativeSwiftPatch.getSlotMetadata();
497
+ dispatch({
498
+ type: 'SET_SLOT_METADATA',
499
+ payload: meta
500
+ });
501
+ }, []);
502
+
503
+ // Clear pending
504
+ const clearPendingUpdate = useCallback(async () => {
505
+ await NativeSwiftPatch.clearPendingUpdate();
506
+ dispatch({
507
+ type: 'SET_STATUS',
508
+ payload: Status.UP_TO_DATE
509
+ });
510
+ dispatch({
511
+ type: 'SET_AVAILABLE_UPDATE',
512
+ payload: null
513
+ });
514
+ dispatch({
515
+ type: 'SET_RESTART_REQUIRED',
516
+ payload: false
517
+ });
518
+ }, []);
519
+
520
+ // Get current bundle
521
+ const getCurrentBundle = useCallback(async () => {
522
+ return NativeSwiftPatch.getCurrentBundle();
523
+ }, []);
524
+
525
+ // Stabilize (promote NEW → STABLE)
526
+ const stabilize = useCallback(async () => {
527
+ const meta = await NativeSwiftPatch.stabilize();
528
+ dispatch({
529
+ type: 'SET_SLOT_METADATA',
530
+ payload: meta
531
+ });
532
+ return meta;
533
+ }, []);
534
+
535
+ // Switch environment
536
+ const switchEnvironment = useCallback(async env => {
537
+ const meta = await NativeSwiftPatch.switchEnvironment(env);
538
+ dispatch({
539
+ type: 'SET_ENVIRONMENT',
540
+ payload: env
541
+ });
542
+ dispatch({
543
+ type: 'SET_SLOT_METADATA',
544
+ payload: meta
545
+ });
546
+ // Refresh current bundle info for the new environment
547
+ const bundle = await NativeSwiftPatch.getCurrentBundle();
548
+ dispatch({
549
+ type: 'SET_CURRENT_BUNDLE',
550
+ payload: bundle
551
+ });
552
+ return meta;
553
+ }, []);
554
+
555
+ // Get slot metadata
556
+ const getSlotMetadata = useCallback(async () => {
557
+ const meta = await NativeSwiftPatch.getSlotMetadata();
558
+ dispatch({
559
+ type: 'SET_SLOT_METADATA',
560
+ payload: meta
561
+ });
562
+ return meta;
563
+ }, []);
564
+
565
+ // Mark mounted
566
+ const markMounted = useCallback(() => {
567
+ NativeSwiftPatch.markMounted().catch(() => {});
568
+ }, []);
569
+
570
+ // Download stage bundle
571
+ const downloadStageBundle = useCallback(async (url, hash) => {
572
+ await NativeSwiftPatch.downloadStageBundle(url, hash);
573
+ const meta = await NativeSwiftPatch.getSlotMetadata();
574
+ dispatch({
575
+ type: 'SET_SLOT_METADATA',
576
+ payload: meta
577
+ });
578
+ }, []);
579
+ const contextValue = {
580
+ ...state,
581
+ checkForUpdate,
582
+ downloadUpdate,
583
+ installUpdate,
584
+ restart,
585
+ rollback,
586
+ clearPendingUpdate,
587
+ getCurrentBundle,
588
+ stabilize,
589
+ switchEnvironment,
590
+ getSlotMetadata,
591
+ markMounted,
592
+ downloadStageBundle
593
+ };
594
+ return /*#__PURE__*/_jsx(SwiftPatchContext.Provider, {
595
+ value: contextValue,
596
+ children: children
597
+ });
598
+ }
599
+
600
+ /**
601
+ * Hook to access SwiftPatch context.
602
+ * Must be used within SwiftPatchProvider.
603
+ */
604
+ export function useSwiftPatchContext() {
605
+ const context = useContext(SwiftPatchContext);
606
+ if (!context) {
607
+ throw new Error('useSwiftPatch must be used within a SwiftPatchProvider');
608
+ }
609
+ return context;
610
+ }
611
+ //# sourceMappingURL=SwiftPatchProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useContext","useEffect","useReducer","useCallback","useRef","AppState","UpdateStatus","Status","InstallMode","SwiftPatchErrorCode","EnvironmentMode","DEFAULT_CONFIG","EVENT_POLL_INTERVAL_MS","NativeSwiftPatch","onDownloadProgress","onRollback","onVersionChanged","reportInstallStatus","logBulkEvents","logger","UpdateChecker","Downloader","Installer","Rollback","RollbackModule","jsx","_jsx","SwiftPatchContext","reducer","state","action","type","status","payload","downloadProgress","availableUpdate","error","ERROR","isRestartRequired","lastCheckedAt","currentBundle","slotMetadata","environment","initialState","UP_TO_DATE","PRODUCTION","SwiftPatchProvider","config","children","mergedConfig","dispatch","lastCheckRef","isCheckingRef","configRef","current","updateCheckerRef","downloaderRef","installerRef","rollbackModuleRef","eventPollIntervalRef","init","initialize","deploymentKey","serverUrl","publicKey","setDebugMode","debug","setDebug","markMounted","customHeaders","getCurrentBundle","metadata","getSlotMetadata","hasPending","hasPendingInstall","RESTART_REQUIRED","isOriginal","launchCount","recordSuccessfulLaunch","hash","autoStabilizeThreshold","autoStabilizeAfterLaunches","prod","currentSlot","stabilize","updatedMeta","info","_e","warn","message","Error","code","CONFIG_ERROR","markUnmounted","catch","pollEvents","events","popEvents","length","deviceId","getDeviceId","cfg","result","acknowledged","acknowledgeEvents","JSON","stringify","setInterval","clearInterval","unsubscribe","progress","reason","then","meta","checkForUpdate","CHECKING","check","Date","now","updateAvailable","release","UPDATE_AVAILABLE","NETWORK_ERROR","checkOnResume","handleAppStateChange","nextState","checkInterval","subscription","addEventListener","remove","restart","installUpdate","update","INSTALLING","bundleHash","releaseId","id","isMandatory","mandatoryInstallMode","IMMEDIATE","installMode","INSTALL_ERROR","downloadUpdate","DOWNLOADING","downloadedBytes","totalBytes","downloadSize","percentage","downloadRelease","READY_TO_INSTALL","DOWNLOAD_ERROR","rollback","clearPendingUpdate","switchEnvironment","env","bundle","downloadStageBundle","url","contextValue","Provider","value","useSwiftPatchContext","context"],"sourceRoot":"../../src","sources":["SwiftPatchProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ import { InstallMode } from './types';
4
+ /**
5
+ * Default SDK configuration values
6
+ */
7
+ export const DEFAULT_CONFIG = {
8
+ serverUrl: 'https://orbitplus.hyperbrainlabs.com/api/v1',
9
+ checkOnResume: true,
10
+ checkInterval: 60_000,
11
+ installMode: InstallMode.ON_NEXT_RESTART,
12
+ mandatoryInstallMode: InstallMode.IMMEDIATE,
13
+ debug: false,
14
+ customHeaders: {},
15
+ publicKey: null,
16
+ autoStabilizeAfterLaunches: 0,
17
+ sdkPin: null
18
+ };
19
+
20
+ /**
21
+ * Native event names emitted from native modules
22
+ */
23
+ export const NativeEvents = {
24
+ DOWNLOAD_PROGRESS: 'SwiftPatch:downloadProgress',
25
+ INSTALL_COMPLETE: 'SwiftPatch:installComplete',
26
+ ROLLBACK_OCCURRED: 'SwiftPatch:rollbackOccurred',
27
+ ERROR: 'SwiftPatch:error',
28
+ VERSION_CHANGED: 'SwiftPatch:versionChanged',
29
+ NATIVE_EVENT: 'SwiftPatch:event'
30
+ };
31
+
32
+ /**
33
+ * SDK version identifier
34
+ */
35
+ export const SDK_VERSION = '2.0.0';
36
+
37
+ /**
38
+ * Crash detection window in milliseconds
39
+ */
40
+ export const CRASH_DETECTION_WINDOW_MS = 10_000;
41
+
42
+ /**
43
+ * Event polling interval (ms)
44
+ */
45
+ export const EVENT_POLL_INTERVAL_MS = 3_000;
46
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["InstallMode","DEFAULT_CONFIG","serverUrl","checkOnResume","checkInterval","installMode","ON_NEXT_RESTART","mandatoryInstallMode","IMMEDIATE","debug","customHeaders","publicKey","autoStabilizeAfterLaunches","sdkPin","NativeEvents","DOWNLOAD_PROGRESS","INSTALL_COMPLETE","ROLLBACK_OCCURRED","ERROR","VERSION_CHANGED","NATIVE_EVENT","SDK_VERSION","CRASH_DETECTION_WINDOW_MS","EVENT_POLL_INTERVAL_MS"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,SAAS;AAGrC;AACA;AACA;AACA,OAAO,MAAMC,cAIZ,GAAG;EACFC,SAAS,EAAE,6CAA6C;EACxDC,aAAa,EAAE,IAAI;EACnBC,aAAa,EAAE,MAAM;EACrBC,WAAW,EAAEL,WAAW,CAACM,eAAe;EACxCC,oBAAoB,EAAEP,WAAW,CAACQ,SAAS;EAC3CC,KAAK,EAAE,KAAK;EACZC,aAAa,EAAE,CAAC,CAAC;EACjBC,SAAS,EAAE,IAAI;EACfC,0BAA0B,EAAE,CAAC;EAC7BC,MAAM,EAAE;AACV,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAG;EAC1BC,iBAAiB,EAAE,6BAA6B;EAChDC,gBAAgB,EAAE,4BAA4B;EAC9CC,iBAAiB,EAAE,6BAA6B;EAChDC,KAAK,EAAE,kBAAkB;EACzBC,eAAe,EAAE,2BAA2B;EAC5CC,YAAY,EAAE;AAChB,CAAU;;AAEV;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAG,OAAO;;AAElC;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAG,MAAM;;AAE/C;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG,KAAK","ignoreList":[]}