1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3274],{38303:function(t,n,e){e.d(n,{O:function(){return o}});var a=e(67119),r=e(40257);let o=a.Ry({NEXT_PUBLIC_APP_URL:a.Z_().url().optional(),NEXT_PUBLIC_CDN_DOMAIN:a.Z_().optional(),CLOUDFRONT_KEY_PAIR_ID:a.Z_().optional(),CLOUDFRONT_PRIVATE_KEY:a.Z_().optional(),NEXT_PUBLIC_QURAN_CDN_URL:a.Z_().url().optional(),NEXT_PUBLIC_ISLAM_SURAH_AUDIO_URL:a.Z_().url().optional(),NEXT_PUBLIC_HADITH_CDN_BASE:a.Z_().url().optional(),NEXT_PUBLIC_I18N_MESSAGES_URL:a.Z_().url().optional(),NEXT_PUBLIC_DEFAULT_RECITER_SLUG:a.Z_().optional(),NEXT_PUBLIC_DEFAULT_RECITER:a.Z_().optional(),NEXT_PUBLIC_TIMESTAMP_DATA_URL:a.Z_().url().optional(),NEXT_PUBLIC_ISLAM_WORD_AUDIO_URL:a.Z_().url().optional(),NEXT_PUBLIC_TRANSLATION_AUDIO_BASE:a.Z_().url().optional(),NEXT_PUBLIC_QURAN_DATA_BASE_URL:a.Z_().url().optional(),NEXT_PUBLIC_TAFSIR_PRIMARY_URL:a.Z_().url().optional(),NEXT_PUBLIC_TAFSIR_SECONDARY_URL:a.Z_().url().optional(),NEXT_PUBLIC_FONTS_CDN_URL:a.Z_().url().optional(),NEXT_PUBLIC_DEFAULT_RECITER_ID:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_USE_INDEXEDDB:a.Z_().optional().transform(t=>"true"===t),NEXT_PUBLIC_IMAGE_DOMAINS:a.Z_().optional(),NEXT_PUBLIC_DEFAULT_TRANSLATION_ID:a.Z_().transform(t=>parseInt(t,10)).optional(),NEXT_PUBLIC_VERSES_PER_PAGE:a.Z_().transform(t=>parseInt(t,10)).optional(),NEXT_PUBLIC_DEFAULT_WORD_FIELDS:a.Z_().optional(),NEXT_PUBLIC_DEFAULT_VERSE_FIELDS:a.Z_().optional(),NEXT_PUBLIC_WORD_DATA_QALAM_MADINAH_ID:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_QALAM_HANAFI_ID:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_QALAM_VERSION:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_UTHMAN_TAHA_ID:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_UTHMAN_TAHA_VERSION:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_ISEP_MISBAH_ID:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_ISEP_MISBAH_VERSION:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_UTHMANIC_DIGITAL_ID:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_WORD_DATA_UTHMANIC_DIGITAL_VERSION:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_SEARCH_RESULTS_LIMIT:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_HADITH_PAGE_SIZE:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_DUA_DATA_URL:a.Z_().optional(),DUA_SEARCH_API_URL:a.Z_().url().optional(),QURAN_SEARCH_API_URL:a.Z_().url().optional(),HADITH_SEARCH_API_URL:a.Z_().url().optional(),NEXT_PUBLIC_ANALYTICS_FLUSH_INTERVAL_MS:a.Z_().transform(t=>t?parseInt(t,10):void 0).optional(),NEXT_PUBLIC_AUTH_GOOGLE_ENABLED:a.Z_().optional().transform(t=>"false"!==t),NEXT_PUBLIC_AUTH_FACEBOOK_ENABLED:a.Z_().optional().transform(t=>"false"!==t),NEXT_PUBLIC_AUTH_WHATSAPP_ENABLED:a.Z_().optional().transform(t=>"false"!==t),NEXT_PUBLIC_GOAL_TRACKING_INDICATORS:a.Z_().optional().transform(t=>"false"!==t)}).parse({NEXT_PUBLIC_APP_URL:"https://isl.am",NEXT_PUBLIC_CDN_DOMAIN:r.env.NEXT_PUBLIC_CDN_DOMAIN,CLOUDFRONT_KEY_PAIR_ID:r.env.CLOUDFRONT_KEY_PAIR_ID,CLOUDFRONT_PRIVATE_KEY:r.env.CLOUDFRONT_PRIVATE_KEY,NEXT_PUBLIC_QURAN_CDN_URL:"https://cdn.isl.am/quran",NEXT_PUBLIC_ISLAM_SURAH_AUDIO_URL:"https://cdn.isl.am/quran/audio/recitations",NEXT_PUBLIC_HADITH_CDN_BASE:"https://cdn.isl.am/hadith",NEXT_PUBLIC_I18N_MESSAGES_URL:"https://cdn.isl.am/i18n/messages",NEXT_PUBLIC_DEFAULT_RECITER_SLUG:"saud_ash-shuraym",NEXT_PUBLIC_DEFAULT_RECITER:"mishari_rashid_al_afasy",NEXT_PUBLIC_TIMESTAMP_DATA_URL:"https://cdn.isl.am/quran/data/timestamps.json.gz",NEXT_PUBLIC_ISLAM_WORD_AUDIO_URL:"https://cdn.isl.am/quran/audio/words",NEXT_PUBLIC_TRANSLATION_AUDIO_BASE:"https://cdn.isl.am/quran/audio/translations",NEXT_PUBLIC_QURAN_DATA_BASE_URL:"https://cdn.isl.am/quran/data",NEXT_PUBLIC_TAFSIR_PRIMARY_URL:"https://cdn.isl.am/quran/data/tafsirs",NEXT_PUBLIC_TAFSIR_SECONDARY_URL:"https://cdn.isl.am/quran/data/tafsirs",NEXT_PUBLIC_FONTS_CDN_URL:"https://cdn.isl.am/quran/fonts",NEXT_PUBLIC_DEFAULT_RECITER_ID:"10",NEXT_PUBLIC_USE_INDEXEDDB:"false",NEXT_PUBLIC_IMAGE_DOMAINS:"cdn.isl.am",
1NEXT_PUBLIC_DEFAULT_TRANSLATION_ID:"1260",NEXT_PUBLIC_VERSES_PER_PAGE:"25",NEXT_PUBLIC_DEFAULT_WORD_FIELDS:"code_v1,code_v2,text_uthmani,text_indopak,translation,transliteration",NEXT_PUBLIC_DEFAULT_VERSE_FIELDS:r.env.NEXT_PUBLIC_DEFAULT_VERSE_FIELDS,NEXT_PUBLIC_WORD_DATA_QALAM_MADINAH_ID:"3",NEXT_PUBLIC_WORD_DATA_QALAM_HANAFI_ID:"6",NEXT_PUBLIC_WORD_DATA_QALAM_VERSION:"6",NEXT_PUBLIC_WORD_DATA_UTHMAN_TAHA_ID:"5",NEXT_PUBLIC_WORD_DATA_UTHMAN_TAHA_VERSION:"5",NEXT_PUBLIC_WORD_DATA_ISEP_MISBAH_ID:"9",NEXT_PUBLIC_WORD_DATA_ISEP_MISBAH_VERSION:"2",NEXT_PUBLIC_WORD_DATA_UTHMANIC_DIGITAL_ID:"1",NEXT_PUBLIC_WORD_DATA_UTHMANIC_DIGITAL_VERSION:"5",NEXT_PUBLIC_SEARCH_RESULTS_LIMIT:"50",NEXT_PUBLIC_HADITH_PAGE_SIZE:"10",NEXT_PUBLIC_DUA_DATA_URL:"https://cdn.isl.am/dua/duas.json.gz",DUA_SEARCH_API_URL:r.env.DUA_SEARCH_API_URL,QURAN_SEARCH_API_URL:r.env.QURAN_SEARCH_API_URL,HADITH_SEARCH_API_URL:r.env.HADITH_SEARCH_API_URL,NEXT_PUBLIC_ANALYTICS_FLUSH_INTERVAL_MS:"300000",NEXT_PUBLIC_AUTH_GOOGLE_ENABLED:"true",NEXT_PUBLIC_AUTH_FACEBOOK_ENABLED:"false",NEXT_PUBLIC_AUTH_WHATSAPP_ENABLED:"false",NEXT_PUBLIC_GOAL_TRACKING_INDICATORS:"false"})},97521:function(t,n,e){e.d(n,{Cx:function(){return o},tN:function(){return r}});var a=e(91839);async function r(t){let n=new DecompressionStream("gzip"),e=new Response(t).body.pipeThrough(n);return new Response(e).text()}async function o(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,e=null;for(let o=0;o<=n;o++)try{let n=await fetch(t);if(!n.ok)throw Error("Failed to fetch ".concat(t,": ").concat(n.statusText));let e=await n.arrayBuffer(),o=await r(e);return(0,a.v)(o)}catch(t){if((e=t instanceof Error?t:Error(String(t))).message.includes("4"))throw e;o<n&&await new Promise(t=>setTimeout(t,100*Math.pow(2,o)))}throw e||Error("Failed to fetch ".concat(t," after ").concat(n+1," attempts"))}},91839:function(t,n,e){e.d(n,{v:function(){return i}});let a=null,r=!1,o=new Map,_=0;async function i(t){if(t.length<102400)return JSON.parse(t);let n=function(){if(r)return null;if(!("Worker"in window))return r=!0,null;if(!a)try{let t=new Blob(["\n self.onmessage = function(event) {\n var msg = event.data;\n if (msg.type === 'parse') {\n try {\n var parsed = JSON.parse(msg.data);\n self.postMessage({ id: msg.id, type: 'result', data: parsed });\n } catch (error) {\n self.postMessage({\n id: msg.id,\n type: 'result',\n data: null,\n error: error.message || 'JSON parse error'\n });\n }\n }\n };\n "],{type:"application/javascript"}),n=URL.createObjectURL(t);(a=new Worker(n)).onmessage=t=>{let{id:n,data:e,error:a}=t.data,r=o.get(n);r&&(o.delete(n),a?r.reject(Error(a)):r.resolve(e))},a.onerror=t=>{for(let[n,e]of(console.warn("[JSON Parser] Worker error:",t),o))e.reject(Error("Worker error")),o.delete(n);r=!0,a=null}}catch(t){return console.warn("[JSON Parser] Failed to create worker:",t),r=!0,null}return a}();return n?new Promise((e,a)=>{let r="parse-".concat(++_);o.set(r,{resolve:e,reject:a});let i=setTimeout(()=>{if(o.has(r)){o.delete(r);try{e(JSON.parse(t))}catch(t){a(t)}}},5e3);o.set(r,{resolve:t=>{clearTimeout(i),e(t)},reject:t=>{clearTimeout(i),a(t)}}),n.postMessage({id:r,type:"parse",data:t})}):JSON.parse(t)}},74041:function(t,n,e){e.d(n,{Bh:function(){return s},VK:function(){return i},YM:function(){return o}});var a=e(90960),r=e(38303);let o="2025.01.08",_=null;async function i(){return _||(_=await (0,a.X3)("isl-am-offline",3,{upgrade(t){t.objectStoreNames.contains("quran-data")||t.createObjectStore("quran-data"),t.objectStoreNames.contains("fonts")||t.createObjectStore("fonts"),t.objectStoreNames.contains("api-cache")||t.createObjectStore("api-cache"),t.objectStoreNames.contains("audio")&&t.deleteObjectStore("audio"),t.objectStoreNames.contains("offline-manifest")||t.createObjectStore("offline-manifest"),t.objectStoreNames.contains("sync-queue")||t.createObjectStore("sync-queue").createIndex("by-created","createdAt")},blocked(){console.warn("[IDB] Database blocked - close other tabs")},blocking(){null==_||_.close(),_=null}}))}function s(){return!!r.O.NEXT_PUBLIC_USE_INDEXEDDB&&"indexedDB"in window}},43274:function(t,n,e){e.d(n,{OD:function(){return r},Hm:function(){return l},w8:function(){return c},_u:function(){return o},Kq:function(){return _}});var a=e(74041);e(78672);let r={FOREVER:0,ONE_HOUR:36e5,ONE_DAY:864e5,ONE_WEEK:6048e5,ONE_MONTH:2592e6};async function o(t){if(!(0,a.Bh)())return null;try{let n=await (0,a.VK)(),e=await n.get("api-cache",t);if(!e)return null;if(e.ttl>0){let a=Date.now(),r=e.fetchedAt+e.ttl;if(a>r)return await n.delete("api-cache",t),null}return e.data}catch(t){return console.warn("[API Cache] Read error:",t),null}}async function _(t,n){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r.FOREVER;if((0,a.Bh)())try{let r=await (0,a.VK)();await r.put("api-cache",{data:n,fetchedAt:Date.now(),ttl:e},t)}catch(t){console.warn("[API Cache] Write error:",t)}}async function i(t){if(!(0,a.Bh)())return null;try{let n=await (0,a.VK)(),e=await n.get("fonts",t);return(null==e?void 0:e.data)||null}catch(t){return console.warn("[Font Cache] Read error:",t),null}}async function s(t,n){if((0,a.Bh)())try{let e=await (0,a.VK)();await e.put("fonts",{data:n,fetchedAt:Date.now()},t)}catch(t){console.warn("[Font Cache] Write error:",t)}}async function c(t,n){let e=await i(n);if(e)return e;let a=await fetch(t);if(!a.ok)throw Error("Failed to fetch font: ".concat(a.statusText));let r=await a.arrayBuffer();return s(n,r).catch(()=>{}),r}function l(t){let n=new Blob([t],{type:"font/woff2"});return URL.createObjectURL(n)}e(64224),e(20273)},78672:function(t,n,e){e.d(n,{L2:function(){return _},d4:function(){return o},nr:function(){return r}});var a=e(74041);async function r(t){if(!(0,a.Bh)())return null;try{let n=await (0,a.VK)(),e=await n.get("quran-data",t);if(!e)return null;if(e.version!==a.YM)return await n.delete("quran-data",t),null;return e.data}catch(t){return console.warn("[IDB] Read error:",t),null}}async function o(t,n,e){if((0,a.Bh)())try{let r=await (0,a.VK)();await r.put("quran-data",{data:n,compressedSize:e,fetchedAt:Date.now(),version:a.YM},t)}catch(t){console.warn("[IDB] Write error:",t)}}async function _(){if(!(0,a.Bh)())return{count:0,bytes:0};try{let t=(await (0,a.VK)()).transaction("quran-data","readonly").objectStore("quran-data"),n=0,e=0,r=await t.openCursor();for(;r;)n++,e+=r.value.compressedSize,r=await r.continue();return{count:n,bytes:e}}catch(t){return console.warn("[IDB] Cache size error:",t),{count:0,bytes:0}}}},64224:function(t,n,e){e.d(n,{formatBytes:function(){return l},useOfflineReady:function(){return s},useOfflineStore:function(){return _},useOnlineStatus:function(){return i},useUpdateAvailable:function(){return c}});var a=e(3011),r=e(2265),o=e(78672);let _=(0,a.U)(t=>({isOnline:"undefined"==typeof navigator||navigator.onLine,isServiceWorkerReady:!1,pendingSyncCount:0,lastSyncAt:null,cacheSize:null,updateAvailable:!1,setOnline:n=>t({isOnline:n}),setServiceWorkerReady:n=>t({isServiceWorkerReady:n}),setPendingSyncCount:n=>t({pendingSyncCount:n}),setLastSyncAt:n=>t({lastSyncAt:n}),setCacheSize:n=>t({cacheSize:n}),setUpdateAvailable:n=>t({updateAvailable:n}),refreshCacheSize:async()=>{t({cacheSize:await (0,o.L2)()})}}));function i(){let t=_(t=>t.isOnline),n=_(t=>t.setOnline);return(0,r.useEffect)(()=>{let t=()=>n(!0),e=()=>n(!1);return window.addEventListener("online",t),window.addEventListener("offline",e),n(navigator.onLine),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",e)}},[n]),t}function s(){return _(t=>t.isServiceWorkerReady)}function c(){return _(t=>t.updateAvailable)}function l(t){if(0===t)return"0 B";let n=Math.floor(Math.log(t)/Math.log(1024));return"".concat(parseFloat((t/Math.pow(1024,n)).toFixed(1))," ").concat(["B","KB","MB","GB"][n])}},20273:function(t,n,e){e.d(n,{Oq:function(){return A},Td:function(){return T},Y2:function(){return c},dB:function(){return s},eB:function(){return u},eh:function(){return I},oo:function(){return E},qL:function(){return L},qZ:function(){return l},uS:function(){return f}});var a=e(78672),r=e(97521),o=e(91839);let _=new Map,i=new Map;async function s(t){let n=t.replace(/\.json\.gz$/,"").replace(/\.json$/,"");if(_.has(n))return _.get(n);if(i.has(n))return i.get(n);let e=(async()=>{try{{let t=await (0,a.nr)(n);if(null!==t)return _.set(n,t),t}let e=t.endsWith(".json.gz")?t:t.endsWith(".json")?t.replace(/\.json$/,".json.gz"):"".concat(t,".json.gz"),i="".concat("https://cdn.isl.am/quran/data","/").concat(e),s=await fetch(i);if(!s.ok)throw Error("Failed to load ".concat(e," from CDN: ").concat(s.statusText));let c=await s.arrayBuffer(),l=c.byteLength,u=await (0,r.tN)(c),A=await (0,o.v)(u);return _.set(n,A),(0,a.d4)(n,A,l).catch(()=>{}),A}catch(n){throw console.error("Error loading Quran data from ".concat(t,":"),n),n}finally{i.delete(n)}})();return i.set(n,e),e}async function c(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;await Promise.all([s("quranMeta.json.gz"),s("words-data/arabic/".concat(t,".json.gz")),s("words-data/translations/".concat(n,".json.gz")),s("words-data/transliterations/".concat(e,".json.gz"))])}async function l(){return(await s("quranMeta.json.gz")).verses}async function u(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return s("words-data/arabic/".concat(t,".json.gz"))}async function A(){return s("words-data/arabic/v1-glyphs.json.gz")}async function I(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return s("words-data/translations/".concat(t,".json.gz"))}async function E(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"normal";return s("transliterations/".concat(t,".json.gz"))}async function T(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"normal";return s("transliterations/".concat(t,".json.gz"))}async function L(t,n){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:25;return s("translations/".concat(t,"/").concat(n,"/").concat(Math.floor((e-1)/a),".json.gz"))}function f(t,n){let e=n-t.startAyah;return e<0||e>=t.texts.length?null:t.texts[e]}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.