formal-ai 0.170.0

Formal symbolic AI implementation with OpenAI-compatible APIs
Documentation
1
(()=>{var e0=Object.create;var{getPrototypeOf:$2,defineProperty:D0,getOwnPropertyNames:q2}=Object;var Q2=Object.prototype.hasOwnProperty;function X2(Q){return this[Q]}var z2,V2,Z2=(Q,V,Y)=>{var D=Q!=null&&typeof Q==="object";if(D){var w=V?z2??=new WeakMap:V2??=new WeakMap,M=w.get(Q);if(M)return M}Y=Q!=null?e0($2(Q)):{};let _=V||!Q||!Q.__esModule?D0(Y,"default",{value:Q,enumerable:!0}):Y;for(let B of q2(Q))if(!Q2.call(_,B))D0(_,B,{get:X2.bind(Q,B),enumerable:!0});if(D)w.set(Q,_);return _};var U=(Q,V)=>()=>(V||Q((V={exports:{}}).exports,V),V.exports);var W0=U((l2,q0)=>{var $0=function(Q){var V=Object.prototype,Y=V.hasOwnProperty,D=Object.defineProperty||function(q,$,X){q[$]=X.value},w,M=typeof Symbol==="function"?Symbol:{},_=M.iterator||"@@iterator",B=M.asyncIterator||"@@asyncIterator",C=M.toStringTag||"@@toStringTag";function T(q,$,X){return Object.defineProperty(q,$,{value:X,enumerable:!0,configurable:!0,writable:!0}),q[$]}try{T({},"")}catch(q){T=function($,X,Z){return $[X]=Z}}function F(q,$,X,Z){var z=$&&$.prototype instanceof j?$:j,W=Object.create(z.prototype),A=new d(Z||[]);return D(W,"_invoke",{value:c(q,X,A)}),W}Q.wrap=F;function H(q,$,X){try{return{type:"normal",arg:q.call($,X)}}catch(Z){return{type:"throw",arg:Z}}}var K="suspendedStart",k="suspendedYield",v="executing",E="completed",N={};function j(){}function f(){}function L(){}var I={};T(I,_,function(){return this});var x=Object.getPrototypeOf,u=x&&x(x(s([])));if(u&&u!==V&&Y.call(u,_))I=u;var P=L.prototype=j.prototype=Object.create(I);f.prototype=L,D(P,"constructor",{value:L,configurable:!0}),D(L,"constructor",{value:f,configurable:!0}),f.displayName=T(L,C,"GeneratorFunction");function p(q){["next","throw","return"].forEach(function($){T(q,$,function(X){return this._invoke($,X)})})}Q.isGeneratorFunction=function(q){var $=typeof q==="function"&&q.constructor;return $?$===f||($.displayName||$.name)==="GeneratorFunction":!1},Q.mark=function(q){if(Object.setPrototypeOf)Object.setPrototypeOf(q,L);else q.__proto__=L,T(q,C,"GeneratorFunction");return q.prototype=Object.create(P),q},Q.awrap=function(q){return{__await:q}};function h(q,$){function X(W,A,J,G){var O=H(q[W],q,A);if(O.type==="throw")G(O.arg);else{var e=O.arg,l=e.value;if(l&&typeof l==="object"&&Y.call(l,"__await"))return $.resolve(l.__await).then(function(S){X("next",S,J,G)},function(S){X("throw",S,J,G)});return $.resolve(l).then(function(S){e.value=S,J(e)},function(S){return X("throw",S,J,G)})}}var Z;function z(W,A){function J(){return new $(function(G,O){X(W,A,G,O)})}return Z=Z?Z.then(J,J):J()}D(this,"_invoke",{value:z})}p(h.prototype),T(h.prototype,B,function(){return this}),Q.AsyncIterator=h,Q.async=function(q,$,X,Z,z){if(z===void 0)z=Promise;var W=new h(F(q,$,X,Z),z);return Q.isGeneratorFunction($)?W:W.next().then(function(A){return A.done?A.value:W.next()})};function c(q,$,X){var Z=K;return function(W,A){if(Z===v)throw Error("Generator is already running");if(Z===E){if(W==="throw")throw A;return a()}X.method=W,X.arg=A;while(!0){var J=X.delegate;if(J){var G=i(J,X);if(G){if(G===N)continue;return G}}if(X.method==="next")X.sent=X._sent=X.arg;else if(X.method==="throw"){if(Z===K)throw Z=E,X.arg;X.dispatchException(X.arg)}else if(X.method==="return")X.abrupt("return",X.arg);Z=v;var O=H(q,$,X);if(O.type==="normal"){if(Z=X.done?E:k,O.arg===N)continue;return{value:O.arg,done:X.done}}else if(O.type==="throw")Z=E,X.method="throw",X.arg=O.arg}}}function i(q,$){var X=$.method,Z=q.iterator[X];if(Z===w){if($.delegate=null,X==="throw"&&q.iterator.return){if($.method="return",$.arg=w,i(q,$),$.method==="throw")return N}if(X!=="return")$.method="throw",$.arg=TypeError("The iterator does not provide a '"+X+"' method");return N}var z=H(Z,q.iterator,$.arg);if(z.type==="throw")return $.method="throw",$.arg=z.arg,$.delegate=null,N;var W=z.arg;if(!W)return $.method="throw",$.arg=TypeError("iterator result is not an object"),$.delegate=null,N;if(W.done){if($[q.resultName]=W.value,$.next=q.nextLoc,$.method!=="return")$.method="next",$.arg=w}else return W;return $.delegate=null,N}p(P),T(P,C,"Generator"),T(P,_,function(){return this}),T(P,"toString",function(){return"[object Generator]"});function t(q){var $={tryLoc:q[0]};if(1 in q)$.catchLoc=q[1];if(2 in q)$.finallyLoc=q[2],$.afterLoc=q[3];this.tryEntries.push($)}function m(q){var $=q.completion||{};$.type="normal",delete $.arg,q.completion=$}function d(q){this.tryEntries=[{tryLoc:"root"}],q.forEach(t,this),this.reset(!0)}Q.keys=function(q){var $=Object(q),X=[];for(var Z in $)X.push(Z);return X.reverse(),function z(){while(X.length){var W=X.pop();if(W in $)return z.value=W,z.done=!1,z}return z.done=!0,z}};function s(q){if(q){var $=q[_];if($)return $.call(q);if(typeof q.next==="function")return q;if(!isNaN(q.length)){var X=-1,Z=function z(){while(++X<q.length)if(Y.call(q,X))return z.value=q[X],z.done=!1,z;return z.value=w,z.done=!0,z};return Z.next=Z}}return{next:a}}Q.values=s;function a(){return{value:w,done:!0}}return d.prototype={constructor:d,reset:function(q){if(this.prev=0,this.next=0,this.sent=this._sent=w,this.done=!1,this.delegate=null,this.method="next",this.arg=w,this.tryEntries.forEach(m),!q){for(var $ in this)if($.charAt(0)==="t"&&Y.call(this,$)&&!isNaN(+$.slice(1)))this[$]=w}},stop:function(){this.done=!0;var q=this.tryEntries[0],$=q.completion;if($.type==="throw")throw $.arg;return this.rval},dispatchException:function(q){if(this.done)throw q;var $=this;function X(G,O){if(W.type="throw",W.arg=q,$.next=G,O)$.method="next",$.arg=w;return!!O}for(var Z=this.tryEntries.length-1;Z>=0;--Z){var z=this.tryEntries[Z],W=z.completion;if(z.tryLoc==="root")return X("end");if(z.tryLoc<=this.prev){var A=Y.call(z,"catchLoc"),J=Y.call(z,"finallyLoc");if(A&&J){if(this.prev<z.catchLoc)return X(z.catchLoc,!0);else if(this.prev<z.finallyLoc)return X(z.finallyLoc)}else if(A){if(this.prev<z.catchLoc)return X(z.catchLoc,!0)}else if(J){if(this.prev<z.finallyLoc)return X(z.finallyLoc)}else throw Error("try statement without catch or finally")}}},abrupt:function(q,$){for(var X=this.tryEntries.length-1;X>=0;--X){var Z=this.tryEntries[X];if(Z.tryLoc<=this.prev&&Y.call(Z,"finallyLoc")&&this.prev<Z.finallyLoc){var z=Z;break}}if(z&&(q==="break"||q==="continue")&&z.tryLoc<=$&&$<=z.finallyLoc)z=null;var W=z?z.completion:{};if(W.type=q,W.arg=$,z)return this.method="next",this.next=z.finallyLoc,N;return this.complete(W)},complete:function(q,$){if(q.type==="throw")throw q.arg;if(q.type==="break"||q.type==="continue")this.next=q.arg;else if(q.type==="return")this.rval=this.arg=q.arg,this.method="return",this.next="end";else if(q.type==="normal"&&$)this.next=$;return N},finish:function(q){for(var $=this.tryEntries.length-1;$>=0;--$){var X=this.tryEntries[$];if(X.finallyLoc===q)return this.complete(X.completion,X.afterLoc),m(X),N}},catch:function(q){for(var $=this.tryEntries.length-1;$>=0;--$){var X=this.tryEntries[$];if(X.tryLoc===q){var Z=X.completion;if(Z.type==="throw"){var z=Z.arg;m(X)}return z}}throw Error("illegal catch attempt")},delegateYield:function(q,$,X){if(this.delegate={iterator:s(q),resultName:$,nextLoc:X},this.method==="next")this.arg=w;return N}},Q}(typeof q0==="object"?l2:{});try{regeneratorRuntime=$0}catch(Q){if(typeof globalThis==="object")globalThis.regeneratorRuntime=$0;else Function("r","regeneratorRuntime = r")($0)}});var n=U((y2,w0)=>{w0.exports=(Q,V)=>`${Q}-${V}-${Math.random().toString(16).slice(3,8)}`});var Q0=U((g2,U0)=>{var Y2=n(),H0=0;U0.exports=({id:Q,action:V,payload:Y={}})=>{let D=Q;if(typeof D>"u")D=Y2("Job",H0),H0+=1;return{id:D,action:V,payload:Y}}});var o=U((y)=>{var X0=!1;y.logging=X0;y.setLogging=(Q)=>{X0=Q};y.log=(...Q)=>X0?console.log.apply(y,Q):null});var _0=U((J0,N0)=>{var D2=Q0(),{log:r}=o(),W2=n(),B0=0;N0.exports=()=>{let Q=W2("Scheduler",B0),V={},Y={},D=[];B0+=1;let w=()=>D.length,M=()=>Object.keys(V).length,_=()=>{if(D.length!==0){let H=Object.keys(V);for(let K=0;K<H.length;K+=1)if(typeof Y[H[K]]>"u"){D[0](V[H[K]]);break}}},B=(H,K)=>new Promise((k,v)=>{let E=D2({action:H,payload:K});D.push(async(N)=>{D.shift(),Y[N.id]=E;try{k(await N[H].apply(J0,[...K,E.id]))}catch(j){v(j)}finally{delete Y[N.id],_()}}),r(`[${Q}]: Add ${E.id} to JobQueue`),r(`[${Q}]: JobQueue length=${D.length}`),_()});return{addWorker:(H)=>{return V[H.id]=H,r(`[${Q}]: Add ${H.id}`),r(`[${Q}]: Number of workers=${M()}`),_(),H.id},addJob:async(H,...K)=>{if(M()===0)throw Error(`[${Q}]: You need to have at least one worker before adding jobs`);return B(H,K)},terminate:async()=>{Object.keys(V).forEach(async(H)=>{await V[H].terminate()}),D=[]},getQueueLen:w,getNumWorkers:M}}});var f0=U((i2,K0)=>{K0.exports=(Q)=>{let V={};if(typeof WorkerGlobalScope<"u")V.type="webworker";else if(typeof document==="object")V.type="browser";else if(typeof process==="object")V.type="node";if(typeof Q>"u")return V;return V[Q]}});var T0=U((a2,A0)=>{var w2=f0()("type")==="browser",H2=w2?(Q)=>new URL(Q,window.location.href).href:(Q)=>Q;A0.exports=(Q)=>{let V={...Q};return["corePath","workerPath","langPath"].forEach((Y)=>{if(Q[Y])V[Y]=H2(V[Y])}),V}});var z0=U((n2,G0)=>{G0.exports={TESSERACT_ONLY:0,LSTM_ONLY:1,TESSERACT_LSTM_COMBINED:2,DEFAULT:3}});var O0=U((o2,U2)=>{U2.exports={name:"tesseract.js",version:"7.0.0",description:"Pure Javascript Multilingual OCR",main:"src/index.js",type:"commonjs",types:"src/index.d.ts",unpkg:"dist/tesseract.min.js",jsdelivr:"dist/tesseract.min.js",scripts:{start:"node scripts/server.js",build:"rimraf dist && webpack --config scripts/webpack.config.prod.js && rollup -c scripts/rollup.esm.mjs","profile:tesseract":"webpack-bundle-analyzer dist/tesseract-stats.json","profile:worker":"webpack-bundle-analyzer dist/worker-stats.json",prepublishOnly:"npm run build",wait:"rimraf dist && wait-on http://localhost:3000/dist/tesseract.min.js",test:"npm-run-all -p -r start test:all","test:all":"npm-run-all wait test:browser test:node:all","test:browser":"karma start karma.conf.js","test:node":"nyc mocha --exit --bail --require ./scripts/test-helper.mjs","test:node:all":"npm run test:node -- ./tests/*.test.mjs",lint:"eslint src","lint:fix":"eslint --fix src",postinstall:"opencollective-postinstall || true"},browser:{"./src/worker/node/index.js":"./src/worker/browser/index.js"},author:"",contributors:["jeromewu"],license:"Apache-2.0",devDependencies:{"@babel/core":"^7.21.4","@babel/eslint-parser":"^7.21.3","@babel/preset-env":"^7.21.4","@rollup/plugin-commonjs":"^24.1.0",acorn:"^8.8.2","babel-loader":"^9.1.2",buffer:"^6.0.3",cors:"^2.8.5",eslint:"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-plugin-import":"^2.27.5","expect.js":"^0.3.1",express:"^4.18.2",mocha:"^10.2.0","npm-run-all":"^4.1.5",karma:"^6.4.2","karma-chrome-launcher":"^3.2.0","karma-firefox-launcher":"^2.1.2","karma-mocha":"^2.0.1","karma-webpack":"^5.0.0",nyc:"^15.1.0",rimraf:"^5.0.0",rollup:"^3.20.7","wait-on":"^7.0.1",webpack:"^5.79.0","webpack-bundle-analyzer":"^4.8.0","webpack-cli":"^5.0.1","webpack-dev-middleware":"^6.0.2","rollup-plugin-sourcemaps":"^0.6.3"},dependencies:{"bmp-js":"^0.1.0","idb-keyval":"^6.2.0","is-url":"^1.2.4","node-fetch":"^2.6.9","opencollective-postinstall":"^2.0.3","regenerator-runtime":"^0.13.3","tesseract.js-core":"^7.0.0","wasm-feature-detect":"^1.8.0",zlibjs:"^0.3.1"},overrides:{"@rollup/pluginutils":"^5.0.2"},repository:{type:"git",url:"https://github.com/naptha/tesseract.js.git"},bugs:{url:"https://github.com/naptha/tesseract.js/issues"},homepage:"https://github.com/naptha/tesseract.js",collective:{type:"opencollective",url:"https://opencollective.com/tesseractjs"}}});var M0=U((r2,j0)=>{j0.exports={workerBlobURL:!0,logger:()=>{}}});var E0=U((t2,C0)=>{var B2=O0().version,J2=M0();C0.exports={...J2,workerPath:`https://cdn.jsdelivr.net/npm/tesseract.js@v${B2}/dist/worker.min.js`}});var L0=U((e2,R0)=>{R0.exports=({workerPath:Q,workerBlobURL:V})=>{let Y;if(Blob&&URL&&V){let D=new Blob([`importScripts("${Q}");`],{type:"application/javascript"});Y=new Worker(URL.createObjectURL(D))}else Y=new Worker(Q);return Y}});var F0=U(($1,P0)=>{P0.exports=(Q)=>{Q.terminate()}});var v0=U((q1,k0)=>{k0.exports=(Q,V)=>{Q.onmessage=({data:Y})=>{V(Y)}}});var S0=U((Q1,h0)=>{h0.exports=async(Q,V)=>{Q.postMessage(V)}});var u0=U((X1,b0)=>{var V0=(Q)=>new Promise((V,Y)=>{let D=new FileReader;D.onload=()=>{V(D.result)},D.onerror=({target:{error:{code:w}}})=>{Y(Error(`File could not be read! Code=${w}`))},D.readAsArrayBuffer(Q)}),Z0=async(Q)=>{let V=Q;if(typeof Q>"u")return"undefined";if(typeof Q==="string")if(/data:image\/([a-zA-Z]*);base64,([^"]*)/.test(Q))V=atob(Q.split(",")[1]).split("").map((Y)=>Y.charCodeAt(0));else V=await(await fetch(Q)).arrayBuffer();else if(typeof HTMLElement<"u"&&Q instanceof HTMLElement){if(Q.tagName==="IMG")V=await Z0(Q.src);if(Q.tagName==="VIDEO")V=await Z0(Q.poster);if(Q.tagName==="CANVAS")await new Promise((Y)=>{Q.toBlob(async(D)=>{V=await V0(D),Y()})})}else if(typeof OffscreenCanvas<"u"&&Q instanceof OffscreenCanvas){let Y=await Q.convertToBlob();V=await V0(Y)}else if(Q instanceof File||Q instanceof Blob)V=await V0(Q);return new Uint8Array(V)};b0.exports=Z0});var x0=U((z1,I0)=>{var N2=E0(),_2=L0(),K2=F0(),f2=v0(),A2=S0(),T2=u0();I0.exports={defaultOptions:N2,spawnWorker:_2,terminateWorker:K2,onMessage:f2,send:A2,loadImage:T2}});var Y0=U((V1,s0)=>{var G2=T0(),R=Q0(),{log:c0}=o(),O2=n(),b=z0(),{defaultOptions:j2,spawnWorker:M2,terminateWorker:C2,onMessage:E2,loadImage:m0,send:R2}=x0(),d0=0;s0.exports=async(Q="eng",V=b.LSTM_ONLY,Y={},D={})=>{let w=O2("Worker",d0),{logger:M,errorHandler:_,...B}=G2({...j2,...Y}),C={},T=typeof Q==="string"?Q.split("+"):Q,F=V,H=D,K=[b.DEFAULT,b.LSTM_ONLY].includes(V)&&!B.legacyCore,k,v,E=new Promise((q,$)=>{v=q,k=$}),N=(q)=>{k(q.message)},j=M2(B);j.onerror=N,d0+=1;let f=({id:q,action:$,payload:X})=>new Promise((Z,z)=>{c0(`[${w}]: Start ${q}, action=${$}`);let W=`${$}-${q}`;C[W]={resolve:Z,reject:z},R2(j,{workerId:w,jobId:q,action:$,payload:X})}),L=()=>console.warn("`load` is depreciated and should be removed from code (workers now come pre-loaded)"),I=(q)=>f(R({id:q,action:"load",payload:{options:{lstmOnly:K,corePath:B.corePath,logging:B.logging}}})),x=(q,$,X)=>f(R({id:X,action:"FS",payload:{method:"writeFile",args:[q,$]}})),u=(q,$)=>f(R({id:$,action:"FS",payload:{method:"readFile",args:[q,{encoding:"utf8"}]}})),P=(q,$)=>f(R({id:$,action:"FS",payload:{method:"unlink",args:[q]}})),p=(q,$,X)=>f(R({id:X,action:"FS",payload:{method:q,args:$}})),h=(q,$)=>f(R({id:$,action:"loadLanguage",payload:{langs:q,options:{langPath:B.langPath,dataPath:B.dataPath,cachePath:B.cachePath,cacheMethod:B.cacheMethod,gzip:B.gzip,lstmOnly:[b.DEFAULT,b.LSTM_ONLY].includes(F)&&!B.legacyLang}}})),c=(q,$,X,Z)=>f(R({id:Z,action:"initialize",payload:{langs:q,oem:$,config:X}})),i=(q="eng",$,X,Z)=>{if(K&&[b.TESSERACT_ONLY,b.TESSERACT_LSTM_COMBINED].includes($))throw Error("Legacy model requested but code missing.");let z=$||F;F=z;let W=X||H;H=W;let J=(typeof q==="string"?q.split("+"):q).filter((G)=>!T.includes(G));if(T.push(...J),J.length>0)return h(J,Z).then(()=>c(q,z,W,Z));return c(q,z,W,Z)},t=(q={},$)=>f(R({id:$,action:"setParameters",payload:{params:q}})),m=async(q,$={},X={text:!0},Z)=>f(R({id:Z,action:"recognize",payload:{image:await m0(q),options:$,output:X}})),d=async(q,$)=>{if(K)throw Error("`worker.detect` requires Legacy model, which was not loaded.");return f(R({id:$,action:"detect",payload:{image:await m0(q)}}))},s=async()=>{if(j!==null)C2(j),j=null;return Promise.resolve()};E2(j,({workerId:q,jobId:$,status:X,action:Z,data:z})=>{let W=`${Z}-${$}`;if(X==="resolve")c0(`[${q}]: Complete ${$}`),C[W].resolve({jobId:$,data:z}),delete C[W];else if(X==="reject"){if(C[W].reject(z),delete C[W],Z==="load")k(z);if(_)_(z);else throw Error(z)}else if(X==="progress")M({...z,userJobId:$})});let a={id:w,worker:j,load:L,writeText:x,readText:u,removeFile:P,FS:p,reinitialize:i,setParameters:t,recognize:m,detect:d,terminate:s};return I().then(()=>h(Q)).then(()=>c(Q,V,D)).then(()=>v(a)).catch(()=>{}),E}});var g0=U((Z1,y0)=>{var l0=Y0(),L2=async(Q,V,Y)=>{let D=await l0(V,1,Y);return D.recognize(Q).finally(async()=>{await D.terminate()})},P2=async(Q,V)=>{let Y=await l0("osd",0,V);return Y.detect(Q).finally(async()=>{await Y.terminate()})};y0.exports={recognize:L2,detect:P2}});var i0=U((Y1,p0)=>{p0.exports={AFR:"afr",AMH:"amh",ARA:"ara",ASM:"asm",AZE:"aze",AZE_CYRL:"aze_cyrl",BEL:"bel",BEN:"ben",BOD:"bod",BOS:"bos",BUL:"bul",CAT:"cat",CEB:"ceb",CES:"ces",CHI_SIM:"chi_sim",CHI_TRA:"chi_tra",CHR:"chr",CYM:"cym",DAN:"dan",DEU:"deu",DZO:"dzo",ELL:"ell",ENG:"eng",ENM:"enm",EPO:"epo",EST:"est",EUS:"eus",FAS:"fas",FIN:"fin",FRA:"fra",FRK:"frk",FRM:"frm",GLE:"gle",GLG:"glg",GRC:"grc",GUJ:"guj",HAT:"hat",HEB:"heb",HIN:"hin",HRV:"hrv",HUN:"hun",IKU:"iku",IND:"ind",ISL:"isl",ITA:"ita",ITA_OLD:"ita_old",JAV:"jav",JPN:"jpn",KAN:"kan",KAT:"kat",KAT_OLD:"kat_old",KAZ:"kaz",KHM:"khm",KIR:"kir",KOR:"kor",KUR:"kur",LAO:"lao",LAT:"lat",LAV:"lav",LIT:"lit",MAL:"mal",MAR:"mar",MKD:"mkd",MLT:"mlt",MSA:"msa",MYA:"mya",NEP:"nep",NLD:"nld",NOR:"nor",ORI:"ori",PAN:"pan",POL:"pol",POR:"por",PUS:"pus",RON:"ron",RUS:"rus",SAN:"san",SIN:"sin",SLK:"slk",SLV:"slv",SPA:"spa",SPA_OLD:"spa_old",SQI:"sqi",SRP:"srp",SRP_LATN:"srp_latn",SWA:"swa",SWE:"swe",SYR:"syr",TAM:"tam",TEL:"tel",TGK:"tgk",TGL:"tgl",THA:"tha",TIR:"tir",TUR:"tur",UIG:"uig",UKR:"ukr",URD:"urd",UZB:"uzb",UZB_CYRL:"uzb_cyrl",VIE:"vie",YID:"yid"}});var n0=U((D1,a0)=>{a0.exports={OSD_ONLY:"0",AUTO_OSD:"1",AUTO_ONLY:"2",AUTO:"3",SINGLE_COLUMN:"4",SINGLE_BLOCK_VERT_TEXT:"5",SINGLE_BLOCK:"6",SINGLE_LINE:"7",SINGLE_WORD:"8",CIRCLE_WORD:"9",SINGLE_CHAR:"10",SPARSE_TEXT:"11",SPARSE_TEXT_OSD:"12",RAW_LINE:"13"}});var r0=U((W1,o0)=>{W0();var F2=_0(),k2=Y0(),v2=g0(),h2=i0(),S2=z0(),b2=n0(),{setLogging:u2}=o();o0.exports={languages:h2,OEM:S2,PSM:b2,createScheduler:F2,createWorker:k2,setLogging:u2,...v2}});var t0=Z2(r0(),1),I2="eng",x2="https://tessdata.projectnaptha.com/4.0.0_fast",g=null;function c2(Q){return Q&&Q.message?Q.message:String(Q||"OCR failed")}async function m2(Q={}){if(g)return g;let V=Q.language||Q.lang||I2;return g=t0.createWorker(V,1,{langPath:Q.langPath||x2,logger:typeof Q.logger==="function"?Q.logger:()=>{return}}).catch((Y)=>{throw g=null,Y}),g}async function d2(Q,V={}){let Y=await m2(V);try{let D=await Y.recognize(Q),w=D&&D.data?D.data:{};return{text:String(w.text||"").trim(),confidence:typeof w.confidence==="number"&&Number.isFinite(w.confidence)?w.confidence:null}}catch(D){throw Error(c2(D))}}window.FormalAiOcr={VERSION:"7.0.0",DATA_WARNING:"Downloads about 6 MB on first use: OCR wrapper, worker, WebAssembly core, and English traineddata.",recognizeImage:d2};})();