@scandit/web-datacapture-parser 8.5.0-beta.1 → 8.5.0

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.
@@ -1 +0,0 @@
1
- import{WorkersRegistry as e}from"./parser/private/WorkersRegistry.js";import{Deferred as t}from"@scandit/web-datacapture-core/build/js/private/utils/deferred.js";var n=`parser-worker-8.5.0-beta.1.js`;function r(e){try{var t=e.endsWith(`/`)?e:e+`/`;return new URL(n,t).href}catch(t){var r=t instanceof Error?t.message:String(t);throw Error(`Invalid worker URL: `+e+`/`+n+` (`+r+`)`)}}function i(e){try{return new URL(e).origin===location.origin}catch(n){var t=n instanceof Error?n.message:String(n);return console.warn(`Could not determine origin for worker URL "`+e+`": `+t+`. Defaulting to cross-origin path.`),!1}}function a(e,t){/javascript|ecmascript/i.test(e.type)||(e=new Blob([e],{type:`application/javascript`}));var n=URL.createObjectURL(e),r=new Worker(n,{name:t});return setTimeout(function(){URL.revokeObjectURL(n)},0),r}async function o(e){if(!e||!e.libraryLocation)throw Error(`ExternalWorker requires options.libraryLocation`);var t=r(e.libraryLocation);try{var n=await fetch(t,i(t)?{}:{mode:`cors`});if(!n.ok)throw Error(`Failed to load worker script: `+t+` (status `+n.status+`)`);var o=await n.blob();return i(t)?new Worker(t,{name:e.name}):a(o,e.name)}catch(e){throw e instanceof Error&&e.message.startsWith(`Failed to load worker script:`)?e:Error(`Failed to load worker script: `+t+` (`+(e instanceof Error?e.message:e)+`)`)}}var s=class n{constructor(e){this.moduleName=`Parser`,this.id=0,this.loadingOptions=e}static get worker(){return e.get(`ParserWorker`)}static async create(t){if(!e.has(`ParserWorker`)){let n=await o({name:`ParserWorker`,libraryLocation:t.libraryLocation});e.set(`ParserWorker`,n)}return new n(t)}async load(){await this.sendMessage({id:this.id++,methodName:`load`,className:`ParserLoader`,args:[{libraryLocation:this.loadingOptions.libraryLocation,simdSupport:this.loadingOptions.simdSupport,threadsSupport:this.loadingOptions.threadsSupport,verifyResponseHash:this.loadingOptions.verifyResponseHash,referredOrigin:this.loadingOptions.referredOrigin??``}]})}async setLogLevel(e){await this.sendMessage({id:this.id++,methodName:`setLogLevel`,className:`ParserLoader`,args:[e]})}async sendMessage(e){let r=new t,i=t=>{let{data:a}=t;e.id===a.payload.id&&(a.payload.result.type===`result`?r.resolve(a.payload.result.result):r.reject(a.payload.result.error),n.worker.removeEventListener(`message`,i))};return n.worker.addEventListener(`message`,i),n.worker.postMessage(e),r.promise}};export{s as t};
@@ -1 +0,0 @@
1
- (function(){let e;(function(e){e.Level=function(e){return e.Debug=`debug`,e.Info=`info`,e.Warn=`warn`,e.Error=`error`,e.Quiet=`quiet`,e}({});let t=new Map([[`debug`,1],[`info`,2],[`warn`,3],[`error`,4],[`quiet`,5]]),n=`debug`;function r(e){n=e}e.setLevel=r;function i(e,...r){if(!(t.get(n)>t.get(e)))switch(e){case`debug`:console.debug(...r);break;case`info`:console.log(...r);break;case`warn`:console.warn(...r);break;case`error`:console.error(...r);break;default:break}}e.log=i;function a(...e){i(`warn`,...e)}e.warn=a;function o(...e){i(`debug`,...e)}e.debug=o;function s(...e){i(`info`,...e)}e.info=s;function c(...e){i(`error`,...e)}e.error=c})(e||={});var t=class e extends Error{constructor(t){super(t.message),Object.setPrototypeOf(this,e.prototype),this.name=t.name}toString(){return`${this.name}: ${this.message}`}};function n(e){return/^https?:\/\/(?:[^./]*\.)*cdn.jsdelivr.net\//.test(e)?{result:!0,cdnBaseURL:`https://cdn.jsdelivr.net/npm/`}:/^https?:\/\/(?:[^./]*\.)*unpkg.com\//.test(e)?{result:!0,cdnBaseURL:`https://unpkg.com/`}:{result:!1,cdnBaseURL:``}}function r(e){let t=/@scandit\/web-datacapture-[a-z]+/i.exec(e);return t?t[0]:null}function i(e,t,i){let a=t,o=n(a);if(o.result){let t=r(a);t!=null&&(a=`${o.cdnBaseURL}${t}@${e}/sdc-lib/`)}let s=i.replace(`.wasm`,``);return o.result?{jsURI:`${a}${s}.js`,wasmURI:`${a}${s}.wasm`}:{jsURI:`${a}${s}.js?v=${e}`,wasmURI:`${a}${s}.wasm?v=${e}`}}let a;(function(e){function n(){let e=`8.5.0-beta.1`;if(e==null)throw new t({name:`Invalid library version`,message:`Library version is not defined or empty.`});return e}e.sdkVersion=n})(a||={});function o(e){return typeof e==`object`&&!!e&&e.document==null&&`addEventListener`in e&&typeof e.importScripts==`function`}var s=class{constructor(){this.promise=new Promise((e,t)=>{this.reject=t,this.resolve=e})}};let c={};function l(e){return[...new Uint8Array(e)].map(e=>{let t=e.toString(16);return t.length===1?`0${t}`:t}).join(``)}async function*u(e){let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}async function d(e){let t=[],n=0,r=0;for await(let r of u(e))t.push(r),n+=r.length;let i=new Uint8Array(n);for(let e of t)i.set(e,r),r+=e.length;return i.buffer}(function(e){return e.VALID=`VALID`,e.INVALID=`INVALID`,e.NOT_VERIFIABLE=`NOT_VERIFIABLE`,e})({});async function f(t,n,r){if(typeof crypto.subtle.digest!=`function`)return e.log(e.Level.Warn,`Insecure context (see https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts): The hash of the Scandit Data Capture library WASM file found at ${r} could not be verified`),`NOT_VERIFIABLE`;try{let i=t instanceof Promise?await t:t,a=l(await crypto.subtle.digest(`SHA-256`,i));return n==null?(e.log(e.Level.Warn,`The library hash is not defined or empty, cannot correctly verify integrity.`),`NOT_VERIFIABLE`):a===n?(e.log(e.Level.Debug,`Data Capture library WASM integrity found at ${r} has been verified correctly.`),`VALID`):(e.log(e.Level.Warn,`The Scandit Data Capture library WASM file found at ${r} seems invalid: expected file hash doesn't match (received: ${a}, expected: ${n}). Please ensure the correct Scandit Data Capture file (with correct version) is retrieved.`),`INVALID`)}catch(t){return e.log(e.Level.Warn,`Wasm response could not be verified`,t),`NOT_VERIFIABLE`}}let p=new Map([[`br`,4.4],[`gzip`,2.9],[`none`,1]]);function m(e){let t=`content-encoding`;if(e==null||e.get(t)==null)return p.get(`none`);let n=new Set((e.get(t)??``).split(`,`).map(e=>e.trim()));for(let[e,t]of p)if(n.has(e))return t;return p.get(`none`)}function h(e){if(e==null)return 0;let t=m(e)??1,n=Number.parseInt(e.get(`content-length`)??`0`,10);return Number.isNaN(n)?0:Math.floor(n*t*100)/100}function g(e){let{pathname:t}=new URL(e);for(let[e,n]of Object.entries(c))if(t.endsWith(e))return n.bytes;return 0}function _(e){c=e}let v=(e,t)=>{let n=h(t);return n===0?g(e):n};function y(t,n,r,{onProgress:i,onError:a,onComplete:o}){if(!n.body)return[n];let s=v(t,n.headers),c=0,l=0;if(typeof TransformStream>`u`)return e.warn(`TransformStream is not supported in this environment. Progress tracking will be disabled.`),[n];let[u,d]=r?n.body.tee():[n.body],f=u.pipeThrough(new TransformStream({async transform(e,n){try{c+=e.length,l=Number((c/s*100).toFixed(2)),s>0&&e.length>0&&l<100?i?.({percentage:l,loadedBytes:c,privateUri:t}):s===0&&e.length>0&&i?.({percentage:null,loadedBytes:c,privateUri:t}),n.enqueue(e)}catch(e){n.error(e),a?.({error:e})}},flush(e){i?.({percentage:100,loadedBytes:c,privateUri:t}),o?.({percentage:100,loadedBytes:c,privateUri:t}),e.terminate()}}));return[new Response(f,{headers:new Headers(n.headers),status:n.status,statusText:n.statusText}),d]}async function b({wasmURI:e,expectedHash:t,verifyResponseHash:n,onProgress:r,onComplete:i,onError:a,referredOrigin:o}){let s=await fetch(e,{referrerPolicy:`origin`,referrer:o??``});if(!s.ok)throw Error(`HTTP status code is not ok: ${s.status}, ${s.statusText}`);let[c,l]=y(e,s,n,{onProgress:r,onError:a,onComplete:i});return l!=null&&f(d(l),t,e),c}function x({wasmURI:t,expectedHash:n,verifyResponseHash:r,progressCallback:i,successCallback:a,errorCallback:o,importObject:s,referredOrigin:c}){async function l(l){try{let e=await b({wasmURI:t,expectedHash:n,verifyResponseHash:r,onProgress:i,referredOrigin:c}),o=await(l??e).arrayBuffer(),u=await globalThis.WebAssembly.instantiate(o,s);a(u.instance,u.module)}catch(n){e.log(e.Level.Error,n),e.log(e.Level.Error,`Couldn't instantiate Scandit SDK DataCapture library at ${t}, did you configure the path for it correctly?`),o?.(n)}}async function u(){let o;try{o=await b({wasmURI:t,expectedHash:n,verifyResponseHash:r,onProgress:i,referredOrigin:c});let e=await globalThis.WebAssembly.instantiateStreaming(o,s);a(e.instance,e.module)}catch(t){e.log(e.Level.Warn,t),e.log(e.Level.Warn,`WebAssembly streaming compile failed. Falling back to ArrayBuffer instantiation (this will make things slower)`),l(o?.bodyUsed===!0?void 0:o)}}typeof globalThis.WebAssembly.instantiateStreaming==`function`?u():l()}async function S(e,t,n,r){return new Promise((i,a)=>{e().then(i).catch(o=>{let s=t*2;if(s>n){a(o);return}r(o),globalThis.setTimeout(()=>{S(e,s,n,r).then(i).catch(a)},t)})})}async function C(t,n){function r(t){try{return new URL(t,self.location.href).origin!==self.location.origin}catch(n){return e.log(e.Level.Warn,`Could not determine origin for WASM JS URL "${t}": ${n instanceof Error?n.message:String(n)}. Defaulting to same-origin path.`),!1}}function i(n){e.log(e.Level.Warn,n),e.log(e.Level.Warn,`Couldn't retrieve Scandit Data Capture library at ${t}, retrying...`)}try{if(r(t)){let e=await S(async()=>{let e=await fetch(t,{mode:`cors`,credentials:`omit`});if(!e.ok)throw Error(`Failed to load WASM JS script: ${t} (status ${e.status})`);let n=await e.blob();return/javascript|ecmascript/i.test(n.type)?n:new Blob([n],{type:`application/javascript`})},250,4e3,i),n=URL.createObjectURL(e);try{await importScripts(n)}finally{URL.revokeObjectURL(n)}self.Module.mainScriptUrlOrBlob=e}else await S(async()=>importScripts(t),250,4e3,i),self.Module.mainScriptUrlOrBlob=t;let a=globalThis.SDC_WASM_JS_VERSION;return a!==n&&e.log(e.Level.Warn,`The Scandit Data Capture library JS file found at ${t} seems invalid: expected version doesn't match (received: ${a}, expected: ${n}). Please ensure the correct Scandit Data Capture file (with correct version) is retrieved.`),!0}catch(t){return e.log(e.Level.Error,t),!1}}let w=e=>e.result!=null&&e.error==null;function T(e,t){return{type:`djinniResult`,payload:{id:e.id,className:e.className,methodName:e.methodName,instanceId:e.instanceId,result:t}}}function E(e,t){return{type:`parserLoaderResult`,payload:{id:e.id,className:e.className,methodName:e.methodName,result:t}}}new class{constructor(e,t){this.parsers=new Map,this.onMessageListener=this.onMessage.bind(this),this.setupPromise=null,this.workerSelf=e,this.moduleHandler=t,o(e)&&(this.workerFunctions={postMessage:this.workerSelf.postMessage.bind(this.workerSelf)},this.listenToMessages()),_({"scandit-datacapture-sdk-parser-simd-pthreads.wasm":{bytes:7152509},"scandit-datacapture-sdk-parser-pthreads.wasm":{bytes:7194022},"scandit-datacapture-sdk-parser-simd.wasm":{bytes:7165678},"scandit-datacapture-sdk-parser.wasm":{bytes:7220584}})}get Module(){return this.moduleHandler.get()}setLogLevel(t){e.setLevel(t.args[0]),this.workerFunctions.postMessage(E(t,{type:`result`,result:!0}))}async load(e){try{await this.setup(e.args[0]),this.workerFunctions.postMessage(E(e,{type:`result`,result:!0}))}catch(t){this.workerFunctions.postMessage(E(e,{type:`error`,error:t}))}}listenToMessages(){this.workerSelf.addEventListener(`message`,this.onMessageListener),this.workerSelf.addEventListener(`error`,t=>{e.log(e.Level.Error,t)}),this.workerSelf.addEventListener(`messageerror`,t=>{e.log(e.Level.Error,t)})}onMessage(e){return e.data.className===`ParserLoader`&&e.data.methodName===`load`&&this.load(e.data),e.data.className===`ParserLoader`&&e.data.methodName===`setLogLevel`&&this.setLogLevel(e.data),e.data.className===`ParserInterface`&&this.performDjinniAction(e.data),!0}async performDjinniAction(t){let n;if(e.log(e.Level.Debug,`${t.className}::${t.methodName}(`,t.args,`)`),t.methodName===`create`){let r=t.args[0].toString();if(this.parsers.has(r)){this.workerFunctions.postMessage(T(t,{type:`result`,result:r}));return}n=this.createParser(t),e.log(e.Level.Debug,n),this.workerFunctions.postMessage(n);return}let r=this.parsers.get(t.instanceId??``);if(r==null){this.workerFunctions.postMessage(T(t,{type:`error`,error:`parser is not defined: try to access instance with id ${t.instanceId??``}`}));return}let i=r[t.methodName](...t.args);n=w(i)?T(t,i):T(t,{type:`error`,error:i.error}),this.workerFunctions.postMessage(n)}async setup({libraryLocation:n,threadsSupport:r,simdSupport:o,verifyResponseHash:c,referredOrigin:l}){if(this.setupPromise!=null)return this.setupPromise;let{resolve:u,reject:d,promise:f}=new s;this.setupPromise=f;let p=a.sdkVersion();if(p===``)throw new t({name:`Invalid library version`,message:`Library version is not defined or empty, cannot generate proper path to library files.`});let{jsURI:m,wasmURI:h}=i(p,n,this.getWasmParserFileName(o,r));return this.moduleHandler.set({mainScriptUrlOrBlob:m,locateFile:e=>n+e,onMainComplete:()=>{},onRuntimeInitialized:()=>{u()},print:t=>{e.log(e.Level.Info,t)},instantiateWasm:(e,t)=>(x({importObject:e,wasmURI:h,expectedHash:this.getWasmParserExpectedHash(o,r),verifyResponseHash:c,successCallback:t,progressCallback:()=>{},referredOrigin:l}),{})}),await C(m,p)||d(`Couldn't retrieve Parser library at ${m}, did you configure the path for it correctly?`),f}createParser(t){let n=this.Module.ParserInterface.create(t.args[0]);if(e.log(e.Level.Debug,`Parser:create returns ${n.type}`,n),n.type===`error`)return T(t,n);let r=t.args[0]?.toString()??``,i=T(t,{type:`result`,result:r});return this.parsers.set(r,n.result),i}getWasmParserExpectedHash(e,t){return t?e?`98aac84ebd74fb71e8c4c1a6e08e770dbe3e9cdf7a1e956a2f27be77d94949b2`:`6f16c3c9a850229633e04cddcd68c52e212e4f4d2ea62ea2536a81ded66cc347`:e?`4177ac2d1bdbc2b0c39a9ede3a80feec65882e5e33f4f69cb50c9848cffa3316`:`918f705900321679f919ed51965e415613845145f75c2c40c11d2a3ee858ca71`}getWasmParserFileName(e,t){return t?e?`scandit-datacapture-sdk-parser-simd-pthreads.wasm`:`scandit-datacapture-sdk-parser-pthreads.wasm`:e?`scandit-datacapture-sdk-parser-simd.wasm`:`scandit-datacapture-sdk-parser.wasm`}}(globalThis,{get:()=>globalThis.Module,set:e=>{globalThis.Module=e}})})();