idmission-web-sdk 2.3.225-feature-per-runtime-capability-probe-e2ff01d → 2.3.225
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/dist/lib/models/CapabilityProbing.d.ts.map +1 -1
- package/dist/lib/models/preloadModels.d.ts.map +1 -1
- package/dist/sdk2.cjs.development.js +44 -26
- package/dist/sdk2.cjs.development.js.map +1 -1
- package/dist/sdk2.cjs.production.js +1 -1
- package/dist/sdk2.cjs.production.js.map +1 -1
- package/dist/sdk2.esm.js +44 -26
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +44 -26
- package/dist/sdk2.umd.development.js.map +1 -1
- package/dist/sdk2.umd.production.js +1 -1
- package/dist/sdk2.umd.production.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
212
212
|
};
|
|
213
213
|
|
|
214
|
-
var webSdkVersion = '2.3.
|
|
214
|
+
var webSdkVersion = '2.3.225';
|
|
215
215
|
|
|
216
216
|
function getPlatform() {
|
|
217
217
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -4175,20 +4175,28 @@
|
|
|
4175
4175
|
// invokes a particular runtime never loads its WASM payload.
|
|
4176
4176
|
function probeDelegateForRuntime(runtime) {
|
|
4177
4177
|
return __awaiter(this, void 0, void 0, function () {
|
|
4178
|
-
var state, firstError_1, secondError_1;
|
|
4178
|
+
var state, MAX_WAIT_MS_1, firstError_1, secondError_1;
|
|
4179
4179
|
return __generator(this, function (_a) {
|
|
4180
4180
|
switch (_a.label) {
|
|
4181
4181
|
case 0:
|
|
4182
4182
|
state = modelCapabilities.delegateByRuntime[runtime];
|
|
4183
4183
|
if (state.probeState === 'probed') return [2 /*return*/];
|
|
4184
4184
|
if (state.probeState === 'probing') {
|
|
4185
|
+
MAX_WAIT_MS_1 = 30000;
|
|
4185
4186
|
return [2 /*return*/, new Promise(function (resolve) {
|
|
4186
4187
|
var id = setInterval(function () {
|
|
4187
4188
|
if (state.probeState === 'probed') {
|
|
4188
4189
|
clearInterval(id);
|
|
4190
|
+
clearTimeout(timeoutId);
|
|
4189
4191
|
resolve();
|
|
4190
4192
|
}
|
|
4191
4193
|
}, 100);
|
|
4194
|
+
// Forward-referenced by the interval callback above; safe because the
|
|
4195
|
+
// callback only fires after this line has run.
|
|
4196
|
+
var timeoutId = setTimeout(function () {
|
|
4197
|
+
clearInterval(id);
|
|
4198
|
+
resolve();
|
|
4199
|
+
}, MAX_WAIT_MS_1);
|
|
4192
4200
|
})];
|
|
4193
4201
|
}
|
|
4194
4202
|
state.probeState = 'probing';
|
|
@@ -4495,19 +4503,7 @@
|
|
|
4495
4503
|
};
|
|
4496
4504
|
function preloadModelDependencies(model) {
|
|
4497
4505
|
return __awaiter(this, void 0, void 0, function () {
|
|
4498
|
-
|
|
4499
|
-
var detail = event.detail;
|
|
4500
|
-
if (!dependencies.some(function (d) {
|
|
4501
|
-
return d.url === detail.url;
|
|
4502
|
-
})) return;
|
|
4503
|
-
progressByUseCase[model] = sumUpProgressForDependencies(dependencies.map(function (d) {
|
|
4504
|
-
return d.url;
|
|
4505
|
-
}));
|
|
4506
|
-
document.dispatchEvent(new CustomEvent("idmission.preloadProgress.".concat(model), {
|
|
4507
|
-
detail: progressByUseCase[model]
|
|
4508
|
-
}));
|
|
4509
|
-
}
|
|
4510
|
-
var dependencies;
|
|
4506
|
+
var dependencies_1, handleModelDownloadProgress;
|
|
4511
4507
|
return __generator(this, function (_a) {
|
|
4512
4508
|
switch (_a.label) {
|
|
4513
4509
|
case 0:
|
|
@@ -4520,40 +4516,62 @@
|
|
|
4520
4516
|
}, 100);
|
|
4521
4517
|
})];
|
|
4522
4518
|
modelsPreloading[model] = true;
|
|
4519
|
+
_a.label = 1;
|
|
4520
|
+
case 1:
|
|
4521
|
+
_a.trys.push([1,, 8, 9]);
|
|
4523
4522
|
// All five models in this function are MediaPipe-backed; probe MP's
|
|
4524
4523
|
// delegate to surface NONE before we waste bandwidth downloading bytes
|
|
4525
4524
|
// for a model the device can't run.
|
|
4526
4525
|
return [4 /*yield*/, probeNetworkSpeed()];
|
|
4527
|
-
case
|
|
4526
|
+
case 2:
|
|
4528
4527
|
// All five models in this function are MediaPipe-backed; probe MP's
|
|
4529
4528
|
// delegate to surface NONE before we waste bandwidth downloading bytes
|
|
4530
4529
|
// for a model the device can't run.
|
|
4531
4530
|
_a.sent();
|
|
4532
4531
|
return [4 /*yield*/, probeDelegateForRuntime('mediapipe')];
|
|
4533
|
-
case
|
|
4532
|
+
case 3:
|
|
4534
4533
|
_a.sent();
|
|
4535
4534
|
if (getDelegate('mediapipe') === 'NONE') {
|
|
4536
4535
|
throw new Error("No available delegate for ".concat(model, " model."));
|
|
4537
4536
|
}
|
|
4538
|
-
|
|
4537
|
+
dependencies_1 = [{
|
|
4539
4538
|
url: defaultModelPaths[model],
|
|
4540
4539
|
hash: defaultModelPaths[model + 'Hash']
|
|
4541
4540
|
}];
|
|
4541
|
+
handleModelDownloadProgress = function handleModelDownloadProgress(event) {
|
|
4542
|
+
var detail = event.detail;
|
|
4543
|
+
if (!dependencies_1.some(function (d) {
|
|
4544
|
+
return d.url === detail.url;
|
|
4545
|
+
})) return;
|
|
4546
|
+
progressByUseCase[model] = sumUpProgressForDependencies(dependencies_1.map(function (d) {
|
|
4547
|
+
return d.url;
|
|
4548
|
+
}));
|
|
4549
|
+
document.dispatchEvent(new CustomEvent("idmission.preloadProgress.".concat(model), {
|
|
4550
|
+
detail: progressByUseCase[model]
|
|
4551
|
+
}));
|
|
4552
|
+
};
|
|
4542
4553
|
document.addEventListener('idmission.preloadProgress', handleModelDownloadProgress);
|
|
4543
|
-
_a.label =
|
|
4544
|
-
case
|
|
4545
|
-
_a.trys.push([
|
|
4546
|
-
return [4 /*yield*/, Promise.all(
|
|
4554
|
+
_a.label = 4;
|
|
4555
|
+
case 4:
|
|
4556
|
+
_a.trys.push([4,, 6, 7]);
|
|
4557
|
+
return [4 /*yield*/, Promise.all(dependencies_1.map(function (d) {
|
|
4547
4558
|
return preloadDependency(d.url, d.hash);
|
|
4548
4559
|
}))];
|
|
4549
|
-
case 4:
|
|
4550
|
-
_a.sent();
|
|
4551
|
-
return [3 /*break*/, 6];
|
|
4552
4560
|
case 5:
|
|
4561
|
+
_a.sent();
|
|
4562
|
+
return [3 /*break*/, 7];
|
|
4563
|
+
case 6:
|
|
4553
4564
|
document.removeEventListener('idmission.preloadProgress', handleModelDownloadProgress);
|
|
4565
|
+
return [7 /*endfinally*/];
|
|
4566
|
+
case 7:
|
|
4567
|
+
return [3 /*break*/, 9];
|
|
4568
|
+
case 8:
|
|
4569
|
+
// Always clear the gate — including when probe/guard throws before the
|
|
4570
|
+
// download phase — so concurrent callers polling on modelsPreloading
|
|
4571
|
+
// don't hang forever.
|
|
4554
4572
|
modelsPreloading[model] = false;
|
|
4555
4573
|
return [7 /*endfinally*/];
|
|
4556
|
-
case
|
|
4574
|
+
case 9:
|
|
4557
4575
|
return [2 /*return*/];
|
|
4558
4576
|
}
|
|
4559
4577
|
});
|