@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.
- package/README.md +430 -0
- package/android/build.gradle +105 -0
- package/android/src/main/AndroidManifest.xml +6 -0
- package/android/src/main/java/com/swiftpatch/BundleManager.kt +107 -0
- package/android/src/main/java/com/swiftpatch/CrashDetector.kt +79 -0
- package/android/src/main/java/com/swiftpatch/CryptoVerifier.kt +69 -0
- package/android/src/main/java/com/swiftpatch/DownloadManager.kt +120 -0
- package/android/src/main/java/com/swiftpatch/EventQueue.kt +86 -0
- package/android/src/main/java/com/swiftpatch/FileUtils.kt +60 -0
- package/android/src/main/java/com/swiftpatch/PatchApplier.kt +60 -0
- package/android/src/main/java/com/swiftpatch/SignalCrashHandler.kt +84 -0
- package/android/src/main/java/com/swiftpatch/SlotManager.kt +299 -0
- package/android/src/main/java/com/swiftpatch/SwiftPatchModule.kt +630 -0
- package/android/src/main/java/com/swiftpatch/SwiftPatchPackage.kt +21 -0
- package/android/src/main/jni/CMakeLists.txt +12 -0
- package/android/src/main/jni/bspatch.c +188 -0
- package/android/src/main/jni/bspatch.h +57 -0
- package/android/src/main/jni/bspatch_jni.c +28 -0
- package/ios/Libraries/bspatch/bspatch.c +188 -0
- package/ios/Libraries/bspatch/bspatch.h +50 -0
- package/ios/Libraries/bspatch/module.modulemap +4 -0
- package/ios/SwiftPatch/BundleManager.swift +113 -0
- package/ios/SwiftPatch/CrashDetector.swift +71 -0
- package/ios/SwiftPatch/CryptoVerifier.swift +70 -0
- package/ios/SwiftPatch/DownloadManager.swift +125 -0
- package/ios/SwiftPatch/EventQueue.swift +116 -0
- package/ios/SwiftPatch/FileUtils.swift +38 -0
- package/ios/SwiftPatch/PatchApplier.swift +41 -0
- package/ios/SwiftPatch/SignalCrashHandler.swift +129 -0
- package/ios/SwiftPatch/SlotManager.swift +360 -0
- package/ios/SwiftPatch/SwiftPatchModule.m +56 -0
- package/ios/SwiftPatch/SwiftPatchModule.swift +621 -0
- package/lib/commonjs/SwiftPatchCore.js +140 -0
- package/lib/commonjs/SwiftPatchCore.js.map +1 -0
- package/lib/commonjs/SwiftPatchProvider.js +617 -0
- package/lib/commonjs/SwiftPatchProvider.js.map +1 -0
- package/lib/commonjs/constants.js +50 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/core/Downloader.js +63 -0
- package/lib/commonjs/core/Downloader.js.map +1 -0
- package/lib/commonjs/core/Installer.js +46 -0
- package/lib/commonjs/core/Installer.js.map +1 -0
- package/lib/commonjs/core/Rollback.js +36 -0
- package/lib/commonjs/core/Rollback.js.map +1 -0
- package/lib/commonjs/core/UpdateChecker.js +57 -0
- package/lib/commonjs/core/UpdateChecker.js.map +1 -0
- package/lib/commonjs/core/Verifier.js +82 -0
- package/lib/commonjs/core/Verifier.js.map +1 -0
- package/lib/commonjs/core/index.js +41 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/index.js +154 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/modal/SwiftPatchModal.js +667 -0
- package/lib/commonjs/modal/SwiftPatchModal.js.map +1 -0
- package/lib/commonjs/modal/useSwiftPatchModal.js +26 -0
- package/lib/commonjs/modal/useSwiftPatchModal.js.map +1 -0
- package/lib/commonjs/native/NativeSwiftPatch.js +85 -0
- package/lib/commonjs/native/NativeSwiftPatch.js.map +1 -0
- package/lib/commonjs/native/NativeSwiftPatchSpec.js +15 -0
- package/lib/commonjs/native/NativeSwiftPatchSpec.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types.js +126 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/useSwiftPatch.js +31 -0
- package/lib/commonjs/useSwiftPatch.js.map +1 -0
- package/lib/commonjs/utils/api.js +206 -0
- package/lib/commonjs/utils/api.js.map +1 -0
- package/lib/commonjs/utils/device.js +23 -0
- package/lib/commonjs/utils/device.js.map +1 -0
- package/lib/commonjs/utils/logger.js +30 -0
- package/lib/commonjs/utils/logger.js.map +1 -0
- package/lib/commonjs/utils/storage.js +31 -0
- package/lib/commonjs/utils/storage.js.map +1 -0
- package/lib/commonjs/withSwiftPatch.js +42 -0
- package/lib/commonjs/withSwiftPatch.js.map +1 -0
- package/lib/module/SwiftPatchCore.js +135 -0
- package/lib/module/SwiftPatchCore.js.map +1 -0
- package/lib/module/SwiftPatchProvider.js +611 -0
- package/lib/module/SwiftPatchProvider.js.map +1 -0
- package/lib/module/constants.js +46 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/core/Downloader.js +57 -0
- package/lib/module/core/Downloader.js.map +1 -0
- package/lib/module/core/Installer.js +41 -0
- package/lib/module/core/Installer.js.map +1 -0
- package/lib/module/core/Rollback.js +31 -0
- package/lib/module/core/Rollback.js.map +1 -0
- package/lib/module/core/UpdateChecker.js +51 -0
- package/lib/module/core/UpdateChecker.js.map +1 -0
- package/lib/module/core/Verifier.js +76 -0
- package/lib/module/core/Verifier.js.map +1 -0
- package/lib/module/core/index.js +8 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/index.js +34 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/modal/SwiftPatchModal.js +661 -0
- package/lib/module/modal/SwiftPatchModal.js.map +1 -0
- package/lib/module/modal/useSwiftPatchModal.js +22 -0
- package/lib/module/modal/useSwiftPatchModal.js.map +1 -0
- package/lib/module/native/NativeSwiftPatch.js +78 -0
- package/lib/module/native/NativeSwiftPatch.js.map +1 -0
- package/lib/module/native/NativeSwiftPatchSpec.js +12 -0
- package/lib/module/native/NativeSwiftPatchSpec.js.map +1 -0
- package/lib/module/types.js +139 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useSwiftPatch.js +26 -0
- package/lib/module/useSwiftPatch.js.map +1 -0
- package/lib/module/utils/api.js +197 -0
- package/lib/module/utils/api.js.map +1 -0
- package/lib/module/utils/device.js +18 -0
- package/lib/module/utils/device.js.map +1 -0
- package/lib/module/utils/logger.js +26 -0
- package/lib/module/utils/logger.js.map +1 -0
- package/lib/module/utils/storage.js +24 -0
- package/lib/module/utils/storage.js.map +1 -0
- package/lib/module/withSwiftPatch.js +37 -0
- package/lib/module/withSwiftPatch.js.map +1 -0
- package/lib/typescript/SwiftPatchCore.d.ts +64 -0
- package/lib/typescript/SwiftPatchCore.d.ts.map +1 -0
- package/lib/typescript/SwiftPatchProvider.d.ts +22 -0
- package/lib/typescript/SwiftPatchProvider.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +33 -0
- package/lib/typescript/constants.d.ts.map +1 -0
- package/lib/typescript/core/Downloader.d.ts +34 -0
- package/lib/typescript/core/Downloader.d.ts.map +1 -0
- package/lib/typescript/core/Installer.d.ts +25 -0
- package/lib/typescript/core/Installer.d.ts.map +1 -0
- package/lib/typescript/core/Rollback.d.ts +18 -0
- package/lib/typescript/core/Rollback.d.ts.map +1 -0
- package/lib/typescript/core/UpdateChecker.d.ts +27 -0
- package/lib/typescript/core/UpdateChecker.d.ts.map +1 -0
- package/lib/typescript/core/Verifier.d.ts +31 -0
- package/lib/typescript/core/Verifier.d.ts.map +1 -0
- package/lib/typescript/core/index.d.ts +8 -0
- package/lib/typescript/core/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +13 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/modal/SwiftPatchModal.d.ts +11 -0
- package/lib/typescript/modal/SwiftPatchModal.d.ts.map +1 -0
- package/lib/typescript/modal/useSwiftPatchModal.d.ts +7 -0
- package/lib/typescript/modal/useSwiftPatchModal.d.ts.map +1 -0
- package/lib/typescript/native/NativeSwiftPatch.d.ts +61 -0
- package/lib/typescript/native/NativeSwiftPatch.d.ts.map +1 -0
- package/lib/typescript/native/NativeSwiftPatchSpec.d.ts +67 -0
- package/lib/typescript/native/NativeSwiftPatchSpec.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +266 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/useSwiftPatch.d.ts +12 -0
- package/lib/typescript/useSwiftPatch.d.ts.map +1 -0
- package/lib/typescript/utils/api.d.ts +87 -0
- package/lib/typescript/utils/api.d.ts.map +1 -0
- package/lib/typescript/utils/device.d.ts +9 -0
- package/lib/typescript/utils/device.d.ts.map +1 -0
- package/lib/typescript/utils/logger.d.ts +8 -0
- package/lib/typescript/utils/logger.d.ts.map +1 -0
- package/lib/typescript/utils/storage.d.ts +14 -0
- package/lib/typescript/utils/storage.d.ts.map +1 -0
- package/lib/typescript/withSwiftPatch.d.ts +12 -0
- package/lib/typescript/withSwiftPatch.d.ts.map +1 -0
- package/package.json +99 -0
- package/react-native-swiftpatch.podspec +50 -0
- package/src/SwiftPatchCore.ts +148 -0
- package/src/SwiftPatchProvider.tsx +514 -0
- package/src/constants.ts +49 -0
- package/src/core/Downloader.ts +74 -0
- package/src/core/Installer.ts +38 -0
- package/src/core/Rollback.ts +28 -0
- package/src/core/UpdateChecker.ts +70 -0
- package/src/core/Verifier.ts +92 -0
- package/src/core/index.ts +11 -0
- package/src/index.ts +64 -0
- package/src/modal/SwiftPatchModal.tsx +657 -0
- package/src/modal/useSwiftPatchModal.ts +24 -0
- package/src/native/NativeSwiftPatch.ts +205 -0
- package/src/native/NativeSwiftPatchSpec.ts +139 -0
- package/src/types.ts +336 -0
- package/src/useSwiftPatch.ts +29 -0
- package/src/utils/api.ts +244 -0
- package/src/utils/device.ts +15 -0
- package/src/utils/logger.ts +29 -0
- package/src/utils/storage.ts +23 -0
- package/src/withSwiftPatch.tsx +41 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SwiftPatch SDK Configuration
|
|
3
|
+
*/
|
|
4
|
+
export interface SwiftPatchConfig {
|
|
5
|
+
/** Deployment key from SwiftPatch dashboard */
|
|
6
|
+
deploymentKey: string;
|
|
7
|
+
/** Server URL (defaults to cloud) */
|
|
8
|
+
serverUrl?: string;
|
|
9
|
+
/** Check for updates when app comes to foreground */
|
|
10
|
+
checkOnResume?: boolean;
|
|
11
|
+
/** Minimum interval between update checks (ms) */
|
|
12
|
+
checkInterval?: number;
|
|
13
|
+
/** Install mode for non-mandatory updates */
|
|
14
|
+
installMode?: InstallMode;
|
|
15
|
+
/** Install mode for mandatory updates */
|
|
16
|
+
mandatoryInstallMode?: InstallMode;
|
|
17
|
+
/** Enable debug logging */
|
|
18
|
+
debug?: boolean;
|
|
19
|
+
/** Custom headers for API requests */
|
|
20
|
+
customHeaders?: Record<string, string>;
|
|
21
|
+
/** Public key for bundle verification (optional) */
|
|
22
|
+
publicKey?: string;
|
|
23
|
+
/** Auto-stabilize after N successful launches (0 = manual only) */
|
|
24
|
+
autoStabilizeAfterLaunches?: number;
|
|
25
|
+
/** SDK PIN for in-app dashboard access (optional) */
|
|
26
|
+
sdkPin?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* When to install downloaded updates
|
|
30
|
+
*/
|
|
31
|
+
export declare enum InstallMode {
|
|
32
|
+
/** Install immediately and restart */
|
|
33
|
+
IMMEDIATE = "immediate",
|
|
34
|
+
/** Install on next app restart */
|
|
35
|
+
ON_NEXT_RESTART = "onNextRestart",
|
|
36
|
+
/** Install on next resume from background */
|
|
37
|
+
ON_NEXT_RESUME = "onNextResume"
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Current update status
|
|
41
|
+
*/
|
|
42
|
+
export declare enum UpdateStatus {
|
|
43
|
+
/** Checking for updates */
|
|
44
|
+
CHECKING = "checking",
|
|
45
|
+
/** No update available */
|
|
46
|
+
UP_TO_DATE = "upToDate",
|
|
47
|
+
/** Update available, not downloaded */
|
|
48
|
+
UPDATE_AVAILABLE = "updateAvailable",
|
|
49
|
+
/** Downloading update */
|
|
50
|
+
DOWNLOADING = "downloading",
|
|
51
|
+
/** Download complete, ready to install */
|
|
52
|
+
READY_TO_INSTALL = "readyToInstall",
|
|
53
|
+
/** Installing update */
|
|
54
|
+
INSTALLING = "installing",
|
|
55
|
+
/** Update installed, restart required */
|
|
56
|
+
RESTART_REQUIRED = "restartRequired",
|
|
57
|
+
/** Error occurred */
|
|
58
|
+
ERROR = "error"
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Slot states for the dual-slot architecture
|
|
62
|
+
*/
|
|
63
|
+
export declare enum SlotState {
|
|
64
|
+
DEFAULT_SLOT = "DEFAULT_SLOT",
|
|
65
|
+
STABLE_SLOT = "STABLE_SLOT",
|
|
66
|
+
NEW_SLOT = "NEW_SLOT"
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Environment mode
|
|
70
|
+
*/
|
|
71
|
+
export declare enum EnvironmentMode {
|
|
72
|
+
PRODUCTION = "PROD",
|
|
73
|
+
STAGING = "STAGE"
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Information about an available release
|
|
77
|
+
*/
|
|
78
|
+
export interface ReleaseInfo {
|
|
79
|
+
/** Unique release ID */
|
|
80
|
+
id: string;
|
|
81
|
+
/** Semantic version (e.g., "1.2.3") */
|
|
82
|
+
version: string;
|
|
83
|
+
/** Release notes */
|
|
84
|
+
releaseNote: string | null;
|
|
85
|
+
/** Whether update is mandatory */
|
|
86
|
+
isMandatory: boolean;
|
|
87
|
+
/** SHA-256 hash of the bundle */
|
|
88
|
+
bundleHash: string;
|
|
89
|
+
/** Download URL (patch or full bundle) */
|
|
90
|
+
downloadUrl: string;
|
|
91
|
+
/** Size in bytes */
|
|
92
|
+
downloadSize: number;
|
|
93
|
+
/** Whether this is a patch (true) or full bundle (false) */
|
|
94
|
+
isPatch: boolean;
|
|
95
|
+
/** Cryptographic signature (if signing enabled) */
|
|
96
|
+
signature?: string;
|
|
97
|
+
/** Release timestamp */
|
|
98
|
+
releasedAt: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Current bundle information
|
|
102
|
+
*/
|
|
103
|
+
export interface BundleInfo {
|
|
104
|
+
/** SHA-256 hash of current bundle */
|
|
105
|
+
hash: string;
|
|
106
|
+
/** Version string */
|
|
107
|
+
version: string;
|
|
108
|
+
/** When bundle was installed */
|
|
109
|
+
installedAt: string;
|
|
110
|
+
/** Whether this is the original bundled bundle */
|
|
111
|
+
isOriginal: boolean;
|
|
112
|
+
/** Current slot state */
|
|
113
|
+
slot: SlotState;
|
|
114
|
+
/** Current environment */
|
|
115
|
+
environment: EnvironmentMode;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Slot metadata for the dual-slot system
|
|
119
|
+
*/
|
|
120
|
+
export interface SlotMetadata {
|
|
121
|
+
environment: EnvironmentMode;
|
|
122
|
+
prod: {
|
|
123
|
+
currentSlot: SlotState;
|
|
124
|
+
newHash: string | null;
|
|
125
|
+
stableHash: string | null;
|
|
126
|
+
tempHash: string | null;
|
|
127
|
+
};
|
|
128
|
+
stage: {
|
|
129
|
+
newHash: string | null;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Download progress information
|
|
134
|
+
*/
|
|
135
|
+
export interface DownloadProgress {
|
|
136
|
+
/** Bytes downloaded so far */
|
|
137
|
+
downloadedBytes: number;
|
|
138
|
+
/** Total bytes to download */
|
|
139
|
+
totalBytes: number;
|
|
140
|
+
/** Progress percentage (0-100) */
|
|
141
|
+
percentage: number;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* SDK event types for analytics
|
|
145
|
+
*/
|
|
146
|
+
export declare enum SwiftPatchEventType {
|
|
147
|
+
DOWNLOAD_PROD_STARTED = "DOWNLOAD_PROD_STARTED",
|
|
148
|
+
DOWNLOAD_PROD_COMPLETED = "DOWNLOAD_PROD_COMPLETED",
|
|
149
|
+
DOWNLOAD_PROD_FAILED = "DOWNLOAD_PROD_FAILED",
|
|
150
|
+
INSTALLED_PROD = "INSTALLED_PROD",
|
|
151
|
+
ROLLBACK_PROD = "ROLLBACK_PROD",
|
|
152
|
+
STABILIZE_PROD = "STABILIZE_PROD",
|
|
153
|
+
CORRUPTION_PROD = "CORRUPTION_PROD",
|
|
154
|
+
DOWNLOAD_STAGE_STARTED = "DOWNLOAD_STAGE_STARTED",
|
|
155
|
+
DOWNLOAD_STAGE_COMPLETED = "DOWNLOAD_STAGE_COMPLETED",
|
|
156
|
+
DOWNLOAD_STAGE_FAILED = "DOWNLOAD_STAGE_FAILED",
|
|
157
|
+
INSTALLED_STAGE = "INSTALLED_STAGE",
|
|
158
|
+
SYNC_ERROR = "SYNC_ERROR",
|
|
159
|
+
VERSION_CHANGED = "VERSION_CHANGED",
|
|
160
|
+
CRASH_DETECTED = "CRASH_DETECTED"
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* A queued SDK event
|
|
164
|
+
*/
|
|
165
|
+
export interface SwiftPatchEvent {
|
|
166
|
+
id: string;
|
|
167
|
+
eventType: SwiftPatchEventType;
|
|
168
|
+
timestamp: number;
|
|
169
|
+
releaseHash?: string;
|
|
170
|
+
errorMessage?: string;
|
|
171
|
+
metadata?: Record<string, unknown>;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* SwiftPatch state exposed via hook
|
|
175
|
+
*/
|
|
176
|
+
export interface SwiftPatchState {
|
|
177
|
+
/** Current update status */
|
|
178
|
+
status: UpdateStatus;
|
|
179
|
+
/** Download progress (if downloading) */
|
|
180
|
+
downloadProgress: DownloadProgress | null;
|
|
181
|
+
/** Currently installed bundle info */
|
|
182
|
+
currentBundle: BundleInfo | null;
|
|
183
|
+
/** Available update info */
|
|
184
|
+
availableUpdate: ReleaseInfo | null;
|
|
185
|
+
/** Whether restart is required to apply update */
|
|
186
|
+
isRestartRequired: boolean;
|
|
187
|
+
/** Last error (if status is ERROR) */
|
|
188
|
+
error: SwiftPatchError | null;
|
|
189
|
+
/** Last check timestamp */
|
|
190
|
+
lastCheckedAt: Date | null;
|
|
191
|
+
/** Current slot metadata */
|
|
192
|
+
slotMetadata: SlotMetadata | null;
|
|
193
|
+
/** Current environment */
|
|
194
|
+
environment: EnvironmentMode;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* SwiftPatch actions exposed via hook
|
|
198
|
+
*/
|
|
199
|
+
export interface SwiftPatchActions {
|
|
200
|
+
/** Check for available updates */
|
|
201
|
+
checkForUpdate: () => Promise<ReleaseInfo | null>;
|
|
202
|
+
/** Download available update */
|
|
203
|
+
downloadUpdate: () => Promise<void>;
|
|
204
|
+
/** Install downloaded update */
|
|
205
|
+
installUpdate: () => Promise<void>;
|
|
206
|
+
/** Restart app to apply update */
|
|
207
|
+
restart: () => void;
|
|
208
|
+
/** Manually rollback to previous version */
|
|
209
|
+
rollback: () => Promise<void>;
|
|
210
|
+
/** Clear pending update */
|
|
211
|
+
clearPendingUpdate: () => Promise<void>;
|
|
212
|
+
/** Get current bundle info */
|
|
213
|
+
getCurrentBundle: () => Promise<BundleInfo | null>;
|
|
214
|
+
/** Stabilize current bundle (promote NEW → STABLE) */
|
|
215
|
+
stabilize: () => Promise<SlotMetadata>;
|
|
216
|
+
/** Switch environment (PROD / STAGE) */
|
|
217
|
+
switchEnvironment: (env: EnvironmentMode) => Promise<SlotMetadata>;
|
|
218
|
+
/** Get slot metadata */
|
|
219
|
+
getSlotMetadata: () => Promise<SlotMetadata>;
|
|
220
|
+
/** Mark app as mounted (for crash detection) */
|
|
221
|
+
markMounted: () => void;
|
|
222
|
+
/** Download a stage bundle for testing */
|
|
223
|
+
downloadStageBundle: (url: string, hash: string) => Promise<void>;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Combined hook return type
|
|
227
|
+
*/
|
|
228
|
+
export type UseSwiftPatchReturn = SwiftPatchState & SwiftPatchActions;
|
|
229
|
+
/**
|
|
230
|
+
* Simplified update hook return type
|
|
231
|
+
*/
|
|
232
|
+
export interface UseSwiftPatchUpdateReturn {
|
|
233
|
+
isRestartRequired: boolean;
|
|
234
|
+
newReleaseBundle: ReleaseInfo | null;
|
|
235
|
+
currentBundle: BundleInfo | null;
|
|
236
|
+
status: UpdateStatus;
|
|
237
|
+
restart: () => void;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* SwiftPatch error
|
|
241
|
+
*/
|
|
242
|
+
export interface SwiftPatchError {
|
|
243
|
+
code: SwiftPatchErrorCode;
|
|
244
|
+
message: string;
|
|
245
|
+
details?: unknown;
|
|
246
|
+
}
|
|
247
|
+
export declare enum SwiftPatchErrorCode {
|
|
248
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
249
|
+
DOWNLOAD_ERROR = "DOWNLOAD_ERROR",
|
|
250
|
+
VERIFICATION_ERROR = "VERIFICATION_ERROR",
|
|
251
|
+
PATCH_ERROR = "PATCH_ERROR",
|
|
252
|
+
INSTALL_ERROR = "INSTALL_ERROR",
|
|
253
|
+
CONFIG_ERROR = "CONFIG_ERROR",
|
|
254
|
+
STABILIZE_ERROR = "STABILIZE_ERROR",
|
|
255
|
+
ENVIRONMENT_ERROR = "ENVIRONMENT_ERROR",
|
|
256
|
+
UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Modal hook return type
|
|
260
|
+
*/
|
|
261
|
+
export interface UseSwiftPatchModalReturn {
|
|
262
|
+
showModal: () => void;
|
|
263
|
+
hideModal: () => void;
|
|
264
|
+
isModalVisible: boolean;
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { UseSwiftPatchReturn, UseSwiftPatchUpdateReturn } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Main hook for accessing all SwiftPatch state and actions.
|
|
4
|
+
* Must be used within SwiftPatchProvider.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useSwiftPatch(): UseSwiftPatchReturn;
|
|
7
|
+
/**
|
|
8
|
+
* Simplified hook that only exposes update-related state.
|
|
9
|
+
* Useful for showing update banners or restart prompts.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useSwiftPatchUpdate(): UseSwiftPatchUpdateReturn;
|
|
12
|
+
//# sourceMappingURL=useSwiftPatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSwiftPatch.d.ts","sourceRoot":"","sources":["../../src/useSwiftPatch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAEnD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,yBAAyB,CAU/D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { ReleaseInfo, SwiftPatchEvent } from '../types';
|
|
2
|
+
interface CheckUpdateParams {
|
|
3
|
+
serverUrl: string;
|
|
4
|
+
deploymentKey: string;
|
|
5
|
+
appVersion: string;
|
|
6
|
+
currentBundleHash: string | null;
|
|
7
|
+
platform: 'ios' | 'android';
|
|
8
|
+
deviceId: string;
|
|
9
|
+
customHeaders?: Record<string, string>;
|
|
10
|
+
unverifiedHashes?: string[];
|
|
11
|
+
}
|
|
12
|
+
interface CheckUpdateResponse {
|
|
13
|
+
updateAvailable: boolean;
|
|
14
|
+
release?: ReleaseInfo;
|
|
15
|
+
appliedRelease?: {
|
|
16
|
+
isRolledBack: boolean;
|
|
17
|
+
targetAppVersion: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check for available updates from the SwiftPatch server
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkForUpdateAPI(params: CheckUpdateParams): Promise<CheckUpdateResponse>;
|
|
24
|
+
interface ReportStatusParams {
|
|
25
|
+
serverUrl: string;
|
|
26
|
+
deploymentKey: string;
|
|
27
|
+
releaseId: string;
|
|
28
|
+
status: 'downloaded' | 'installed' | 'crashed' | 'rolledBack';
|
|
29
|
+
error?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Report install status to the SwiftPatch server
|
|
33
|
+
*/
|
|
34
|
+
export declare function reportInstallStatus(params: ReportStatusParams): Promise<void>;
|
|
35
|
+
interface LogBulkEventsParams {
|
|
36
|
+
serverUrl: string;
|
|
37
|
+
deploymentKey: string;
|
|
38
|
+
deviceId: string;
|
|
39
|
+
events: SwiftPatchEvent[];
|
|
40
|
+
customHeaders?: Record<string, string>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Send bulk analytics events to the server
|
|
44
|
+
*/
|
|
45
|
+
export declare function logBulkEvents(params: LogBulkEventsParams): Promise<{
|
|
46
|
+
acknowledged: string[];
|
|
47
|
+
}>;
|
|
48
|
+
interface VerifyPinParams {
|
|
49
|
+
serverUrl: string;
|
|
50
|
+
deploymentKey: string;
|
|
51
|
+
pin: string;
|
|
52
|
+
customHeaders?: Record<string, string>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Verify SDK PIN for dashboard access
|
|
56
|
+
*/
|
|
57
|
+
export declare function verifySDKPin(params: VerifyPinParams): Promise<{
|
|
58
|
+
sdkToken: string;
|
|
59
|
+
} | null>;
|
|
60
|
+
interface ListBucketsParams {
|
|
61
|
+
serverUrl: string;
|
|
62
|
+
sdkToken: string;
|
|
63
|
+
deploymentKey: string;
|
|
64
|
+
customHeaders?: Record<string, string>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* List available channels/buckets
|
|
68
|
+
*/
|
|
69
|
+
export declare function listBuckets(params: ListBucketsParams): Promise<any[]>;
|
|
70
|
+
interface ListBundlesParams {
|
|
71
|
+
serverUrl: string;
|
|
72
|
+
sdkToken: string;
|
|
73
|
+
deploymentKey: string;
|
|
74
|
+
channelId?: string;
|
|
75
|
+
platform?: string;
|
|
76
|
+
pageOffset?: number;
|
|
77
|
+
customHeaders?: Record<string, string>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* List bundles with pagination
|
|
81
|
+
*/
|
|
82
|
+
export declare function listBundles(params: ListBundlesParams): Promise<{
|
|
83
|
+
bundles: any[];
|
|
84
|
+
hasMore: boolean;
|
|
85
|
+
}>;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/utils/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a unique device identifier for rollout bucketing
|
|
3
|
+
*/
|
|
4
|
+
export declare function getDeviceId(): Promise<string>;
|
|
5
|
+
/**
|
|
6
|
+
* Get the current binary app version
|
|
7
|
+
*/
|
|
8
|
+
export declare function getAppVersion(): Promise<string>;
|
|
9
|
+
//# sourceMappingURL=device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/utils/device.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM;sBACC,OAAO,GAAG,IAAI;mBAIjB,OAAO,EAAE,GAAG,IAAI;kBAMjB,OAAO,EAAE,GAAG,IAAI;kBAMhB,OAAO,EAAE,GAAG,IAAI;mBAIf,OAAO,EAAE,GAAG,IAAI;CAGhC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BundleInfo } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Get current bundle info from native storage
|
|
4
|
+
*/
|
|
5
|
+
export declare function getCurrentBundleInfo(): Promise<BundleInfo | null>;
|
|
6
|
+
/**
|
|
7
|
+
* Check if an install is pending confirmation
|
|
8
|
+
*/
|
|
9
|
+
export declare function hasPendingInstall(): Promise<boolean>;
|
|
10
|
+
/**
|
|
11
|
+
* Confirm the current install is stable
|
|
12
|
+
*/
|
|
13
|
+
export declare function confirmInstall(): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/utils/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAEvE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React, { type ComponentType } from 'react';
|
|
2
|
+
import type { SwiftPatchConfig } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Higher-order component to wrap your root component with SwiftPatchProvider.
|
|
5
|
+
* Also includes the built-in dashboard modal (accessible via useSwiftPatchModal).
|
|
6
|
+
*/
|
|
7
|
+
export declare function withSwiftPatch<P extends object>(WrappedComponent: ComponentType<P>, config: SwiftPatchConfig): {
|
|
8
|
+
(props: P): React.JSX.Element;
|
|
9
|
+
displayName: string;
|
|
10
|
+
};
|
|
11
|
+
export default withSwiftPatch;
|
|
12
|
+
//# sourceMappingURL=withSwiftPatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withSwiftPatch.d.ts","sourceRoot":"","sources":["../../src/withSwiftPatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAY,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAG5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,EAClC,MAAM,EAAE,gBAAgB;YAIO,CAAC;;EAsBjC;AAED,eAAe,cAAc,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@swiftpatch/react-native",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "React Native SDK for SwiftPatch OTA updates with differential patching, automatic rollback, and bundle signing",
|
|
5
|
+
"main": "lib/commonjs/index",
|
|
6
|
+
"module": "lib/module/index",
|
|
7
|
+
"types": "lib/typescript/index.d.ts",
|
|
8
|
+
"react-native": "src/index",
|
|
9
|
+
"source": "src/index",
|
|
10
|
+
"files": [
|
|
11
|
+
"src",
|
|
12
|
+
"lib",
|
|
13
|
+
"android",
|
|
14
|
+
"ios",
|
|
15
|
+
"cpp",
|
|
16
|
+
"*.podspec",
|
|
17
|
+
"!ios/build",
|
|
18
|
+
"!android/build",
|
|
19
|
+
"!android/gradle",
|
|
20
|
+
"!android/gradlew",
|
|
21
|
+
"!android/gradlew.bat",
|
|
22
|
+
"!android/local.properties",
|
|
23
|
+
"!**/__tests__",
|
|
24
|
+
"!**/__fixtures__",
|
|
25
|
+
"!**/__mocks__",
|
|
26
|
+
"!**/.*"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"typescript": "tsc --noEmit",
|
|
30
|
+
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
31
|
+
"prepare": "bob build",
|
|
32
|
+
"release": "release-it",
|
|
33
|
+
"example": "yarn workspace @swiftpatch/example",
|
|
34
|
+
"clean": "del-cli lib"
|
|
35
|
+
},
|
|
36
|
+
"keywords": [
|
|
37
|
+
"react-native",
|
|
38
|
+
"ota",
|
|
39
|
+
"over-the-air",
|
|
40
|
+
"updates",
|
|
41
|
+
"code-push",
|
|
42
|
+
"hot-update",
|
|
43
|
+
"differential-patching",
|
|
44
|
+
"bsdiff",
|
|
45
|
+
"swiftpatch"
|
|
46
|
+
],
|
|
47
|
+
"repository": {
|
|
48
|
+
"type": "git",
|
|
49
|
+
"url": "https://github.com/codewprincee/react-native-swiftpatch"
|
|
50
|
+
},
|
|
51
|
+
"author": "SwiftPatch <sdk@swiftpatch.io>",
|
|
52
|
+
"license": "MIT",
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/codewprincee/react-native-swiftpatch/issues"
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://swiftpatch.io",
|
|
57
|
+
"publishConfig": {
|
|
58
|
+
"registry": "https://registry.npmjs.org/",
|
|
59
|
+
"access": "public"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/react": "^18.3.0",
|
|
63
|
+
"@types/react-native": "^0.73.0",
|
|
64
|
+
"react": "^18.3.0",
|
|
65
|
+
"react-native": "^0.76.5",
|
|
66
|
+
"react-native-builder-bob": "^0.40.0",
|
|
67
|
+
"typescript": "^5.7.0",
|
|
68
|
+
"vitest": "^4.0.18"
|
|
69
|
+
},
|
|
70
|
+
"peerDependencies": {
|
|
71
|
+
"react": ">=18.2.0",
|
|
72
|
+
"react-native": ">=0.76.0"
|
|
73
|
+
},
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": ">= 18.0.0"
|
|
76
|
+
},
|
|
77
|
+
"codegenConfig": {
|
|
78
|
+
"name": "RNSwiftPatchSpec",
|
|
79
|
+
"type": "modules",
|
|
80
|
+
"jsSrcsDir": "src/native",
|
|
81
|
+
"android": {
|
|
82
|
+
"javaPackageName": "com.swiftpatch"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"react-native-builder-bob": {
|
|
86
|
+
"source": "src",
|
|
87
|
+
"output": "lib",
|
|
88
|
+
"targets": [
|
|
89
|
+
"commonjs",
|
|
90
|
+
"module",
|
|
91
|
+
[
|
|
92
|
+
"typescript",
|
|
93
|
+
{
|
|
94
|
+
"project": "tsconfig.build.json"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
5
|
+
|
|
6
|
+
Pod::Spec.new do |s|
|
|
7
|
+
s.name = "react-native-swiftpatch"
|
|
8
|
+
s.version = package["version"]
|
|
9
|
+
s.summary = package["description"]
|
|
10
|
+
s.homepage = package["homepage"]
|
|
11
|
+
s.license = package["license"]
|
|
12
|
+
s.authors = package["author"]
|
|
13
|
+
|
|
14
|
+
s.platforms = { :ios => "13.4" }
|
|
15
|
+
s.source = { :git => "https://github.com/codewprincee/react-native-swiftpatch.git", :tag => "#{s.version}" }
|
|
16
|
+
|
|
17
|
+
s.source_files = "ios/**/*.{h,m,mm,swift,c}"
|
|
18
|
+
s.preserve_paths = "ios/Libraries/bspatch/module.modulemap"
|
|
19
|
+
|
|
20
|
+
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0
|
|
21
|
+
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79
|
|
22
|
+
if respond_to?(:install_modules_dependencies, true)
|
|
23
|
+
install_modules_dependencies(s)
|
|
24
|
+
else
|
|
25
|
+
s.dependency "React-Core"
|
|
26
|
+
|
|
27
|
+
# Don't install the dependencies when we run `pod install` in the old architecture
|
|
28
|
+
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
|
29
|
+
s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
|
|
30
|
+
s.pod_target_xcconfig = {
|
|
31
|
+
"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
|
|
32
|
+
"OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
|
|
33
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
|
|
34
|
+
}
|
|
35
|
+
s.dependency "React-Codegen"
|
|
36
|
+
s.dependency "RCT-Folly"
|
|
37
|
+
s.dependency "RCTRequired"
|
|
38
|
+
s.dependency "RCTTypeSafety"
|
|
39
|
+
s.dependency "ReactCommon/turbomodule/core"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
s.pod_target_xcconfig = {
|
|
44
|
+
"DEFINES_MODULE" => "YES",
|
|
45
|
+
"SWIFT_INCLUDE_PATHS" => "$(PODS_TARGET_SRCROOT)/ios/Libraries/bspatch",
|
|
46
|
+
"SWIFT_VERSION" => "5.9"
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
s.swift_version = "5.9"
|
|
50
|
+
end
|