@authme/engine 2.4.10 → 2.4.11
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/assets/engine-worker.js +1 -1
- package/assets/ml_engine_web.simd.wasm +0 -0
- package/assets/ml_engine_web.wasm +0 -0
- package/assets/ml_engine_web_version.txt +1 -1
- package/index.cjs +2 -11
- package/index.js +4 -13
- package/package.json +3 -3
- package/src/lib/engine.d.ts +0 -5
- package/src/lib/interface/config.interface.d.ts +1 -1
package/assets/engine-worker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){let r=!1,a=!1;const t={get TD1(){return self.EngineLib.EAuthMeMRZType.TD1},get TD3(){return self.EngineLib.EAuthMeMRZType.TD3}};function i(e){return{MRZService:"MRZService",MRZResidentCardService:"MRZService",MRZPassportService:"MRZService"}[e]||e}async function n({engineJsContent:n,engineWasmContent:i}){return new Promise(function(s,e){var t;r||a?s(!0):(a=!0,self.Module={},self.Module={locateFile:(e,t)=>t+"/"+e,print:e=>{postMessage({module:"DEBUG",command:"DEBUG",id:null,value:e})}},t=URL.createObjectURL(new Blob([n],{type:"text/javascript"})),importScripts(t),URL.revokeObjectURL(t),async function t(){try{const e=await AuthmeMLEngineLib({wasmBinary:i,print:e=>{console.log(e),postMessage({module:"DEBUG",command:"DEBUG",id:null,value:e})}});(self.EngineLib=e).FS.mkdir("/model"),r=!0,a=!1,s(!0)}catch(e){console.warn("init Authme EngineLib error:",e," Try after 3 second."),n=3e3,await new Promise(e=>{setTimeout(()=>{e(!0)},n)}),await t()}var n}())})}const o={MRZService:e=>self.EngineLib.MRZService.getModelVersion(t.TD3),MRZResidentCardService:e=>self.EngineLib.MRZService.getModelVersion(t.TD1),MRZPassportService:e=>self.EngineLib.MRZService.getModelVersion(t.TD3),default:e=>self.EngineLib[i(e)].getModelVersion()},e={
|
|
1
|
+
!function(){let r=!1,a=!1;const t={get TD1(){return self.EngineLib.EAuthMeMRZType.TD1},get TD3(){return self.EngineLib.EAuthMeMRZType.TD3}};function i(e){return{MRZService:"MRZService",MRZResidentCardService:"MRZService",MRZPassportService:"MRZService"}[e]||e}async function n({engineJsContent:n,engineWasmContent:i}){return new Promise(function(s,e){var t;r||a?s(!0):(a=!0,self.Module={},self.Module={locateFile:(e,t)=>t+"/"+e,print:e=>{postMessage({module:"DEBUG",command:"DEBUG",id:null,value:e})}},t=URL.createObjectURL(new Blob([n],{type:"text/javascript"})),importScripts(t),URL.revokeObjectURL(t),async function t(){try{const e=await AuthmeMLEngineLib({wasmBinary:i,print:e=>{console.log(e),postMessage({module:"DEBUG",command:"DEBUG",id:null,value:e})}});(self.EngineLib=e).FS.mkdir("/model"),r=!0,a=!1,s(!0)}catch(e){console.warn("init Authme EngineLib error:",e," Try after 3 second."),n=3e3,await new Promise(e=>{setTimeout(()=>{e(!0)},n)}),await t()}var n}())})}const o={MRZService:e=>self.EngineLib.MRZService.getModelVersion(t.TD3),MRZResidentCardService:e=>self.EngineLib.MRZService.getModelVersion(t.TD1),MRZPassportService:e=>self.EngineLib.MRZService.getModelVersion(t.TD3),default:e=>self.EngineLib[i(e)].getModelVersion()},e={_getLoadedModelKey({modelVersion:{name:e,version:t}}){return e+"#"+t},_getModelVersions(e){const t=o[e]||o.default,n=t(e),s=[];for(let r=0;r<n.size();r++){var i=n.get(r);s.push({name:""+i.szName,version:""+i.szVersion})}return s},_getNoLoadedModelVersions(e){const t=this._getModelVersions(e);return t.filter(e=>!this._loadedSessions[this._getLoadedModelKey({modelVersion:e})])},loadSession({modelVersion:{name:e,version:t},modelArrayBuffer:n}){let s=!1;try{const r=self.EngineLib.FS;r.mkdir(`/${e}-${t}/`),r.mount(r.filesystems.WORKERFS,{blobs:[{name:e+"-"+t,data:new Blob([n],{type:"application/octet-stream"})}]},`/${e}-${t}/`),s=!0}catch(e){if(20!==e?.errno)throw e;s=!0}if(s){var i=this._getLoadedModelKey({modelVersion:{name:e,version:t}});if(this._loadedSessions[i])throw new Error("should be undefined here.");this._loadedSessions[i]=self.EngineLib.createInferenceSession(e,`/${e}-${t}/${e}-`+t)}},async _init(e){{const t=new self.EngineLib[i(e)];if("EAuthMeEngineReturnCode_eAuthMe_Engine_Failed"==(await t.initial(...this._getModelVersions(e).map(e=>this._loadedSessions[this._getLoadedModelKey({modelVersion:e})]))).constructor.name)return console.error("model loading error,please ask server to check the model"),!1;const n=t,s=n.getUIParams();return s.previewPosition.fLeft=0,s.previewPosition.fTop=0,s.previewPosition.fRight=1,s.previewPosition.fBottom=1,n.setUIParams(s),this.instance=t,!0}},start(){return this.instance?.start()},stop(){return this.instance?.stop()},setPublicKeyForJson(e){return self.EngineLib.setPublicKeyForJson(e)},_setFrameSize(e){if(c.frame.width=Math.floor(e.width),c.frame.height=Math.floor(e.height),this.instance){const t=this.instance,n=t.getUIParams();return n.analyzeSize.iHeight=c.frame.height,n.analyzeSize.iWidth=c.frame.width,t.setUIParams(n),!0}},setFrameSize(e){return this._setFrameSize(e)},_recognition(e){const t=this.instance;if(t)try{var n=l(e.data),s=t.run(n.byteOffset,n.length,c.frame.width,c.frame.height);return self.EngineLib._free(n.dataPtr),s}catch(e){return null}console.warn("engine not initialized")},recognition(e){return this._recognition(e)},getParams(){return this.instance.getParams()},getUIParams(){return this.instance.getUIParams()},setParams(e){return this.instance.setParams(e.params)},setUIParams(e){return this.instance.setUIParams(e)},getDebugImage(e){var t=l(e.data);let n;var s=this.instance.getDebugImage(t.byteOffset,t.length,c.frame.width,c.frame.height);return self.EngineLib._free(t.dataPtr),s&&(n=self.EngineLib.HEAPU8.slice(s,s+c.frame.width*c.frame.height*4),self.EngineLib._free(s)),n},destroy(){this.instance&&(this.instance.delete(),this.instance=null);for(const e of Object.values(this._loadedSessions))self.EngineLib.deleteSession(e);this._loadedSessions={}},getJsonReport(){return this.instance?.getJsonReport()},encryptString({string:e,key:t}){return self.EngineLib.encryptString(e,t)},encryptBlob({uint8Array:e,key:t}){const n=new self.EngineLib.VectorUChar;for(let s=0;s<e.length;s++)n.push_back(e[s]);return self.EngineLib.encryptBlob(n,t)},_decryptString({string:e,key:t}){return self.EngineLib.decryptString(e,t)}};function s(n){return{instance:null,_loadedSessions:{},...e,getNoLoadedModelVersions(){return this._getNoLoadedModelVersions(n)},init(){return this._init(n)},toJson(e){return Object.getPrototypeOf(this.instance).constructor.toJson(e)},recognition(e){const t=this._recognition(e);return t&&(t.eStatus=t.eStatus.constructor.name,t.tField=JSON.parse(self[n].toJson(t.tField)),0<t.pointer&&(t.imageData=self.EngineLib.HEAPU8.slice(t.pointer,t.pointer+t.iHeight*t.iWidth*4),self.EngineLib._free(t.pointer))),t},setMaskPosition(e){var t=e.positions;return self[n].instance?.setMatchROI(t[0][0],t[0][1],t[1][0],t[1][1],t[2][0],t[2][1],t[3][0],t[3][1])},getFinalResult(){return this.instance.getFinalResult()}}}self.MRZPassportService=s("MRZPassportService"),self.MRZResidentCardService=s("MRZResidentCardService"),self.CardOCR={instance:null,_loadedSessions:{},...e,getNoLoadedModelVersions(){return this._getNoLoadedModelVersions("CardOCR")},init(){return this._init("CardOCR")},recognition(e){const t=this._recognition(e);return t&&(0<t.pointer&&(t.imageData=self.EngineLib.HEAPU8.slice(t.pointer,t.pointer+t.iHeight*t.iWidth*4),self.EngineLib._free(t.pointer)),t.eStatus=t.eStatus.constructor.name,t.info.cardClass.eClass=t.info.cardClass.eClass.constructor.name),t},setType({type:e,options:t}){const n=this.instance;var s=t||{};if(n){const i=n.getParams();return i.eTargetCardType=self.EngineLib.EAuthMeCardClass[e.replace(/^EAuthMeCardClass_/,"")],i.fImageBlurTh=750,n.setParams({...i,...s}),!0}return!1},setMaskPosition(e){var t=e.positions;return this.instance?.setCardMatchROI(t[0][0],t[0][1],t[1][0],t[1][1],t[2][0],t[2][1],t[3][0],t[3][1])}},self.IdCardAntiFraud={instance:null,_loadedSessions:{},...e,getNoLoadedModelVersions(){return this._getNoLoadedModelVersions("IdCardAntiFraudService")},async init(){if(await this._init("IdCardAntiFraudService"),this.instance){const e=this.instance,t=e.getParams();return t.timeoutSec=52,e.setParams(t),!0}},recognition(e){const t=this._recognition(e);return t&&(t.eStatus=t.eStatus.constructor.name,t.eStage=t.eStage.constructor.name,t.info.eCardMatchStatus=t.info.eCardMatchStatus.constructor.name,t.info.cardClass.eClass=t.info.cardClass.eClass.constructor.name,t.info.metalTag.aeStatus=t.info.metalTag.aeStatus.map(e=>e.constructor.name)),t},setMaskPosition(e){var t=e.positions;return this.instance?.setFrontalCardVertices(t[0][0],t[0][1],t[1][0],t[1][1],t[2][0],t[2][1],t[3][0],t[3][1])},setStage(e){if(this.instance){const t=new self.EngineLib.FraudStageList;for(const n of e)t.push_back(self.EngineLib.EAuthMeIDCardAntiFraudStage[n]);this.instance.setStage(t)}},getCardMatchROI(){if(!this.instance)throw new Error("instance not initialized");const e=[],t=this.instance.getCardMatchROI();for(let s=0;s<t.size();s++){var n=t.get(s);e.push(n)}return e}},self.Fas={instance:null,_loadedSessions:{},...e,getNoLoadedModelVersions(){return this._getNoLoadedModelVersions("CFASService")},init(){return this._init("CFASService")},setFrameSize(e){if(this._setFrameSize(e),1<=c.frame.width/c.frame.height){const e=this.instance.getParams();e.fFaceRoiPreviewRatioW=.3,this.instance.setParams(e)}},setStage(e){if(this.instance){const t=new self.EngineLib.FASStageList;for(const n of e.stageList)t.push_back(self.EngineLib.EAuthMeFASServiceStage[n]);this.instance.setStage(t)}},getStageParams({stageIndex:e}){return this.instance.getStageParams(e)},setStageParams({stageIndex:e,value:t}){this.instance.setStageParams(t,e)},recognition(e){const t=this._recognition(e);return t&&(t.eStatus=t.eStatus.constructor.name,t.eStage=t.eStage.constructor.name,t.info.eye.eStatus=t.info.eye.eStatus.constructor.name,t.info.fas.eStatus=t.info.fas.eStatus.constructor.name,t.info.mouth.eStatus=t.info.mouth.eStatus.constructor.name,t.info.pose.ePose=t.info.pose.ePose.constructor.name,t.info.miniFAS=t.info.miniFAS.constructor.name),t},async getNormalizedFaceROI(){var e=await this.instance.getNormalizedFaceROI();return{height:e.height,width:e.width,x:e.x,y:e.y}}},self.Core={async setConfig(e){return self.config={...self.config,...e},!0},async loadEngine({engineJsContent:e,engineWasmContent:t}){return n({engineJsContent:e,engineWasmContent:t})},async verify(e){for(let t=0;t<20;t++)if(self.EngineLib)return self.EngineLib.verifySDK(e.cert,e.authToken).constructor.name;return!1},checkEnumConsistency(e){const t=[];for(var[n,s]of Object.entries(e)){var i,r,a=self.EngineLib[n]?.values??{},o=Object.fromEntries(Object.values(a).map(e=>[e.constructor.name,e.value]));for([i,r]of Object.entries(s))void 0===o[r]&&t.push({enumName:n,key:i,engineKey:r,actualEnumMap:o})}return t}},addEventListener("message",(async function({data:t}){try{var e,{module:n,command:s,id:i,value:r}=t;const a=self[n][s];a&&(e=await a.call(self[n],r),postMessage({module:n,command:s,id:i,value:e}))}catch(e){var{module:r,command:n,id:s}=t;throw postMessage({module:r,command:n,id:s,value:{error:!0,cause:JSON.parse(JSON.stringify(e))}}),e}}).bind(self));let c={scriptPath:"assets",apiBaseUrl:"/",frame:{width:0,height:0}};function l(e){const t=self.EngineLib;var n=new Uint8Array(e),s=n.length*n.BYTES_PER_ELEMENT,i=t._malloc(s);const r=new Uint8Array(t.HEAPU8.buffer,i,s);return r.set(n),{byteOffset:r.byteOffset,length:n.length,dataPtr:i,dataOnHeap:r,Module:t}}}();
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
8.6.0
|
|
1
|
+
8.6.0
|
package/index.cjs
CHANGED
|
@@ -243,7 +243,7 @@ const defaultMlEngineConfig = {
|
|
|
243
243
|
};
|
|
244
244
|
|
|
245
245
|
var name = "@authme/engine";
|
|
246
|
-
var version$1 = "2.4.
|
|
246
|
+
var version$1 = "2.4.11";
|
|
247
247
|
var peerDependencies = {
|
|
248
248
|
"core-js": "^3.6.0",
|
|
249
249
|
rxjs: "^7.4.0"
|
|
@@ -377,23 +377,19 @@ class MlEngine {
|
|
|
377
377
|
constructor(config) {
|
|
378
378
|
this.workerAndStreamPromise = undefined;
|
|
379
379
|
this.preloadPromise = undefined;
|
|
380
|
-
this.debugTools = util.debugTools();
|
|
381
380
|
this.config = Object.assign(Object.assign(Object.assign({}, defaultMlEngineConfig), config), {
|
|
382
381
|
isMobile: util.isMobile()
|
|
383
382
|
});
|
|
384
383
|
}
|
|
385
384
|
_run(worker, workerMessage$, module, command, value = {}) {
|
|
386
385
|
const id = (Math.random() + 1).toString(36).substring(4) + Date.now();
|
|
387
|
-
const durationTimeWorker = this.debugTools.setTimeDuration(`${module}_${command}_${id}`);
|
|
388
386
|
worker.postMessage({
|
|
389
387
|
module,
|
|
390
388
|
command,
|
|
391
389
|
id,
|
|
392
390
|
value
|
|
393
391
|
});
|
|
394
|
-
return rxjs.firstValueFrom(workerMessage$.pipe(rxjs.filter(x => x.id === id), rxjs.map(x => x.value)
|
|
395
|
-
durationTimeWorker.end();
|
|
396
|
-
})));
|
|
392
|
+
return rxjs.firstValueFrom(workerMessage$.pipe(rxjs.filter(x => x.id === id), rxjs.map(x => x.value)));
|
|
397
393
|
}
|
|
398
394
|
_makeWorkerAndStreamAsync() {
|
|
399
395
|
var _a;
|
|
@@ -478,9 +474,7 @@ class MlEngine {
|
|
|
478
474
|
const simdSupported = isSimdSupported();
|
|
479
475
|
const jsUrl = simdSupported ? `${(_a = this.config.scriptPath) !== null && _a !== void 0 ? _a : ''}ml_engine_web.simd.js` : `${(_b = this.config.scriptPath) !== null && _b !== void 0 ? _b : ''}ml_engine_web.js`;
|
|
480
476
|
const wasmUrl = simdSupported ? `${(_c = this.config.scriptPath) !== null && _c !== void 0 ? _c : ''}ml_engine_web.simd.wasm` : `${(_d = this.config.scriptPath) !== null && _d !== void 0 ? _d : ''}ml_engine_web.wasm`;
|
|
481
|
-
const durationTimeNetworkEngine = this.debugTools.setTimeDuration('loadEngine_network');
|
|
482
477
|
const [engineJsContent, engineWasmContent] = yield (_e = MlEngine._ENGINE_CACHE) !== null && _e !== void 0 ? _e : MlEngine._ENGINE_CACHE = Promise.all([getJsContentAsync(`${jsUrl}?t=${Date.now()}`), getWasmContentAsync(`${wasmUrl}?t=${Date.now()}`)]);
|
|
483
|
-
durationTimeNetworkEngine.end();
|
|
484
478
|
return yield this._run(worker, workerMessage$, exports.EngineModule.Core, 'loadEngine', {
|
|
485
479
|
engineJsContent,
|
|
486
480
|
engineWasmContent
|
|
@@ -567,9 +561,6 @@ class AuthmeEngineModuleBase {
|
|
|
567
561
|
getReport() {
|
|
568
562
|
return this._engineRunAsync('getJsonReport');
|
|
569
563
|
}
|
|
570
|
-
setOption(params) {
|
|
571
|
-
return this._engineRunAsync('setOption', params);
|
|
572
|
-
}
|
|
573
564
|
recognition(data) {
|
|
574
565
|
return __awaiter(this, void 0, void 0, function* () {
|
|
575
566
|
// status control
|
package/index.js
CHANGED
|
@@ -16,8 +16,8 @@ import 'core-js/modules/es.object.assign.js';
|
|
|
16
16
|
import 'core-js/modules/es.regexp.to-string.js';
|
|
17
17
|
import 'core-js/modules/es.array.sort.js';
|
|
18
18
|
import { AuthmeError, ErrorCode, sendRequest } from '@authme/core';
|
|
19
|
-
import {
|
|
20
|
-
import { firstValueFrom, filter, map,
|
|
19
|
+
import { isMobile, Storage } from '@authme/util';
|
|
20
|
+
import { firstValueFrom, filter, map, fromEvent, shareReplay, from, mergeAll, concatMap, of, reduce, defer, concatAll, mergeMap } from 'rxjs';
|
|
21
21
|
import 'core-js/modules/es.symbol.description.js';
|
|
22
22
|
|
|
23
23
|
/******************************************************************************
|
|
@@ -239,7 +239,7 @@ const defaultMlEngineConfig = {
|
|
|
239
239
|
};
|
|
240
240
|
|
|
241
241
|
var name = "@authme/engine";
|
|
242
|
-
var version$1 = "2.4.
|
|
242
|
+
var version$1 = "2.4.11";
|
|
243
243
|
var peerDependencies = {
|
|
244
244
|
"core-js": "^3.6.0",
|
|
245
245
|
rxjs: "^7.4.0"
|
|
@@ -373,23 +373,19 @@ class MlEngine {
|
|
|
373
373
|
constructor(config) {
|
|
374
374
|
this.workerAndStreamPromise = undefined;
|
|
375
375
|
this.preloadPromise = undefined;
|
|
376
|
-
this.debugTools = debugTools();
|
|
377
376
|
this.config = Object.assign(Object.assign(Object.assign({}, defaultMlEngineConfig), config), {
|
|
378
377
|
isMobile: isMobile()
|
|
379
378
|
});
|
|
380
379
|
}
|
|
381
380
|
_run(worker, workerMessage$, module, command, value = {}) {
|
|
382
381
|
const id = (Math.random() + 1).toString(36).substring(4) + Date.now();
|
|
383
|
-
const durationTimeWorker = this.debugTools.setTimeDuration(`${module}_${command}_${id}`);
|
|
384
382
|
worker.postMessage({
|
|
385
383
|
module,
|
|
386
384
|
command,
|
|
387
385
|
id,
|
|
388
386
|
value
|
|
389
387
|
});
|
|
390
|
-
return firstValueFrom(workerMessage$.pipe(filter(x => x.id === id), map(x => x.value)
|
|
391
|
-
durationTimeWorker.end();
|
|
392
|
-
})));
|
|
388
|
+
return firstValueFrom(workerMessage$.pipe(filter(x => x.id === id), map(x => x.value)));
|
|
393
389
|
}
|
|
394
390
|
_makeWorkerAndStreamAsync() {
|
|
395
391
|
var _a;
|
|
@@ -474,9 +470,7 @@ class MlEngine {
|
|
|
474
470
|
const simdSupported = isSimdSupported();
|
|
475
471
|
const jsUrl = simdSupported ? `${(_a = this.config.scriptPath) !== null && _a !== void 0 ? _a : ''}ml_engine_web.simd.js` : `${(_b = this.config.scriptPath) !== null && _b !== void 0 ? _b : ''}ml_engine_web.js`;
|
|
476
472
|
const wasmUrl = simdSupported ? `${(_c = this.config.scriptPath) !== null && _c !== void 0 ? _c : ''}ml_engine_web.simd.wasm` : `${(_d = this.config.scriptPath) !== null && _d !== void 0 ? _d : ''}ml_engine_web.wasm`;
|
|
477
|
-
const durationTimeNetworkEngine = this.debugTools.setTimeDuration('loadEngine_network');
|
|
478
473
|
const [engineJsContent, engineWasmContent] = yield (_e = MlEngine._ENGINE_CACHE) !== null && _e !== void 0 ? _e : MlEngine._ENGINE_CACHE = Promise.all([getJsContentAsync(`${jsUrl}?t=${Date.now()}`), getWasmContentAsync(`${wasmUrl}?t=${Date.now()}`)]);
|
|
479
|
-
durationTimeNetworkEngine.end();
|
|
480
474
|
return yield this._run(worker, workerMessage$, EngineModule.Core, 'loadEngine', {
|
|
481
475
|
engineJsContent,
|
|
482
476
|
engineWasmContent
|
|
@@ -563,9 +557,6 @@ class AuthmeEngineModuleBase {
|
|
|
563
557
|
getReport() {
|
|
564
558
|
return this._engineRunAsync('getJsonReport');
|
|
565
559
|
}
|
|
566
|
-
setOption(params) {
|
|
567
|
-
return this._engineRunAsync('setOption', params);
|
|
568
|
-
}
|
|
569
560
|
recognition(data) {
|
|
570
561
|
return __awaiter(this, void 0, void 0, function* () {
|
|
571
562
|
// status control
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@authme/engine",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.11",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"core-js": "^3.6.0",
|
|
6
6
|
"rxjs": "^7.4.0",
|
|
7
|
-
"@authme/core": "2.4.
|
|
8
|
-
"@authme/util": "2.4.
|
|
7
|
+
"@authme/core": "2.4.11",
|
|
8
|
+
"@authme/util": "2.4.11"
|
|
9
9
|
},
|
|
10
10
|
"module": "./index.js",
|
|
11
11
|
"main": "./index.cjs",
|
package/src/lib/engine.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ export declare class MlEngine {
|
|
|
10
10
|
private workerAndStreamPromise;
|
|
11
11
|
private preloadPromise;
|
|
12
12
|
constructor(config: MlEngineConfig);
|
|
13
|
-
private debugTools;
|
|
14
13
|
private _run;
|
|
15
14
|
private _makeWorkerAndStreamAsync;
|
|
16
15
|
private _backgroundPreloadAsync;
|
|
@@ -40,10 +39,6 @@ export declare abstract class AuthmeEngineModuleBase<T = any> {
|
|
|
40
39
|
startSession(): Promise<void>;
|
|
41
40
|
stop(): Promise<void>;
|
|
42
41
|
getReport(): Promise<string>;
|
|
43
|
-
setOption(params: {
|
|
44
|
-
key: string;
|
|
45
|
-
value: string;
|
|
46
|
-
}): Promise<void>;
|
|
47
42
|
recognition(data: Uint8Array | Uint8ClampedArray): Promise<T & EngineDebugInfo>;
|
|
48
43
|
getDebugImageData(data: Uint8Array | Uint8ClampedArray): Promise<Uint8Array>;
|
|
49
44
|
setFrameSize(width: number, height: number): Promise<boolean>;
|