meeting-schedules-parser
Version:
This tool will help you to parse and extract the needed meeting schedules from Meeting Workbook and Watchtower Study EPUB and JWPUB files.
3 lines (2 loc) • 41 kB
JavaScript
import*as a from"path";import{readFile as e}from"fs/promises";import i from"sql.js";import r from"jszip";import{parse as t}from"node-html-parser";import{inflate as n}from"pako";var o={januaryVariations:"1月",februaryVariations:"2月",marchVariations:"3月",aprilVariations:"4 月",mayVariations:"5 月",juneVariations:"6 月",julyVariations:"7 月",augustVariations:"8 月",septemberVariations:"9 月",octoberVariations:"10 月",novemberVariations:"11 月",decemberVariations:"12 月",partMinutesSeparatorVariations:"分鐘"},s={januaryVariations:"一月",februaryVariations:"二月",marchVariations:"三月",aprilVariations:"四月",mayVariations:"五月",juneVariations:"六月",julyVariations:"七月",augustVariations:"八月",septemberVariations:"九月",octoberVariations:"十月",novemberVariations:"十一月",decemberVariations:"十二月",partMinutesSeparatorVariations:"分钟"},u={januaryVariations:"Janvye",februaryVariations:"Fevriye",marchVariations:"Mas",aprilVariations:"Avril",mayVariations:"Me",juneVariations:"Jen",julyVariations:"Jiyè",augustVariations:"Out",septemberVariations:"Septanm",octoberVariations:"Oktòb",novemberVariations:"Novanm",decemberVariations:"Desanm",partMinutesSeparatorVariations:"min."},c={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",partMinutesSeparatorVariations:"min."},l={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",partMinutesSeparatorVariations:"min."},m={januaryVariations:"janvier",februaryVariations:"février",marchVariations:"mars",aprilVariations:"avril",mayVariations:"mai",juneVariations:"juin",julyVariations:"juillet",augustVariations:"août",septemberVariations:"septembre",octoberVariations:"octobre",novemberVariations:"novembre",decemberVariations:"décembre",partMinutesSeparatorVariations:"min"},V={januaryVariations:"tammikuuta",februaryVariations:"helmikuuta",marchVariations:"maaliskuuta",aprilVariations:"huhtikuuta",mayVariations:"toukokuuta",juneVariations:"kesäkuuta",julyVariations:"heinäkuuta",augustVariations:"elokuuta",septemberVariations:"syyskuuta",octoberVariations:"lokakuuta",novemberVariations:"marraskuuta",decemberVariations:"joulukuuta",partMinutesSeparatorVariations:"min"},d={januaryVariations:"ΙΑΝΟΥΑΡΙΟΥ|Ιανουαρίου|Ιανουάριος",februaryVariations:"ΦΕΒΡΟΥΑΡΙΟΥ|Φεβρουαρίου|Φεβρουάριος",marchVariations:"ΜΑΡΤΙΟΥ|Μαρτίου|Μάρτιος",aprilVariations:"ΑΠΡΙΛΙΟΥ|Απριλίου|Απρίλιος",mayVariations:"ΜΑΪΟΥ|Μαΐου|Μάιος",juneVariations:"ΙΟΥΝΙΟΥ|Ιουνίου|ούνιος",julyVariations:"ΙΟΥΛΙΟΥ|Ιουλίου|Ιούλιος",augustVariations:"ΑΥΓΟΥΣΤΟΥ|Αυγούστου|Αύγουστος",septemberVariations:"ΣΕΠΤΕΜΒΡΙΟΥ|Σεπτεμβρίου|Σεπτέμβριος",octoberVariations:"ΟΚΤΩΒΡΙΟΥ|Οκτωβρίου|Οκτώβριος",novemberVariations:"ΝΟΕΜΒΡΙΟΥ|Νοεμβρίου|Νοέμβριος",decemberVariations:"ΔΕΚΕΜΒΡΙΟΥ|Δεκεμβρίου|Δεκέμβριος",partMinutesSeparatorVariations:"λεπτό|λεπτά"},b={januaryVariations:"Január",februaryVariations:"Február",marchVariations:"Március",aprilVariations:"Április",mayVariations:"Május",juneVariations:"Június",julyVariations:"Július",augustVariations:"Augusztus",septemberVariations:"Szeptember",octoberVariations:"Október",novemberVariations:"November",decemberVariations:"December",partMinutesSeparatorVariations:"perc"},p={januaryVariations:"जनवरी",februaryVariations:"फरवरी",marchVariations:"मार्च",aprilVariations:"अप्रैल",mayVariations:"मई",juneVariations:"जून",julyVariations:"जुलाई",augustVariations:"अगस्त",septemberVariations:"सितंबर",octoberVariations:"अक्टूबर",novemberVariations:"नवंबर",decemberVariations:"दिसंबर",partMinutesSeparatorVariations:"मि."},y={januaryVariations:"Gennaio",februaryVariations:"Febbraio",marchVariations:"Marzo",aprilVariations:"Aprile",mayVariations:"Maggio",juneVariations:"Giugno",julyVariations:"Luglio",augustVariations:"Agosto",septemberVariations:"Settembre",octoberVariations:"Ottobre",novemberVariations:"Novembre",decemberVariations:"Dicembre",partMinutesSeparatorVariations:"min"},g={januaryVariations:"Enero",februaryVariations:"Pebrero",marchVariations:"Marso",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Hunio",julyVariations:"Hulio",augustVariations:"Agosto",septemberVariations:"Septiembre",octoberVariations:"Oktubre",novemberVariations:"Nobyembre|Nobiembre",decemberVariations:"Disiembre",partMinutesSeparatorVariations:"min."},w={januaryVariations:"1月",februaryVariations:"2月",marchVariations:"3月",aprilVariations:"4月",mayVariations:"5月",juneVariations:"6月",julyVariations:"7月",augustVariations:"8月",septemberVariations:"9月",octoberVariations:"10月",novemberVariations:"11月",decemberVariations:"12月",partMinutesSeparatorVariations:"分"},f={januaryVariations:"Січень|січень|січня",februaryVariations:"Лютий|лютий|лютого",marchVariations:"Березень|березень|березня",aprilVariations:"Квітень|квітень|квітня",mayVariations:"Травень|травень|травня",juneVariations:"Червень|червень|червня",julyVariations:"Липень|липень|липня",augustVariations:"Серпень|серпень|серпня",septemberVariations:"Вересень|вересень|вересня",octoberVariations:"Жовтень|жовтень|жовтня",novemberVariations:"Листопад|листопад|листопада",decemberVariations:"Грудень|грудень|грудня",partMinutesSeparatorVariations:"хв"},h={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",partMinutesSeparatorVariations:"분"},j={januaryVariations:"de janeiro|janeiro",februaryVariations:"de fevereiro|fevereiro",marchVariations:"de março|março",aprilVariations:"de abril|abril",mayVariations:"de maio|maio",juneVariations:"de junho|junho",julyVariations:"de julho|julho",augustVariations:"de agosto|agosto",septemberVariations:"de setembro|setembro",octoberVariations:"de outubro|outubro",novemberVariations:"de novembro|novembro",decemberVariations:"de dezembro|dezembro",partMinutesSeparatorVariations:"min|min."},$={januaryVariations:"Enero",februaryVariations:"Febrero",marchVariations:"Marzo",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Junio",julyVariations:"Julio",augustVariations:"Agosto",septemberVariations:"Septiembre",octoberVariations:"Octubre",novemberVariations:"Noviembre",decemberVariations:"Diciembre",partMinutesSeparatorVariations:"mins.|min."},S={januaryVariations:"Ianuarie",februaryVariations:"Februarie",marchVariations:"Martie",aprilVariations:"Aprilie",mayVariations:"Mai",juneVariations:"Iunie",julyVariations:"Iulie",augustVariations:"August",septemberVariations:"Septembrie",octoberVariations:"Octombrie",novemberVariations:"Noiembrie",decemberVariations:"Decembrie",partMinutesSeparatorVariations:"min."},_={januaryVariations:"Janoary",februaryVariations:"Febroary",marchVariations:"Martsa",aprilVariations:"Aprily",mayVariations:"Mey",juneVariations:"Jona",julyVariations:"Jolay",augustVariations:"Aogositra",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",partMinutesSeparatorVariations:"min."},M={januaryVariations:"Januari",februaryVariations:"Februari",marchVariations:"Mac",aprilVariations:"April",mayVariations:"Mei",juneVariations:"Jun",julyVariations:"Julai",augustVariations:"Ogos",septemberVariations:"September",octoberVariations:"Oktober",novemberVariations:"November",decemberVariations:"Disember",partMinutesSeparatorVariations:"min."},E={januaryVariations:"januari",februaryVariations:"februari",marchVariations:"maart",aprilVariations:"april",mayVariations:"mei",juneVariations:"juni",julyVariations:"juli",augustVariations:"augustus",septemberVariations:"september",octoberVariations:"oktober",novemberVariations:"november",decemberVariations:"december",partMinutesSeparatorVariations:"min."},v={januaryVariations:"Styczeń|stycznia",februaryVariations:"Luty|lutego",marchVariations:"Marzec|marca",aprilVariations:"Kwiecień|kwietnia",mayVariations:"maja|Maj",juneVariations:"Czerwiec|czerwca",julyVariations:"Lipiec|lipca",augustVariations:"Sierpień|sierpnia",septemberVariations:"Wrzesień|września",octoberVariations:"października|Październik",novemberVariations:"listopada|Listopad",decemberVariations:"Grudzień|grudnia",partMinutesSeparatorVariations:"min|min."},x={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",partMinutesSeparatorVariations:"min."},A={januaryVariations:"Enero",februaryVariations:"Febrero",marchVariations:"Marzo",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Junio",julyVariations:"Julio",augustVariations:"Agosto",septemberVariations:"Septiembre",octoberVariations:"Octubre",novemberVariations:"Noviembre",decemberVariations:"Diciembre",partMinutesSeparatorVariations:"mins.|min."},k={januaryVariations:"Jaanuar|jaanuarini|jaanuarist",februaryVariations:"Veebruar|veebruarini|veebruarist",marchVariations:"Märts|märtsini|märtsist",aprilVariations:"Aprill|aprillini|aprillist",mayVariations:"Mai|maini|maist",juneVariations:"Juuni|juunini",julyVariations:"Juuli|juulini|juulist",augustVariations:"August|augustini|augustist",septemberVariations:"September|septembrini|septembrist",octoberVariations:"Oktoober|oktoobrini|oktoobrist",novemberVariations:"November|novembrini|novembrist",decemberVariations:"Detsember|detsembrini|detsembrist",partMinutesSeparatorVariations:"min"},T={januaryVariations:"januar|januarja",februaryVariations:"februar|februarja",marchVariations:"marec|marca",aprilVariations:"april|aprila",mayVariations:"maj|maja",juneVariations:"junij|junija",julyVariations:"julij|julija",augustVariations:"avgust|avgusta",septemberVariations:"september|septembra",octoberVariations:"oktober|oktobra",novemberVariations:"november|novembra",decemberVariations:"december|decembra",partMinutesSeparatorVariations:"min."},R={januaryVariations:"Januari",februaryVariations:"Februari",marchVariations:"Machi",aprilVariations:"Aprili",mayVariations:"Mei",juneVariations:"Juni",julyVariations:"Julai",augustVariations:"Agosti",septemberVariations:"Septemba",octoberVariations:"Oktoba",novemberVariations:"Novemba",decemberVariations:"Desemba",partMinutesSeparatorVariations:"Dak."},N={januaryVariations:"de janeiro|janeiro",februaryVariations:"de fevereiro|fevereiro",marchVariations:"de março|março",aprilVariations:"de abril|abril",mayVariations:"de maio|maio",juneVariations:"de junho|junho",julyVariations:"de julho|julho",augustVariations:"de agosto|agosto",septemberVariations:"de setembro|setembro",octoberVariations:"de outubro|outubro",novemberVariations:"de novembro|novembro",decemberVariations:"de dezembro|dezembro",partMinutesSeparatorVariations:"min|min."},O={januaryVariations:"Enero",februaryVariations:"Pebrero",marchVariations:"Marso",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Hunyo",julyVariations:"Hulyo",augustVariations:"Agosto",septemberVariations:"Setyembre",octoberVariations:"Oktubre",novemberVariations:"Nobyembre",decemberVariations:"Disyembre",partMinutesSeparatorVariations:"min."},J={januaryVariations:"Tenuare",februaryVariations:"Fepuare",marchVariations:"Mati",aprilVariations:"Eperera",mayVariations:"Me",juneVariations:"Tiunu",julyVariations:"Tiurai",augustVariations:"Atete",septemberVariations:"Tetepa",octoberVariations:"Atopa",novemberVariations:"Novema",decemberVariations:"Titema",partMinutesSeparatorVariations:"min."},L={januaryVariations:"Ocak",februaryVariations:"Şubat",marchVariations:"Mart",aprilVariations:"Nisan|NİSAN",mayVariations:"MAYIS|Mayıs",juneVariations:"HAZİRAN|Haziran",julyVariations:"Temmuz",augustVariations:"Ağustos",septemberVariations:"Eylül",octoberVariations:"Ekim|EKİM",novemberVariations:"Kasım|KASIM",decemberVariations:"Aralık|ARALIK",partMinutesSeparatorVariations:"dk.|dk"},W={januaryVariations:"Janvie",februaryVariations:"Fevrie",marchVariations:"Marsa",aprilVariations:"Avrily",mayVariations:"Mey",juneVariations:"Jona",julyVariations:"Jolay",augustVariations:"Aogositra",septemberVariations:"Septambra",octoberVariations:"Oktobra|Okotobra",novemberVariations:"Novambra",decemberVariations:"Desambra",partMinutesSeparatorVariations:"min.|min"},I={januaryVariations:"Zanvie",februaryVariations:"Fevrie",marchVariations:"Marsy",aprilVariations:"Avrily",mayVariations:"May",juneVariations:"Ziain",julyVariations:"Zie|ZIE",augustVariations:"Aoty",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",partMinutesSeparatorVariations:"min.|min"},C={januaryVariations:"de janeiro|janeiro",februaryVariations:"de fevereiro|fevereiro",marchVariations:"de março|março",aprilVariations:"de abril|abril",mayVariations:"de maio|maio",juneVariations:"de junho|junho",julyVariations:"de julho|julho",augustVariations:"de agosto|agosto",septemberVariations:"de setembro|setembro",octoberVariations:"de outubro|outubro",novemberVariations:"de novembro|novembro",decemberVariations:"de dezembro|dezembro",partMinutesSeparatorVariations:"min."},D={januaryVariations:"Janoary",februaryVariations:"Febroary",marchVariations:"Martsa",aprilVariations:"Aprily",mayVariations:"Mey",juneVariations:"Jona",julyVariations:"Jolay",augustVariations:"Aogositra",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",partMinutesSeparatorVariations:"min."},P={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",partMinutesSeparatorVariations:"Simma"},F={januaryVariations:"Январь|января",februaryVariations:"Февраль|февраля",marchVariations:"Март|марта",aprilVariations:"Апрель|апреля",mayVariations:"Май|мая",juneVariations:"Июнь|июня",julyVariations:"Июль|июля",augustVariations:"Август|августа",septemberVariations:"Сентябрь|сентября",octoberVariations:"Октябрь|октября",novemberVariations:"Ноябрь|ноября",decemberVariations:"Декабрь|декабря",partMinutesSeparatorVariations:"мин."},H={januaryVariations:"tháng 1",februaryVariations:"tháng 2",marchVariations:"tháng 3",aprilVariations:"tháng 4",mayVariations:"tháng 5",juneVariations:"tháng 6",julyVariations:"tháng 7",augustVariations:"tháng 8",septemberVariations:"tháng 9",octoberVariations:"tháng 10",novemberVariations:"tháng 11",decemberVariations:"tháng 12",partMinutesSeparatorVariations:"phút"},z={januaryVariations:"Zanviè",februaryVariations:"Fevriè|Feviè",marchVariations:"Marsa",aprilVariations:"Avrily",mayVariations:"Mey",juneVariations:"Ziein",julyVariations:"Ziè",augustVariations:"Oòh",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",partMinutesSeparatorVariations:"min.|min"},q={januaryVariations:"Januar",februaryVariations:"Februar",marchVariations:"März",aprilVariations:"April",mayVariations:"Mai",juneVariations:"Juni",julyVariations:"Juli",augustVariations:"August",septemberVariations:"September",octoberVariations:"Oktober",novemberVariations:"November",decemberVariations:"Dezember",partMinutesSeparatorVariations:"Min|Min."},G={januaryVariations:"Mutarama",februaryVariations:"Gashyantare",marchVariations:"Werurwe",aprilVariations:"Mata",mayVariations:"Gicurasi",juneVariations:"Kamena",julyVariations:"Nyakanga",augustVariations:"Kanama",septemberVariations:"Nzeri",octoberVariations:"Ukwakira",novemberVariations:"Ugushyingo",decemberVariations:"Ukuboza",partMinutesSeparatorVariations:"Imin.|Umun."},U={januaryVariations:"januari",februaryVariations:"februari",marchVariations:"mars",aprilVariations:"april",mayVariations:"maj",juneVariations:"juni",julyVariations:"juli",augustVariations:"augusti",septemberVariations:"september",octoberVariations:"oktober",novemberVariations:"november",decemberVariations:"december",partMinutesSeparatorVariations:"min."};global.meeting_schedules_parser={languages:{CH:o,CHS:s,CR:u,E:c,ELI:l,F:m,FI:V,G:d,H:b,HI:p,I:y,IL:g,J:w,K:f,KO:h,LSB:j,LSE:$,M:S,MG:_,ML:M,O:E,P:v,PGW:x,S:A,ST:k,SV:T,SW:R,T:N,TG:O,TH:J,TK:L,TND:W,TNK:I,TPO:C,TTM:D,TW:P,U:F,VT:H,VZ:z,X:q,YW:G,Z:U},path:a,readFile:e,loadSQL:async()=>await i()};const B=a=>/^mwb_[A-Z]{1,3}_20[2-9]\d(0[1-9]|1[0-2]).(jwpub|epub)$/i.test(a),K=a=>/^w_[A-Z]{1,3}_20[2-9]\d(0[1-9]|1[0-2]).(jwpub|epub)$/i.test(a),Z=a=>{let e;return e="object"==typeof a&&"url"in a?a.url:a instanceof Blob&&"name"in a?a.name:a,meeting_schedules_parser.path.basename(e)},Y=a=>+Z(a).split("_")[2].substring(0,4),X=a=>Z(a).split("_")[1],Q=a=>{let e=!1;if(a.startsWith("OEBPS")&&a.endsWith(".xhtml")&&-1===a.indexOf("-extracted")){const i=a.split("/")[1].split(".")[0];isNaN(parseFloat(i))||(e=!0)}return e},aa=async(a,e)=>await a.file(e).async("string"),ea=a=>{let e=!1,i=!1,r=!1,t=!1;return i=!!a.querySelector("[class*=treasures]"),i&&(r=!!a.querySelector("[class*=ministry]"),t=!!a.querySelector("[class*=christianLiving]")),i||(i=!!a.querySelector(".du-color--teal-700"),i&&(r=!!a.querySelector(".du-color--gold-700"),t=!!a.querySelector(".du-color--maroon-600"))),!0===i&&!0===r&&!0===t&&(e=!0),e},ia=a=>t(a),ra=a=>!!a.querySelector(".groupTOC");var ta=[{locale:"en",code:"E"},{locale:"fr-FR",code:"F"},{locale:"it-IT",code:"I"},{locale:"ja-JP",code:"J"},{locale:"uk-UA",code:"K"},{locale:"ko-KR",code:"KO"},{locale:"ro-RO",code:"M"},{locale:"mg-MG",code:"MG"},{locale:"pl-PL",code:"P"},{locale:"es-ES",code:"S"},{locale:"pt-POR",code:"T"},{locale:"pt-TPO",code:"TPO"},{locale:"tl-PH",code:"TG"},{locale:"tr-TR",code:"TK"},{locale:"mg-TND",code:"TND"},{locale:"mg-TNK",code:"TNK"},{locale:"mg-TTM",code:"TTM"},{locale:"tw-TW",code:"TW"},{locale:"uk-UA",code:"U"},{locale:"mg-VZ",code:"VZ"},{locale:"de-DE",code:"X"},{locale:"cmn-Hant",code:"CH"},{locale:"ch-CHS",code:"CHS"},{locale:"fi-FI",code:"FI"},{locale:"sv-SE",code:"Z"},{locale:"nl-NL",code:"O"},{locale:"wes-PGW",code:"PGW"},{locale:"sl-SI",code:"SV"},{locale:"sw-KE",code:"SW"},{locale:"et-EE",code:"ST"},{locale:"ht-HT",code:"CR"},{locale:"ilo-PH",code:"IL"},{locale:"en-LR",code:"ELI"},{locale:"rw-RW",code:"YW"},{locale:"vi-VN",code:"VT"},{locale:"ms-MY",code:"ML"},{locale:"el-GR",code:"G"},{locale:"es-LSE",code:"LSE"},{locale:"hu-HU",code:"H"},{locale:"pt-LSB",code:"LSB"},{locale:"hi-IN",code:"HI"},{locale:"ty-PF",code:"TH"}];class na extends Error{code;constructor(a,e){super(e),this.code=`meeting-schedules-parser/failed-${a}`}}const oa=meeting_schedules_parser.languages,sa=a=>[{index:0,name:oa[a].januaryVariations},{index:1,name:oa[a].februaryVariations},{index:2,name:oa[a].marchVariations},{index:3,name:oa[a].aprilVariations},{index:4,name:oa[a].mayVariations},{index:5,name:oa[a].juneVariations},{index:6,name:oa[a].julyVariations},{index:7,name:oa[a].augustVariations},{index:8,name:oa[a].septemberVariations},{index:9,name:oa[a].octoberVariations},{index:10,name:oa[a].novemberVariations},{index:11,name:oa[a].decemberVariations}],ua={ELI:{"Study Article 23: July 31–August 6 20":"Study Article 23: July 31, 2023–August 6, 2023"},PGW:{"Fine-Fine Things Wey You See for Bible":"Fine-Fine Things Wey You See for Bible: (10 min.)"},ST:{"Seda artiklit uuritakse vahemikus 28. oktoobrist 3.novembrini 2024.":"Seda artiklit uuritakse vahemikus 28. oktoobrist 3. novembrini 2024."},SW:{"7. Video ya Machi ya Mambo Yaliyotimizwa na Tengenezo (10 min.) Onyesha VIDEO.":"7. Video ya Machi ya Mambo Yaliyotimizwa na Tengenezo (Dak. 10) Onyesha VIDEO."},YW:{"4. Gutangiza ikiganiro (Umun. 1) KUBWIRIZA KU NZU N’INZU. Umubwiriza asange umuntu avuga urundi rurimi. (lmd isomo rya 2 ingingo ya 5)":"4. Gutangiza ikiganiro (Imin. 1) KUBWIRIZA KU NZU N’INZU. Umubwiriza asange umuntu avuga urundi rurimi. (lmd isomo rya 2 ingingo ya 5)"}},ca=a=>{const e=a.match(/(\d+)/);if(e&&e.length>0){const a=+e[0];if(a<=162)return a}return a},la=(a,e)=>{a=a.replace(/(\u200B)*(\d+)(\u200B)*/g,"$2");const i=(a=>oa[a].partMinutesSeparatorVariations)(e);let r=a;const t=ua[e];if(t){const e=t[a];e&&(r=e)}const n=new RegExp(`(.+?)(?:: )?[((](\\d+)(?: | | )?(?:${i})[))](?: : | |. )?(.+?)?$`,"giu"),o=new RegExp(`(.+?)(?:: )?[((](\\d+)(?: | )?(?:${i})[))]?(?: : | |. )?(.+?)?$`,"giu"),s=new RegExp(`(.+?)(?: )?\\((?:${i})(?: | )?(\\d+).?\\)(?: |.)?(.+?)?$`,"giu"),u={common:n,PGW:o,SW:s,TW:s,YW:s},c=u[e]||u.common;if(!r.match(c))throw new na("meeting-schedules-parser",`Parsing failed. The input was: ${r}`);const l=Array.from(c.exec(r)),m=l.at(1).trim(),V=+l.at(2).trim(),d=l.at(3)?.trim(),b=/^(:?\d+)(?:.|.\s)(.+?)$/giu,p=m.match(b);let y=m;if(p){y=Array.from(b.exec(m)).at(2).trim()}return{type:y,src:d,time:V,fulltitle:m}},ma="\\s? bis |[-–—]| do | — | – \\s?",Va="\\p{L}+\\p{M}*";let da,ba,pa,ya,ga;da=`(\\d{1,2})(?:er|º)?(?:${ma})(?:\\d{1,2}) (${Va})`,ba=`(\\d{1,2})(?:er|º)? (${Va})(?:${ma})(?:\\d{1,2})(?:er|º)?(?: )?(?:${Va})`,pa=`(\\d{1,2}) (${Va}) (\\d{4})`;const wa=`${da}|${ba}|${pa}`;da=`(${Va}) (\\d{1,2})[-–](?:\\d{1,2})`,ba=`(${Va}) (\\d{1,2})[-–](?:${Va}) (?:\\d{1,2})`,pa=`(${Va}) (\\d{1,2}), (\\d{4})`;const fa=`${da}|${ba}|${pa}`;da=`(${Va}) (\\d{1,2})[-–](?:\\d{1,2}).`,ba=`(${Va}) (\\d{1,2}). [-–] (?:${Va}) (?:\\d{1,2}).`,pa=`(?:\\d{4}). (${Va}) (\\d{1,2}).`;const ha=`${da}|${ba}|${pa}`;da=`(\\d{1,2})(?:${ma})(?:\\d{1,2}) ((?:${Va})+)`,ba=`(\\d{1,2}) ((?:${Va})+)(?:${ma})(?:\\d{1,2}) (?:(?:${Va})+)`,pa=`(\\d{1,2}) ((?:${Va})+), (\\d{4})`;const ja=`${da}|${ba}|${pa}`;da="(\\d{1,2})月(\\d{1,2})[-–](?:\\d{1,2})日",ba="(\\d{1,2})月(\\d{1,2})日",pa="(?:\\d{4})年(\\d{1,2})月(\\d{1,2})日";const $a=`${da}|${ba}|${pa}`;da="(\\d{1,2})월 (\\d{1,2})[-–](?:\\d{1,2})일",ba="(\\d{1,2})월 (\\d{1,2})일",pa="(?:\\d{4})년 (\\d{1,2})월 (\\d{1,2})일";const Sa=`${da}|${ba}|${pa}`;da=`(\\d{1,2})[-–](?:\\d{1,2}) (${Va})`,ba=`(\\d{1,2}) (${Va}) do (?:\\d{1,2}) (?:${Va})`,pa=`(\\d{1,2}) (${Va}) (\\d{4})`;const _a=`${da}|${ba}|${pa}`;da=`(\\d{1,2})[-–](?:\\d{1,2}) de (${Va})`,ba=`(\\d{1,2}) de (${Va}) a (?:\\d{1,2}) de (?:${Va})`,pa=`(\\d{1,2}) de (${Va}) de (\\d{4})`;const Ma=`${da}|${ba}|${pa}`;da=`(\\d{1,2})[-–](?:\\d{1,2}) de (${Va})`,ba=`(\\d{1,2}) de (${Va})[-–](?:\\d{1,2})(?:.º)? de (?:${Va})`,pa=`(\\d{1,2}) de (${Va}) de (\\d{4})`;const Ea=`${da}|${ba}|${pa}`;da=`(\\d{1,2})(?:${ma})(?:\\d{1,2}) no (${Va})`,ba=`(\\d{1,2}) no (${Va})(?:${ma})(?:\\d{1,2}) no ?(?:${Va})`,pa=`(\\d{1,2}) no (${Va}) (\\d{4})`;const va=`${da}|${ba}|${pa}`;da=`(\\d{1,2}) a (?:\\d{1,2}) de (${Va})`,ba=`(\\d{1,2}) de (${Va}) a (?:\\d{1,2}) de (?:${Va})`,pa=`(\\d{1,2}) de (${Va}) de (\\d{4})`;const xa=`${da}|${ba}|${pa}`;da="(\\d{1,2})[-](?:\\d{1,2}) (\\p{L}+\\p{M}*\\s\\d{1,2})",ba="(\\d{1,2}) (\\p{L}+\\p{M}*\\s\\d{1,2})[–]NGÀY (?:\\d{1,2}) (?:\\p{L}+\\p{M}*\\s\\d{1,2})",pa="(\\d{1,2}) (\\p{L}+\\p{M}*\\s\\d{1,2}) năm (\\d{4})";const Aa=`${da}|${ba}|${pa}`;da=`(\\d{1,2}).[-–](?:\\d{1,2}). (${Va})`,ba=`(\\d{1,2}). (${Va}) ?[-–] ?(?:\\d{1,2}). (?:${Va})`,pa=`(\\d{1,2}). (${Va}) (\\d{4})`;const ka=`${da}|${ba}|${pa}`,Ta={common:new RegExp(wa,"giu"),CH:new RegExp($a,"giu"),CHS:new RegExp($a,"giu"),E:new RegExp(fa,"giu"),ELI:new RegExp(fa,"giu"),FI:new RegExp(ka,"giu"),H:new RegExp(ha,"giu"),HI:new RegExp(ja,"giu"),IL:new RegExp(fa,"giu"),J:new RegExp($a,"giu"),KO:new RegExp(Sa,"giu"),LSB:new RegExp(Ea,"giu"),LSE:new RegExp(Ma,"giu"),P:new RegExp(_a,"giu"),PGW:new RegExp(fa,"giu"),S:new RegExp(Ma,"giu"),ST:new RegExp(ka,"giu"),SV:new RegExp(ka,"giu"),SW:new RegExp(fa,"giu"),T:new RegExp(Ea,"giu"),TG:new RegExp(fa,"giu"),TH:new RegExp(va,"giu"),TPO:new RegExp(xa,"giu"),TW:new RegExp(fa,"giu"),VT:new RegExp(Aa,"giu"),X:new RegExp(ka,"giu")},Ra=a=>{let e,i;return a[1]?(i=a[1],e=a[2]):a[3]?(i=a[3],e=a[4]):(i=a[5],e=a[6]),[i,e]},Na={common:a=>{let e,i;return a[1]?(e=a[1],i=a[2]):a[3]?(e=a[3],i=a[4]):(e=a[5],i=a[6]),[i,e]},CH:Ra,CHS:Ra,E:Ra,ELI:Ra,H:Ra,IL:Ra,J:Ra,KO:Ra,PGW:Ra,SW:Ra,TG:Ra,TW:Ra};da=`(\\d{1,2})(?:${ma})(?:\\d{1,2})? (${Va})(?:,)? (\\d{4})`,ba=`(\\d{1,2}) (${Va})(?:${ma})(?:\\d{1,2}) (?:${Va}) (\\d{4})`,pa=`(\\d{1,2}) (${Va})(?:,)? (\\d{4})`;const Oa=`${da}|${ba}|${pa}`;da=`(${Va}) (\\d{1,2})[-–](?:\\d{1,2})?, (\\d{4})`,ba=`(${Va}) (\\d{1,2})[-–](?:${Va}) (?:\\d{1,2}), (\\d{4})`,pa=`(${Va}) (\\d{1,2}), (\\d{4})`;const Ja=`${da}|${ba}|${pa}`;da=`(\\d{4}). (${Va}) (\\d{1,2})[-–](?:\\d{1,2}).`,ba=`(\\d{4}). (${Va}) (\\d{1,2}).`;const La=`${da}|${ba}`;da=`(\\d{1,2})(?:${ma})(?:\\d{1,2})? ((?:${Va})+), (\\d{4})`,ba=`(\\d{1,2}) ((?:${Va})+), (\\d{4})`;const Wa=`${da}|${ba}`;da="(\\d{4})年(?:nián)?(\\d{1,2})月(?:yuè)?(\\d{1,2})[-–~](\\d{1,2})日",ba="(\\d{4})年(?:nián)?(\\d{1,2})月(?:yuè)?(\\d{1,2})日";const Ia=`${da}|${ba}`;da="(\\d{4})년 (\\d{1,2})월 (\\d{1,2})[-–](\\d{1,2})일",ba="(\\d{4})년 (\\d{1,2})월 (\\d{1,2})일";const Ca=`${da}|${ba}`;da=`(\\d{1,2}) do (?:\\d{1,2})? (${Va}) (\\d{4})`,ba=`(\\d{1,2}) (${Va}) do (?:\\d{1,2}) (?:${Va}) (\\d{4})`,pa=`(\\d{1,2}) (${Va}) (\\d{4})`;const Da=`${da}|${ba}|${pa}`;da=`(\\d{1,2}) al (?:\\d{1,2})? de (${Va}) de (\\d{4})`,ba=`(\\d{1,2}) de (${Va}) de (\\d{4})`;const Pa=`${da}|${ba}`;da=`(\\d{1,2})[-](?:\\d{1,2})? de (${Va}) de (\\d{4})`,ba=`(\\d{1,2}) de (${Va})[-](?:\\d{1,2})?(?:.º)? de (?:${Va}) de (\\d{4})`,pa=`(\\d{1,2}) de (${Va}) de (\\d{4})`;const Fa=`${da}|${ba}|${pa}`;da=`(\\d{1,2})(?:${ma})(?:\\d{1,2})? no (${Va}) (\\d{4})`,ba=`(\\d{1,2}) (${Va})(?:${ma})(?:\\d{1,2}) no (?:${Va}) (\\d{4})`,pa=`(\\d{1,2}) no (${Va})(?:,)? (\\d{4})`;const Ha=`${da}|${ba}|${pa}`;da=`(\\d{1,2}) a (?:\\d{1,2})? de (${Va}) de (\\d{4})`,ba=`(\\d{1,2}) de (${Va}) de (\\d{4})`;const za=`${da}|${ba}`;da=`(\\d{1,2}) ka hatramin’ny (?:\\d{1,2})? (${Va}) (\\d{4})`,ba=`(\\d{1,2}) (${Va}) ka hatramin’ny (?:\\d{1,2}) (?:${Va}) (\\d{4})`,pa=`(\\d{1,2}) (${Va}) (\\d{4})`;const qa=`${da}|${ba}|${pa}`;da=`(${Va}) (\\d{1,2})[-–](?:\\d{1,2})?, (\\d{4})`,ba=`(${Va}) (\\d{1,2})[-–](?:${Va}) (?:\\d{1,2}), (\\d{4})`,pa=`(${Va}) (\\d{1,2}), (\\d{4})`;const Ga=`${da}|${ba}|${pa}`;da="(\\d{1,2})[-](?:\\d{1,2})? (\\p{L}+\\p{M}*\\s\\d{1,2}) năm (\\d{4})",ba="(\\d{1,2}) (\\p{L}+\\p{M}*\\s\\d{1,2}) năm (\\d{4})";const Ua=`${da}|${ba}`;da=`(\\d{1,2}).(?:${ma})(?:\\d{1,2}).? (${Va}) (\\d{4})`,ba=`(\\d{1,2}). (${Va})(?:${ma})(?:\\d{1,2}).? (?:${Va}) (\\d{4})`,pa=`(\\d{1,2}). (${Va}) (\\d{4})`;const Ba=`${da}|${ba}|${pa}`;da="(\\d{1,2}).[–](?:\\d{1,2}).(\\d{1,2}).(\\d{4})",ba="(\\d{1,2}).(\\d{1,2}).[–](?:\\d{1,2}).(?:\\d{1,2}).(\\d{4})",pa="(\\d{1,2}).(\\d{1,2}).(\\d{4})",ya=`(\\d{1,2}).[–](?:\\d{1,2}). (${Va}) (\\d{4})`,ga=`(\\d{1,2}). (${Va}) (\\d{4})`;const Ka=`${da}|${ba}|${pa}|${ya}|${ga}`,Za={common:new RegExp(Oa,"giu"),CH:new RegExp(Ia,"giu"),CHS:new RegExp(Ia,"giu"),E:new RegExp(Ja,"giu"),ELI:new RegExp(Ja,"giu"),FI:new RegExp(Ka,"giu"),H:new RegExp(La,"giu"),HI:new RegExp(Wa,"giu"),IL:new RegExp(Ja,"giu"),J:new RegExp(Ia,"giu"),KO:new RegExp(Ca,"giu"),LSB:new RegExp(Fa,"giu"),LSE:new RegExp(Pa,"giu"),P:new RegExp(Da,"giu"),PGW:new RegExp(Ja,"giu"),S:new RegExp(Pa,"giu"),ST:new RegExp(Ba,"giu"),SV:new RegExp(Ba,"giu"),SW:new RegExp(Ja,"giu"),T:new RegExp(Fa,"giu"),TH:new RegExp(Ha,"giu"),TPO:new RegExp(za,"giu"),TG:new RegExp(Ja,"giu"),TTM:new RegExp(qa,"giu"),TW:new RegExp(Ga,"giu"),VT:new RegExp(Ua,"giu"),X:new RegExp(Ba,"giu")},Ya=a=>{let e,i,r;return a[1]?(i=a[1],e=a[2],r=a[3]):a[4]?(i=a[4],e=a[5],r=a[6]):(i=a[7],e=a[8],r=a[9]),[r,i,e]},Xa=a=>{let e,i,r;return a[1]?(r=a[1],i=a[2],e=a[3]):(r=a[5],i=a[6],e=a[7]),[r,i,e]},Qa={common:a=>{let e,i,r;return a[1]?(e=a[1],i=a[2],r=a[3]):a[4]?(e=a[4],i=a[5],r=a[6]):(e=a[7],i=a[8],r=a[9]),[r,i,e]},CH:Xa,CHS:Xa,E:Ya,ELI:Ya,FI:a=>{let e,i,r;return a[1]?(e=a[1],i=a[2],r=a[3]):a[4]?(e=a[4],i=a[5],r=a[6]):a[7]?(e=a[7],i=a[8],r=a[9]):a[10]?(e=a[10],i=a[11],r=a[12]):(e=a[13],i=a[14],r=a[15]),[r,i,e]},H:a=>{let e,i,r;return a[1]?(r=a[1],i=a[2],e=a[3]):(r=a[4],i=a[5],e=a[6]),[r,i,e]},IL:Ya,J:Xa,KO:Xa,PGW:Ya,SW:Ya,TG:Ya,TW:Ya},ae=a=>a.querySelectorAll("h3"),ee=(a,e,i)=>{const r=ta.find((a=>a.code===i)),t={},n=(a=>a.querySelector("h1").textContent.replace(/\u00A0/g," "))(a);if(r){const a=((a,e,i)=>{const r=a.trim().replace(" "," ").replace("","").replace("","").replace(/\u200F/g,"").replace(/\u200B/g,""),t=Ta[i]||Ta.common;if(!r.match(t))throw new na("mwb",`Parsing failed for Meeting Workbook Date. The input was: ${a}`);const n=Array.from(t.exec(r)),o=Na[i]||Na.common;let[s,u]=o(n);if(isNaN(+s)){const a=sa(i).find((a=>a.name.toLocaleLowerCase().includes(s.toLowerCase()))).index;s=String(a+1)}return`${e}/${String(s).padStart(2,"0")}/${String(u).padStart(2,"0")}`})(n,e,i);t.mwb_week_date=a,t.mwb_week_date_locale=n}else t.mwb_week_date=n;t.mwb_weekly_bible_reading=(a=>a.querySelector("h2").textContent.replace(/\u00A0/g," "))(a);const o=(a=>{let e="";const i=a.querySelectorAll(".pGroup");for(const a of i){const i=a.querySelectorAll("li");for(const a of i)e+="@"+a.querySelector("p").textContent}if(0===e.length){const i=a.querySelectorAll("h3");let r=0;for(const a of i){let i=a.classList.contains("dc-icon--music");const t=!1===a.parentNode.classList.contains("boxContent");if(i||(i=!!a.querySelector(".dc-icon--music")),i&&r++,i||t){let n="";if(n=a.textContent,i&&(n=n.replace("|","@")),t){const e=a.nextElementSibling;if(e){const a=e.querySelector("p");a&&(n+=` ${a.textContent}`)}}e+="@"+n;const o=a.nextElementSibling;if(i&&2===r&&"DIV"===o?.tagName&&"H3"!==o?.nextElementSibling?.tagName){const a=o.querySelector("p");if(a){e+="@"+a.textContent;const i=o.nextElementSibling?.querySelector("p");i&&(e+=" "+i.textContent);continue}}}}const t=e.split("@",5).join("@").length;e=e.substring(0,t)+"@junk@junk"+e.substring(t)}return e=e.replace(/\u00A0/g," "),e})(a);let s=o.split("@"),u="";if(t.mwb_song_first=ca(s[1]),u=s[3].trim(),r){const a=la(u,i);t.mwb_tgw_talk=a.type,t.mwb_tgw_talk_title=a.fulltitle}else t.mwb_tgw_talk=u;if(u=s[4].trim(),r){const a=la(u,i);t.mwb_tgw_gems_title=a.fulltitle}else t.mwb_tgw_gems_title=u;if(u=s[7].trim(),r){const a=la(u,i);t.mwb_tgw_bread=a.src,t.mwb_tgw_bread_title=a.fulltitle}else t.mwb_tgw_bread=u;const c=(a=>{let e=1;const i=a.querySelector("#section3");return i&&(e=i.querySelectorAll("li").length),i||(e=a.querySelectorAll(".du-color--gold-700").length-1),e})(a);if(t.mwb_ayf_count=c,u=s[8].trim(),r){const a=la(u,i);t.mwb_ayf_part1=a.src,t.mwb_ayf_part1_time=a.time,t.mwb_ayf_part1_type=a.type,t.mwb_ayf_part1_title=a.fulltitle}else t.mwb_ayf_part1=u;if(c>1)if(u=s[9].trim(),r){const a=la(u,i);t.mwb_ayf_part2=a.src,t.mwb_ayf_part2_time=a.time,t.mwb_ayf_part2_type=a.type,t.mwb_ayf_part2_title=a.fulltitle}else t.mwb_ayf_part2=u;if(c>2)if(u=s[10].trim(),r){const a=la(u,i);t.mwb_ayf_part3=a.src,t.mwb_ayf_part3_time=a.time,t.mwb_ayf_part3_type=a.type,t.mwb_ayf_part3_title=a.fulltitle}else t.mwb_ayf_part3=u;if(c>3)if(u=s[11].trim(),r){const a=la(u,i);t.mwb_ayf_part4=a.src,t.mwb_ayf_part4_time=a.time,t.mwb_ayf_part4_type=a.type,t.mwb_ayf_part4_title=a.fulltitle}else t.mwb_ayf_part4=u;let l=c>3?12:c>2?11:c>1?10:9;t.mwb_song_middle=ca(s[l]);const m=(a=>{let e=1;const i=a.querySelector("#section4");return i&&(e=i.querySelectorAll("li").length,e=6===e?2:1),null===i&&(e=a.querySelectorAll(".du-color--maroon-600.du-margin-top--8.du-margin-bottom--0").length-1),e})(a);if(t.mwb_lc_count=m,l++,u=s[l].trim(),r){const a=la(u,i);t.mwb_lc_part1=a.type,t.mwb_lc_part1_time=a.time,t.mwb_lc_part1_title=a.fulltitle,a.src&&""!==a.src&&(t.mwb_lc_part1_content=a.src)}else t.mwb_lc_part1=u;if(2===m)if(l++,u=s[l].trim(),r){const a=la(u,i);t.mwb_lc_part2=a.type,t.mwb_lc_part2_time=a.time,t.mwb_lc_part2_title=a.fulltitle,a.src&&""!==a.src&&(t.mwb_lc_part2_content=a.src)}else t.mwb_lc_part2=u;if(l++,u=s[l].trim(),r){const a=la(u,i);t.mwb_lc_cbs=a.src,t.mwb_lc_cbs_title=a.fulltitle}else t.mwb_lc_cbs=u;return l++,l++,u=s[l].trim(),t.mwb_song_conclude=ca(u),t},ie=(a,e,i)=>{const r=ta.find((a=>a.code===i)),t={},n=(a=>{let e;const i=a.querySelector(".desc");return null===i&&(e=a.textContent.replace(/\u00A0/g," ")),null!==i&&(e=i.textContent.replace(/\u00A0/g," ")),e})(a);if(n.length>0)if(r){const a=((a,e)=>{let i=a=a.trim().replace(" "," ").replace("","").replace("","").replace(/\u200F/g,"").replace(/\u200B/g,"");const r=ua[e];if(r){const e=r[a];e&&(i=e)}const t=Za[e]||Za.common;if(!i.match(t))throw new na("wtstudy",`Parsing failed for Watchtower Study Date. The input was: ${i}`);const n=Array.from(t.exec(i)),o=Qa[e]||Qa.common;let[s,u,c]=o(n);if(isNaN(+u)){const a=sa(e).find((a=>a.name.toLocaleLowerCase().includes(u.toLowerCase()))).index;u=String(a+1)}return`${s}/${String(u).padStart(2,"0")}/${String(c).padStart(2,"0")}`})(n,i);t.w_study_date=a,t.w_study_date_locale=n}else t.w_study_date=n;const o=(a=>{let e;const i=a.querySelector("h2");null===i&&(e=a.nextElementSibling.querySelector("a").textContent.replace(/\u00A0/g," "));return null!==i&&(e=i.textContent.trim().replace(/\u00A0/g," ")),e})(a);t.w_study_title=o;const s=(a=>{const e=a.querySelectorAll(".pubRefs"),i=e.at(0),r=ca(i.textContent);let t=e.at(-1);2===e.length&&(t=a.querySelector(".blockTeach").nextElementSibling);return{w_study_opening_song:r,w_study_concluding_song:ca(t.textContent)}})(e);return t.w_study_opening_song=s.w_study_opening_song,t.w_study_concluding_song=s.w_study_concluding_song,t},re=async({htmlDocs:a,year:e,lang:i})=>{const r=[];for(const t of a){const a=ee(t,e,i);r.push(a)}return r},te=async a=>{const e=new r;return await e.loadAsync(a)},ne=async(a,e)=>{let i;for(let[r]of Object.entries(a.files)){if(meeting_schedules_parser.path.basename(r)===e){const e=await aa(a,r);i=ia(e);break}}return i},oe=async(a,e)=>{let i=[];const r=B(a),t=K(a),n=await te(e),o=await(async(a,e,i)=>{const r=[];for(let[t]of Object.entries(a.files))if(Q(t)){const n=await aa(a,t),o=ia(n);(e?ea(o):i&&ra(o))&&r.push(o)}return r})(n,r,t);if(0===o.length)throw new Error(`The file you provided is not a valid ${r?"Meeting Workbook":"Watchtower Study"} EPUB file. Please make sure that the file is correct.`);if(t&&o.length>1)throw new Error("The file you provided is not a valid Watchtower Study EPUB file. Please make sure that the file is correct.");const s=Y(a),u=X(a);return r&&(i=await re({htmlDocs:o,year:s,lang:u})),t&&(i=await(async({htmlItem:a,epubLang:e,epubContents:i})=>{const r=[],t=ae(a);for(const[a,n]of t.entries()){const a=n.nextElementSibling.querySelector("a").getAttribute("href"),t=await ne(i,a),o=ie(n,t,e);r.push(o)}return r})({htmlItem:o[0],epubLang:u,epubContents:n})),i},se=a=>{const e=a.replace(/[^a-fA-F0-9]/g,""),i=new Uint8Array(e.length/2);for(let a=0;a<i.length;a++)i[a]=parseInt(e.slice(2*a,2*a+2),16);return i},ue=async a=>{const e=(new TextEncoder).encode(a);return(a=>{const e=new Uint8Array(a);return Array.from(e).map((a=>a.toString(16).padStart(2,"0"))).join("")})(await crypto.subtle.digest("SHA-256",e))},ce=async(a,e)=>{const i=await ue(a),r=((a,e)=>{if(a.length!==e.length)throw new Error("Buffers must be same length");return a.map(((a,i)=>a^e[i%e.length]))})(se(i),se(e));return t=r,[...t].map((a=>a.toString(16).padStart(2,"0"))).join("");var t},le=async(a,e,i)=>{const r=await(async(a,e,i)=>{const r=await crypto.subtle.importKey("raw",se(e),{name:"AES-CBC"},!1,["decrypt"]);return await crypto.subtle.decrypt({name:"AES-CBC",iv:se(i)},r,a)})(a,e,i),t=new Uint8Array(r),o=n(t);return(new TextDecoder).decode(o)},me=async(a,e,i)=>{const r=await(async a=>{const e=await meeting_schedules_parser.loadSQL(),i=await a.files.contents.async("uint8array"),r=await te(i),t=Object.keys(r.files).find((a=>a.endsWith(".db")));if(!t)throw new Error("Database file not found in the JWPUB file.");const n=await r.files[t].async("uint8array");return new e.Database(n)})(a),t=(a=>{const e=a.exec("SELECT MepsLanguageIndex, Symbol, Year, IssueTagNumber FROM Publication");if(0===e.length)throw new Error("The file selected is not a valid JWPUB file.");return e[0].values[0].join("_")})(r),{key:n,iv:o}=await(async a=>{const e=atob("MTFjYmI1NTg3ZTMyODQ2ZDRjMjY3OTBjNjMzZGEyODlmNjZmZTU4NDJhM2E1ODVjZTFiYzNhMjk0YWY1YWRhNw=="),i=await ce(a,e);return{key:i.slice(0,32),iv:i.slice(32)}})(t);if(e){const a=await(async(a,e,i)=>{const r=[],t=a.exec("SELECT Content FROM Document WHERE Class='106'");for(const a of t.at(0).values){const t=a.at(0),n=await le(t,e,i),o=ia(n);o.querySelectorAll("rt").forEach((a=>a.remove())),r.push(o)}return r})(r,n,o);return a}if(i){const a=await(async(a,e,i)=>{const r=[];let t=a.exec("SELECT Content FROM Document WHERE Class='68'");const n=t.at(0).values.at(0).at(0),o=await le(n,e,i),s=ia(o);s.querySelectorAll("rt").forEach((a=>a.remove())),t=a.exec("SELECT MepsDocumentId, Content FROM Document WHERE Class='40'");for(const a of t.at(0).values){const t=+a.at(0),n=a.at(1),o=await le(n,e,i),s=ia(o);s.querySelectorAll("rt").forEach((a=>a.remove())),r.push({id:t,article:s})}return{toc:s,articles:r}})(r,n,o);return a}},Ve=async(a,e)=>e.find((e=>e.id===a)).article,de=async(a,e)=>{let i=[];const r=B(a),t=K(a),n=await te(e);if(2!==Object.keys(n.files).length)throw new Error(`The file you provided is not a valid ${r?"Meeting Workbook":"Watchtower Study"} JWPUB file. Please make sure that the file is correct.`);const o=Y(a),s=X(a),u=await me(n,r,t);if(r&&(i=await re({htmlDocs:u,year:o,lang:s})),t){const a=u;i=await(async({htmlItem:a,htmlDocs:e,lang:i})=>{const r=[],t=ae(a);for(const[a,n]of t.entries()){const a=n.nextElementSibling.querySelector("a").getAttribute("href"),t=+Array.from(/.+:(\w+)\/$/.exec(a))[1],o=await Ve(+t,e),s=ie(n,o,i);r.push(s)}return r})({htmlItem:a.toc,htmlDocs:a.articles,lang:s})}return i},be=async a=>{let e=[];if(!(a=>{const e=Z(a),i=B(e),r=K(e);return i||r})(a))throw new Error("The selected file has an incorrect naming.");if(!(a=>{let e=!0;const i=Z(a),r=B(i),t=K(i),n=r?"mwb":t?"w":void 0,o=+i.split("_")[2].split(".epub")[0];return"mwb"===n&&o<202207&&(e=!1),"w"===n&&o<202304&&(e=!1),e})(a))throw new Error("Parsing is only supported for Meeting Workbook starting on July 2022, and for Watchtower Study starting on April 2023.");const i=await(async a=>{let e;if(a instanceof Blob&&(e=a),"object"==typeof a&&"url"in a){const i=await fetch(a.url);if(200!==i.status)throw new Error("Publication could not be downloaded. Check the URL you provided.");const r=await i.blob();e=await r.arrayBuffer()}"string"==typeof a&&(e=await meeting_schedules_parser.readFile(a));return e})(a),t=await(async a=>{let e=0,i=0,t="archive_tmp";const n={isBig:!1,isMore:!1,isSuspicious:!1},o=new r,s=await o.loadAsync(a);for(let[a]of Object.entries(s.files))e++,e>300&&(n.isMore=!0),meeting_schedules_parser.path.join(t,a).startsWith(t)||(n.isSuspicious=!0),i+=(await o.file(a).async("arraybuffer")).byteLength,i>2e7&&(n.isBig=!0);return e=0,i=0,n})(i);if(t.isBig)throw new Error("Publication size seems to be large. Parsing aborted.");if(t.isMore)throw new Error("Publication seems to contain more files than expected. Parsing aborted.");if(t.isSuspicious)throw new Error("Publication seems to be suspicious. Parsing aborted.");const n=Z(a),o=(s=n,meeting_schedules_parser.path.extname(s));var s;return".jwpub"===o&&(e=await de(n,i)),".epub"===o&&(e=await oe(n,i)),e},pe=async a=>{try{(a=>{if(!a)throw new Error("You did not pass anything to the loadPub function.")})(a);return await be(a)}catch(a){throw console.error(a),new Error(a?.message)}};export{pe as loadPub};
//# sourceMappingURL=index.js.map