zxing-wasm
Version:
ZXing-C++ WebAssembly as an ES/CJS module with types
2 lines (1 loc) • 4.47 kB
JavaScript
;const O=[["Aztec","M"],["Codabar","L"],["Code39","L"],["Code93","L"],["Code128","L"],["DataBar","L"],["DataBarExpanded","L"],["DataMatrix","M"],["EAN-8","L"],["EAN-13","L"],["ITF","L"],["MaxiCode","M"],["PDF417","M"],["QRCode","M"],["UPC-A","L"],["UPC-E","L"],["MicroQRCode","M"],["rMQRCode","M"],["DXFilmEdge","L"],["DataBarLimited","L"]],f=O.map(([e])=>e),g=f.filter((e,t)=>O[t][1]==="L"),M=f.filter((e,t)=>O[t][1]==="M");function u(e){switch(e){case"Linear-Codes":return g.reduce((t,r)=>t|u(r),0);case"Matrix-Codes":return M.reduce((t,r)=>t|u(r),0);case"Any":return(1<<O.length)-1;case"None":return 0;default:return 1<<f.indexOf(e)}}function w(e){if(e===0)return"None";const t=31-Math.clz32(e);return f[t]}function x(e){return e.reduce((t,r)=>t|u(r),0)}const C=["LocalAverage","GlobalHistogram","FixedThreshold","BoolCast"];function T(e){return C.indexOf(e)}const y=["Unknown","ASCII","ISO8859_1","ISO8859_2","ISO8859_3","ISO8859_4","ISO8859_5","ISO8859_6","ISO8859_7","ISO8859_8","ISO8859_9","ISO8859_10","ISO8859_11","ISO8859_13","ISO8859_14","ISO8859_15","ISO8859_16","Cp437","Cp1250","Cp1251","Cp1252","Cp1256","Shift_JIS","Big5","GB2312","GB18030","EUC_JP","EUC_KR","UTF16BE","UTF16BE","UTF8","UTF16LE","UTF32BE","UTF32LE","BINARY"];function A(e){return e==="UnicodeBig"?y.indexOf("UTF16BE"):y.indexOf(e)}const F=["Text","Binary","Mixed","GS1","ISO15434","UnknownECI"];function R(e){return F[e]}const L=["Ignore","Read","Require"];function U(e){return L.indexOf(e)}const b=["Plain","ECI","HRI","Hex","Escaped"];function p(e){return b.indexOf(e)}const m={formats:[],tryHarder:!0,tryRotate:!0,tryInvert:!0,tryDownscale:!0,tryDenoise:!1,binarizer:"LocalAverage",isPure:!1,downscaleFactor:3,downscaleThreshold:500,minLineCount:2,maxNumberOfSymbols:255,tryCode39ExtendedMode:!0,returnErrors:!1,eanAddOnSymbol:"Ignore",textMode:"HRI",characterSet:"Unknown"};function _(e){return{...e,formats:x(e.formats),binarizer:T(e.binarizer),eanAddOnSymbol:U(e.eanAddOnSymbol),textMode:p(e.textMode),characterSet:A(e.characterSet)}}function W(e){return{...e,format:w(e.format),contentType:R(e.contentType),eccLevel:e.ecLevel}}function S(e){var t;return{...e,image:(t=e.image&&new Blob([new Uint8Array(e.image)],{type:"image/png"}))!=null?t:null}}const h={format:"QRCode",readerInit:!1,forceSquareDataMatrix:!1,ecLevel:"",scale:0,sizeHint:0,rotate:0,withHRT:!1,withQuietZones:!0,options:""};function P(e){return{...e,format:u(e.format)}}const z="2.2.1",D="c0a7c6cd2165457c721c58045edd22ffee9624e9",N={locateFile:(e,t)=>{const r=e.match(/_(.+?)\.wasm$/);return r?`https://fastly.jsdelivr.net/npm/zxing-wasm@2.2.1/dist/${r[1]}/${e}`:t+e}},l=new WeakMap;function X(e,t){return Object.is(e,t)||Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every(r=>Object.hasOwn(t,r)&&e[r]===t[r])}function I(e,{overrides:t,equalityFn:r=X,fireImmediately:d=!1}={}){var o;const[a,i]=(o=l.get(e))!=null?o:[N],n=t!=null?t:a;let c;if(d){if(i&&(c=r(a,n)))return i;const s=e({...n});return l.set(e,[n,s]),s}(c!=null?c:r(a,n))||l.set(e,[n])}function Z(e){l.delete(e)}async function H(e,t,r=m){const d={...m,...r},a=await I(e,{fireImmediately:!0});let i,n;if("width"in t&&"height"in t&&"data"in t){const{data:o,data:{byteLength:s},width:B,height:E}=t;n=a._malloc(s),a.HEAPU8.set(o,n),i=a.readBarcodesFromPixmap(n,B,E,_(d))}else{let o,s;if("buffer"in t)[o,s]=[t.byteLength,t];else if("byteLength"in t)[o,s]=[t.byteLength,new Uint8Array(t)];else if("size"in t)[o,s]=[t.size,new Uint8Array(await t.arrayBuffer())];else throw new TypeError("Invalid input type");n=a._malloc(o),a.HEAPU8.set(s,n),i=a.readBarcodesFromImage(n,o,_(d))}a._free(n);const c=[];for(let o=0;o<i.size();++o)c.push(W(i.get(o)));return c}async function v(e,t,r=h){const d={...h,...r},a=P(d),i=await I(e,{fireImmediately:!0});if(typeof t=="string")return S(i.writeBarcodeFromText(t,a));const{byteLength:n}=t,c=i._malloc(n);i.HEAPU8.set(t,c);const o=i.writeBarcodeFromBytes(c,n,a);return i._free(c),S(o)}const G={...m,formats:[...m.formats]},j={...h};exports.ZXING_CPP_COMMIT=D;exports.ZXING_WASM_VERSION=z;exports.barcodeFormats=f;exports.binarizers=C;exports.characterSets=y;exports.contentTypes=F;exports.defaultReaderOptions=G;exports.defaultWriterOptions=j;exports.eanAddOnSymbols=L;exports.linearBarcodeFormats=g;exports.matrixBarcodeFormats=M;exports.prepareZXingModuleWithFactory=I;exports.purgeZXingModuleWithFactory=Z;exports.readBarcodesWithFactory=H;exports.textModes=b;exports.writeBarcodeWithFactory=v;