react-native-bspatch 3.1.1 → 4.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 (53) hide show
  1. package/README.md +3 -3
  2. package/android/build.gradle +18 -40
  3. package/android/src/main/java/vn/reactnativebspatch/BsPatchModule.kt +148 -13
  4. package/android/src/main/java/vn/reactnativebspatch/OtaBundleResolver.kt +21 -3
  5. package/cpp/CMakeLists.txt +0 -3
  6. package/cpp/bsdiff/bspatch_wrapper.c +3 -2
  7. package/ios/OtaBundleResolver.swift +22 -5
  8. package/ios/RNBsPatch.mm +220 -32
  9. package/lib/commonjs/NativeBsPatch.js.map +1 -1
  10. package/lib/commonjs/index.js +1 -13
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/ota/OtaProvider.js +21 -21
  13. package/lib/commonjs/ota/OtaProvider.js.map +1 -1
  14. package/lib/commonjs/ota/otaCore.js +50 -88
  15. package/lib/commonjs/ota/otaCore.js.map +1 -1
  16. package/lib/commonjs/ota/otaMetadata.js +46 -23
  17. package/lib/commonjs/ota/otaMetadata.js.map +1 -1
  18. package/lib/commonjs/ota/storage/GitHubRawStorage.js +22 -12
  19. package/lib/commonjs/ota/storage/GitHubRawStorage.js.map +1 -1
  20. package/lib/module/NativeBsPatch.js.map +1 -1
  21. package/lib/module/index.js +0 -8
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/ota/OtaProvider.js +22 -22
  24. package/lib/module/ota/OtaProvider.js.map +1 -1
  25. package/lib/module/ota/otaCore.js +50 -87
  26. package/lib/module/ota/otaCore.js.map +1 -1
  27. package/lib/module/ota/otaMetadata.js +44 -21
  28. package/lib/module/ota/otaMetadata.js.map +1 -1
  29. package/lib/module/ota/storage/GitHubRawStorage.js +20 -10
  30. package/lib/module/ota/storage/GitHubRawStorage.js.map +1 -1
  31. package/lib/typescript/NativeBsPatch.d.ts +36 -1
  32. package/lib/typescript/NativeBsPatch.d.ts.map +1 -1
  33. package/lib/typescript/index.d.ts +0 -7
  34. package/lib/typescript/index.d.ts.map +1 -1
  35. package/lib/typescript/ota/OtaProvider.d.ts.map +1 -1
  36. package/lib/typescript/ota/otaCore.d.ts +2 -1
  37. package/lib/typescript/ota/otaCore.d.ts.map +1 -1
  38. package/lib/typescript/ota/otaMetadata.d.ts +5 -0
  39. package/lib/typescript/ota/otaMetadata.d.ts.map +1 -1
  40. package/lib/typescript/ota/storage/GitHubRawStorage.d.ts +2 -0
  41. package/lib/typescript/ota/storage/GitHubRawStorage.d.ts.map +1 -1
  42. package/package.json +2 -3
  43. package/react-native-bspatch.podspec +3 -25
  44. package/src/NativeBsPatch.ts +44 -1
  45. package/src/index.ts +0 -7
  46. package/src/ota/OtaProvider.tsx +37 -23
  47. package/src/ota/otaCore.ts +55 -94
  48. package/src/ota/otaMetadata.ts +44 -25
  49. package/src/ota/storage/GitHubRawStorage.ts +17 -22
  50. package/tools/build_ota.sh +83 -58
  51. package/tools/update_registry.js +4 -2
  52. package/tools/upload_ota.sh +35 -19
  53. package/ios/RNBsPatch.h +0 -8
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","ReactNativeBlobUtil","NativeBsPatch","createOtaLogger","OtaEvent","ensureOtaDir","getBundlePath","loadMetadata","registerNewVersion","updateMetadata","GitHubRawStorageProvider","OtaStatus","OTA_DIR","fs","dirs","DocumentDir","DEFAULT_STORAGE","getStorage","config","storage","validateOtaConfig","baseUrl","channel","customServer","test","JSON","stringify","semverGte","a","b","pa","split","map","Number","pb","i","va","vb","verifyHash","path","expectedHash","hash","toLowerCase","assertSigned","filePath","signature","what","publicKey","valid","verifySignature","catch","Error","downloadWithRetry","url","destPath","onProgress","headers","retryLimit","network","retry","timeout","timeoutMs","taskRef","partPath","task","fileCache","followRedirect","fetch","progress","received","total","percent","Math","floor","cancel","resp","status","respInfo","exists","unlink","mv","e","delay","pow","__DEV__","console","warn","Promise","resolve","setTimeout","fetchOtaManifest","fetchManifest","ASSET_STORE_DIR","isSafeRelativePath","p","startsWith","includes","downloadAndSyncAssets","assetManifestUrl","version","log","onStatus","SYNCING_ASSETS","versionDir","assets","manifest","data","parse","filter","ext","originalPath","message","length","Map","ensureDir","dir","has","set","then","ok","undefined","mkdir","get","processed","downloaded","failed","index","worker","asset","storePath","getLocalAssetPath","getAssetUrl","dest","parts","slice","join","cp","round","all","Array","from","min","emit","DOWNLOAD_SUCCESS","getLocalPatchPath","patch","docDir","appVersion","id","selectUpdate","patchList","localV","targetV","forTarget","toVersion","platform","OS","find","filename","fromVersion","updateInFlight","applyOtaPatchInternal","args","runUpdatePipeline","options","autoReload","allowDebugUpdates","UP_TO_DATE","onEvent","totalStart","Date","now","finalBundlePath","baseAppVersion","tempBundle","localPatchPath","minAppVersion","currentAppVer","getAppVersion","VERSION_INCOMPATIBLE","download","remoteName","DOWNLOAD_START","dlStart","getUpdateFileUrl","dlError","DOWNLOAD_FAIL","error","downloadMs","sizeBytes","stat","size","durationMs","sizeKB","assertHash","expected","actual","HASH_MISMATCH","metadata","commit","metrics","manifestUrl","nativeAppVersion","totalMs","PATCH_SUCCESS","patchSizeKB","SUCCESS","fromCache","reloadBundle","applyPatchFile","sourcePath","DOWNLOADING","APPLYING","sigError","SIGNATURE_INVALID","baseHash","PATCH_START","applyStart","success","applyPatch","applyMs","PATCH_FAIL","bundleHash","bundleSignature","installFullBundle","fullBundleUrl","FALLBACK_FULL_BUNDLE","cleanup","currentVersion","canPatch","ERROR"],"sourceRoot":"../../../src","sources":["ota/otaCore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeBsPatch","createOtaLogger","OtaEvent","ASSET_LIST_FILE","DOCUMENT_DIR","ensureOtaDir","OTA_DIR","getBundlePath","loadMetadata","registerNewVersion","updateMetadata","fetchJson","GitHubRawStorageProvider","OtaStatus","DEFAULT_STORAGE","getStorage","config","storage","validateOtaConfig","baseUrl","channel","customServer","test","JSON","stringify","semverGte","a","b","pa","split","map","Number","pb","i","va","vb","verifyHash","path","expectedHash","hash","hashFile","toLowerCase","assertSigned","filePath","signature","what","publicKey","valid","verifySignature","catch","Error","downloadWithRetry","url","destPath","onProgress","retryLimit","Math","max","network","retry","timeout","timeoutMs","subscription","onDownloadProgress","e","total","min","floor","received","downloadFile","delay","pow","__DEV__","console","warn","Promise","resolve","setTimeout","remove","fetchOtaManifest","fetchManifest","ASSET_STORE_DIR","isSafeRelativePath","p","startsWith","includes","downloadAndSyncAssets","assetManifestUrl","version","log","onStatus","fs","SYNCING_ASSETS","versionDir","assets","manifest","filter","ext","originalPath","message","length","writeFile","dirs","Map","ensureDir","dir","has","set","mkdir","get","processed","downloaded","failed","index","worker","asset","storePath","getLocalAssetPath","exists","getAssetUrl","removePath","dest","slice","lastIndexOf","copyFile","round","all","Array","from","emit","DOWNLOAD_SUCCESS","getLocalPatchPath","patch","docDir","appVersion","id","selectUpdate","patchList","localV","targetV","forTarget","toVersion","find","filename","fromVersion","updateInFlight","applyOtaPatchInternal","args","runUpdatePipeline","options","autoReload","allowDebugUpdates","UP_TO_DATE","onEvent","totalStart","Date","now","finalBundlePath","baseAppVersion","tempBundle","localPatchPath","minAppVersion","currentAppVer","getAppVersion","undefined","VERSION_INCOMPATIBLE","download","remoteName","DOWNLOAD_START","dlStart","sizeBytes","getUpdateFileUrl","dlError","DOWNLOAD_FAIL","error","downloadMs","durationMs","sizeKB","assertHash","expected","actual","HASH_MISMATCH","metadata","commit","metrics","manifestUrl","moveFile","nativeAppVersion","totalMs","PATCH_SUCCESS","patchSizeKB","SUCCESS","fromCache","reloadBundle","applyPatchFile","sourcePath","DOWNLOADING","APPLYING","sigError","SIGNATURE_INVALID","baseHash","PATCH_START","applyStart","success","applyPatch","applyMs","PATCH_FAIL","bundleHash","bundleSignature","installFullBundle","fullBundleUrl","FALLBACK_FULL_BUNDLE","cleanup","currentVersion","canPatch","ERROR"],"sourceRoot":"../../../src","sources":["ota/otaCore.ts"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  import { Platform } from 'react-native';
4
- import ReactNativeBlobUtil from 'react-native-blob-util';
5
- const OTA_DIR = `${ReactNativeBlobUtil.fs.dirs.DocumentDir}/ota`;
4
+ import NativeBsPatch from '../NativeBsPatch';
5
+ /** Same directory the native resolver reads `ota/` from */
6
+ export const DOCUMENT_DIR = NativeBsPatch.getDocumentDir();
7
+ export const OTA_DIR = `${DOCUMENT_DIR}/ota`;
6
8
  const METADATA_PATH = `${OTA_DIR}/metadata.json`;
