@bota.dev/react-native-app-sdk 2.0.0-beta.13 → 2.0.0-beta.14

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 (39) hide show
  1. package/README.md +20 -7
  2. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploads.kt +2 -2
  3. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploadsTest.kt +23 -0
  4. package/generated/codegen-contract.json +2 -2
  5. package/ios/BotaDeviceSDKAppleRecordingUploads.swift +3 -3
  6. package/lib/commonjs/managers/NativeUploadQueue.js +22 -8
  7. package/lib/commonjs/managers/NativeUploadQueue.js.map +1 -1
  8. package/lib/commonjs/managers/uploadRecoveryMetadata.js +4 -0
  9. package/lib/commonjs/managers/uploadRecoveryMetadata.js.map +1 -1
  10. package/lib/commonjs/managers/uploadVerificationPending.js +20 -0
  11. package/lib/commonjs/managers/uploadVerificationPending.js.map +1 -0
  12. package/lib/commonjs/sdkIdentity.js +1 -1
  13. package/lib/commonjs/uploadRecovery.js +50 -7
  14. package/lib/commonjs/uploadRecovery.js.map +1 -1
  15. package/lib/module/managers/NativeUploadQueue.js +22 -8
  16. package/lib/module/managers/NativeUploadQueue.js.map +1 -1
  17. package/lib/module/managers/uploadRecoveryMetadata.js +4 -0
  18. package/lib/module/managers/uploadRecoveryMetadata.js.map +1 -1
  19. package/lib/module/managers/uploadVerificationPending.js +14 -0
  20. package/lib/module/managers/uploadVerificationPending.js.map +1 -0
  21. package/lib/module/sdkIdentity.js +1 -1
  22. package/lib/module/uploadRecovery.js +50 -7
  23. package/lib/module/uploadRecovery.js.map +1 -1
  24. package/lib/typescript/managers/NativeUploadQueue.d.ts.map +1 -1
  25. package/lib/typescript/managers/uploadRecoveryMetadata.d.ts.map +1 -1
  26. package/lib/typescript/managers/uploadVerificationPending.d.ts +6 -0
  27. package/lib/typescript/managers/uploadVerificationPending.d.ts.map +1 -0
  28. package/lib/typescript/models/Recording.d.ts +6 -0
  29. package/lib/typescript/models/Recording.d.ts.map +1 -1
  30. package/lib/typescript/sdkIdentity.d.ts +1 -1
  31. package/lib/typescript/uploadRecovery.d.ts +1 -1
  32. package/lib/typescript/uploadRecovery.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/managers/NativeUploadQueue.ts +18 -9
  35. package/src/managers/uploadRecoveryMetadata.ts +2 -0
  36. package/src/managers/uploadVerificationPending.ts +10 -0
  37. package/src/models/Recording.ts +6 -0
  38. package/src/sdkIdentity.ts +1 -1
  39. package/src/uploadRecovery.ts +42 -8
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Bota SDK for React Native
2
2
 
3
- Source candidate `2.0.0-beta.13` synchronizes the five-platform SDK family.
4
- It includes corrected recording-control decoding, dedicated reset authorization,
5
- Apple error metadata and React Native deferred upload-destination recovery.
6
- Beta.12 remains published until this candidate completes its release gates.
3
+ Source candidate `2.0.0-beta.14` synchronizes the five-platform SDK family.
4
+ It adds React Native compatibility completion polling and durable
5
+ `completionPending` recovery. Other facade workflow support is unchanged.
6
+ Beta.13 remains the published baseline until this candidate completes its gates.
7
7
  Native applications require a new binary.
8
8
 
9
9
  Bluetooth device SDK for Bota Pin and Bota Note applications. The 2.x candidate
@@ -29,9 +29,9 @@ adopting this source API; published-package availability is a separate gate.
29
29
 
30
30
  ## Install
31
31
 
32
- Published beta.12 remains available. Use the beta.13 pin below only after
32
+ Published beta.13 remains available. Use the beta.14 pin below only after
33
33
  publication is verified; see the
34
- [preflight](../../release/evidence/2.0.0-beta.13-preflight.md).
34
+ [preflight](../../release/evidence/2.0.0-beta.14-preflight.md).
35
35
  Rebuild native applications and reconnect explicitly after connection loss.
36
36
  Physical completed-resume acceptance and wider GATT recovery remain separate.
37
37
  Remove `@bota.dev/react-native-sdk` before adding the replacement; do not
