UNPKG

dynamsoft-capture-vision-for-node

Version:

Dynamsoft Capture Vision (DCV) is a comprehensive SDK that integrates various functional products. It encompasses image capture, content understanding, result parsing, and interactive workflow. Essentially, DCV processes images to extract specific informa

2 lines (1 loc) 23.5 kB
import _ from"node:path";import E from"node:fs";import e from"node:os";import{fileURLToPath as t}from"node:url";import{Worker as I}from"node:worker_threads";import n from"koffi";var r,C,s,A;!function(_){_[_.EC_OK=0]="EC_OK",_[_.EC_UNKNOWN=-1e4]="EC_UNKNOWN",_[_.EC_NO_MEMORY=-10001]="EC_NO_MEMORY",_[_.EC_NULL_POINTER=-10002]="EC_NULL_POINTER",_[_.EC_LICENSE_INVALID=-10003]="EC_LICENSE_INVALID",_[_.EC_LICENSE_EXPIRED=-10004]="EC_LICENSE_EXPIRED",_[_.EC_FILE_NOT_FOUND=-10005]="EC_FILE_NOT_FOUND",_[_.EC_FILE_TYPE_NOT_SUPPORTED=-10006]="EC_FILE_TYPE_NOT_SUPPORTED",_[_.EC_BPP_NOT_SUPPORTED=-10007]="EC_BPP_NOT_SUPPORTED",_[_.EC_INDEX_INVALID=-10008]="EC_INDEX_INVALID",_[_.EC_CUSTOM_REGION_INVALID=-10010]="EC_CUSTOM_REGION_INVALID",_[_.EC_IMAGE_READ_FAILED=-10012]="EC_IMAGE_READ_FAILED",_[_.EC_TIFF_READ_FAILED=-10013]="EC_TIFF_READ_FAILED",_[_.EC_DIB_BUFFER_INVALID=-10018]="EC_DIB_BUFFER_INVALID",_[_.EC_PDF_READ_FAILED=-10021]="EC_PDF_READ_FAILED",_[_.EC_PDF_DLL_MISSING=-10022]="EC_PDF_DLL_MISSING",_[_.EC_PAGE_NUMBER_INVALID=-10023]="EC_PAGE_NUMBER_INVALID",_[_.EC_CUSTOM_SIZE_INVALID=-10024]="EC_CUSTOM_SIZE_INVALID",_[_.EC_TIMEOUT=-10026]="EC_TIMEOUT",_[_.EC_JSON_PARSE_FAILED=-10030]="EC_JSON_PARSE_FAILED",_[_.EC_JSON_TYPE_INVALID=-10031]="EC_JSON_TYPE_INVALID",_[_.EC_JSON_KEY_INVALID=-10032]="EC_JSON_KEY_INVALID",_[_.EC_JSON_VALUE_INVALID=-10033]="EC_JSON_VALUE_INVALID",_[_.EC_JSON_NAME_KEY_MISSING=-10034]="EC_JSON_NAME_KEY_MISSING",_[_.EC_JSON_NAME_VALUE_DUPLICATED=-10035]="EC_JSON_NAME_VALUE_DUPLICATED",_[_.EC_TEMPLATE_NAME_INVALID=-10036]="EC_TEMPLATE_NAME_INVALID",_[_.EC_JSON_NAME_REFERENCE_INVALID=-10037]="EC_JSON_NAME_REFERENCE_INVALID",_[_.EC_PARAMETER_VALUE_INVALID=-10038]="EC_PARAMETER_VALUE_INVALID",_[_.EC_DOMAIN_NOT_MATCH=-10039]="EC_DOMAIN_NOT_MATCH",_[_.EC_RESERVED_INFO_NOT_MATCH=-10040]="EC_RESERVED_INFO_NOT_MATCH",_[_.EC_LICENSE_KEY_NOT_MATCH=-10043]="EC_LICENSE_KEY_NOT_MATCH",_[_.EC_REQUEST_FAILED=-10044]="EC_REQUEST_FAILED",_[_.EC_LICENSE_INIT_FAILED=-10045]="EC_LICENSE_INIT_FAILED",_[_.EC_SET_MODE_ARGUMENT_ERROR=-10051]="EC_SET_MODE_ARGUMENT_ERROR",_[_.EC_LICENSE_CONTENT_INVALID=-10052]="EC_LICENSE_CONTENT_INVALID",_[_.EC_LICENSE_KEY_INVALID=-10053]="EC_LICENSE_KEY_INVALID",_[_.EC_LICENSE_DEVICE_RUNS_OUT=-10054]="EC_LICENSE_DEVICE_RUNS_OUT",_[_.EC_GET_MODE_ARGUMENT_ERROR=-10055]="EC_GET_MODE_ARGUMENT_ERROR",_[_.EC_IRT_LICENSE_INVALID=-10056]="EC_IRT_LICENSE_INVALID",_[_.EC_FILE_SAVE_FAILED=-10058]="EC_FILE_SAVE_FAILED",_[_.EC_STAGE_TYPE_INVALID=-10059]="EC_STAGE_TYPE_INVALID",_[_.EC_IMAGE_ORIENTATION_INVALID=-10060]="EC_IMAGE_ORIENTATION_INVALID",_[_.EC_CONVERT_COMPLEX_TEMPLATE_ERROR=-10061]="EC_CONVERT_COMPLEX_TEMPLATE_ERROR",_[_.EC_CALL_REJECTED_WHEN_CAPTURING=-10062]="EC_CALL_REJECTED_WHEN_CAPTURING",_[_.EC_NO_IMAGE_SOURCE=-10063]="EC_NO_IMAGE_SOURCE",_[_.EC_READ_DIRECTORY_FAILED=-10064]="EC_READ_DIRECTORY_FAILED",_[_.EC_MODULE_NOT_FOUND=-10065]="EC_MODULE_NOT_FOUND",_[_.EC_MULTI_PAGES_NOT_SUPPORTED=-10066]="EC_MULTI_PAGES_NOT_SUPPORTED",_[_.EC_FILE_ALREADY_EXISTS=-10067]="EC_FILE_ALREADY_EXISTS",_[_.EC_CREATE_FILE_FAILED=-10068]="EC_CREATE_FILE_FAILED",_[_.EC_IMGAE_DATA_INVALID=-10069]="EC_IMGAE_DATA_INVALID",_[_.EC_IMAGE_SIZE_NOT_MATCH=-10070]="EC_IMAGE_SIZE_NOT_MATCH",_[_.EC_IMAGE_PIXEL_FORMAT_NOT_MATCH=-10071]="EC_IMAGE_PIXEL_FORMAT_NOT_MATCH",_[_.EC_SECTION_LEVEL_RESULT_IRREPLACEABLE=-10072]="EC_SECTION_LEVEL_RESULT_IRREPLACEABLE",_[_.EC_AXIS_DEFINITION_INCORRECT=-10073]="EC_AXIS_DEFINITION_INCORRECT",_[_.EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE=-10074]="EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE",_[_.EC_PDF_LIBRARY_LOAD_FAILED=-10075]="EC_PDF_LIBRARY_LOAD_FAILED",_[_.EC_NO_LICENSE=-2e4]="EC_NO_LICENSE",_[_.EC_HANDSHAKE_CODE_INVALID=-20001]="EC_HANDSHAKE_CODE_INVALID",_[_.EC_LICENSE_BUFFER_FAILED=-20002]="EC_LICENSE_BUFFER_FAILED",_[_.EC_LICENSE_SYNC_FAILED=-20003]="EC_LICENSE_SYNC_FAILED",_[_.EC_DEVICE_NOT_MATCH=-20004]="EC_DEVICE_NOT_MATCH",_[_.EC_BIND_DEVICE_FAILED=-20005]="EC_BIND_DEVICE_FAILED",_[_.EC_INSTANCE_COUNT_OVER_LIMIT=-20008]="EC_INSTANCE_COUNT_OVER_LIMIT",_[_.EC_LICENSE_INIT_SEQUENCE_FAILED=-20009]="EC_LICENSE_INIT_SEQUENCE_FAILED",_[_.EC_TRIAL_LICENSE=-20010]="EC_TRIAL_LICENSE",_[_.EC_FAILED_TO_REACH_DLS=-20200]="EC_FAILED_TO_REACH_DLS",_[_.EC_LICENSE_CACHE_USED=-20012]="EC_LICENSE_CACHE_USED",_[_.EC_BARCODE_FORMAT_INVALID=-30009]="EC_BARCODE_FORMAT_INVALID",_[_.EC_QR_LICENSE_INVALID=-30016]="EC_QR_LICENSE_INVALID",_[_.EC_1D_LICENSE_INVALID=-30017]="EC_1D_LICENSE_INVALID",_[_.EC_PDF417_LICENSE_INVALID=-30019]="EC_PDF417_LICENSE_INVALID",_[_.EC_DATAMATRIX_LICENSE_INVALID=-30020]="EC_DATAMATRIX_LICENSE_INVALID",_[_.EC_CUSTOM_MODULESIZE_INVALID=-30025]="EC_CUSTOM_MODULESIZE_INVALID",_[_.EC_AZTEC_LICENSE_INVALID=-30041]="EC_AZTEC_LICENSE_INVALID",_[_.EC_PATCHCODE_LICENSE_INVALID=-30046]="EC_PATCHCODE_LICENSE_INVALID",_[_.EC_POSTALCODE_LICENSE_INVALID=-30047]="EC_POSTALCODE_LICENSE_INVALID",_[_.EC_DPM_LICENSE_INVALID=-30048]="EC_DPM_LICENSE_INVALID",_[_.EC_FRAME_DECODING_THREAD_EXISTS=-30049]="EC_FRAME_DECODING_THREAD_EXISTS",_[_.EC_STOP_DECODING_THREAD_FAILED=-30050]="EC_STOP_DECODING_THREAD_FAILED",_[_.EC_MAXICODE_LICENSE_INVALID=-30057]="EC_MAXICODE_LICENSE_INVALID",_[_.EC_GS1_DATABAR_LICENSE_INVALID=-30058]="EC_GS1_DATABAR_LICENSE_INVALID",_[_.EC_GS1_COMPOSITE_LICENSE_INVALID=-30059]="EC_GS1_COMPOSITE_LICENSE_INVALID",_[_.EC_DOTCODE_LICENSE_INVALID=-30061]="EC_DOTCODE_LICENSE_INVALID",_[_.EC_PHARMACODE_LICENSE_INVALID=-30062]="EC_PHARMACODE_LICENSE_INVALID",_[_.EC_CHARACTER_MODEL_FILE_NOT_FOUND=-40100]="EC_CHARACTER_MODEL_FILE_NOT_FOUND",_[_.EC_TEXT_LINE_GROUP_LAYOUT_CONFLICT=-40101]="EC_TEXT_LINE_GROUP_LAYOUT_CONFLICT",_[_.EC_TEXT_LINE_GROUP_REGEX_CONFLICT=-40102]="EC_TEXT_LINE_GROUP_REGEX_CONFLICT",_[_.EC_QUADRILATERAL_INVALID=-50057]="EC_QUADRILATERAL_INVALID",_[_.EC_PANORAMA_LICENSE_INVALID=-70060]="EC_PANORAMA_LICENSE_INVALID",_[_.EC_RESOURCE_PATH_NOT_EXIST=-90001]="EC_RESOURCE_PATH_NOT_EXIST",_[_.EC_RESOURCE_LOAD_FAILED=-90002]="EC_RESOURCE_LOAD_FAILED",_[_.EC_CODE_SPECIFICATION_NOT_FOUND=-90003]="EC_CODE_SPECIFICATION_NOT_FOUND",_[_.EC_FULL_CODE_EMPTY=-90004]="EC_FULL_CODE_EMPTY",_[_.EC_FULL_CODE_PREPROCESS_FAILED=-90005]="EC_FULL_CODE_PREPROCESS_FAILED",_[_.EC_ZA_DL_LICENSE_INVALID=-90006]="EC_ZA_DL_LICENSE_INVALID",_[_.EC_AAMVA_DL_ID_LICENSE_INVALID=-90007]="EC_AAMVA_DL_ID_LICENSE_INVALID",_[_.EC_AADHAAR_LICENSE_INVALID=-90008]="EC_AADHAAR_LICENSE_INVALID",_[_.EC_MRTD_LICENSE_INVALID=-90009]="EC_MRTD_LICENSE_INVALID",_[_.EC_VIN_LICENSE_INVALID=-90010]="EC_VIN_LICENSE_INVALID",_[_.EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID=-90011]="EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID",_[_.EC_LICENSE_WARNING=-10076]="EC_LICENSE_WARNING",_[_.EC_BARCODE_READER_LICENSE_NOT_FOUND=-30063]="EC_BARCODE_READER_LICENSE_NOT_FOUND",_[_.EC_LABEL_RECOGNIZER_LICENSE_NOT_FOUND=-40103]="EC_LABEL_RECOGNIZER_LICENSE_NOT_FOUND",_[_.EC_DOCUMENT_NORMALIZER_LICENSE_NOT_FOUND=-50058]="EC_DOCUMENT_NORMALIZER_LICENSE_NOT_FOUND",_[_.EC_CODE_PARSER_LICENSE_NOT_FOUND=-90012]="EC_CODE_PARSER_LICENSE_NOT_FOUND"}(r||(r={})),function(_){_[_.IPF_BINARY=0]="IPF_BINARY",_[_.IPF_BINARYINVERTED=1]="IPF_BINARYINVERTED",_[_.IPF_GRAYSCALED=2]="IPF_GRAYSCALED",_[_.IPF_NV21=3]="IPF_NV21",_[_.IPF_RGB_565=4]="IPF_RGB_565",_[_.IPF_RGB_555=5]="IPF_RGB_555",_[_.IPF_RGB_888=6]="IPF_RGB_888",_[_.IPF_ARGB_8888=7]="IPF_ARGB_8888",_[_.IPF_RGB_161616=8]="IPF_RGB_161616",_[_.IPF_ARGB_16161616=9]="IPF_ARGB_16161616",_[_.IPF_ABGR_8888=10]="IPF_ABGR_8888",_[_.IPF_ABGR_16161616=11]="IPF_ABGR_16161616",_[_.IPF_BGR_888=12]="IPF_BGR_888",_[_.IPF_BINARY_8=13]="IPF_BINARY_8",_[_.IPF_NV12=14]="IPF_NV12",_[_.IPF_BINARY_8_INVERTED=15]="IPF_BINARY_8_INVERTED"}(C||(C={})),function(_){_[_.CRIT_ORIGINAL_IMAGE=1]="CRIT_ORIGINAL_IMAGE",_[_.CRIT_BARCODE=2]="CRIT_BARCODE",_[_.CRIT_TEXT_LINE=4]="CRIT_TEXT_LINE",_[_.CRIT_DETECTED_QUAD=8]="CRIT_DETECTED_QUAD",_[_.CRIT_DESKEWED_IMAGE=16]="CRIT_DESKEWED_IMAGE",_[_.CRIT_PARSED_RESULT=32]="CRIT_PARSED_RESULT",_[_.CRIT_ENHANCED_IMAGE=64]="CRIT_ENHANCED_IMAGE"}(s||(s={})),function(_){_.PT_DEFAULT="Default",_.PT_READ_BARCODES="ReadBarcodes_Default",_.PT_RECOGNIZE_TEXT_LINES="RecognizeTextLines_Default",_.PT_DETECT_DOCUMENT_BOUNDARIES="DetectDocumentBoundaries_Default",_.PT_DETECT_AND_NORMALIZE_DOCUMENT="DetectAndNormalizeDocument_Default",_.PT_NORMALIZE_DOCUMENT="NormalizeDocument_Default",_.PT_READ_BARCODES_SPEED_FIRST="ReadBarcodes_SpeedFirst",_.PT_READ_BARCODES_READ_RATE_FIRST="ReadBarcodes_ReadRateFirst",_.PT_READ_SINGLE_BARCODE="ReadSingleBarcode",_.PT_RECOGNIZE_NUMBERS="RecognizeNumbers",_.PT_RECOGNIZE_LETTERS="RecognizeLetters",_.PT_RECOGNIZE_NUMBERS_AND_LETTERS="RecognizeNumbersAndLetters",_.PT_RECOGNIZE_NUMBERS_AND_UPPERCASE_LETTERS="RecognizeNumbersAndUppercaseLetters",_.PT_RECOGNIZE_UPPERCASE_LETTERS="RecognizeUppercaseLetters"}(A||(A={}));const i={BF_NULL:BigInt(0),BF_ALL:BigInt("0xFFFFFFFEFFFFFFFF"),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)};var N,D;!function(_){_[_.DM_DIRECT_BINARIZATION=1]="DM_DIRECT_BINARIZATION",_[_.DM_THRESHOLD_BINARIZATION=2]="DM_THRESHOLD_BINARIZATION",_[_.DM_GRAY_EQUALIZATION=4]="DM_GRAY_EQUALIZATION",_[_.DM_SMOOTHING=8]="DM_SMOOTHING",_[_.DM_MORPHING=16]="DM_MORPHING",_[_.DM_DEEP_ANALYSIS=32]="DM_DEEP_ANALYSIS",_[_.DM_SHARPENING=64]="DM_SHARPENING",_[_.DM_BASED_ON_LOC_BIN=128]="DM_BASED_ON_LOC_BIN",_[_.DM_SHARPENING_SMOOTHING=256]="DM_SHARPENING_SMOOTHING",_[_.DM_REV=-2147483648]="DM_REV",_[_.DM_SKIP=0]="DM_SKIP"}(N||(N={})),function(_){_[_.LM_AUTO=1]="LM_AUTO",_[_.LM_CONNECTED_BLOCKS=2]="LM_CONNECTED_BLOCKS",_[_.LM_STATISTICS=4]="LM_STATISTICS",_[_.LM_LINES=8]="LM_LINES",_[_.LM_SCAN_DIRECTLY=16]="LM_SCAN_DIRECTLY",_[_.LM_STATISTICS_MARKS=32]="LM_STATISTICS_MARKS",_[_.LM_STATISTICS_POSTAL_CODE=64]="LM_STATISTICS_POSTAL_CODE",_[_.LM_CENTRE=128]="LM_CENTRE",_[_.LM_ONED_FAST_SCAN=256]="LM_ONED_FAST_SCAN",_[_.LM_REV=-2147483648]="LM_REV",_[_.LM_SKIP=0]="LM_SKIP"}(D||(D={}));const a=_.resolve("undefined"!=typeof __dirname?__dirname:t(import.meta.url+"/../"),"../"),T="darwin"===process.platform?"universal2":process.arch;let L=`dynamsoft-capture-vision-for-node-lib-${process.platform}-${T}`;L=E.existsSync(_.resolve(a,"node_modules",L))?_.resolve(a,"node_modules",L):_.resolve(a,"../",L),"win32"===process.platform&&(process.env.PATH=`${L}${_.delimiter}${process.env.PATH}`);let R="dcv-nodejs-wrapper.";switch(process.platform){case"win32":R+="dll";break;case"linux":R="lib"+R+"so";break;case"darwin":R="lib"+R+"dylib";break;default:throw Error("`dynamsoft capture vision for nodejs` not support this platfrom.")}const O=n.load(_.resolve(L,R)),S=O.func("dcvnodejs_int64topointer","void*",["int64"]);let o="js:3.2.50.20251229;cpp:";try{const _=O.func("dcvnodejs_getCvrVersion","str",[]);o+=_()}catch(_){o+="unknown"}const c=O.func("dcvnodejs_initLicense","str",["str"]),l=O.func("dcvnodejs_setDeviceFriendlyName","str",["str"]),u=O.func("dcvnodejs_setLicenseCachePath","str",["str"]),d=O.func("dcvnodejs_getDeviceUUID","str",[]),F=O.func("dcvnodejs_clearDeviceUUID","str",[]),p=O.func("dcvnodejs_clearLicenseCache","str",["str"]),M=O.func("dcvnodejs_setGlobalTemplate","void",["str"]),P=O.func("dcvnodejs_addGlobalIrr","void",["intptr","intptr","str","intptr"]),B=O.func("dcvnodejs_removeGlobalIrr","void",["intptr"]),f=O.func("dcvnodejs_createInstance","intptr",[]),g=O.func("dcvnodejs_initSettings","str",["intptr","str"]),m=O.func("dcvnodejs_outputSettings","str",["intptr","str"]),U=O.func("dcvnodejs_captureImagedata","str",["intptr","int","uint8*","int","int","int","int","int","str"]),V=O.func("dcvnodejs_captureFileInMemory","str",["intptr","uint8*","int","str"]),h=O.func("dcvnodejs_captureFileInDisk","str",["intptr","str","str"]),G=O.func("dcvnodejs_captureMultiPagesFileInMemory","str",["intptr","uint8*","int","str"]),v=O.func("dcvnodejs_captureMultiPagesFileInDisk","str",["intptr","str","str"]),y=O.func("dcvnodejs_deleteInstance","void",["intptr"]),b=O.func("dcvnodejs_deleteCapturedResult","void",["intptr"]),H=O.func("dcvnodejs_addIntermediateResultReceiver","str",["intptr","intptr","str","intptr"]),Y=O.func("dcvnodejs_removeIntermediateResultReceiver","void",["intptr","intptr"]),w=O.func("dcvnodejs_saveToFile","str",["int","intptr","int","int","int","int","int","str","bool"]),J=O.func("dcvnodejs_drawOnImage","str",["int","intptr","int","int","int","int","int","str","int","int"]),X=O.func("dcvnodejs_freeImageData","void",["intptr"]),j=_=>{if(_.exception){let E=Error(_.description);throw E.dcvErrorCode=_.exception,E}},k=(()=>{let _;const E={},e=_=>{--E[_]||(delete E[_],b(_))},t=new FinalizationRegistry((_=>{e(_)})),I=function(){return this._u8||(this._u8=n.decode(S(this.ptr),"uint8",this.length),e(this.capturedResultPtr),t.unregister(this)),this._u8},C=function(){return`Uint8Array(${this.length})`},A=function(){let _=Object.assign({},this);return delete _.referenceItem,_},i=(e,n)=>{var r;return null!==n&&"object"==typeof n&&(!e&&(null==n?void 0:n._ptr)?delete n._ptr:"bytes"===e&&"number"==typeof n.ptr&&"number"==typeof n.length&&(n.capturedResultPtr=_,n.toUint8Array=I,n.toJSON=C,E[r=_]?++E[r]:E[r]=1,t.register(n,_,n))),n};return e=>{let t=JSON.parse(e);if(_=t._ptr,t.errorCode!=r.EC_OK&&t.errorCode!=r.EC_TIMEOUT){b(_);let E=Error(t.errorString);throw E.dcvErrorCode=t.errorCode,E}let I=JSON.parse(e,i);E[_]||b(_),Object.assign(I,{originalImageItems:[],barcodeResultItems:[],textLineResultItems:[],detectedQuadResultItems:[],deskewedImageResultItems:[],parsedResultItems:[],enhancedImageResultItems:[]});for(let _ of I.items){switch(_.type){case s.CRIT_ORIGINAL_IMAGE:I.originalImageItems.push(_);break;case s.CRIT_BARCODE:I.barcodeResultItems.push(_);break;case s.CRIT_TEXT_LINE:I.textLineResultItems.push(_);break;case s.CRIT_DETECTED_QUAD:I.detectedQuadResultItems.push(_);break;case s.CRIT_DESKEWED_IMAGE:I.deskewedImageResultItems.push(_);break;case s.CRIT_PARSED_RESULT:const E=_;E.parsed=JSON.parse(E.parsed),I.parsedResultItems.push(E);break;case s.CRIT_ENHANCED_IMAGE:I.enhancedImageResultItems.push(_)}"indexOfReferenceItem"in _&&(_.referenceItem=I.items[_.indexOfReferenceItem]),_.toJSON=A}return I}})(),K=_=>{let E=JSON.parse(_),e=[];for(let _ of E)e.push(k(JSON.stringify(_)));return e},Z=new FinalizationRegistry((_=>{y(_)}));let x=0,Q=e.cpus().length-1;Q<1&&(Q=1);const W=[],z=[];let $=0;const q={},__=_=>{if(x<=Q){let E=z.shift();E?E(_):W.push(_)}else _.unref(),--x},E_=async()=>{let E=W.shift();return E||(x>=Q?await new Promise(((_,E)=>{z.push(_)})):(++x,E=new I(_.resolve(a,"dist","worker.js")),E.on("message",(_=>{let E=_.data?_.data:_,e=E.type,t=E.id,I=E.body;switch(e){case"task":{const _=q[t];delete q[t],__(_.worker),_(I);break}default:console.log(_.body)}})),E))},e_={initLicense:_=>{let E=c(_),e=JSON.parse(E);j(e)},setDeviceFriendlyName:_=>{let E=l(_),e=JSON.parse(E);j(e)},setLicenseCachePath:e=>{e=_.resolve(e),E.existsSync(e)||E.mkdirSync(e,{recursive:!0});let t=u(e),I=JSON.parse(t);j(I)},getDeviceUUID:()=>{let _=d(),E=JSON.parse(_);return j(E),E.uuid},_clearDeviceUUID:()=>{let _=F(),E=JSON.parse(_);j(E)},_clearLicenseCache:()=>{let E=_.parse(process.execPath).name,e=p(E),t=JSON.parse(e);j(t)}};process.env.LAMBDA_TASK_ROOT&&u("/tmp");const t_={};let I_="dynamsoft-capture-vision-for-node-model";E.existsSync(_.resolve(a,"node_modules",I_))?I_=_.resolve(a,"node_modules",I_):E.existsSync(_.resolve(a,"../",I_))&&(I_=_.resolve(a,"../",I_));const n_=_.resolve(I_,"ConfusableChars.data"),r_=_.resolve(I_,"OverlappingChars.data"),C_=e=>{"object"==typeof e&&(e=JSON.stringify(e)),e.trimStart().startsWith("{")||(e=E.readFileSync(e,"utf-8"));let t=JSON.parse(e);for(let E in t){let e=t[E];if("BarcodeReaderTaskSettingOptions"===E)for(let _ of e)_.MaxThreadsInOneTask||(_.MaxThreadsInOneTask=1);else if("CaptureVisionModelOptions"===E)for(let _ of e)_.DirectoryPath||(_.DirectoryPath=I_);else if("CodeParserTaskSettingOptions"===E){const E=_.resolve(a,"ParserResources");for(let _ of e)_.ResourcesPath||(_.ResourcesPath=E)}else if("LabelRecognizerTaskSettingOptions"===E)for(let{SectionArray:_}of e)if(_)for(let E of _)if("ST_TEXT_LINE_RECOGNITION"===E.Section&&E.StageArray)for(let _ of E.StageArray)"SST_RECOGNIZE_RAW_TEXT_LINES"===_.Stage&&(_.ConfusableCharactersPath&&"ConfusableChars.data"!==_.ConfusableCharactersPath||(_.ConfusableCharactersPath=n_),_.OverlappingCharactersPath&&"OverlappingChars.data"!==_.OverlappingCharactersPath||(_.OverlappingCharactersPath=r_))}return t};class s_{static get version(){return o}static get waitQueueLength(){return z.length}static get maxWorkerCount(){return Q}static set maxWorkerCount(_){(_=Math.round(_))>e.cpus.length?_=e.cpus.length:_<1&&(_=1),Q=_}static async terminateIdleWorkers(){x-=W.length;const _=Promise.all(W.map((_=>_.terminate())));W.length=0,await _}_nextUpdVer(){this._updVer<Number.MAX_SAFE_INTEGER?this._updVer++:this._updVer=0}constructor(){var _;const E=this._instanceID=f();this._updVer=(null===(_=s_._instance)||void 0===_?void 0:_._updVer)||0,Z.register(this,E,this)}initSettings(_){_=JSON.stringify(C_(_)),this._initSettings(_)}_initSettings(_){if(this._template===_)return;let E=g(this._instanceID,_),e=JSON.parse(E);j(e),this._template=_,this._nextUpdVer()}outputSettings(_){if(!_)return JSON.parse(this._template);let E=m(this._instanceID,_),e=JSON.parse(E);return j(e),JSON.parse(e.tpl)}resetSettings(){this._initSettings(s_._instance._template)}_capture(E,e){let t,I,n;"string"==typeof e?t=e:({templateName:t,_multi:I=!1}=e);let r=!1;if("object"==typeof E)if(E instanceof Uint8Array){const _=E;n=(I?G:V)(this._instanceID,_,_.length,t)}else if(E.bytes instanceof Uint8Array&&!I){const _=E;n=U(this._instanceID,_.bytes.length,_.bytes,_.width,_.height,_.stride,_.format,_.orientation||1,t)}else r=!0;else if("string"==typeof E){const e=_.resolve(E);n=(I?v:h)(this._instanceID,e,t)}else r=!0;if(r)throw Error("Invalid argument for capture.");return I?K(n):k(n)}async _captureAsync(E,e){let t,I,n,r,C,s,A;"string"==typeof e?t=e:({templateName:t,worker:I,dataTransferType:n="move",_multi:r=!1}=e);let i,N=!1;if("object"==typeof E)if(E instanceof Uint8Array){C=r?"captureMultiPagesFileInMemory":"captureFileInMemory",s={fileBytes:E},"move"===n&&(A=[E.buffer])}else if(E.bytes instanceof Uint8Array&&!r){C="captureImagedata",s={imageData:E},"move"===n&&(A=[E.bytes.buffer])}else N=!0;else if("string"==typeof E){const e=_.resolve(E);C=r?"captureMultiPagesFileInDisk":"captureFileInDisk",s={filePath:e}}else N=!0;if(N)throw I&&__(I),Error("Invalid argument for capture.");I=I||await E_();const D=$<Number.MAX_SAFE_INTEGER?$++:$=0;return await new Promise((async(_,E)=>{const e=e=>{if(e.success)return i=e.strRep,_();{let _=new Error(e.message);return _.stack=e.stack+"\n"+_.stack,E(_)}};e.worker=I,q[D]=e,I.postMessage({type:C,id:D,instanceID:this._instanceID,body:Object.assign(Object.assign({},s),{templateName:t})},A)})),r?K(i):k(i)}capture(_,E){return this._capture(_,E)}captureMultiPages(_,E){return this._capture(_,{templateName:"string"==typeof E?E:E.templateName,_multi:!0})}async captureAsync(_,E){return await this._captureAsync(_,E)}async captureMultiPagesAsync(_,E){return await this._captureAsync(_,{templateName:"string"==typeof E?E:E.templateName,dataTransferType:null==E?void 0:E.dataTransferType,_multi:!0})}addIntermediateResultReceiver(E,e,t,I){E=_.resolve(E);const r=t_[E]=t_[E]||{lib:n.load(E),funs:{}},C=r.funs[e]=r.funs[e]||n.address(r.lib.symbol(e,"intptr")),s=r.funs[I]=r.funs[I]||n.address(r.lib.symbol(I,"intptr"));let A=H(this._instanceID,C,t,s),i=JSON.parse(A);return j(i),this._nextUpdVer(),i.irr}removeIntermediateResultReceiver(_){Y(this._instanceID,_),this._nextUpdVer()}static initSettings(_){_=JSON.stringify(C_(_)),s_._initSettings(_)}static _initSettings(_){s_._instance._initSettings(_),M(_)}static outputSettings(_){return s_._instance.outputSettings(_)}static resetSettings(){s_._initSettings(s_._presetTemplate)}static capture(_,E){return s_._instance.capture(_,E)}static captureMultiPages(_,E){return s_._instance.captureMultiPages(_,E)}static async _captureAsync(_,E){var e;const t=await E_();let I;return(null===(e=t.cvr)||void 0===e?void 0:e._updVer)!==s_._instance._updVer&&(t.cvr=new s_),I="string"==typeof E?{templateName:E,worker:t}:Object.assign(Object.assign({},E),{worker:t}),await t.cvr._captureAsync(_,I)}static async captureAsync(_,E){return await s_._captureAsync(_,E)}static async captureMultiPagesAsync(_,E){return await s_._captureAsync(_,{templateName:"string"==typeof E?E:E.templateName,dataTransferType:null==E?void 0:E.dataTransferType,_multi:!0})}static addIntermediateResultReceiver(_,E,e,t){const I=s_._instance.addIntermediateResultReceiver(_,E,e,t);return P(I,t_[_].funs[E],e,t_[_].funs[t]),I}static removeIntermediateResultReceiver(_){s_._instance.removeIntermediateResultReceiver(_),B(_)}}s_._instance=new s_;{const e="Templates",t=_.resolve(a,e),I=E.existsSync(t)?E.readdirSync(_.resolve(a,e)):[];let n={};if(!I.length){n=s_._instance.outputSettings("*");for(let _ of n.BarcodeReaderTaskSettingOptions)_.MaxThreadsInOneTask=1;delete n.CaptureVisionModelOptions}for(let E of I){let t=C_(_.resolve(a,e,E));for(let _ in t){let E=t[_];if(n[_])for(let e of E)n[_].push(e);else n[_]=E}}s_._presetTemplate=JSON.stringify(n)}s_._initSettings(s_._presetTemplate);const A_={saveToFile:(_,E,e=!0)=>{var t,I;const n=(null===(I=(t=_.bytes).toUint8Array)||void 0===I?void 0:I.call(t))||_.bytes;let r=w(n.length,n,_.width,_.height,_.stride,_.format,_.orientation||1,E,e),C=JSON.parse(r);j(C)}},i_={drawOnImage:(_,E,e=4294901760,t=1)=>{var I,r;const C=(null===(r=(I=_.bytes).toUint8Array)||void 0===r?void 0:r.call(I))||_.bytes;let s=J(C.length,C,_.width,_.height,_.stride,_.format,_.orientation||1,JSON.stringify(E),e,t),A=JSON.parse(s);j(A);let i=A.image;return i.bytes=n.decode(S(i.bytes.ptr),"uint8",i.bytes.length),X(A.imagePtr),i}};export{s_ as CaptureVisionRouter,i as EnumBarcodeFormat,s as EnumCapturedResultItemType,N as EnumDeblurMode,r as EnumErrorCode,C as EnumImagePixelFormat,D as EnumLocalizationMode,A as EnumPresetTemplate,i_ as ImageDrawer,A_ as ImageIO,e_ as LicenseManager};