7
9
  const METADATA_TMP_PATH = `${METADATA_PATH}.tmp`;
10
+ const ASSET_STORE_DIR = `${OTA_DIR}/assets`;
11
+ /** Per-version list of `hash.ext` store files the version uses (written by otaCore) */
12
+ export const ASSET_LIST_FILE = 'assets.json';
8
13
 
9
14
  /** Serializes metadata updates (see updateMetadata). */
10
15
  let saveLock = Promise.resolve();
@@ -12,11 +17,7 @@ let saveLock = Promise.resolve();
12
17
  /**
13
18
  * Ensures the OTA root directory exists.
14
19
  */
15
- export const ensureOtaDir = async () => {
16
- if (!(await ReactNativeBlobUtil.fs.exists(OTA_DIR))) {
17
- await ReactNativeBlobUtil.fs.mkdir(OTA_DIR);
18
- }
19
- };
20
+ export const ensureOtaDir = () => NativeBsPatch.mkdir(OTA_DIR);
20
21
 
21
22
  /**
22
23
  * Loads the current OTA metadata from the local filesystem.
@@ -26,10 +27,10 @@ export const ensureOtaDir = async () => {
26
27
  */
27
28
  export const loadMetadata = async defaultVersion => {
28
29
  try {
29
- // A crash between unlink and rename in saveMetadata leaves only the .tmp copy
30
+ // Versions before 4.0 could crash between unlink and rename, leaving only the .tmp copy
30
31
  for (const path of [METADATA_PATH, METADATA_TMP_PATH]) {
31
- if (await ReactNativeBlobUtil.fs.exists(path)) {
32
- return JSON.parse(await ReactNativeBlobUtil.fs.readFile(path, 'utf8'));
32
+ if (await NativeBsPatch.exists(path)) {
33
+ return JSON.parse(await NativeBsPatch.readFile(path));
33
34
  }
34
35
  }
35
36
  } catch (e) {
@@ -55,12 +56,8 @@ export const updateMetadata = async (defaultVersion, fn) => {
55
56
  await prevLock;
56
57
  const metadata = fn(await loadMetadata(defaultVersion));
57
58
  await ensureOtaDir();
58
- // Write-then-rename so a kill mid-write never leaves truncated JSON
59
- await ReactNativeBlobUtil.fs.writeFile(METADATA_TMP_PATH, JSON.stringify(metadata, null, 2), 'utf8');
60
- if (await ReactNativeBlobUtil.fs.exists(METADATA_PATH)) {
61
- await ReactNativeBlobUtil.fs.unlink(METADATA_PATH);
62
- }
63
- await ReactNativeBlobUtil.fs.mv(METADATA_TMP_PATH, METADATA_PATH);
59
+ // Native writeFile is atomic: a kill mid-write never leaves truncated JSON
60
+ await NativeBsPatch.writeFile(METADATA_PATH, JSON.stringify(metadata, null, 2));
64
61
  return metadata;
65
62
  } catch (e) {
66
63
  console.error('[otaMetadata] Failed to save metadata:', e);
@@ -101,8 +98,8 @@ export const registerNewVersion = (metadata, newVersion, appVersion) => {
101
98
  */
102
99
  export const cleanupOldVersions = async (metadata, baseVersion) => {
103
100
  try {
104
- if (!(await ReactNativeBlobUtil.fs.exists(OTA_DIR))) return;
105
- const items = await ReactNativeBlobUtil.fs.ls(OTA_DIR);
101
+ if (!(await NativeBsPatch.exists(OTA_DIR))) return;
102
+ const items = await NativeBsPatch.readDir(OTA_DIR);
106
103
 
107
104
  // Retain current active version and rollback versions
108
105
  const retainedVersions = new Set([metadata.currentVersion, ...(metadata.previousVersions || [])]);
@@ -111,9 +108,10 @@ export const cleanupOldVersions = async (metadata, baseVersion) => {
111
108
  const versionMatch = item.match(/^v(\d+)$/);
112
109
  if (versionMatch) {
113
110
  const ver = parseInt(versionMatch[1], 10);
114
- if (!retainedVersions.has(ver) && ver !== baseVersion) {
111
+ // Higher than current: may be an install in progress, not yet in metadata
112
+ if (!retainedVersions.has(ver) && ver !== baseVersion && ver < metadata.currentVersion) {
115
113
  const dirPath = `${OTA_DIR}/${item}`;
116
- await ReactNativeBlobUtil.fs.unlink(dirPath).catch(() => {});
114
+ await NativeBsPatch.removePath(dirPath).catch(() => {});
117
115
  if (__DEV__) {
118
116
  console.log(`[otaMetadata] Cleaned up obsolete OTA version: ${item}`);
119
117
  }
@@ -121,14 +119,39 @@ export const cleanupOldVersions = async (metadata, baseVersion) => {
121
119
  }
122
120
  // Clean up leftover temporary bundle files (.tmp)
123
121
  if (item.endsWith('.tmp') && item !== 'metadata.json.tmp') {
124
- await ReactNativeBlobUtil.fs.unlink(`${OTA_DIR}/${item}`).catch(() => {});
122
+ await NativeBsPatch.removePath(`${OTA_DIR}/${item}`).catch(() => {});
125
123
  }
126
124
  }
125
+ await cleanupAssetStore();
127
126
  } catch (e) {
128
127
  console.warn('[otaMetadata] Cleanup old versions failed:', e);
129
128
  }
130
129
  };
131
130
 
131
+ /**
132
+ * Deletes store files no remaining version lists. The store is only a download
133
+ * cache (each version holds its own copies), so this never breaks a version.
134
+ * ponytail: an install that reuses a store file between our read of its list and
135
+ * the unlink fails its asset sync; it is retried on the next check.
136
+ */
137
+ const cleanupAssetStore = async () => {
138
+ const fs = NativeBsPatch;
139
+ if (!(await fs.exists(ASSET_STORE_DIR))) return;
140
+ const keep = new Set();
141
+ for (const item of await fs.readDir(OTA_DIR)) {
142
+ const list = `${OTA_DIR}/${item}/${ASSET_LIST_FILE}`;
143
+ if (/^v\d+$/.test(item) && (await fs.exists(list))) {
144
+ const files = JSON.parse(await fs.readFile(list));
145
+ files.forEach(f => keep.add(f));
146
+ }
147
+ }
148
+ for (const file of await fs.readDir(ASSET_STORE_DIR)) {
149
+ if (!keep.has(file)) {
150
+ await fs.removePath(`${ASSET_STORE_DIR}/${file}`).catch(() => {});
151
+ }
152
+ }
153
+ };
154
+
132
155
  /**
133
156
  * Marks the running version healthy: the native resolver stops treating its
134
157
  * launches as pending, so it is never rolled back afterwards (crash on first
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","ReactNativeBlobUtil","OTA_DIR","fs","dirs","DocumentDir","METADATA_PATH","METADATA_TMP_PATH","saveLock","Promise","resolve","ensureOtaDir","exists","mkdir","loadMetadata","defaultVersion","path","JSON","parse","readFile","e","console","warn","currentVersion","previousVersions","rollbackCount","lastLaunchSuccessful","updateMetadata","fn","prevLock","release","metadata","writeFile","stringify","unlink","mv","error","Error","message","MAX_VERSION_HISTORY","registerNewVersion","newVersion","appVersion","versions","uniquePrevious","Array","from","Set","filter","v","slice","cleanupOldVersions","baseVersion","items","ls","retainedVersions","item","versionMatch","match","ver","parseInt","has","dirPath","catch","__DEV__","log","endsWith","markHealthy","runningVersion","updated","verifiedVersion","getBundlePath","version","filename","select","android","ios","default"],"sourceRoot":"../../../src","sources":["ota/otaMetadata.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NativeBsPatch","DOCUMENT_DIR","getDocumentDir","OTA_DIR","METADATA_PATH","METADATA_TMP_PATH","ASSET_STORE_DIR","ASSET_LIST_FILE","saveLock","Promise","resolve","ensureOtaDir","mkdir","loadMetadata","defaultVersion","path","exists","JSON","parse","readFile","e","console","warn","currentVersion","previousVersions","rollbackCount","lastLaunchSuccessful","updateMetadata","fn","prevLock","release","metadata","writeFile","stringify","error","Error","message","MAX_VERSION_HISTORY","registerNewVersion","newVersion","appVersion","versions","uniquePrevious","Array","from","Set","filter","v","slice","cleanupOldVersions","baseVersion","items","readDir","retainedVersions","item","versionMatch","match","ver","parseInt","has","dirPath","removePath","catch","__DEV__","log","endsWith","cleanupAssetStore","fs","keep","list","test","files","forEach","f","add","file","markHealthy","runningVersion","updated","verifiedVersion","getBundlePath","version","filename","select","android","ios","default"],"sourceRoot":"../../../src","sources":["ota/otaMetadata.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import { Platform } from 'react-native';
4
- import ReactNativeBlobUtil from 'react-native-blob-util';
5
3
  /**
6
4
  * Storage Provider for any static host with this layout: GitHub raw, a public
7
5
  * Cloudflare R2 bucket (r2.dev or custom domain), S3, a CDN...
@@ -21,6 +19,24 @@ const NO_CACHE_HEADERS = {
21
19
  'Cache-Control': 'no-cache'
22
20
  };
23
21
 
22
+ /** GET + JSON.parse with a timeout (fetch has none of its own); rejects on non-2xx. */
23
+ export const fetchJson = async (url, timeoutMs) => {
24
+ const controller = new AbortController();
25
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
26
+ try {
27
+ const res = await fetch(url, {
28
+ headers: NO_CACHE_HEADERS,
29
+ signal: controller.signal
30
+ });
31
+ if (!res.ok) {
32
+ throw new Error(`HTTP ${res.status} for ${url}`);
33
+ }
34
+ return await res.json();
35
+ } finally {
36
+ clearTimeout(timer);
37
+ }
38
+ };
39
+
24
40
  /** Append a timestamp query param to defeat CDN caches on mutable URLs */
25
41
  const bustCache = url => `${url}?cb=${Date.now()}`;
26
42
  const normalizeChannel = channel => {
@@ -44,19 +60,13 @@ export class GitHubRawStorageProvider {
44
60
  // Cache-bust: registry is mutable; must always fetch the latest version
45
61
  const registryUrl = bustCache(`${normalizedBaseUrl}/${baseFolder}/ota_registry.json`);
46
62
  try {
47
- const res = await ReactNativeBlobUtil.config({
48
- timeout: 15000
49
- }).fetch('GET', registryUrl, NO_CACHE_HEADERS);
50
- if (res.respInfo.status !== 200) {
51
- throw new Error(`Registry fetch failed with status ${res.respInfo.status}`);
52
- }
53
- const registry = typeof res.data === 'string' ? JSON.parse(res.data) : res.data;
63
+ const registry = await fetchJson(registryUrl, 15000);
54
64
  if (!config.appVersion) {
55
65
  throw new Error('[GitHubRawStorage] config.appVersion is required to query OTA registry');
56
66
  }
57
67
  const appGroup = registry?.apps?.[config.appVersion];
58
68
  const flavorGroup = appGroup?.flavors?.[channelName];
59
- return (flavorGroup?.patches ?? []).filter(p => !p.platform || p.platform.toLowerCase() === Platform.OS.toLowerCase());
69
+ return flavorGroup?.patches ?? [];
60
70
  } catch (error) {
61
71
  // Surface it: "no patches" would report a broken registry as up to date
62
72
  throw new Error(`[GitHubRawStorage] Manifest fetch error: ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","ReactNativeBlobUtil","NO_CACHE_HEADERS","bustCache","url","Date","now","normalizeChannel","channel","lower","toLowerCase","GitHubRawStorageProvider","fetchManifest","config","customServer","Error","baseUrl","baseFolder","channelName","normalizedBaseUrl","endsWith","slice","registryUrl","res","timeout","fetch","respInfo","status","registry","data","JSON","parse","appVersion","appGroup","apps","flavorGroup","flavors","patches","filter","p","platform","OS","error","message","getUpdateFileUrl","filename","getAssetUrl","hash","ext"],"sourceRoot":"../../../../src","sources":["ota/storage/GitHubRawStorage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NO_CACHE_HEADERS","fetchJson","url","timeoutMs","controller","AbortController","timer","setTimeout","abort","res","fetch","headers","signal","ok","Error","status","json","clearTimeout","bustCache","Date","now","normalizeChannel","channel","lower","toLowerCase","GitHubRawStorageProvider","fetchManifest","config","customServer","baseUrl","baseFolder","channelName","normalizedBaseUrl","endsWith","slice","registryUrl","registry","appVersion","appGroup","apps","flavorGroup","flavors","patches","error","message","getUpdateFileUrl","filename","getAssetUrl","hash","ext"],"sourceRoot":"../../../../src","sources":["ota/storage/GitHubRawStorage.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,11 @@
1
- import type { TurboModule } from 'react-native';
1
+ import type { CodegenTypes, TurboModule } from 'react-native';
2
+ export type DownloadProgress = {
3
+ /** destPath passed to downloadFile */
4
+ path: string;
5
+ received: number;
6
+ /** -1 when the server sends no Content-Length */
7
+ total: number;
8
+ };
2
9
  export interface Spec extends TurboModule {
3
10
  /**
4
11
  * Apply a bspatch file to an old bundle to generate a new bundle
@@ -31,6 +38,34 @@ export interface Spec extends TurboModule {
31
38
  * Returns the native app version (versionName on Android, CFBundleShortVersionString on iOS)
32
39
  */
33
40
  getAppVersion(): Promise<string>;
41
+ /** Directory the native resolver reads `ota/` from (filesDir on Android, Documents on iOS) */
42
+ getDocumentDir(): string;
43
+ /**
44
+ * Streams `url` to `destPath` (via `destPath.part`, renamed only on a 2xx response,
45
+ * replacing any existing file). Rejects on network error or non-2xx status.
46
+ * @param timeoutMs Idle timeout: no bytes for this long fails the download
47
+ * @returns Size of the downloaded file in bytes
48
+ */
49
+ downloadFile(url: string, destPath: string, timeoutMs: number): Promise<number>;
50
+ /** Lowercase hex SHA-256 of a file */
51
+ hashFile(path: string): Promise<string>;
52
+ exists(path: string): Promise<boolean>;
53
+ /** Creates the directory and any missing parents */
54
+ mkdir(path: string): Promise<void>;
55
+ /** Deletes a file or directory tree; a missing path is not an error */
56
+ removePath(path: string): Promise<void>;
57
+ /** Renames a file or directory, replacing an existing destination */
58
+ moveFile(from: string, to: string): Promise<void>;
59
+ /** Copies a file, replacing an existing destination */
60
+ copyFile(from: string, to: string): Promise<void>;
61
+ /** Entry names in a directory */
62
+ readDir(path: string): Promise<string[]>;
63
+ /** Reads a UTF-8 file */
64
+ readFile(path: string): Promise<string>;
65
+ /** Writes a UTF-8 file atomically (temp file + rename) */
66
+ writeFile(path: string, content: string): Promise<void>;
67
+ /** Throttled (~250ms) progress for every downloadFile in flight */
68
+ readonly onDownloadProgress: CodegenTypes.EventEmitter<DownloadProgress>;
34
69
  }
35
70
  declare const _default: Spec;
36
71
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeBsPatch.d.ts","sourceRoot":"","sources":["../../src/NativeBsPatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;;;;OAMG;IACH,UAAU,CACR,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;;AAED,wBAAiE"}
1
+ {"version":3,"file":"NativeBsPatch.d.ts","sourceRoot":"","sources":["../../src/NativeBsPatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;;;;OAMG;IACH,UAAU,CACR,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAIjC,8FAA8F;IAC9F,cAAc,IAAI,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhF,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,oDAAoD;IACpD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,uEAAuE;IACvE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,iCAAiC;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,0DAA0D;IAC1D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;CAC1E;;AAED,wBAAiE"}
@@ -4,13 +4,6 @@ export declare function reloadBundle(): void;
4
4
  export * from './ota/otaLogger';
5
5
  export * from './ota/OtaProvider';
6
6
  export * from './ota/types';
7
- /**
8
- * @deprecated No-ops since 3.1: OTA assets are placed next to the bundle, where React
9
- * Native resolves them by default, so no source transformer is needed.
10
- */
11
- export declare const initOtaAssetResolver: (_version: number) => Promise<void>;
12
- /** @deprecated No-op since 3.1, see initOtaAssetResolver. */
13
- export declare const resetOtaAssetResolver: () => void;
14
7
  export { GitHubRawStorageProvider } from './ota/storage/GitHubRawStorage';
15
8
  declare const _default: {
16
9
  applyPatch: typeof applyPatch;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CACxB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAE5B;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAO,CAAC;AAClF,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,QAAO,IAAU,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;;;;;;AAE1E,wBAIE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CACxB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;;;;;;AAE1E,wBAIE"}
@@ -1 +1 @@
1
- {"version":3,"file":"OtaProvider.d.ts","sourceRoot":"","sources":["../../../src/ota/OtaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAef,OAAO,EACL,SAAS,EAGT,QAAQ,EAGT,MAAM,SAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAqB,GACtB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,qBA+ZA;AAED,wBAAgB,MAAM,aAMrB"}
1
+ {"version":3,"file":"OtaProvider.d.ts","sourceRoot":"","sources":["../../../src/ota/OtaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,EACL,SAAS,EAGT,QAAQ,EAGT,MAAM,SAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAqB,GACtB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,qBA8aA;AAED,wBAAgB,MAAM,aAMrB"}
@@ -66,13 +66,14 @@ export declare const getLocalAssetPath: (hash: string, ext: string) => string;
66
66
  * Gets the local filesystem path for a downloaded patch file.
67
67
  *
68
68
  * @param patch - Patch metadata object
69
- * @param docDir - Document directory path (use `ReactNativeBlobUtil.fs.dirs.DocumentDir`)
69
+ * @param docDir - Document directory path (`DOCUMENT_DIR`)
70
70
  * @returns Absolute path to the patch file
71
71
  */
72
72
  export declare const getLocalPatchPath: (patch: OtaPatch, docDir: string) => string;
73
73
  /**
74
74
  * Picks the registry entry for `localV → targetV`: a patch from the OTA bundle
75
75
  * already on disk, else the full-bundle entry (store build, or outside the patch window).
76
+ * `patchList` is already filtered to this platform (checkUpdates).
76
77
  */
77
78
  export declare const selectUpdate: (patchList: OtaPatch[], localV: number, targetV: number) => OtaPatch | undefined;
78
79
  /** Runs the pipeline below; rejects if another update is already running. */
@@ -1 +1 @@
1
- {"version":3,"file":"otaCore.d.ts","sourceRoot":"","sources":["../../../src/ota/otaCore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,EACH,SAAS,EAET,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EAEhB,MAAM,SAAS,CAAC;AAYjB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,KAAG,MAAM,GAAG,IAU9D,CAAC;AAIF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,OAUhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACnB,MAAM,MAAM,EACZ,eAAe,MAAM,KACtB,OAAO,CAAC,OAAO,CAQjB,CAAC;AAwFF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,OAAO,CAAC,QAAQ,EAAE,CAC3B,CAAC;AAyH7C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,KAAG,MACvB,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,QAAQ,EAAE,QAAQ,MAAM,KAAG,MACL,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,YAAY,GACrB,WAAW,QAAQ,EAAE,EACrB,QAAQ,MAAM,EACd,SAAS,MAAM,KAChB,QAAQ,GAAG,SAQb,CAAC;AAkBF,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,EAAE,OAAO,iBAU1C,CAAC;AAEF,QAAA,MAAM,iBAAiB,GACnB,OAAO,QAAQ,EACf,QAAQ,SAAS,EACjB,UAAU,CACN,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,UAAU,KACnB,IAAI,EACT,YAAY,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACrC,UAAS;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAyB,kBAuN3D,CAAC"}
1
+ {"version":3,"file":"otaCore.d.ts","sourceRoot":"","sources":["../../../src/ota/otaCore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,OAAO,EACH,SAAS,EAET,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EAEhB,MAAM,SAAS,CAAC;AAUjB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,KAAG,MAAM,GAAG,IAU9D,CAAC;AAIF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,OAUhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACnB,MAAM,MAAM,EACZ,eAAe,MAAM,KACtB,OAAO,CAAC,OAAO,CAQjB,CAAC;AA8DF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,OAAO,CAAC,QAAQ,EAAE,CAC3B,CAAC;AAmH7C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,KAAG,MACvB,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,QAAQ,EAAE,QAAQ,MAAM,KAAG,MACL,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACrB,WAAW,QAAQ,EAAE,EACrB,QAAQ,MAAM,EACd,SAAS,MAAM,KAChB,QAAQ,GAAG,SAMb,CAAC;AAkBF,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,EAAE,OAAO,iBAU1C,CAAC;AAEF,QAAA,MAAM,iBAAiB,GACnB,OAAO,QAAQ,EACf,QAAQ,SAAS,EACjB,UAAU,CACN,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,UAAU,KACnB,IAAI,EACT,YAAY,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EACrC,UAAS;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAyB,kBAkN3D,CAAC"}
@@ -1,4 +1,9 @@
1
1
  import { OtaMetadata } from './types';
2
+ /** Same directory the native resolver reads `ota/` from */
3
+ export declare const DOCUMENT_DIR: string;
4
+ export declare const OTA_DIR: string;
5
+ /** Per-version list of `hash.ext` store files the version uses (written by otaCore) */
6
+ export declare const ASSET_LIST_FILE = "assets.json";
2
7
  /**
3
8
  * Ensures the OTA root directory exists.
4
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"otaMetadata.d.ts","sourceRoot":"","sources":["../../../src/ota/otaMetadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAStC;;GAEG;AACH,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAIjD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACrB,gBAAgB,MAAM,KACvB,OAAO,CAAC,WAAW,CAkBrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACvB,gBAAgB,MAAM,EACtB,IAAI,CAAC,QAAQ,EAAE,WAAW,KAAK,WAAW,KAC3C,OAAO,CAAC,WAAW,CA0BrB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC3B,UAAU,WAAW,EACrB,YAAY,MAAM,EAClB,aAAa,MAAM,KACpB,WAkBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC3B,UAAU,WAAW,EACrB,aAAa,MAAM,KACpB,OAAO,CAAC,IAAI,CAgCd,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GACpB,gBAAgB,MAAM,EACtB,gBAAgB,MAAM,EACtB,aAAa,MAAM,KACpB,OAAO,CAAC,WAAW,CAkBrB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACtB,SAAS,MAAM,EACf,aAAa,MAAM,KACpB,MAAM,GAAG,IAUX,CAAC"}
1
+ {"version":3,"file":"otaMetadata.d.ts","sourceRoot":"","sources":["../../../src/ota/otaMetadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,2DAA2D;AAC3D,eAAO,MAAM,YAAY,QAAiC,CAAC;AAC3D,eAAO,MAAM,OAAO,QAAwB,CAAC;AAI7C,uFAAuF;AACvF,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAK7C;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,OAAO,CAAC,IAAI,CAAiC,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACrB,gBAAgB,MAAM,KACvB,OAAO,CAAC,WAAW,CAkBrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACvB,gBAAgB,MAAM,EACtB,IAAI,CAAC,QAAQ,EAAE,WAAW,KAAK,WAAW,KAC3C,OAAO,CAAC,WAAW,CAkBrB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC3B,UAAU,WAAW,EACrB,YAAY,MAAM,EAClB,aAAa,MAAM,KACpB,WAkBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC3B,UAAU,WAAW,EACrB,aAAa,MAAM,KACpB,OAAO,CAAC,IAAI,CAkCd,CAAC;AA0BF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GACpB,gBAAgB,MAAM,EACtB,gBAAgB,MAAM,EACtB,aAAa,MAAM,KACpB,OAAO,CAAC,WAAW,CAkBrB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACtB,SAAS,MAAM,EACf,aAAa,MAAM,KACpB,MAAM,GAAG,IAUX,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import type { OtaConfig, OtaPatch, OtaStorageProvider } from '../types';
2
+ /** GET + JSON.parse with a timeout (fetch has none of its own); rejects on non-2xx. */
3
+ export declare const fetchJson: (url: string, timeoutMs: number) => Promise<any>;
2
4
  export declare class GitHubRawStorageProvider implements OtaStorageProvider {
3
5
  fetchManifest(config: OtaConfig): Promise<OtaPatch[]>;
4
6
  getUpdateFileUrl(filename: string, config: OtaConfig): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubRawStorage.d.ts","sourceRoot":"","sources":["../../../../src/ota/storage/GitHubRawStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AA8BxE,qBAAa,wBAAyB,YAAW,kBAAkB;IACzD,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmDrD,gBAAgB,CAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAClB,OAAO,CAAC,MAAM,CAAC;IAeZ,WAAW,CACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,GAClB,OAAO,CAAC,MAAM,CAAC;CAWrB"}
1
+ {"version":3,"file":"GitHubRawStorage.d.ts","sourceRoot":"","sources":["../../../../src/ota/storage/GitHubRawStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAmBxE,uFAAuF;AACvF,eAAO,MAAM,SAAS,GAAU,KAAK,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,GAAG,CAY3E,CAAC;AAaF,qBAAa,wBAAyB,YAAW,kBAAkB;IACzD,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiCrD,gBAAgB,CAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAClB,OAAO,CAAC,MAAM,CAAC;IAeZ,WAAW,CACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,GAClB,OAAO,CAAC,MAAM,CAAC;CAWrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bspatch",
3
- "version": "3.1.1",
3
+ "version": "4.0.0",
4
4
  "description": "Premium OTA Update Solution for React Native using TurboModules and bsdiff",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -39,8 +39,7 @@
39
39
  },
40
40
  "peerDependencies": {
41
41
  "react": "*",
42
- "react-native": "*",
43
- "react-native-blob-util": ">=0.24.11"
42
+ "react-native": "*"
44
43
  },
45
44
  "repository": {
46
45
  "type": "git",
@@ -1,7 +1,6 @@
1
1
  require "json"
2
2
 
3
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
4
 
6
5
  Pod::Spec.new do |s|
7
6
  s.name = "react-native-bspatch"
@@ -15,36 +14,15 @@ Pod::Spec.new do |s|
15
14
  s.source = { :git => "https://github.com/BuiHung1612/react-native-bspatch.git", :tag => "#{s.version}" }
16
15
 
17
16
  s.source_files = "ios/**/*.{h,m,mm,swift}", "cpp/**/*.{h,c,cpp}"
18
- s.exclude_files = "cpp/bspatch_jni.cpp"
17
+ # iOS links the system libbz2; the bundled bzip2 is for Android only
18
+ s.exclude_files = "cpp/bspatch_jni.cpp", "cpp/bzip2/**"
19
19
  s.public_header_files = 'ios/**/*.h'
20
20
 
21
21
  s.library = 'bz2'
22
22
 
23
-
24
23
  s.pod_target_xcconfig = {
25
24
  'OTHER_CFLAGS' => '$(inherited) -O3 -flto'
26
25
  }
27
26
 
28
- # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
29
- if respond_to?(:install_modules_dependencies, true)
30
- install_modules_dependencies(s)
31
- else
32
- s.dependency "React-Core"
33
-
34
- # Don't install the dependencies when we run `pod install` in the old architecture.
35
- if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
36
- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
37
- s.pod_target_xcconfig = {
38
- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
39
- "OTHER_CFLAGS" => "$(inherited) -O3 -flto",
40
- "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -O3 -flto",
41
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
42
- }
43
- s.dependency "React-Codegen"
44
- s.dependency "RCT-Folly"
45
- s.dependency "RCTRequired"
46
- s.dependency "RCTTypeSafety"
47
- s.dependency "ReactCommon/turbomodule/core"
48
- end
49
- end
27
+ install_modules_dependencies(s)
50
28
  end
@@ -1,6 +1,14 @@
1
- import type { TurboModule } from 'react-native';
1
+ import type { CodegenTypes, TurboModule } from 'react-native';
2
2
  import { TurboModuleRegistry } from 'react-native';
3
3
 
4
+ export type DownloadProgress = {
5
+ /** destPath passed to downloadFile */
6
+ path: string;
7
+ received: number;
8
+ /** -1 when the server sends no Content-Length */
9
+ total: number;
10
+ };
11
+
4
12
  export interface Spec extends TurboModule {
5
13
  /**
6
14
  * Apply a bspatch file to an old bundle to generate a new bundle
@@ -46,6 +54,41 @@ export interface Spec extends TurboModule {
46
54
  * Returns the native app version (versionName on Android, CFBundleShortVersionString on iOS)
47
55
  */
48
56
  getAppVersion(): Promise<string>;
57
+
58
+ // ─── File I/O ───────────────────────────────────────────────────────
59
+
60
+ /** Directory the native resolver reads `ota/` from (filesDir on Android, Documents on iOS) */
61
+ getDocumentDir(): string;
62
+
63
+ /**
64
+ * Streams `url` to `destPath` (via `destPath.part`, renamed only on a 2xx response,
65
+ * replacing any existing file). Rejects on network error or non-2xx status.
66
+ * @param timeoutMs Idle timeout: no bytes for this long fails the download
67
+ * @returns Size of the downloaded file in bytes
68
+ */
69
+ downloadFile(url: string, destPath: string, timeoutMs: number): Promise<number>;
70
+
71
+ /** Lowercase hex SHA-256 of a file */
72
+ hashFile(path: string): Promise<string>;
73
+
74
+ exists(path: string): Promise<boolean>;
75
+ /** Creates the directory and any missing parents */
76
+ mkdir(path: string): Promise<void>;
77
+ /** Deletes a file or directory tree; a missing path is not an error */
78
+ removePath(path: string): Promise<void>;
79
+ /** Renames a file or directory, replacing an existing destination */
80
+ moveFile(from: string, to: string): Promise<void>;
81
+ /** Copies a file, replacing an existing destination */
82
+ copyFile(from: string, to: string): Promise<void>;
83
+ /** Entry names in a directory */
84
+ readDir(path: string): Promise<string[]>;
85
+ /** Reads a UTF-8 file */
86
+ readFile(path: string): Promise<string>;
87
+ /** Writes a UTF-8 file atomically (temp file + rename) */
88
+ writeFile(path: string, content: string): Promise<void>;
89
+
90
+ /** Throttled (~250ms) progress for every downloadFile in flight */
91
+ readonly onDownloadProgress: CodegenTypes.EventEmitter<DownloadProgress>;
49
92
  }
50
93
 
51
94
  export default TurboModuleRegistry.getEnforcing<Spec>('BsPatch');