@@ -39,7 +39,7 @@ co-install both. Standalone maintenance ended September 29, 2026; follow the
39
39
  [retirement and migration notice](../../docs/migrations/react-native-sdk-sunset.md).
40
40
 
41
41
  ```bash
42
- npm install --save-exact @bota.dev/react-native-app-sdk@2.0.0-beta.13
42
+ npm install --save-exact @bota.dev/react-native-app-sdk@2.0.0-beta.14
43
43
  npx pod-install
44
44
  ```
45
45
 
@@ -211,3 +211,16 @@ fresh credentials, and completes the original backend recording before native
211
211
  cleanup. Supply the initial `recoveryScope` and configure the provider before
212
212
  starting batch sync. Do not call backend completion only after the sync generator
213
213
  returns: device confirmation has already happened then.
214
+
215
+ For legacy completion, preserve a pending response as numeric `status: 425`
216
+ with `data.error.code === 'upload_verification_pending'`. The current source
217
+ helper retries only that classification with 1–2 second jitter for two minutes;
218
+ the queue then retains completion for a later attempt without consuming its
219
+ upload-repair budget. The native journal's `completionPending` phase prevents
220
+ another PUT after restart while the backend remains pending. This phase never
221
+ permits cleanup without the exact completion ACK; only authenticated
222
+ `integrity_failure` permits a repair upload. Scope changes and cancellation
223
+ remain fenced. The host must honor request aborts and provide HTTP timeouts.
224
+ This unpublished correction requires rebuilt native adapters, not just updated
225
+ JavaScript. Timers require a live JS runtime; encrypted-v2 receipt recovery is
226
+ unchanged. See `docs/parity/upload-recovery.md` for evidence and limits.
@@ -236,7 +236,7 @@ internal class BotaDeviceSDKAndroidRecordingUploads(
236
236
 
237
237
  private fun metadata(serialized: String): JSONArray {
238
238
  val tasks = JSONArray(serialized)
239
- val fields = setOf("id", "recordingId", "deviceId", "recordingUuid", "localPath", "status", "retryCount", "createdAt", "updatedAt", "recoveryScope", "fileSizeBytes", "nextAttemptAt", "contentType", "contentSha256", "relayUpload")
239
+ val fields = setOf("id", "recordingId", "deviceId", "recordingUuid", "localPath", "status", "retryCount", "createdAt", "updatedAt", "recoveryScope", "fileSizeBytes", "nextAttemptAt", "contentType", "contentSha256", "relayUpload", "completionPending")
240
240
  val ids = mutableSetOf<String>()
241
241
  return JSONArray().apply {
242
242
  for (index in 0 until tasks.length()) {
@@ -247,7 +247,7 @@ internal class BotaDeviceSDKAndroidRecordingUploads(
247
247
  require(validInteger(task.get("retryCount")) && task.getString("status") in setOf("pending", "uploading", "completed", "failed")) { "invalid upload recovery journal" }
248
248
  for (key in listOf("recordingUuid", "recoveryScope", "contentType", "contentSha256")) if (task.has(key)) require(task.get(key) is String) { "invalid upload recovery journal" }
249
249
  for (key in listOf("fileSizeBytes", "nextAttemptAt")) if (task.has(key)) require(validInteger(task.get(key))) { "invalid upload recovery journal" }
250
- if (task.has("relayUpload")) require(task.get("relayUpload") is Boolean) { "invalid upload recovery journal" }
250
+ for (key in listOf("relayUpload", "completionPending")) if (task.has(key)) require(task.get(key) is Boolean) { "invalid upload recovery journal" }
251
251
  for (key in listOf("createdAt", "updatedAt")) require(runCatching { java.time.Instant.parse(task.getString(key)) }.isSuccess) { "invalid upload recovery journal" }
252
252
  put(JSONObject().apply {
253
253
  for (key in fields) if (task.has(key)) {
@@ -8,6 +8,7 @@ import okhttp3.OkHttpClient
8
8
  import okhttp3.Protocol
9
9
  import okhttp3.Response
10
10
  import okhttp3.ResponseBody.Companion.toResponseBody
11
+ import org.json.JSONArray
11
12
  import org.junit.Assert.assertEquals
12
13
  import org.junit.Assert.assertFalse
13
14
  import org.junit.Assert.assertTrue
@@ -96,6 +97,26 @@ class BotaDeviceSDKAndroidRecordingUploadsTest {
96
97
  assertEquals("failed", tasks.getJSONObject(0).getString("status"))
97
98
  }
98
99
 
100
+ @Test
101
+ fun completionPendingPersistsWithoutAuthorizingRelease() = runTest {
102
+ val fixture = UploadFixture()
103
+ var barriers = 0
104
+ val uploads = BotaDeviceSDKAndroidRecordingUploads(fixture.queueFile, syncDirectory = { barriers++ })
105
+ // This metadata test injects the directory barrier so it also runs on
106
+ // Windows; separate durability tests exercise the real POSIX barrier.
107
+ val journal = fixture.journal("pending").replace(fixture.recordingFile.path, fixture.recordingFile.path.replace("\\", "\\\\"))
108
+ uploads.saveQueue(journal.replace("\"status\":\"pending\"", "\"status\":\"pending\",\"completionPending\":true"))
109
+ val stored = JSONArray(uploads.loadQueue()).getJSONObject(0)
110
+ assertTrue(stored.getBoolean("completionPending"))
111
+ assertTrue(barriers > 0)
112
+ assertTrue(runCatching { uploads.release("task-1", fixture.recordingFile.path) }.isFailure)
113
+ assertTrue(fixture.recordingFile.exists())
114
+ for (invalid in listOf("\"true\"", "1")) {
115
+ assertTrue(runCatching { uploads.saveQueue(journal.replace("\"status\":\"pending\"", "\"status\":\"pending\",\"completionPending\":$invalid")) }.isFailure)
116
+ assertTrue(JSONArray(uploads.loadQueue()).getJSONObject(0).getBoolean("completionPending"))
117
+ }
118
+ }
119
+
99
120
  @Test
100
121
  fun releaseRequiresExactCompletedJournalAndIsIdempotent() = runTest {
101
122
  val fixture = UploadFixture()
@@ -140,6 +161,8 @@ class BotaDeviceSDKAndroidRecordingUploadsTest {
140
161
  "\"createdAt\":\"2026-09-24T00:00:00Z\"" to "\"createdAt\":\"invalid\"",
141
162
  "\"status\":\"completed\"" to "\"status\":\"completed\",\"fileSizeBytes\":\"4\"",
142
163
  "\"status\":\"completed\"" to "\"status\":\"completed\",\"recoveryScope\":123",
164
+ "\"status\":\"completed\"" to "\"status\":\"completed\",\"completionPending\":\"true\"",
165
+ "\"status\":\"completed\"" to "\"status\":\"completed\",\"completionPending\":1",
143
166
  )) {
144
167
  val fixture = UploadFixture()
145
168
  val contents = fixture.journal("completed").replace(old, invalid)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@bota.dev/react-native-app-sdk",
4
- "packageVersion": "2.0.0-beta.13",
4
+ "packageVersion": "2.0.0-beta.14",
5
5
  "reactNativeVersion": "0.86.3",
6
6
  "codegenLibrary": "BotaDeviceSDKSpec",
7
7
  "nativeModule": "BotaDeviceSDK",
@@ -4308,5 +4308,5 @@
4308
4308
  }
4309
4309
  ]
4310
4310
  },
4311
- "contractDigest": "d7f7eef4625f160f168c8e7440128c056f3bc826a33ca61c9fc2e91ecf074c64"
4311
+ "contractDigest": "89bbee822844c65336f805fe3311d15b35f4615254f4841561f7a4d2dc3ae23d"
4312
4312
  }
@@ -179,7 +179,7 @@ actor BotaDeviceSDKAppleRecordingUploads {
179
179
  guard let tasks = try JSONSerialization.jsonObject(with: Data(serialized.utf8)) as? [[String: Any]] else {
180
180
  throw UploadError.invalidJournal
181
181
  }
182
- let fields: Set<String> = ["id", "recordingId", "deviceId", "recordingUuid", "localPath", "status", "retryCount", "createdAt", "updatedAt", "recoveryScope", "fileSizeBytes", "nextAttemptAt", "contentType", "contentSha256", "relayUpload"]
182
+ let fields: Set<String> = ["id", "recordingId", "deviceId", "recordingUuid", "localPath", "status", "retryCount", "createdAt", "updatedAt", "recoveryScope", "fileSizeBytes", "nextAttemptAt", "contentType", "contentSha256", "relayUpload", "completionPending"]
183
183
  var ids = Set<String>()
184
184
  return try tasks.map { task in
185
185
  guard let id = task["id"] as? String, !id.isEmpty, ids.insert(id).inserted,
@@ -195,8 +195,8 @@ actor BotaDeviceSDKAppleRecordingUploads {
195
195
  for key in ["fileSizeBytes", "nextAttemptAt"] where task[key] != nil {
196
196
  guard validInteger(task[key]) else { throw UploadError.invalidJournal }
197
197
  }
198
- if let relay = task["relayUpload"] {
199
- guard let number = relay as? NSNumber, CFGetTypeID(number) == CFBooleanGetTypeID() else { throw UploadError.invalidJournal }
198
+ for key in ["relayUpload", "completionPending"] where task[key] != nil {
199
+ guard let number = task[key] as? NSNumber, CFGetTypeID(number) == CFBooleanGetTypeID() else { throw UploadError.invalidJournal }
200
200
  }
201
201
  let dates = ISO8601DateFormatter()
202
202
  let fractionalDates = ISO8601DateFormatter()
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.NativeUploadQueue = void 0;
7
7
  var _eventemitter = _interopRequireDefault(require("eventemitter3"));
8
8
  var _uploadRecoveryMetadata = require("./uploadRecoveryMetadata");
9
+ var _uploadVerificationPending = require("./uploadVerificationPending");
9
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
11
  const journalOperations = new WeakMap();
11
12
  const journalOwners = new WeakMap();
@@ -167,7 +168,7 @@ class NativeUploadQueue extends _eventemitter.default {
167
168
  });
168
169
  if (initialSignal?.aborted) initialAbort();
169
170
  check();
170
- if (info && !info.alreadyUploaded && this.provider && !info.signal?.aborted && (!(info.relay ? info.relay.url : info.uploadUrl) || info.expiresAt && info.expiresAt.getTime() <= Date.now())) {
171
+ if (info && this.provider && !info.signal?.aborted && (task.completionPending || !info.alreadyUploaded && (!(info.relay ? info.relay.url : info.uploadUrl) || info.expiresAt && info.expiresAt.getTime() <= Date.now()))) {
171
172
  dispose(info);
172
173
  info = undefined;
173
174
  }
@@ -185,7 +186,8 @@ class NativeUploadQueue extends _eventemitter.default {
185
186
  relayUpload: !!task.relayUpload,
186
187
  contentType: task.contentType,
187
188
  contentSha256: task.contentSha256,
188
- signal
189
+ signal,
190
+ completionPending: task.completionPending
189
191
  });
190
192
  }), signal, dispose);
191
193
  }
@@ -200,14 +202,16 @@ class NativeUploadQueue extends _eventemitter.default {
200
202
  if (info.recordingId !== task.recordingId || info.recoveryScope !== task.recoveryScope) {
201
203
  throw new Error('Upload recovery identity changed');
202
204
  }
203
- if (!info.alreadyUploaded && !!info.relay !== !!task.relayUpload) throw new Error('Upload recovery route changed');
205
+ const uploadRequired = !info.alreadyUploaded && (!task.completionPending || info.reuploadRequired === true);
206
+ if (uploadRequired && !!info.relay !== !!task.relayUpload) throw new Error('Upload recovery route changed');
207
+ if (task.completionPending && !info.complete) throw new Error('Pending upload requires durable host completion acknowledgement');
204
208
  hostAbort = () => attempt.controller.abort();
205
209
  info.signal?.addEventListener('abort', hostAbort, {
206
210
  once: true
207
211
  });
208
212
  if (info.signal?.aborted) hostAbort();
209
213
  check();
210
- if (info.expiresAt && info.expiresAt.getTime() <= Date.now() && !info.alreadyUploaded) throw new Error('Upload credentials expired');
214
+ if (info.expiresAt && info.expiresAt.getTime() <= Date.now() && uploadRequired) throw new Error('Upload credentials expired');
211
215
  await this.update(id, {
212
216
  status: 'uploading',
213
217
  errorMessage: undefined,
@@ -216,7 +220,11 @@ class NativeUploadQueue extends _eventemitter.default {
216
220
  check();
217
221
  this.emit('uploadStarted', id);
218
222
  check();
219
- if (!info.alreadyUploaded) {
223
+ if (uploadRequired) {
224
+ if (task.completionPending) await this.update(id, {
225
+ completionPending: false
226
+ }, check);
227
+ check();
220
228
  nativeStarted = true;
221
229
  await this.client.uploadRecordingFile({
222
230
  ...task,
@@ -239,6 +247,10 @@ class NativeUploadQueue extends _eventemitter.default {
239
247
  }
240
248
  if (info.complete) {
241
249
  if (task.fileSizeBytes === undefined) throw new Error('Upload completion requires known file size');
250
+ await this.update(id, {
251
+ completionPending: true
252
+ }, check);
253
+ check();
242
254
  await abortable(Promise.resolve().then(() => {
243
255
  check();
244
256
  return info.complete({
@@ -253,6 +265,7 @@ class NativeUploadQueue extends _eventemitter.default {
253
265
  check();
254
266
  await this.update(id, {
255
267
  status: 'completed',
268
+ completionPending: undefined,
256
269
  errorMessage: undefined,
257
270
  nextAttemptAt: undefined
258
271
  }, check);
@@ -263,17 +276,18 @@ class NativeUploadQueue extends _eventemitter.default {
263
276
  } catch (error) {
264
277
  if (!this.destroyed && !this.cancelledTasks.has(id) && this.get(id)?.status !== 'completed') {
265
278
  const task = this.get(id);
266
- const parked = info === null || signal.aborted;
279
+ const verificationPending = error instanceof _uploadVerificationPending.UploadVerificationPendingError;
280
+ const parked = info === null || signal.aborted || verificationPending;
267
281
  const retry = !!this.provider && task.retryCount < 6 && Date.now() - task.createdAt.getTime() < 86_400_000;
268
282
  await this.update(id, {
269
283
  status: parked || retry ? 'pending' : 'failed',
270
284
  retryCount: task.retryCount + (parked ? 0 : 1),
271
285
  nextAttemptAt: parked ? Date.now() + 30_000 : retry ? Date.now() + retryDelays[Math.min(task.retryCount, 4)] : undefined,
272
- errorMessage: parked ? 'Upload waiting for its original account' : 'Upload attempt failed'
286
+ errorMessage: verificationPending ? 'Upload verification pending' : parked ? 'Upload waiting for its original account' : 'Upload attempt failed'
273
287
  }).catch(() => {
274
288
  this.pause();
275
289
  });
276
- if (!this.destroyed) this.emit('uploadFailed', id, new Error(parked ? 'Upload paused' : 'Upload attempt failed'));
290
+ if (!this.destroyed) this.emit('uploadFailed', id, new Error(verificationPending ? 'Upload verification pending' : parked ? 'Upload paused' : 'Upload attempt failed'));
277
291
  }
278
292
  throw error;
279
293
  } finally {
@@ -1 +1 @@
1
- {"version":3,"names":["_eventemitter","_interopRequireDefault","require","_uploadRecoveryMetadata","e","__esModule","default","journalOperations","WeakMap","journalOwners","retryDelays","cancelled","Error","dispose","info","abortable","promise","signal","late","Promise","resolve","reject","settled","abort","addEventListener","once","aborted","then","value","removeEventListener","error","NativeUploadQueue","EventEmitter","tasks","active","Map","credentials","cancelledTasks","Set","paused","destroyed","initialized","constructor","client","provider","initialize","initialization","owner","get","set","serialize","checkAlive","loaded","loadUploadQueue","restored","restoreUploadQueue","length","saveUploadQueue","task","filter","status","release","catch","undefined","schedule","delete","all","map","createdAt","Date","updatedAt","id","find","add","mutate","persistedUploadQueue","offerCredentials","has","discardCredentials","update","patch","check","some","relayUpload","relay","run","onProgress","attempt","controller","AbortController","nativeId","now","Math","random","toString","slice","perform","finally","hostAbort","initialSignal","initialAbort","nativeStarted","nativeCancellation","cancelNative","cancelRecordingUpload","alreadyUploaded","url","uploadUrl","expiresAt","getTime","recordingUuid","taskId","recordingId","deviceId","recoveryScope","fileSizeBytes","contentType","contentSha256","nextAttemptAt","errorMessage","emit","uploadRecordingFile","uploadToken","complete","completeUrl","totalBytes","min","completedBytes","parked","retry","retryCount","pause","releaseRecordingFile","localPath","cancel","credential","clearCompleted","snapshot","released","clearAll","retryFailed","timer","clearTimeout","resume","destroy","stopped","destroyCompatibilityOperations","values","clear","removeAllListeners","wake","Infinity","size","Number","isFinite","setTimeout","max","operation","next","change","exports"],"sourceRoot":"../../../src","sources":["managers/NativeUploadQueue.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_eventemitter","_interopRequireDefault","require","_uploadRecoveryMetadata","_uploadVerificationPending","e","__esModule","default","journalOperations","WeakMap","journalOwners","retryDelays","cancelled","Error","dispose","info","abortable","promise","signal","late","Promise","resolve","reject","settled","abort","addEventListener","once","aborted","then","value","removeEventListener","error","NativeUploadQueue","EventEmitter","tasks","active","Map","credentials","cancelledTasks","Set","paused","destroyed","initialized","constructor","client","provider","initialize","initialization","owner","get","set","serialize","checkAlive","loaded","loadUploadQueue","restored","restoreUploadQueue","length","saveUploadQueue","task","filter","status","release","catch","undefined","schedule","delete","all","map","createdAt","Date","updatedAt","id","find","add","mutate","persistedUploadQueue","offerCredentials","has","discardCredentials","update","patch","check","some","relayUpload","relay","run","onProgress","attempt","controller","AbortController","nativeId","now","Math","random","toString","slice","perform","finally","hostAbort","initialSignal","initialAbort","nativeStarted","nativeCancellation","cancelNative","cancelRecordingUpload","completionPending","alreadyUploaded","url","uploadUrl","expiresAt","getTime","recordingUuid","taskId","recordingId","deviceId","recoveryScope","fileSizeBytes","contentType","contentSha256","nextAttemptAt","uploadRequired","reuploadRequired","complete","errorMessage","emit","uploadRecordingFile","uploadToken","completeUrl","totalBytes","min","completedBytes","verificationPending","UploadVerificationPendingError","parked","retry","retryCount","pause","releaseRecordingFile","localPath","cancel","credential","clearCompleted","snapshot","released","clearAll","retryFailed","timer","clearTimeout","resume","destroy","stopped","destroyCompatibilityOperations","values","clear","removeAllListeners","wake","Infinity","size","Number","isFinite","setTimeout","max","operation","next","change","exports"],"sourceRoot":"../../../src","sources":["managers/NativeUploadQueue.ts"],"mappings":"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","ignoreList":[]}
@@ -40,6 +40,9 @@ function persistedUploadQueue(tasks) {
40
40
  ...(task.contentSha256 === undefined ? {} : {
41
41
  contentSha256: task.contentSha256
42
42
  }),
43
+ ...(task.completionPending === undefined ? {} : {
44
+ completionPending: task.completionPending
45
+ }),
43
46
  relayUpload: task.relayUpload ?? !!task.relay
44
47
  }));
45
48
  }
@@ -63,6 +66,7 @@ function restoreUploadQueue(value) {
63
66
  if (task[field] !== undefined && (!Number.isSafeInteger(task[field]) || task[field] < 0)) return invalid();
64
67
  }
65
68
  if (task.relayUpload !== undefined && typeof task.relayUpload !== 'boolean') return invalid();
69
+ if (task.completionPending !== undefined && typeof task.completionPending !== 'boolean') return invalid();
66
70
  const createdAt = new Date(task.createdAt);
67
71
  const updatedAt = new Date(task.updatedAt);
68
72
  if (!Number.isFinite(createdAt.getTime()) || !Number.isFinite(updatedAt.getTime())) return invalid();
@@ -1 +1 @@
1
- {"version":3,"names":["invalid","Error","persistedUploadQueue","tasks","map","task","id","recordingId","deviceId","localPath","uploadUrl","status","retryCount","createdAt","Date","updatedAt","recordingUuid","undefined","recoveryScope","fileSizeBytes","nextAttemptAt","contentType","contentSha256","relayUpload","relay","restoreUploadQueue","value","Array","isArray","ids","Set","validated","entry","field","has","add","includes","Number","isSafeInteger","isFinite","getTime","rejectRecordingDataStore"],"sourceRoot":"../../../src","sources":["managers/uploadRecoveryMetadata.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["invalid","Error","persistedUploadQueue","tasks","map","task","id","recordingId","deviceId","localPath","uploadUrl","status","retryCount","createdAt","Date","updatedAt","recordingUuid","undefined","recoveryScope","fileSizeBytes","nextAttemptAt","contentType","contentSha256","completionPending","relayUpload","relay","restoreUploadQueue","value","Array","isArray","ids","Set","validated","entry","field","has","add","includes","Number","isSafeInteger","isFinite","getTime","rejectRecordingDataStore"],"sourceRoot":"../../../src","sources":["managers/uploadRecoveryMetadata.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UploadVerificationPendingError = void 0;
7
+ exports.isUploadVerificationPending = isUploadVerificationPending;
8
+ /** Internal completion-budget signal; it is never acknowledgement or repair. */
9
+ class UploadVerificationPendingError extends Error {
10
+ constructor() {
11
+ super('Upload verification pending');
12
+ }
13
+ }
14
+ exports.UploadVerificationPendingError = UploadVerificationPendingError;
15
+ function isUploadVerificationPending(error) {
16
+ if (!error || typeof error !== 'object') return false;
17
+ const value = error;
18
+ return value.status === 425 && value.data?.error?.code === 'upload_verification_pending';
19
+ }
20
+ //# sourceMappingURL=uploadVerificationPending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UploadVerificationPendingError","Error","constructor","exports","isUploadVerificationPending","error","value","status","data","code"],"sourceRoot":"../../../src","sources":["managers/uploadVerificationPending.ts"],"mappings":";;;;;;;AAAA;AACO,MAAMA,8BAA8B,SAASC,KAAK,CAAC;EACxDC,WAAWA,CAAA,EAAG;IAAE,KAAK,CAAC,6BAA6B,CAAC;EAAE;AACxD;AAACC,OAAA,CAAAH,8BAAA,GAAAA,8BAAA;AAEM,SAASI,2BAA2BA,CAACC,KAAc,EAAW;EACnE,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK;EACrD,MAAMC,KAAK,GAAGD,KAAoE;EAClF,OAAOC,KAAK,CAACC,MAAM,KAAK,GAAG,IAAID,KAAK,CAACE,IAAI,EAAEH,KAAK,EAAEI,IAAI,KAAK,6BAA6B;AAC1F","ignoreList":[]}
@@ -6,5 +6,5 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.SDK_VERSION = exports.SDK_PACKAGE = void 0;
7
7
  // Generated by cargo xtask client-identity generate. Do not edit.
8
8
  const SDK_PACKAGE = exports.SDK_PACKAGE = '@bota.dev/react-native-app-sdk';
9
- const SDK_VERSION = exports.SDK_VERSION = '2.0.0-beta.13';
9
+ const SDK_VERSION = exports.SDK_VERSION = '2.0.0-beta.14';
10
10
  //# sourceMappingURL=sdkIdentity.js.map
@@ -4,6 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createUploadRecoveryProvider = createUploadRecoveryProvider;
7
+ var _uploadVerificationPending = require("./managers/uploadVerificationPending");
8
+ const waitForCompletion = (milliseconds, signals) => new Promise((resolve, reject) => {
9
+ const unique = [...new Set(signals)];
10
+ const clean = () => {
11
+ clearTimeout(timer);
12
+ unique.forEach(signal => signal.removeEventListener('abort', abort));
13
+ };
14
+ const abort = () => {
15
+ clean();
16
+ reject(new Error('Upload recovery cancelled'));
17
+ };
18
+ const timer = setTimeout(() => {
19
+ clean();
20
+ resolve();
21
+ }, milliseconds);
22
+ unique.forEach(signal => signal.addEventListener('abort', abort, {
23
+ once: true
24
+ }));
25
+ if (unique.some(signal => signal.aborted)) abort();
26
+ });
27
+
7
28
  /** A host-owned, authenticated lease. It must permanently reject changed identities. */
8
29
 
9
30
  /** Build scoped metadata recovery while native SDK storage retains recording bytes.
@@ -29,12 +50,19 @@ function createUploadRecoveryProvider(openBackend) {
29
50
  check();
30
51
  const recording = await api.getRecording(task.recordingId, task.signal);
31
52
  check();
32
- if (recording.id !== task.recordingId || !task.relayUpload && (task.contentSha256 && recording.content_sha256 && task.contentSha256 !== recording.content_sha256 || task.fileSizeBytes !== undefined && recording.file_size_bytes != null && task.fileSizeBytes !== recording.file_size_bytes)) throw new Error('Upload recovery identity or evidence changed');
53
+ const wireSize = recording.file_size_bytes;
54
+ if (typeof wireSize === 'string' && !/^(0|[1-9][0-9]*)$/.test(wireSize)) throw new Error('Invalid upload recovery file size');
55
+ const fileSize = typeof wireSize === 'string' ? Number(wireSize) : wireSize;
56
+ if (fileSize != null && (typeof fileSize !== 'number' || !Number.isSafeInteger(fileSize) || fileSize < 0)) {
57
+ throw new Error('Invalid upload recovery file size');
58
+ }
59
+ if (recording.id !== task.recordingId || !task.relayUpload && (task.contentSha256 && recording.content_sha256 && task.contentSha256 !== recording.content_sha256 || task.fileSizeBytes !== undefined && fileSize != null && task.fileSizeBytes !== fileSize)) throw new Error('Upload recovery identity or evidence changed');
33
60
  if (!['pending', 'uploaded', 'integrity_failure'].includes(recording.status)) throw new Error('Recording unavailable for recovery');
34
61
  const start = Date.parse(String(recording.metadata?.started_at ?? ''));
35
62
  const end = Date.parse(String(recording.metadata?.ended_at ?? ''));
36
63
  const duration = Number.isFinite(start) && Number.isFinite(end) && end >= start ? Math.floor((end - start) / 1000) : undefined;
37
- const target = recording.status === 'uploaded' ? {
64
+ const alreadyUploaded = recording.status === 'uploaded' || task.completionPending === true && recording.status === 'pending';
65
+ const target = alreadyUploaded ? {
38
66
  uploadUrl: ''
39
67
  } : await api.getUploadInfo(task.recordingId, task.relayUpload, task.contentType, task.signal);
40
68
  check();
@@ -42,7 +70,8 @@ function createUploadRecoveryProvider(openBackend) {
42
70
  ...target,
43
71
  recordingId: task.recordingId,
44
72
  recoveryScope: task.recoveryScope,
45
- alreadyUploaded: recording.status === 'uploaded',
73
+ alreadyUploaded,
74
+ reuploadRequired: recording.status === 'integrity_failure',
46
75
  signal: api.signal,
47
76
  dispose: () => api.dispose(),
48
77
  complete: async ({
@@ -50,13 +79,27 @@ function createUploadRecoveryProvider(openBackend) {
50
79
  contentSha256,
51
80
  signal
52
81
  }) => {
53
- check(signal);
54
- await api.completeRecording(task.recordingId, {
82
+ const data = {
55
83
  duration_seconds: duration,
56
84
  file_size_bytes: fileSizeBytes,
57
85
  content_sha256: contentSha256
58
- }, signal);
59
- check(signal);
86
+ };
87
+ const deadline = Date.now() + 120_000;
88
+ for (let poll = 0;; poll++) {
89
+ check(signal);
90
+ if (poll > 0 && (Date.now() >= deadline || poll >= 120)) throw new _uploadVerificationPending.UploadVerificationPendingError();
91
+ try {
92
+ await api.completeRecording(task.recordingId, data, signal);
93
+ check(signal);
94
+ return;
95
+ } catch (error) {
96
+ check(signal);
97
+ if (!(0, _uploadVerificationPending.isUploadVerificationPending)(error)) throw error;
98
+ const remaining = deadline - Date.now();
99
+ if (remaining <= 0) throw new _uploadVerificationPending.UploadVerificationPendingError();
100
+ await waitForCompletion(Math.min(1_000 + Math.floor(Math.random() * 1_000), remaining), [signal, task.signal, api.signal]);
101
+ }
102
+ }
60
103
  }
61
104
  };
62
105
  } catch {
@@ -1 +1 @@
1
- {"version":3,"names":["createUploadRecoveryProvider","openBackend","task","recoveryScope","signal","aborted","backend","api","check","checkScope","Error","scopeKey","dispose","recording","getRecording","recordingId","id","relayUpload","contentSha256","content_sha256","fileSizeBytes","undefined","file_size_bytes","includes","status","start","Date","parse","String","metadata","started_at","end","ended_at","duration","Number","isFinite","Math","floor","target","uploadUrl","getUploadInfo","contentType","alreadyUploaded","complete","completeRecording","duration_seconds"],"sourceRoot":"../../src","sources":["uploadRecovery.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uploadVerificationPending","require","waitForCompletion","milliseconds","signals","Promise","resolve","reject","unique","Set","clean","clearTimeout","timer","forEach","signal","removeEventListener","abort","Error","setTimeout","addEventListener","once","some","aborted","createUploadRecoveryProvider","openBackend","task","recoveryScope","backend","api","check","checkScope","scopeKey","dispose","recording","getRecording","recordingId","wireSize","file_size_bytes","test","fileSize","Number","isSafeInteger","id","relayUpload","contentSha256","content_sha256","fileSizeBytes","undefined","includes","status","start","Date","parse","String","metadata","started_at","end","ended_at","duration","isFinite","Math","floor","alreadyUploaded","completionPending","target","uploadUrl","getUploadInfo","contentType","reuploadRequired","complete","data","duration_seconds","deadline","now","poll","UploadVerificationPendingError","completeRecording","error","isUploadVerificationPending","remaining","min","random"],"sourceRoot":"../../src","sources":["uploadRecovery.ts"],"mappings":"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","ignoreList":[]}