@bota.dev/react-native-app-sdk 2.0.0-beta.12 → 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 +21 -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/client.js +5 -0
- package/lib/commonjs/client.js.map +1 -1
- 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/client.js +5 -0
- package/lib/module/client.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/client.d.ts.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/client.ts +7 -0
- package/src/managers/NativeUploadQueue.ts +20 -8
- 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
|
@@ -34,6 +34,9 @@ export function persistedUploadQueue(tasks) {
|
|
|
34
34
|
...(task.contentSha256 === undefined ? {} : {
|
|
35
35
|
contentSha256: task.contentSha256
|
|
36
36
|
}),
|
|
37
|
+
...(task.completionPending === undefined ? {} : {
|
|
38
|
+
completionPending: task.completionPending
|
|
39
|
+
}),
|
|
37
40
|
relayUpload: task.relayUpload ?? !!task.relay
|
|
38
41
|
}));
|
|
39
42
|
}
|
|
@@ -57,6 +60,7 @@ export function restoreUploadQueue(value) {
|
|
|
57
60
|
if (task[field] !== undefined && (!Number.isSafeInteger(task[field]) || task[field] < 0)) return invalid();
|
|
58
61
|
}
|
|
59
62
|
if (task.relayUpload !== undefined && typeof task.relayUpload !== 'boolean') return invalid();
|
|
63
|
+
if (task.completionPending !== undefined && typeof task.completionPending !== 'boolean') return invalid();
|
|
60
64
|
const createdAt = new Date(task.createdAt);
|
|
61
65
|
const updatedAt = new Date(task.updatedAt);
|
|
62
66
|
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;AACA,OAAO,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,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/** Internal completion-budget signal; it is never acknowledgement or repair. */
|
|
4
|
+
export class UploadVerificationPendingError extends Error {
|
|
5
|
+
constructor() {
|
|
6
|
+
super('Upload verification pending');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function isUploadVerificationPending(error) {
|
|
10
|
+
if (!error || typeof error !== 'object') return false;
|
|
11
|
+
const value = error;
|
|
12
|
+
return value.status === 425 && value.data?.error?.code === 'upload_verification_pending';
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=uploadVerificationPending.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UploadVerificationPendingError","Error","constructor","isUploadVerificationPending","error","value","status","data","code"],"sourceRoot":"../../../src","sources":["managers/uploadVerificationPending.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,8BAA8B,SAASC,KAAK,CAAC;EACxDC,WAAWA,CAAA,EAAG;IAAE,KAAK,CAAC,6BAA6B,CAAC;EAAE;AACxD;AAEA,OAAO,SAASC,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":[]}
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { isUploadVerificationPending, UploadVerificationPendingError } from './managers/uploadVerificationPending';
|
|
4
|
+
const waitForCompletion = (milliseconds, signals) => new Promise((resolve, reject) => {
|
|
5
|
+
const unique = [...new Set(signals)];
|
|
6
|
+
const clean = () => {
|
|
7
|
+
clearTimeout(timer);
|
|
8
|
+
unique.forEach(signal => signal.removeEventListener('abort', abort));
|
|
9
|
+
};
|
|
10
|
+
const abort = () => {
|
|
11
|
+
clean();
|
|
12
|
+
reject(new Error('Upload recovery cancelled'));
|
|
13
|
+
};
|
|
14
|
+
const timer = setTimeout(() => {
|
|
15
|
+
clean();
|
|
16
|
+
resolve();
|
|
17
|
+
}, milliseconds);
|
|
18
|
+
unique.forEach(signal => signal.addEventListener('abort', abort, {
|
|
19
|
+
once: true
|
|
20
|
+
}));
|
|
21
|
+
if (unique.some(signal => signal.aborted)) abort();
|
|
22
|
+
});
|
|
23
|
+
|
|
3
24
|
/** A host-owned, authenticated lease. It must permanently reject changed identities. */
|
|
4
25
|
|
|
5
26
|
/** Build scoped metadata recovery while native SDK storage retains recording bytes.
|
|
@@ -25,12 +46,19 @@ export function createUploadRecoveryProvider(openBackend) {
|
|
|
25
46
|
check();
|
|
26
47
|
const recording = await api.getRecording(task.recordingId, task.signal);
|
|
27
48
|
check();
|
|
28
|
-
|
|
49
|
+
const wireSize = recording.file_size_bytes;
|
|
50
|
+
if (typeof wireSize === 'string' && !/^(0|[1-9][0-9]*)$/.test(wireSize)) throw new Error('Invalid upload recovery file size');
|
|
51
|
+
const fileSize = typeof wireSize === 'string' ? Number(wireSize) : wireSize;
|
|
52
|
+
if (fileSize != null && (typeof fileSize !== 'number' || !Number.isSafeInteger(fileSize) || fileSize < 0)) {
|
|
53
|
+
throw new Error('Invalid upload recovery file size');
|
|
54
|
+
}
|
|
55
|
+
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');
|
|
29
56
|
if (!['pending', 'uploaded', 'integrity_failure'].includes(recording.status)) throw new Error('Recording unavailable for recovery');
|
|
30
57
|
const start = Date.parse(String(recording.metadata?.started_at ?? ''));
|
|
31
58
|
const end = Date.parse(String(recording.metadata?.ended_at ?? ''));
|
|
32
59
|
const duration = Number.isFinite(start) && Number.isFinite(end) && end >= start ? Math.floor((end - start) / 1000) : undefined;
|
|
33
|
-
const
|
|
60
|
+
const alreadyUploaded = recording.status === 'uploaded' || task.completionPending === true && recording.status === 'pending';
|
|
61
|
+
const target = alreadyUploaded ? {
|
|
34
62
|
uploadUrl: ''
|
|
35
63
|
} : await api.getUploadInfo(task.recordingId, task.relayUpload, task.contentType, task.signal);
|
|
36
64
|
check();
|
|
@@ -38,7 +66,8 @@ export function createUploadRecoveryProvider(openBackend) {
|
|
|
38
66
|
...target,
|
|
39
67
|
recordingId: task.recordingId,
|
|
40
68
|
recoveryScope: task.recoveryScope,
|
|
41
|
-
alreadyUploaded
|
|
69
|
+
alreadyUploaded,
|
|
70
|
+
reuploadRequired: recording.status === 'integrity_failure',
|
|
42
71
|
signal: api.signal,
|
|
43
72
|
dispose: () => api.dispose(),
|
|
44
73
|
complete: async ({
|
|
@@ -46,13 +75,27 @@ export function createUploadRecoveryProvider(openBackend) {
|
|
|
46
75
|
contentSha256,
|
|
47
76
|
signal
|
|
48
77
|
}) => {
|
|
49
|
-
|
|
50
|
-
await api.completeRecording(task.recordingId, {
|
|
78
|
+
const data = {
|
|
51
79
|
duration_seconds: duration,
|
|
52
80
|
file_size_bytes: fileSizeBytes,
|
|
53
81
|
content_sha256: contentSha256
|
|
54
|
-
}
|
|
55
|
-
|
|
82
|
+
};
|
|
83
|
+
const deadline = Date.now() + 120_000;
|
|
84
|
+
for (let poll = 0;; poll++) {
|
|
85
|
+
check(signal);
|
|
86
|
+
if (poll > 0 && (Date.now() >= deadline || poll >= 120)) throw new UploadVerificationPendingError();
|
|
87
|
+
try {
|
|
88
|
+
await api.completeRecording(task.recordingId, data, signal);
|
|
89
|
+
check(signal);
|
|
90
|
+
return;
|
|
91
|
+
} catch (error) {
|
|
92
|
+
check(signal);
|
|
93
|
+
if (!isUploadVerificationPending(error)) throw error;
|
|
94
|
+
const remaining = deadline - Date.now();
|
|
95
|
+
if (remaining <= 0) throw new UploadVerificationPendingError();
|
|
96
|
+
await waitForCompletion(Math.min(1_000 + Math.floor(Math.random() * 1_000), remaining), [signal, task.signal, api.signal]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
56
99
|
}
|
|
57
100
|
};
|
|
58
101
|
} catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isUploadVerificationPending","UploadVerificationPendingError","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","completeRecording","error","remaining","min","random"],"sourceRoot":"../../src","sources":["uploadRecovery.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeUploadQueue.d.ts","sourceRoot":"","sources":["../../../src/managers/NativeUploadQueue.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeUploadQueue.d.ts","sourceRoot":"","sources":["../../../src/managers/NativeUploadQueue.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAoC/D,mFAAmF;AACnF,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAYvE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAZ5B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,KAAK,CAAC,CAAgC;gBAG3B,MAAM,EAAE,4BAA4B,EACpC,QAAQ,CAAC,EAAE,sBAAsB,YAAA;IAGpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B,GAAG,IAAI,UAAU,EAAE;IACnB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAEjC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAOjD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvF,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAiB7E,OAAO;YA+HP,OAAO;IAKf,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAM9B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC,KAAK,IAAI,IAAI;IACb,MAAM,IAAI,IAAI;IAEd,OAAO,IAAI,IAAI;IAiBf,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,UAAU;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadRecoveryMetadata.d.ts","sourceRoot":"","sources":["../../../src/managers/uploadRecoveryMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"uploadRecoveryMetadata.d.ts","sourceRoot":"","sources":["../../../src/managers/uploadRecoveryMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAoBtE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,EAAE,CA2B/D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAI7D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Internal completion-budget signal; it is never acknowledgement or repair. */
|
|
2
|
+
export declare class UploadVerificationPendingError extends Error {
|
|
3
|
+
constructor();
|
|
4
|
+
}
|
|
5
|
+
export declare function isUploadVerificationPending(error: unknown): boolean;
|
|
6
|
+
//# sourceMappingURL=uploadVerificationPending.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadVerificationPending.d.ts","sourceRoot":"","sources":["../../../src/managers/uploadVerificationPending.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qBAAa,8BAA+B,SAAQ,KAAK;;CAExD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInE"}
|
|
@@ -31,6 +31,8 @@ export interface UploadInfo {
|
|
|
31
31
|
recoveryScope?: string;
|
|
32
32
|
/** Skip sending the object; complete must still acknowledge host durability. */
|
|
33
33
|
alreadyUploaded?: boolean;
|
|
34
|
+
/** Explicit authenticated integrity failure permits repair of a completion-pending object. */
|
|
35
|
+
reuploadRequired?: boolean;
|
|
34
36
|
/** Resolve only after the backend durably acknowledges this exact recording. */
|
|
35
37
|
complete?: (context: {
|
|
36
38
|
fileSizeBytes: number;
|
|
@@ -87,6 +89,8 @@ export interface UploadRecoveryContext {
|
|
|
87
89
|
relayUpload: boolean;
|
|
88
90
|
contentType?: string;
|
|
89
91
|
contentSha256?: string;
|
|
92
|
+
/** Bytes were sent; recover completion before considering another upload. Not verification proof. */
|
|
93
|
+
completionPending?: boolean;
|
|
90
94
|
signal: AbortSignal;
|
|
91
95
|
}
|
|
92
96
|
/** Null parks an unavailable account without consuming the retry budget. */
|
|
@@ -133,6 +137,8 @@ export interface UploadTask {
|
|
|
133
137
|
fileSizeBytes?: number;
|
|
134
138
|
relayUpload?: boolean;
|
|
135
139
|
nextAttemptAt?: number;
|
|
140
|
+
/** Durable byte-upload completion; backend acknowledgement and cleanup are still required. */
|
|
141
|
+
completionPending?: boolean;
|
|
136
142
|
/** Volatile compatibility field; never included in queue persistence. */
|
|
137
143
|
complete?: UploadInfo['complete'];
|
|
138
144
|
/** Unique task identifier */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recording.d.ts","sourceRoot":"","sources":["../../../src/models/Recording.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Recording.d.ts","sourceRoot":"","sources":["../../../src/models/Recording.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export interface UploadRecoveryBackend {
|
|
|
10
10
|
status: string;
|
|
11
11
|
metadata?: Record<string, unknown>;
|
|
12
12
|
content_sha256?: string | null;
|
|
13
|
-
file_size_bytes?: number | null;
|
|
13
|
+
file_size_bytes?: number | string | null;
|
|
14
14
|
}>;
|
|
15
15
|
getUploadInfo(id: string, relay: boolean, contentType: string | undefined, signal: AbortSignal): Promise<Pick<UploadInfo, 'uploadUrl' | 'relay' | 'contentType'>>;
|
|
16
16
|
completeRecording(id: string, data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadRecovery.d.ts","sourceRoot":"","sources":["../../src/uploadRecovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"uploadRecovery.d.ts","sourceRoot":"","sources":["../../src/uploadRecovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAapG,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,IAAI,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;QACrD,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KAC1E,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC;IAClK,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7J;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAClF,sBAAsB,CAkExB"}
|
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import type {
|
|
2
3
|
NativeClientContext,
|
|
3
4
|
NativeCapabilities,
|
|
@@ -1063,6 +1064,12 @@ export const createBotaDeviceSDK = (nativeModule: Spec | null): BotaDeviceSDKCli
|
|
|
1063
1064
|
commandId: request.commandId,
|
|
1064
1065
|
bindingGeneration: request.bindingGeneration,
|
|
1065
1066
|
});
|
|
1067
|
+
const grant = Buffer.from(grantBlob, 'base64');
|
|
1068
|
+
if (request.serialNumber !== device.serialNumber || request.commandId !== options.commandId ||
|
|
1069
|
+
request.bindingGeneration !== options.bindingGeneration || grant.length !== 179 ||
|
|
1070
|
+
grant.toString('base64') !== grantBlob || grant.readUInt32BE(0) !== options.bindingGeneration) {
|
|
1071
|
+
throw new Error('Factory reset requires an exact-device, exact-generation reset grant; deprovision permission is insufficient');
|
|
1072
|
+
}
|
|
1066
1073
|
await module.resolveFactoryResetGrant(request.requestId, grantBlob);
|
|
1067
1074
|
} catch (error) {
|
|
1068
1075
|
await module.rejectApplicationMaterial(
|
|
@@ -3,6 +3,7 @@ import type { BotaDeviceSDKRecordingClient, BotaRecordingTransferProgress } from
|
|
|
3
3
|
import type { UploadInfo, UploadRecoveryProvider, UploadTask } from '../models/Recording';
|
|
4
4
|
import type { RecordingManagerEvents } from '../models/Status';
|
|
5
5
|
import { persistedUploadQueue, restoreUploadQueue } from './uploadRecoveryMetadata';
|
|
6
|
+
import { UploadVerificationPendingError } from './uploadVerificationPending';
|
|
6
7
|
|
|
7
8
|
const journalOperations = new WeakMap<object, Promise<unknown>>();
|
|
8
9
|
const journalOwners = new WeakMap<object, NativeUploadQueue>();
|
|
@@ -149,7 +150,10 @@ export class NativeUploadQueue extends EventEmitter<RecordingManagerEvents> {
|
|
|
149
150
|
initialSignal?.addEventListener('abort', initialAbort, { once: true });
|
|
150
151
|
if (initialSignal?.aborted) initialAbort();
|
|
151
152
|
check();
|
|
152
|
-
if (info
|
|
153
|
+
if (info && this.provider && !info.signal?.aborted && (task.completionPending || (!info.alreadyUploaded && (
|
|
154
|
+
!(info.relay ? info.relay.url : info.uploadUrl) ||
|
|
155
|
+
(info.expiresAt && info.expiresAt.getTime() <= Date.now())
|
|
156
|
+
)))) {
|
|
153
157
|
dispose(info);
|
|
154
158
|
info = undefined;
|
|
155
159
|
}
|
|
@@ -162,6 +166,7 @@ export class NativeUploadQueue extends EventEmitter<RecordingManagerEvents> {
|
|
|
162
166
|
recordingUuid: task.recordingUuid!, recoveryScope: task.recoveryScope,
|
|
163
167
|
fileSizeBytes: task.fileSizeBytes, relayUpload: !!task.relayUpload,
|
|
164
168
|
contentType: task.contentType, contentSha256: task.contentSha256, signal,
|
|
169
|
+
completionPending: task.completionPending,
|
|
165
170
|
});
|
|
166
171
|
}), signal, dispose);
|
|
167
172
|
}
|
|
@@ -173,17 +178,21 @@ export class NativeUploadQueue extends EventEmitter<RecordingManagerEvents> {
|
|
|
173
178
|
if (info.recordingId !== task.recordingId || info.recoveryScope !== task.recoveryScope) {
|
|
174
179
|
throw new Error('Upload recovery identity changed');
|
|
175
180
|
}
|
|
176
|
-
|
|
181
|
+
const uploadRequired = !info.alreadyUploaded && (!task.completionPending || info.reuploadRequired === true);
|
|
182
|
+
if (uploadRequired && !!info.relay !== !!task.relayUpload) throw new Error('Upload recovery route changed');
|
|
183
|
+
if (task.completionPending && !info.complete) throw new Error('Pending upload requires durable host completion acknowledgement');
|
|
177
184
|
hostAbort = () => attempt.controller.abort();
|
|
178
185
|
info.signal?.addEventListener('abort', hostAbort, { once: true });
|
|
179
186
|
if (info.signal?.aborted) hostAbort();
|
|
180
187
|
check();
|
|
181
|
-
if (info.expiresAt && info.expiresAt.getTime() <= Date.now() &&
|
|
188
|
+
if (info.expiresAt && info.expiresAt.getTime() <= Date.now() && uploadRequired) throw new Error('Upload credentials expired');
|
|
182
189
|
await this.update(id, { status: 'uploading', errorMessage: undefined, nextAttemptAt: undefined }, check);
|
|
183
190
|
check();
|
|
184
191
|
this.emit('uploadStarted', id);
|
|
185
192
|
check();
|
|
186
|
-
if (
|
|
193
|
+
if (uploadRequired) {
|
|
194
|
+
if (task.completionPending) await this.update(id, { completionPending: false }, check);
|
|
195
|
+
check();
|
|
187
196
|
nativeStarted = true;
|
|
188
197
|
await this.client.uploadRecordingFile({
|
|
189
198
|
...task, id: attempt.nativeId, uploadUrl: info.uploadUrl,
|
|
@@ -200,6 +209,8 @@ export class NativeUploadQueue extends EventEmitter<RecordingManagerEvents> {
|
|
|
200
209
|
}
|
|
201
210
|
if (info.complete) {
|
|
202
211
|
if (task.fileSizeBytes === undefined) throw new Error('Upload completion requires known file size');
|
|
212
|
+
await this.update(id, { completionPending: true }, check);
|
|
213
|
+
check();
|
|
203
214
|
await abortable(Promise.resolve().then(() => {
|
|
204
215
|
check();
|
|
205
216
|
return info!.complete!({ fileSizeBytes: task.fileSizeBytes!, contentSha256: task.contentSha256, signal });
|
|
@@ -208,7 +219,7 @@ export class NativeUploadQueue extends EventEmitter<RecordingManagerEvents> {
|
|
|
208
219
|
throw new Error('Recoverable upload requires durable host completion acknowledgement');
|
|
209
220
|
}
|
|
210
221
|
check();
|
|
211
|
-
await this.update(id, { status: 'completed', errorMessage: undefined, nextAttemptAt: undefined }, check);
|
|
222
|
+
await this.update(id, { status: 'completed', completionPending: undefined, errorMessage: undefined, nextAttemptAt: undefined }, check);
|
|
212
223
|
check();
|
|
213
224
|
await this.release(this.get(id)!).catch(() => undefined);
|
|
214
225
|
check();
|
|
@@ -216,15 +227,16 @@ export class NativeUploadQueue extends EventEmitter<RecordingManagerEvents> {
|
|
|
216
227
|
} catch (error) {
|
|
217
228
|
if (!this.destroyed && !this.cancelledTasks.has(id) && this.get(id)?.status !== 'completed') {
|
|
218
229
|
const task = this.get(id)!;
|
|
219
|
-
const
|
|
230
|
+
const verificationPending = error instanceof UploadVerificationPendingError;
|
|
231
|
+
const parked = info === null || signal.aborted || verificationPending;
|
|
220
232
|
const retry = !!this.provider && task.retryCount < 6 && Date.now() - task.createdAt.getTime() < 86_400_000;
|
|
221
233
|
await this.update(id, {
|
|
222
234
|
status: parked || retry ? 'pending' : 'failed',
|
|
223
235
|
retryCount: task.retryCount + (parked ? 0 : 1),
|
|
224
236
|
nextAttemptAt: parked ? Date.now() + 30_000 : retry ? Date.now() + retryDelays[Math.min(task.retryCount, 4)] : undefined,
|
|
225
|
-
errorMessage: parked ? 'Upload waiting for its original account' : 'Upload attempt failed',
|
|
237
|
+
errorMessage: verificationPending ? 'Upload verification pending' : parked ? 'Upload waiting for its original account' : 'Upload attempt failed',
|
|
226
238
|
}).catch(() => { this.pause(); });
|
|
227
|
-
if (!this.destroyed) this.emit('uploadFailed', id, new Error(parked ? 'Upload paused' : 'Upload attempt failed'));
|
|
239
|
+
if (!this.destroyed) this.emit('uploadFailed', id, new Error(verificationPending ? 'Upload verification pending' : parked ? 'Upload paused' : 'Upload attempt failed'));
|
|
228
240
|
}
|
|
229
241
|
throw error;
|
|
230
242
|
} finally {
|
|
@@ -20,6 +20,7 @@ export function persistedUploadQueue(tasks: UploadTask[]): UploadTask[] {
|
|
|
20
20
|
...(task.nextAttemptAt === undefined ? {} : { nextAttemptAt: task.nextAttemptAt }),
|
|
21
21
|
...(task.contentType === undefined ? {} : { contentType: task.contentType }),
|
|
22
22
|
...(task.contentSha256 === undefined ? {} : { contentSha256: task.contentSha256 }),
|
|
23
|
+
...(task.completionPending === undefined ? {} : { completionPending: task.completionPending }),
|
|
23
24
|
relayUpload: task.relayUpload ?? !!task.relay,
|
|
24
25
|
}));
|
|
25
26
|
}
|
|
@@ -44,6 +45,7 @@ export function restoreUploadQueue(value: unknown): UploadTask[] {
|
|
|
44
45
|
if (task[field] !== undefined && (!Number.isSafeInteger(task[field]) || task[field]! < 0)) return invalid();
|
|
45
46
|
}
|
|
46
47
|
if (task.relayUpload !== undefined && typeof task.relayUpload !== 'boolean') return invalid();
|
|
48
|
+
if (task.completionPending !== undefined && typeof task.completionPending !== 'boolean') return invalid();
|
|
47
49
|
const createdAt = new Date(task.createdAt);
|
|
48
50
|
const updatedAt = new Date(task.updatedAt);
|
|
49
51
|
if (!Number.isFinite(createdAt.getTime()) || !Number.isFinite(updatedAt.getTime())) return invalid();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Internal completion-budget signal; it is never acknowledgement or repair. */
|
|
2
|
+
export class UploadVerificationPendingError extends Error {
|
|
3
|
+
constructor() { super('Upload verification pending'); }
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export function isUploadVerificationPending(error: unknown): boolean {
|
|
7
|
+
if (!error || typeof error !== 'object') return false;
|
|
8
|
+
const value = error as { status?: unknown; data?: { error?: { code?: unknown } } };
|
|
9
|
+
return value.status === 425 && value.data?.error?.code === 'upload_verification_pending';
|
|
10
|
+
}
|
package/src/models/Recording.ts
CHANGED
|
@@ -34,6 +34,8 @@ export interface UploadInfo {
|
|
|
34
34
|
recoveryScope?: string;
|
|
35
35
|
/** Skip sending the object; complete must still acknowledge host durability. */
|
|
36
36
|
alreadyUploaded?: boolean;
|
|
37
|
+
/** Explicit authenticated integrity failure permits repair of a completion-pending object. */
|
|
38
|
+
reuploadRequired?: boolean;
|
|
37
39
|
/** Resolve only after the backend durably acknowledges this exact recording. */
|
|
38
40
|
complete?: (context: {
|
|
39
41
|
fileSizeBytes: number;
|
|
@@ -92,6 +94,8 @@ export interface UploadRecoveryContext {
|
|
|
92
94
|
relayUpload: boolean;
|
|
93
95
|
contentType?: string;
|
|
94
96
|
contentSha256?: string;
|
|
97
|
+
/** Bytes were sent; recover completion before considering another upload. Not verification proof. */
|
|
98
|
+
completionPending?: boolean;
|
|
95
99
|
signal: AbortSignal;
|
|
96
100
|
}
|
|
97
101
|
|
|
@@ -152,6 +156,8 @@ export interface UploadTask {
|
|
|
152
156
|
fileSizeBytes?: number;
|
|
153
157
|
relayUpload?: boolean;
|
|
154
158
|
nextAttemptAt?: number;
|
|
159
|
+
/** Durable byte-upload completion; backend acknowledgement and cleanup are still required. */
|
|
160
|
+
completionPending?: boolean;
|
|
155
161
|
/** Volatile compatibility field; never included in queue persistence. */
|
|
156
162
|
complete?: UploadInfo['complete'];
|
|
157
163
|
/** Unique task identifier */
|
package/src/sdkIdentity.ts
CHANGED