qurantathbit 1.0.26 → 1.0.27

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/index.html CHANGED
@@ -94,7 +94,9 @@ body {
94
94
  <link rel="apple-touch-icon" href="index.apple-touch-icon.png"/>
95
95
  <link rel="manifest" href="index.manifest.json">
96
96
  <style>body{background-color:#faf5ed}#status::before{content:'QuranTathbit';display:block;font:700 30px/1.25 system-ui,sans-serif;color:#14513d;margin-bottom:14px}#status::after{content:'A calm app for memorising the Qur’an';display:block;font:400 13px/1.5 system-ui,sans-serif;color:#5c6b62;margin-top:18px}#status-progress{-webkit-appearance:none;appearance:none;border:0;height:10px;width:min(60vw,420px);border-radius:99px;overflow:hidden;background:#e6dfce}#status-progress::-webkit-progress-bar{background:#e6dfce;border-radius:99px}#status-progress::-webkit-progress-value{background:#1e6b52;border-radius:99px;transition:width .25s ease-out}#status-progress::-moz-progress-bar{background:#1e6b52;border-radius:99px}</style><script>(function(){if(typeof window.fetch!=='function'||typeof DecompressionStream==='undefined'){return}var nativeFetch=window.fetch.bind(window);function wasmUrl(u){var i=u.indexOf('index.wasm');if(i===-1){return false}var before=(i===0)?'':u.charAt(i-1);var after=u.charAt(i+10);return(before===''||before==='/')&&(after===''||after==='?'||after==='#')}window.fetch=function(input,init){var url=(typeof input==='string')?input:((input&&typeof input.url==='string')?input.url:'');if(!wasmUrl(url)){return nativeFetch(input,init)}return nativeFetch(url.replace('index.wasm','index.wasm.gz'),{credentials:'same-origin'}).then(function(resp){if(!resp.ok){throw new Error('gz missing')}var enc=(resp.headers.get('content-encoding')||'').toLowerCase();if(enc.indexOf('gzip')!==-1){return resp}return new Response(resp.body.pipeThrough(new DecompressionStream('gzip')),{status:200,headers:{'content-type':'application/wasm'}})}).catch(function(){return nativeFetch(input,init)})}})();</script><script>/*qt-browser-keys*/(function(){'use strict';function r(e){var k=e.key;if(!k){return false}var key=(k.length===1)?k.toLowerCase():k;var c=e.ctrlKey||e.metaKey;if(key==='F5'||key==='F6'||key==='F11'||key==='F12'){return true}if(c&&!e.altKey&&key==='v'){return true}if(c&&!e.altKey&&(key==='r'||key==='u'||key==='l'||key==='f'||key==='g'||key==='d'||key==='p'||key==='s'||key==='t'||key==='n'||key==='w')){return true}if(c&&e.shiftKey&&(key==='i'||key==='j'||key==='c'||key==='k')){return true}if(c&&(key==='+'||key==='='||key==='-'||key==='0')){return true}if(e.altKey&&(key==='d'||key==='ArrowLeft'||key==='ArrowRight')){return true}return false}function g(e){if(r(e)){e.stopImmediatePropagation();e.stopPropagation()}}window.addEventListener('keydown',g,true);window.addEventListener('keyup',g,true)})();</script><meta name='apple-mobile-web-app-capable' content='yes'><meta name='mobile-web-app-capable' content='yes'><meta name='apple-mobile-web-app-title' content='QuranTathbit'><script>/*qt-update-watch*/(function(){'use strict';if(!('serviceWorker' in navigator)){return}var tries=0;var reloaded=false;function ask(){navigator.serviceWorker.getRegistration().then(function(reg){if(reg&&reg.waiting){reg.waiting.postMessage('claim')}}).catch(function(){})}function begin(){navigator.serviceWorker.getRegistration().then(function(reg){if(!reg){if(tries<15){tries+=1;setTimeout(begin,1000)}return}var look=function(){reg.update().catch(function(){})};setInterval(look,900000);document.addEventListener('visibilitychange',function(){if(document.visibilityState==='visible'){look()}});ask()}).catch(function(){})}begin();var held=!!(navigator.serviceWorker.controller);navigator.serviceWorker.addEventListener('controllerchange',function(){if(!held||reloaded){return}reloaded=true;setTimeout(function(){try{location.reload()}catch(e){}},120)})})();</script><script>/*qt-paste-bridge*/(function(){'use strict';window.__qtPasteInstall=window.__qtPasteInstall||{install:function(bridge){window.__qtPasteBridge=bridge}};window.addEventListener('paste',function(e){var t=e.target;if(t&&(t.tagName==='INPUT'||t.tagName==='TEXTAREA')){return}if(!window.__qtPasteBridge){return}var d=e.clipboardData||window.clipboardData;if(!d){return}var text=d.getData('text/plain');if(text){try{window.__qtPasteBridge(text)}catch(err){}}},false)})();<script>/*qt-zip-bridge*/(function(){'use strict';window.__qtZipInstall=window.__qtZipInstall||{install:function(bridge){window.__qtZipBridge=bridge}};window.__qtZipPick=function(){if(!window.__qtZipBridge){return}var i=document.createElement('input');i.type='file';i.accept='.zip,application/zip';i.onchange=function(){var f=i.files&&i.files[0];if(!f){return}var r=new FileReader();r.onload=function(){var s=String(r.result);var c=s.indexOf(',');if(c===-1){return}try{window.__qtZipBridge('import:'+f.name+':'+s.slice(c+1))}catch(err){}};r.readAsDataURL(f)};i.click()}})();<script>/*qt-webgl2-guard*/(function(){'use strict';var ok=true;try{if(typeof WebGL2RenderingContext==='undefined'){ok=false}else{var t=document.createElement('canvas');if(!t.getContext('webgl2')){ok=false}}}catch(e){ok=false}if(ok){return}window.__qtWebGL2Missing=true;if(!window.fetch){window.fetch=function(){return Promise.reject(new Error('fetch unavailable'))}}else{var nf=window.fetch.bind(window);window.fetch=function(input,init){var url=(typeof input==='string')?input:((input&&typeof input.url==='string')?input.url:'');if(url.indexOf('index.wasm')!==-1){return Promise.reject(new Error('WebGL2 unavailable on this device'))}return nf(input,init)}};function say(){var n=document.getElementById('status-notice');var p=document.getElementById('status-progress');if(p){p.style.display='none'}if(n){n.textContent='This browser has no WebGL2, which the web app needs. The Android app runs on this device instead. | این مرورگر WebGL2 ندارد؛ برنامهٔ اندروید روی همین دستگاه اجرا میشود.';n.style.display='block'}}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',say)}else{say()}})();</script><script>/*qt-boot-watch*/(function(){'use strict';var said=false;var told=false;function lines(en,fa,why){if(why){why=String(why).split('|').join(' ').split('
97
- ').join(' ')}return (why?(en+': '+why+'. '):en)+('| '+(why?(fa+': '+why+'. '):fa))}function place(){var n=document.getElementById('status-notice');var s=document.getElementById('status');if(!n||!s){return null}if(s.style.visibility!=='visible'){s.style.visibility='visible'}return n}function say(en,fa,why){if(said||window.__qtWebGL2Missing){return}said=true;var n=place();if(!n){return}var p=document.getElementById('status-progress');if(p){p.style.display='none'}while(n.lastChild){n.removeChild(n.lastChild)}var t=lines(en,fa,why).split('|');for(var i=0;i<t.length;i++){n.appendChild(document.createTextNode(t[i]));n.appendChild(document.createElement('br'))}n.style.display='block'}function note(){if(told||said||window.__qtWebGL2Missing){return}told=true;var n=place();if(!n){return}while(n.lastChild){n.removeChild(n.lastChild)}var t=lines('Still loading after a long wait. The connection may be slow, or this browser may be too old for the web app. Reload to try again; the Android app always runs on this device.','بارگیری خیلی طول کشیده است. ممکن است اینترنت کند باشد یا این مرورگر برای نسخهٔ وب قدیمی باشد. بازکردن دوباره را امتحان کنید؛ برنامهٔ اندروید همیشه روی همین دستگاه اجرا میشود.','').split('|');for(var i=0;i<t.length;i++){n.appendChild(document.createTextNode(t[i]));n.appendChild(document.createElement('br'))}n.style.display='block'}window.addEventListener('error',function(e){var why=(e&&e.message)?e.message:'';say('The web app could not start in this browser','برنامهٔ وب در این مرورگر باز نشد',why)},false);window.addEventListener('unhandledrejection',function(e){var r=(e&&e.reason)?e.reason:'';var why=(r&&r.message)?r.message:r;say('The web app could not finish loading','برنامهٔ وب بارگیری را تمام نکرد',why)},false);var last=null;var quiet=0;setInterval(function(){if(told||said||window.__qtWebGL2Missing){return}var bar=document.getElementById('status-progress');var s=document.getElementById('status');if(!bar||!s){return}if(s.style.visibility!=='visible'){quiet=0;return}var v=bar.hasAttribute('value')?Number(bar.getAttribute('value')):-1;if(v!==last){last=v;quiet=0;return}quiet+=5;if(quiet>=45){note()}},5000)})();</script>
97
+ ').join(' ')}return (why?(en+': '+why+'. '):en)+('| '+(why?(fa+': '+why+'. '):fa))}function place(){var n=document.getElementById('status-notice');var s=document.getElementById('status');if(!n||!s){return null}if(s.style.visibility!=='visible'){s.style.visibility='visible'}return n}function say(en,fa,why){if(said||window.__qtWebGL2Missing){return}said=true;var n=place();if(!n){return}var p=document.getElementById('status-progress');if(p){p.style.display='none'}while(n.lastChild){n.removeChild(n.lastChild)}var t=lines(en,fa,why).split('|');for(var i=0;i<t.length;i++){n.appendChild(document.createTextNode(t[i]));n.appendChild(document.createElement('br'))}n.style.display='block'}function note(){if(told||said||window.__qtWebGL2Missing){return}told=true;var n=place();if(!n){return}while(n.lastChild){n.removeChild(n.lastChild)}var t=lines('Still loading after a long wait. The connection may be slow, or this browser may be too old for the web app. Reload to try again; the Android app always runs on this device.','بارگیری خیلی طول کشیده است. ممکن است اینترنت کند باشد یا این مرورگر برای نسخهٔ وب قدیمی باشد. بازکردن دوباره را امتحان کنید؛ برنامهٔ اندروید همیشه روی همین دستگاه اجرا میشود.','').split('|');for(var i=0;i<t.length;i++){n.appendChild(document.createTextNode(t[i]));n.appendChild(document.createElement('br'))}n.style.display='block'}window.addEventListener('error',function(e){var why=(e&&e.message)?e.message:'';say('The web app could not start in this browser','برنامهٔ وب در این مرورگر باز نشد',why)},false);window.addEventListener('unhandledrejection',function(e){var r=(e&&e.reason)?e.reason:'';var why=(r&&r.message)?r.message:r;say('The web app could not finish loading','برنامهٔ وب بارگیری را تمام نکرد',why)},false);var last=null;var quiet=0;setInterval(function(){if(told||said||window.__qtWebGL2Missing){return}var bar=document.getElementById('status-progress');var s=document.getElementById('status');if(!bar||!s){return}if(s.style.visibility!=='visible'){quiet=0;return}var v=bar.hasAttribute('value')?Number(bar.getAttribute('value')):-1;if(v!==last){last=v;quiet=0;return}quiet+=5;if(quiet>=45){note()}},5000)})();</script><script>/*qt-debug-log*/(function(){'use strict';var t0=Date.now();var log=[];window.__qtDebugLog=log;function ts(){return ((Date.now()-t0)/1000).toFixed(1);}function L(m){log.push('['+ts()+'s] '+String(m));if(log.length>500){log.shift();}}L('head parsed; page '+location.href);L('UA '+navigator.userAgent);L('lang '+(navigator.language||'?')+'; online '+(navigator.onLine?'yes':'no'));try{L('screen '+screen.width+'x'+screen.height+' dpr '+(window.devicePixelRatio||1));}catch(e){}L('crossOriginIsolated '+(window.crossOriginIsolated?'yes':(typeof window.crossOriginIsolated==='undefined'?'?':'no')));try{var c=document.createElement('canvas');var g2=c.getContext('webgl2');L('webgl2 '+(g2?'yes':'no'));var g1=c.getContext('webgl')||c.getContext('experimental-webgl');L('webgl1 '+(g1?'yes':'no'));if(g1){var ext=g1.getExtension('WEBGL_debug_renderer_info');if(ext){L('gpu '+(g1.getParameter(ext.UNMASKED_RENDERER_WEBGL)||'?'));}}}catch(e){L('webgl test failed');}try{L('wasm '+(typeof WebAssembly==='object'?'yes':'no'));L('wasm-simd '+(WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,12,0,11]))?'yes':'no'));}catch(e){L('wasm test failed');}L('DecompressionStream '+(typeof DecompressionStream==='function'?'yes':'no'));try{L('sw '+(navigator.serviceWorker?((navigator.serviceWorker.controller)?'controlled':'present'):'none'));}catch(e){L('sw ?');}window.addEventListener('error',function(e){L('ERROR '+((e&&e.message)?e.message:'?')+((e&&e.filename)?(' @'+e.filename+':'+e.lineno):''));},false);window.addEventListener('unhandledrejection',function(e){var r=(e&&e.reason)?e.reason:'';L('REJECT '+((r&&r.message)?r.message:r));},false);var ce=console.error;var cw=console.warn;if(typeof ce==='function'){console.error=function(){try{L('console.error '+Array.prototype.join.call(arguments,' '));}catch(x){}return ce.apply(console,arguments);};}if(typeof cw==='function'){console.warn=function(){try{L('console.warn '+Array.prototype.join.call(arguments,' '));}catch(x){}return cw.apply(console,arguments);};}setInterval(function(){try{var s=document.getElementById('status');if(!s){return;}var p=document.getElementById('status-progress');L('loading: progress '+((p&&p.hasAttribute&&p.hasAttribute('value'))?p.getAttribute('value'):'?')+'; status '+(s.style&&s.style.visibility?s.style.visibility:'?'));}catch(e){}},5000);var taps=0;var last=0;var shown=false;function over(){try{var s=document.getElementById('status');if(!s){return true;}if(s.style&&s.style.visibility==='hidden'){return true;}return !document.body.contains(s);}catch(e){return true;}}document.addEventListener('click',function(){if(shown||over()){return;}var now=Date.now();if(now-last>12000){taps=0;}last=now;taps+=1;if(taps>=5){show();}},false);function show(){shown=true;taps=0;var d=document.createElement('div');d.setAttribute('style','position:fixed;left:0;right:0;top:0;bottom:0;z-index:2147483647;background:#fff;color:#111;font:12px/1.45 monospace;overflow:auto;padding:10px;margin:0;');var bar=document.createElement('div');bar.setAttribute('style','position:sticky;top:0;background:#fff;border-bottom:1px solid #ccc;padding:6px 0 10px 0;');var bCopy=document.createElement('button');bCopy.textContent='Copy';bCopy.setAttribute('style','margin:0 8px 0 0;padding:7px 14px;font:700 13px system-ui,sans-serif;border:0;border-radius:8px;background:#14513d;color:#fff;');var bClose=document.createElement('button');bClose.textContent='Close';bClose.setAttribute('style','margin:0;padding:7px 14px;font:700 13px system-ui,sans-serif;border:0;border-radius:8px;background:#eee;color:#333;');var cap=document.createElement('div');cap.setAttribute('style','margin:8px 0 0 4px;font:700 12px/1.5 system-ui,sans-serif;color:#14513d;');cap.textContent='Debug log. Tap Copy and send it to the developer. | گزارش خطا: کپی کنید و برای سازنده بفرستید.';var pre=document.createElement('pre');pre.setAttribute('style','white-space:pre-wrap;word-break:break-all;margin:0;padding:10px 2px;');var text='QuranTathbit '+location.href+'
98
+ '+log.join('
99
+ ');pre.textContent=text;bCopy.onclick=function(){var done=function(ok){bCopy.textContent=ok?'Copied':'Copy failed - select the text';};var fallback=function(){try{var ta=document.createElement('textarea');ta.value=text;ta.setAttribute('style','position:fixed;left:-9999px;top:0;');document.body.appendChild(ta);ta.focus();ta.select();var ok=document.execCommand('copy');document.body.removeChild(ta);done(ok);}catch(x2){done(false);}};try{if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(text).then(function(){done(true);},fallback);return;}}catch(x3){}fallback();};bClose.onclick=function(){shown=false;if(d.parentNode){d.parentNode.removeChild(d);}};bar.appendChild(bCopy);bar.appendChild(bClose);bar.appendChild(cap);d.appendChild(bar);d.appendChild(pre);(document.body||document.documentElement).appendChild(d);}window.__qtDebugShow=show;})();</script>
98
100
  </head>
99
101
  <body>
100
102
  <canvas id="canvas">
@@ -113,7 +115,7 @@ body {
113
115
 
114
116
  <script src="index.js"></script>
115
117
  <script>
116
- const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"emscriptenPoolSize":8,"ensureCrossOriginIsolationHeaders":true,"executable":"index","experimentalVK":false,"fileSizes":{"index.pck":1450936,"index.wasm":39514754},"focusCanvas":true,"gdextensionLibs":[],"godotPoolSize":4,"serviceWorker":"index.service.worker.js"};
118
+ const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"emscriptenPoolSize":8,"ensureCrossOriginIsolationHeaders":true,"executable":"index","experimentalVK":false,"fileSizes":{"index.pck":1453208,"index.wasm":39514754},"focusCanvas":true,"gdextensionLibs":[],"godotPoolSize":4,"serviceWorker":"index.service.worker.js"};
117
119
  const GODOT_THREADS_ENABLED = false;
118
120
  const engine = new Engine(GODOT_CONFIG);
119
121
 
package/index.pck CHANGED
Binary file
@@ -4,7 +4,7 @@
4
4
  // Incrementing CACHE_VERSION will kick off the install event and force
5
5
  // previously cached resources to be updated from the network.
6
6
  /** @type {string} */
7
- const CACHE_VERSION = '1792266988|2702587';
7
+ const CACHE_VERSION = '1792270786|1985393';
8
8
  /** @type {string} */
9
9
  const CACHE_PREFIX = 'QuranTathbit-sw-cache-';
10
10
  const CACHE_NAME = CACHE_PREFIX + CACHE_VERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qurantathbit",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "description": "A quiet companion for keeping the Qur'an close — one deck, one card at a time, with your own GitHub as the cloud. Web build served from any static host or `npx qurantathbit`.",
5
5
  "license": "MIT",
6
6
  "repository": {