@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.
- package/README.md +20 -7
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploads.kt +2 -2
- package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploadsTest.kt +23 -0
- package/generated/codegen-contract.json +2 -2
- package/ios/BotaDeviceSDKAppleRecordingUploads.swift +3 -3
- package/lib/commonjs/managers/NativeUploadQueue.js +22 -8
- package/lib/commonjs/managers/NativeUploadQueue.js.map +1 -1
- package/lib/commonjs/managers/uploadRecoveryMetadata.js +4 -0
- package/lib/commonjs/managers/uploadRecoveryMetadata.js.map +1 -1
- package/lib/commonjs/managers/uploadVerificationPending.js +20 -0
- package/lib/commonjs/managers/uploadVerificationPending.js.map +1 -0
- package/lib/commonjs/sdkIdentity.js +1 -1
- package/lib/commonjs/uploadRecovery.js +50 -7
- package/lib/commonjs/uploadRecovery.js.map +1 -1
- package/lib/module/managers/NativeUploadQueue.js +22 -8
- package/lib/module/managers/NativeUploadQueue.js.map +1 -1
- package/lib/module/managers/uploadRecoveryMetadata.js +4 -0
- package/lib/module/managers/uploadRecoveryMetadata.js.map +1 -1
- package/lib/module/managers/uploadVerificationPending.js +14 -0
- package/lib/module/managers/uploadVerificationPending.js.map +1 -0
- package/lib/module/sdkIdentity.js +1 -1
- package/lib/module/uploadRecovery.js +50 -7
- package/lib/module/uploadRecovery.js.map +1 -1
- package/lib/typescript/managers/NativeUploadQueue.d.ts.map +1 -1
- package/lib/typescript/managers/uploadRecoveryMetadata.d.ts.map +1 -1
- package/lib/typescript/managers/uploadVerificationPending.d.ts +6 -0
- package/lib/typescript/managers/uploadVerificationPending.d.ts.map +1 -0
- package/lib/typescript/models/Recording.d.ts +6 -0
- package/lib/typescript/models/Recording.d.ts.map +1 -1
- package/lib/typescript/sdkIdentity.d.ts +1 -1
- package/lib/typescript/uploadRecovery.d.ts +1 -1
- package/lib/typescript/uploadRecovery.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/managers/NativeUploadQueue.ts +18 -9
- package/src/managers/uploadRecoveryMetadata.ts +2 -0
- package/src/managers/uploadVerificationPending.ts +10 -0
- package/src/models/Recording.ts +6 -0
- package/src/sdkIdentity.ts +1 -1
- 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.
|
|
4
|
-
It
|
|
5
|
-
|
|
6
|
-
Beta.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploads.kt
CHANGED
|
@@ -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(
|
|
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)) {
|
package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploadsTest.kt
CHANGED
|
@@ -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.
|
|
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": "
|
|
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
|
-
|
|
199
|
-
guard let number =
|
|
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 &&
|
|
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
|
-
|
|
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() &&
|
|
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 (
|
|
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
|
|
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":";;;;;;;;AAEA,MAAMA,OAAO,GAAGA,CAAA,KAAa;EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;AAAE,CAAC;;AAEpF;AACO,SAASC,oBAAoBA,CAACC,KAAmB,EAAgB;EACtE,OAAOA,KAAK,CAACC,GAAG,CAAEC,IAAI,KAAM;IAC1BC,EAAE,EAAED,IAAI,CAACC,EAAE;IACXC,WAAW,EAAEF,IAAI,CAACE,WAAW;IAC7BC,QAAQ,EAAEH,IAAI,CAACG,QAAQ;IACvBC,SAAS,EAAEJ,IAAI,CAACI,SAAS;IACzBC,SAAS,EAAE,EAAE;IACbC,MAAM,EAAEN,IAAI,CAACM,MAAM;IACnBC,UAAU,EAAEP,IAAI,CAACO,UAAU;IAC3BC,SAAS,EAAE,IAAIC,IAAI,CAACT,IAAI,CAACQ,SAAS,CAAC;IACnCE,SAAS,EAAE,IAAID,IAAI,CAACT,IAAI,CAACU,SAAS,CAAC;IACnC,IAAIV,IAAI,CAACW,aAAa,KAAKC,SAAS,GAAG,CAAC,CAAC,GAAG;MAAED,aAAa,EAAEX,IAAI,CAACW;IAAc,CAAC,CAAC;IAClF,IAAIX,IAAI,CAACa,aAAa,KAAKD,SAAS,GAAG,CAAC,CAAC,GAAG;MAAEC,aAAa,EAAEb,IAAI,CAACa;IAAc,CAAC,CAAC;IAClF,IAAIb,IAAI,CAACc,aAAa,KAAKF,SAAS,GAAG,CAAC,CAAC,GAAG;MAAEE,aAAa,EAAEd,IAAI,CAACc;IAAc,CAAC,CAAC;IAClF,IAAId,IAAI,CAACe,aAAa,KAAKH,SAAS,GAAG,CAAC,CAAC,GAAG;MAAEG,aAAa,EAAEf,IAAI,CAACe;IAAc,CAAC,CAAC;IAClF,IAAIf,IAAI,CAACgB,WAAW,KAAKJ,SAAS,GAAG,CAAC,CAAC,GAAG;MAAEI,WAAW,EAAEhB,IAAI,CAACgB;IAAY,CAAC,CAAC;IAC5E,IAAIhB,IAAI,CAACiB,aAAa,KAAKL,SAAS,GAAG,CAAC,CAAC,GAAG;MAAEK,aAAa,EAAEjB,IAAI,CAACiB;IAAc,CAAC,CAAC;
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
}
|
|
59
|
-
|
|
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":["
|
|
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":[]}
|