Socket
Socket
Sign inDemoInstall

jw-epub-parser

Package Overview
Dependencies
25
Maintainers
2
Versions
128
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.10.0 to 3.11.0

2

dist/node/index.js

@@ -1,2 +0,2 @@

import*as a from"path";import{readFile as r}from"fs/promises";import e from"jszip";import{parse as t}from"node-html-parser";function i(a,r,e,t){return new(e||(e=Promise))((function(i,o){function n(a){try{u(t.next(a))}catch(a){o(a)}}function s(a){try{u(t.throw(a))}catch(a){o(a)}}function u(a){var r;a.done?i(a.value):(r=a.value,r instanceof e?r:new e((function(a){a(r)}))).then(n,s)}u((t=t.apply(a,r||[])).next())}))}var o={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",studyArticleDateVariations:"Study Article {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},n={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",studyArticleDateVariations:"Article d’étude no {{ number }} : {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min)"},s={januaryVariations:"Gennaio",februaryVariations:"Febbraio",marchVariations:"Marzo",aprilVariations:"Aprile",mayVariations:"Maggio",juneVariations:"Giugno",julyVariations:"Luglio",augustVariations:"Agosto",septemberVariations:"Settembre",octoberVariations:"Ottobre",novemberVariations:"Novembre",decemberVariations:"Dicembre",studyArticleDateVariations:"Articolo di studio {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} min)"},u={januaryVariations:"1月",februaryVariations:"2月",marchVariations:"3月",aprilVariations:"4月",mayVariations:"5月",juneVariations:"6月",julyVariations:"7月",augustVariations:"8月",septemberVariations:"9月",octoberVariations:"10月",novemberVariations:"11月",decemberVariations:"12月",studyArticleDateVariations:"研究記事{{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }}分)"},c={januaryVariations:"Січень|січень|січня",februaryVariations:"Лютий|лютий|лютого",marchVariations:"Березень|березень|березня",aprilVariations:"Квітень|квітень|квітня",mayVariations:"Травень|травень|травня",juneVariations:"Червень|червень|червня",julyVariations:"Липень|липень|липня",augustVariations:"Серпень|серпень|серпня",septemberVariations:"Вересень|вересень|вересня",octoberVariations:"Жовтень|жовтень|жовтня",novemberVariations:"Листопад|листопад|листопада",decemberVariations:"Грудень|грудень|грудня",studyArticleDateVariations:"Стаття для вивчення {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} хв)"},l={januaryVariations:"Ianuarie",februaryVariations:"Februarie",marchVariations:"Martie",aprilVariations:"Aprilie",mayVariations:"Mai",juneVariations:"Iunie",julyVariations:"Iulie",augustVariations:"August",septemberVariations:"Septembrie",octoberVariations:"Octombrie",novemberVariations:"Noiembrie",decemberVariations:"Decembrie",studyArticleDateVariations:"Articolul de studiu {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},m={januaryVariations:"Janoary",februaryVariations:"Febroary",marchVariations:"Martsa",aprilVariations:"Aprily",mayVariations:"Mey",juneVariations:"Jona",julyVariations:"Jolay",augustVariations:"Aogositra",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",studyArticleDateVariations:"Lahatsoratra Fianarana {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},d={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",studyArticleDateVariations:"Artykuł do studium od {{ date }}|Artykuł do studium w tygodniu od {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min)|({{ duration }} min.)"},b={januaryVariations:"Enero",februaryVariations:"Febrero",marchVariations:"Marzo",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Junio",julyVariations:"Julio",augustVariations:"Agosto",septemberVariations:"Septiembre",octoberVariations:"Octubre",novemberVariations:"Noviembre",decemberVariations:"Diciembre",studyArticleDateVariations:"Artículo de estudio {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} mins.)|({{ duration }} min.)"},V={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",studyArticleDateVariations:"Estudo para a semana de {{ date }}",partMinutesSeparatorVariations:"({{ duration }}min)|({{ duration }} min)|({{ duration }} min.)"},y={januaryVariations:"Enero",februaryVariations:"Pebrero",marchVariations:"Marso",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Hunyo",julyVariations:"Hulyo",augustVariations:"Agosto",septemberVariations:"Setyembre",octoberVariations:"Oktubre",novemberVariations:"Nobyembre",decemberVariations:"Disyembre",studyArticleDateVariations:"Araling artikulo {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},p={januaryVariations:"Ocak",februaryVariations:"Şubat",marchVariations:"Mart",aprilVariations:"Nisan|NİSAN",mayVariations:"Mayıs",juneVariations:"Haziran",julyVariations:"Temmuz",augustVariations:"Ağustos",septemberVariations:"Eylül",octoberVariations:"Ekim",novemberVariations:"Kasım",decemberVariations:"Aralık",studyArticleDateVariations:"{{ number }}. İnceleme Makalesi: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} dk.)"},f={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",studyArticleDateVariations:"Lahatsoratse Fianaragne {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)|({{ duration }} min)|({{ duration }} min.)"},g={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",studyArticleDateVariations:"Lahatsoratra Fianaran̈a {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)|({{ duration }} min)({{ duration }} min.)|({{ duration }} min)|({{ duration }}min)|({{ duration }}min.)"},h={januaryVariations:"Janoary",februaryVariations:"Febroary",marchVariations:"Martsa",aprilVariations:"Aprily",mayVariations:"Mey",juneVariations:"Jona",julyVariations:"Jolay",augustVariations:"Aogositra",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",studyArticleDateVariations:"Hianarana ny herinandron’ny {{ date }}|Hianarana mandritra ny herinandron’ny {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},w={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",studyArticleDateVariations:"Yebesua no {{ date }}",partMinutesSeparatorVariations:"(Simma {{ duration }})"},_={januaryVariations:"Январь|января",februaryVariations:"Февраль|февраля",marchVariations:"Март|марта",aprilVariations:"Апрель|апреля",mayVariations:"Май|мая",juneVariations:"Июнь|июня",julyVariations:"Июль|июля",augustVariations:"Август|августа",septemberVariations:"Сентябрь|сентября",octoberVariations:"Октябрь|октября",novemberVariations:"Ноябрь|ноября",decemberVariations:"Декабрь|декабря",studyArticleDateVariations:"Статья для изучения {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} мин.)"},v={januaryVariations:"Zanviè",februaryVariations:"Fevriè",marchVariations:"Marsa",aprilVariations:"Avrily",mayVariations:"Mey",juneVariations:"Ziein",julyVariations:"Ziè",augustVariations:"Oòh",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",studyArticleDateVariations:"Lahatsoratsy Fianara {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)|({{ duration }} min)|({{ duration }}min.)"},j={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",studyArticleDateVariations:"{{ number }}. Studienartikel {{ date }}",partMinutesSeparatorVariations:"({{ duration }} Min)|({{ duration }} Min.)"};global.jw_epub_parser={languages:{E:o,F:n,I:s,J:u,K:c,M:l,MG:m,P:d,S:b,T:V,TG:y,TK:p,TND:f,TNK:g,TTM:h,TW:w,U:_,VZ:v,X:j},path:a,readFile:r};var S=[{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:"ro-RO",code:"M"},{locale:"mg-MG",code:"MG"},{locale:"pl-PL",code:"P"},{locale:"es-ES",code:"S"},{locale:"pt-BR",code:"T"},{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"}];class A extends Error{constructor(a,r){super(r),this.code=`jw-epub-parser/failed-${a}`}}const M=jw_epub_parser.languages,x=a=>[{index:0,name:M[a].januaryVariations},{index:1,name:M[a].februaryVariations},{index:2,name:M[a].marchVariations},{index:3,name:M[a].aprilVariations},{index:4,name:M[a].mayVariations},{index:5,name:M[a].juneVariations},{index:6,name:M[a].julyVariations},{index:7,name:M[a].augustVariations},{index:8,name:M[a].septemberVariations},{index:9,name:M[a].octoberVariations},{index:10,name:M[a].novemberVariations},{index:11,name:M[a].decemberVariations}],D=a=>+a.match(/(\d+)/)[0],k=(a,r)=>{const e=(a=>M[a].partMinutesSeparatorVariations)(r).split("|");let t;for(const r of e){let e=r.replace("{{ duration }}","\\d+");e=e.replace("(","\\("),e=e.replace(")","\\)"),e=e.replace(") ",") ?"),e=e.replace("??","?");const i=new RegExp(e.trim()),o=a.match(i);if(o){const r=a.split(i),e=+o[0].match(/\d+/)[0],n=/^[:.「]/,s=/[:」]$/,u=r[0].trim(),c=r[1].trim().replace(n,"").replace(s,"").trim(),l=/\d{1,2}[-.] /g,m=u.match(l),d=u.split(l);let b;b=m?d[1].trim():u,b=b.replace(n,"").replace(s,"").trim(),t={type:b,time:e,src:c}}}if(t)return t;throw new A("jw-epub-parser",`Parsing failed. The input was: ${a}`)},E=(a,r)=>{let e,t,i;const o=(a=>M[a].studyArticleDateVariations)(r).split("|");a=a.toLowerCase();a:for(const n of o){let o=n.toLowerCase().replace("{{ date }}","");o=o.replace("{{ number }}","\\d+");const s=new RegExp(o.trim()).exec(a);if(null!==s){const n=s[0].length;if(n>0){const s=a.substring(n);o=s.trim();const u=o.toLowerCase(),c=new RegExp(["bis","–","-","—","do"].join("|"),"gi"),l=u.split(c),m=x(r);for(const a of l)for(const n of m){let u=`(${n.name.toLowerCase()})`;"J"===r&&(u=`\\b${u}\\b`);const c=new RegExp(u).exec(a);if(Array.isArray(c)){const a=/\d+/g,u=o.match(a);"J"===r&&(e=+u[2]),"J"!==r&&(e=+u[0]),t=n.index;const c=/\b\d{4}\b/.exec(s);null!==c&&(i=+c[0]);break a}}}}}if("number"==typeof e&&"number"==typeof t&&"number"==typeof i)return{varDay:e,monthIndex:t,varYear:i};throw new A("wtstudy",`Parsing failed for Watchtower Study Date. The input was: ${a}`)},T=(a,r,e)=>{const{varDay:t,monthIndex:i}=((a,r)=>{let e,t;const i=a.toLowerCase(),o=new RegExp(["bis","–","-","—"].join("|"),"gi"),n=i.split(o),s=x(r);a:for(const a of n)for(const o of s){let n=`(${o.name.toLowerCase()})`;"J"===r&&(n=`\\b${n}\\b`);const s=new RegExp(n).exec(a);if(Array.isArray(s)){const a=/\d+/g,n=i.match(a);"J"===r&&(e=+n[1]),"J"!==r&&(e=+n[0]),t=o.index;break a}}if("number"==typeof e&&"number"==typeof t)return{varDay:e,monthIndex:t};throw new A("week-date",`Parsing failed when extracting the week date. The input was: ${a}`)})(a,e);return`${r}/${String(i+1).padStart(2,"0")}/${String(t).padStart(2,"0")}`},q=a=>{let r=!1;if(a.startsWith("OEBPS")&&a.endsWith(".xhtml")&&-1===a.indexOf("-extracted")){const e=a.split("/")[1].split(".")[0];isNaN(parseFloat(e))||(r=!0)}return r},J=(a,r)=>i(void 0,void 0,void 0,(function*(){return yield a.file(r).async("string")})),L=a=>{let r=!1,e=!1,t=!1,i=!1;return e=!!a.querySelector("[class*=treasures]"),e&&(t=!!a.querySelector("[class*=ministry]"),i=!!a.querySelector("[class*=christianLiving]")),e||(e=!!a.querySelector(".du-color--teal-700"),e&&(t=!!a.querySelector(".du-color--gold-700"),i=!!a.querySelector(".du-color--maroon-600"))),!0===e&&!0===t&&!0===i&&(r=!0),r},N=a=>t(a),C=a=>!!a.querySelector(".groupTOC"),O=(a,r)=>i(void 0,void 0,void 0,(function*(){let e;for(let[t]of Object.entries(a.files)){if(jw_epub_parser.path.basename(t)===r){const r=yield J(a,t);e=N(r);break}}return e})),P=a=>/^mwb_[A-Z][A-Z]?[A-Z]?_202\d(0[1-9]|1[0-2])\.epub$/i.test(a),F=a=>/^w_[A-Z][A-Z]?[A-Z]?_202\d(0[1-9]|1[0-2])\.epub$/i.test(a),z=a=>{let r;return r="object"==typeof a&&"url"in a?a.url:a instanceof Blob&&"name"in a?a.name:a,jw_epub_parser.path.basename(r)},$=a=>i(void 0,void 0,void 0,(function*(){let r={};const t=(a=>{const r=z(a),e=P(r),t=F(r);return e||t})(a);if(!t)throw new Error("The selected epub file has an incorrect naming.");const o=(a=>{let r=!0;const e=z(a),t=P(e),i=F(e),o=t?"mwb":i?"w":void 0,n=+e.split("_")[2].split(".epub")[0];return"mwb"===o&&n<202207&&(r=!1),"w"===o&&n<202304&&(r=!1),r})(a);if(!o)throw new Error("EPUB import is only supported for Meeting Workbook starting on July 2022, and for Watchtower Study starting on April 2023.");const n=yield(s=a,i(void 0,void 0,void 0,(function*(){let a;if(s instanceof Blob&&(a=s),"object"==typeof s&&"url"in s){const r=yield fetch(s.url);if(200!==r.status)throw new Error("EPUB file could not be downloaded. Check the URL you provided.");const e=yield r.blob();a=yield e.arrayBuffer()}return"string"==typeof s&&(a=yield jw_epub_parser.readFile(s)),a})));var s;const u=yield(c=n,i(void 0,void 0,void 0,(function*(){let a=0,r=0,t="archive_tmp";const i={isBig:!1,isMore:!1,isSuspicious:!1},o=new e,n=yield o.loadAsync(c);for(let[e]of Object.entries(n.files))a++,a>300&&(i.isMore=!0),jw_epub_parser.path.join(t,e).startsWith(t)||(i.isSuspicious=!0),r+=(yield o.file(e).async("arraybuffer")).byteLength,r>2e7&&(i.isBig=!0);return a=0,r=0,i})));var c;if(u.isBig)throw new Error("EPUB file seems to be large. Extract aborted.");if(u.isMore)throw new Error("EPUB file seems to contain more files than expected. Extract aborted.");if(u.isSuspicious)throw new Error("EPUB file seems to be suspicious. Extract aborted.");const l=z(a),m=P(l),d=F(l),b=yield(a=>i(void 0,void 0,void 0,(function*(){const r=new e;return yield r.loadAsync(a)})))(n),V=yield((a,r,e)=>i(void 0,void 0,void 0,(function*(){const t=[];for(let[i]of Object.entries(a.files))if(q(i)){const o=yield J(a,i),n=N(o);(r?L(n):e&&C(n))&&t.push(n)}return t})))(b,m,d);if(0===V.length)throw new Error(`The file you provided is not a valid ${m?"Meeting Workbook":"Watchtower Study"} EPUB file. Please make sure that the file is correct.`);if(d&&V.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 y=(a=>+z(a).split("_")[2].substring(0,4))(a),p=(a=>z(a).split("_")[1])(a);return m&&(r=yield I({htmlDocs:V,epubYear:y,epubLang:p})),d&&(r=yield U({htmlItem:V[0],epubLang:p,epubContents:b})),r})),B=(a,r,e)=>{const t=S.find((a=>a.code===e)),i={},o=(a=>a.querySelector("h1").textContent.replace(/\u00A0/g," "))(a);if(t){const a=T(o,r,e);i.mwb_week_date=a,i.mwb_week_date_locale=o}else i.mwb_week_date=o;i.mwb_weekly_bible_reading=(a=>a.querySelector("h2").textContent.replace(/\u00A0/g," "))(a);const n=(a=>{let r="";const e=a.querySelectorAll(".pGroup");for(const a of e){const e=a.querySelectorAll("li");for(const a of e)r+="@"+a.querySelector("p").textContent}if(0===r.length){const e=a.querySelectorAll("h3");for(const a of e){let e=a.classList.contains("dc-icon--music");e||(e=!!a.querySelector(".dc-icon--music"));let t="";t=a.textContent,e&&(t=t.replace("|","@")),r+="@"+t;const i=a.nextElementSibling;if(i){const a=i.querySelector(".du-color--textSubdued");a&&(r+=" "+a.querySelector("p").textContent)}}const t=r.split("@",5).join("@").length;r=r.substring(0,t)+"@junk@junk"+r.substring(t)}return r=r.replace(/\u00A0/g," "),r})(a);let s=n.split("@"),u="";i.mwb_song_first=D(s[1]),u=s[3].trim(),i.mwb_tgw_talk=t?k(u,e).type:u,u=s[7].trim(),i.mwb_tgw_bread=t?k(u,e).src:u;const c=(a=>{let r=1;const e=a.querySelector("#section3");return e&&(r=e.querySelectorAll("li").length),e||(r=a.querySelectorAll(".du-color--gold-700").length-1),r})(a);if(i.mwb_ayf_count=c,u=s[8].trim(),t){const a=k(u,e);i.mwb_ayf_part1=a.src,i.mwb_ayf_part1_time=a.time,i.mwb_ayf_part1_type=a.type}else i.mwb_ayf_part1=u;if(c>1)if(u=s[9].trim(),t){const a=k(u,e);i.mwb_ayf_part2=a.src,i.mwb_ayf_part2_time=a.time,i.mwb_ayf_part2_type=a.type}else i.mwb_ayf_part2=u;if(c>2)if(u=s[10].trim(),t){const a=k(u,e);i.mwb_ayf_part3=a.src,i.mwb_ayf_part3_time=a.time,i.mwb_ayf_part3_type=a.type}else i.mwb_ayf_part3=u;if(c>3)if(u=s[11].trim(),t){const a=k(u,e);i.mwb_ayf_part4=a.src,i.mwb_ayf_part4_time=a.time,i.mwb_ayf_part4_type=a.type}else i.mwb_ayf_part4=u;let l=c>3?12:c>2?11:c>1?10:9;i.mwb_song_middle=D(s[l]);const m=(a=>{let r=1;const e=a.querySelector("#section4");return e&&(r=e.querySelectorAll("li").length,r=6===r?2:1),null===e&&(r=a.querySelectorAll("h3.du-color--maroon-600").length-1),r})(a);if(i.mwb_lc_count=m,l++,u=s[l].trim(),t){const a=k(u,e);i.mwb_lc_part1=a.type,i.mwb_lc_part1_time=a.time,a.src&&""!==a.src&&(i.mwb_lc_part1_content=a.src)}else i.mwb_lc_part1=u;if(2===m)if(l++,u=s[l].trim(),t){const a=k(u,e);i.mwb_lc_part2=a.type,i.mwb_lc_part2_time=a.time,a.src&&""!==a.src&&(i.mwb_lc_part2_content=a.src)}else i.mwb_lc_part2=u;return l++,u=s[l].trim(),i.mwb_lc_cbs=t?k(u,e).src:u,l++,l++,u=s[l].trim(),i.mwb_song_conclude=(a=>{const r=D(a);return r>151?a:r})(u),i},Z=(a,r,e)=>{const t=S.find((a=>a.code===e)),i={},o=(a=>{let r;const e=a.querySelector(".desc");return null===e&&(r=a.textContent.replace(/\u00A0/g," ")),null!==e&&(r=e.textContent.replace(/\u00A0/g," ")),r})(a);if(o.length>0)if(t){const a=((a,r)=>{const{varDay:e,monthIndex:t,varYear:i}=E(a,r);return`${i}/${String(t+1).padStart(2,"0")}/${String(e).padStart(2,"0")}`})(o,e);i.w_study_date=a,i.w_study_date_locale=o}else i.w_study_date=o;const n=(a=>{let r;const e=a.querySelector("h2");null===e&&(r=a.nextElementSibling.querySelector("a").textContent.replace(/\u00A0/g," "));return null!==e&&(r=e.textContent.trim().replace(/\u00A0/g," ")),r})(a);i.w_study_title=n;const s=r.querySelectorAll(".pubRefs"),u=s.at(0);i.w_study_opening_song=D(u.textContent);let c=s.at(-1);if(2===s.length){c=r.querySelector(".blockTeach").nextElementSibling}return i.w_study_concluding_song=D(c.textContent),i},I=({htmlDocs:a,epubYear:r,epubLang:e})=>i(void 0,void 0,void 0,(function*(){const t=[];for(const i of a){const a=B(i,r,e);t.push(a)}return t})),U=({htmlItem:a,epubLang:r,epubContents:e})=>i(void 0,void 0,void 0,(function*(){const t=[],i=(a=>a.querySelectorAll("h3"))(a);for(const[a,o]of i.entries()){const a=o.nextElementSibling.querySelector("a").getAttribute("href"),i=yield O(e,a),n=Z(o,i,r);t.push(n)}return t})),W=a=>i(void 0,void 0,void 0,(function*(){try{(a=>{if(!a)throw new Error("You did not pass anything to the loadEPUB function.")})(a);return yield $(a)}catch(a){console.error(a)}})),R=(a,r,e)=>{try{const t=N(a).querySelector("article");return B(t,r,e)}catch(a){console.error(a)}},G=(a,r,e)=>{try{const t=N(a),i=N(r);return Z(t,i,e)}catch(a){console.error(a)}};export{W as loadEPUB,R as parseMWB,G as parseW};
import*as a from"path";import{readFile as r}from"fs/promises";import e from"jszip";import{parse as t}from"node-html-parser";function i(a,r,e,t){return new(e||(e=Promise))((function(i,o){function n(a){try{u(t.next(a))}catch(a){o(a)}}function s(a){try{u(t.throw(a))}catch(a){o(a)}}function u(a){var r;a.done?i(a.value):(r=a.value,r instanceof e?r:new e((function(a){a(r)}))).then(n,s)}u((t=t.apply(a,r||[])).next())}))}var o={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",studyArticleDateVariations:"Study Article {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},n={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",studyArticleDateVariations:"Article d’étude no {{ number }} : {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min)"},s={januaryVariations:"Gennaio",februaryVariations:"Febbraio",marchVariations:"Marzo",aprilVariations:"Aprile",mayVariations:"Maggio",juneVariations:"Giugno",julyVariations:"Luglio",augustVariations:"Agosto",septemberVariations:"Settembre",octoberVariations:"Ottobre",novemberVariations:"Novembre",decemberVariations:"Dicembre",studyArticleDateVariations:"Articolo di studio {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} min)"},u={januaryVariations:"1月",februaryVariations:"2月",marchVariations:"3月",aprilVariations:"4月",mayVariations:"5月",juneVariations:"6月",julyVariations:"7月",augustVariations:"8月",septemberVariations:"9月",octoberVariations:"10月",novemberVariations:"11月",decemberVariations:"12月",studyArticleDateVariations:"研究記事{{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }}分)"},c={januaryVariations:"Січень|січень|січня",februaryVariations:"Лютий|лютий|лютого",marchVariations:"Березень|березень|березня",aprilVariations:"Квітень|квітень|квітня",mayVariations:"Травень|травень|травня",juneVariations:"Червень|червень|червня",julyVariations:"Липень|липень|липня",augustVariations:"Серпень|серпень|серпня",septemberVariations:"Вересень|вересень|вересня",octoberVariations:"Жовтень|жовтень|жовтня",novemberVariations:"Листопад|листопад|листопада",decemberVariations:"Грудень|грудень|грудня",studyArticleDateVariations:"Стаття для вивчення {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} хв)"},l={januaryVariations:"Ianuarie",februaryVariations:"Februarie",marchVariations:"Martie",aprilVariations:"Aprilie",mayVariations:"Mai",juneVariations:"Iunie",julyVariations:"Iulie",augustVariations:"August",septemberVariations:"Septembrie",octoberVariations:"Octombrie",novemberVariations:"Noiembrie",decemberVariations:"Decembrie",studyArticleDateVariations:"Articolul de studiu {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},m={januaryVariations:"Janoary",februaryVariations:"Febroary",marchVariations:"Martsa",aprilVariations:"Aprily",mayVariations:"Mey",juneVariations:"Jona",julyVariations:"Jolay",augustVariations:"Aogositra",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",studyArticleDateVariations:"Lahatsoratra Fianarana {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},d={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",studyArticleDateVariations:"Artykuł do studium od {{ date }}|Artykuł do studium w tygodniu od {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min)|({{ duration }} min.)"},b={januaryVariations:"Enero",februaryVariations:"Febrero",marchVariations:"Marzo",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Junio",julyVariations:"Julio",augustVariations:"Agosto",septemberVariations:"Septiembre",octoberVariations:"Octubre",novemberVariations:"Noviembre",decemberVariations:"Diciembre",studyArticleDateVariations:"Artículo de estudio {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} mins.)|({{ duration }} min.)"},V={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",studyArticleDateVariations:"Estudo para a semana de {{ date }}",partMinutesSeparatorVariations:"({{ duration }}min)|({{ duration }} min)|({{ duration }} min.)"},y={januaryVariations:"Enero",februaryVariations:"Pebrero",marchVariations:"Marso",aprilVariations:"Abril",mayVariations:"Mayo",juneVariations:"Hunyo",julyVariations:"Hulyo",augustVariations:"Agosto",septemberVariations:"Setyembre",octoberVariations:"Oktubre",novemberVariations:"Nobyembre",decemberVariations:"Disyembre",studyArticleDateVariations:"Araling artikulo {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},p={januaryVariations:"Ocak",februaryVariations:"Şubat",marchVariations:"Mart",aprilVariations:"Nisan|NİSAN",mayVariations:"Mayıs",juneVariations:"Haziran",julyVariations:"Temmuz",augustVariations:"Ağustos",septemberVariations:"Eylül",octoberVariations:"Ekim",novemberVariations:"Kasım",decemberVariations:"Aralık",studyArticleDateVariations:"{{ number }}. İnceleme Makalesi: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} dk.)|({{ duration }} dk)"},f={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",studyArticleDateVariations:"Lahatsoratse Fianaragne {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)|({{ duration }} min)|({{ duration }} min.)"},g={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",studyArticleDateVariations:"Lahatsoratra Fianaran̈a {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)|({{ duration }} min)({{ duration }} min.)|({{ duration }} min)|({{ duration }}min)|({{ duration }}min.)"},h={januaryVariations:"Janoary",februaryVariations:"Febroary",marchVariations:"Martsa",aprilVariations:"Aprily",mayVariations:"Mey",juneVariations:"Jona",julyVariations:"Jolay",augustVariations:"Aogositra",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",studyArticleDateVariations:"Hianarana ny herinandron’ny {{ date }}|Hianarana mandritra ny herinandron’ny {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)"},w={januaryVariations:"January",februaryVariations:"February",marchVariations:"March",aprilVariations:"April",mayVariations:"May",juneVariations:"June",julyVariations:"July",augustVariations:"August",septemberVariations:"September",octoberVariations:"October",novemberVariations:"November",decemberVariations:"December",studyArticleDateVariations:"Yebesua no {{ date }}",partMinutesSeparatorVariations:"(Simma {{ duration }})"},_={januaryVariations:"Январь|января",februaryVariations:"Февраль|февраля",marchVariations:"Март|марта",aprilVariations:"Апрель|апреля",mayVariations:"Май|мая",juneVariations:"Июнь|июня",julyVariations:"Июль|июля",augustVariations:"Август|августа",septemberVariations:"Сентябрь|сентября",octoberVariations:"Октябрь|октября",novemberVariations:"Ноябрь|ноября",decemberVariations:"Декабрь|декабря",studyArticleDateVariations:"Статья для изучения {{ number }} ({{ date }})",partMinutesSeparatorVariations:"({{ duration }} мин.)"},v={januaryVariations:"Zanviè",februaryVariations:"Fevriè",marchVariations:"Marsa",aprilVariations:"Avrily",mayVariations:"Mey",juneVariations:"Ziein",julyVariations:"Ziè",augustVariations:"Oòh",septemberVariations:"Septambra",octoberVariations:"Oktobra",novemberVariations:"Novambra",decemberVariations:"Desambra",studyArticleDateVariations:"Lahatsoratsy Fianara {{ number }}: {{ date }}",partMinutesSeparatorVariations:"({{ duration }} min.)|({{ duration }} min)|({{ duration }}min.)"},j={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",studyArticleDateVariations:"{{ number }}. Studienartikel {{ date }}",partMinutesSeparatorVariations:"({{ duration }} Min)|({{ duration }} Min.)"};global.jw_epub_parser={languages:{E:o,F:n,I:s,J:u,K:c,M:l,MG:m,P:d,S:b,T:V,TG:y,TK:p,TND:f,TNK:g,TTM:h,TW:w,U:_,VZ:v,X:j},path:a,readFile:r};var S=[{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:"ro-RO",code:"M"},{locale:"mg-MG",code:"MG"},{locale:"pl-PL",code:"P"},{locale:"es-ES",code:"S"},{locale:"pt-BR",code:"T"},{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"}];class A extends Error{constructor(a,r){super(r),this.code=`jw-epub-parser/failed-${a}`}}const M=jw_epub_parser.languages,x=a=>[{index:0,name:M[a].januaryVariations},{index:1,name:M[a].februaryVariations},{index:2,name:M[a].marchVariations},{index:3,name:M[a].aprilVariations},{index:4,name:M[a].mayVariations},{index:5,name:M[a].juneVariations},{index:6,name:M[a].julyVariations},{index:7,name:M[a].augustVariations},{index:8,name:M[a].septemberVariations},{index:9,name:M[a].octoberVariations},{index:10,name:M[a].novemberVariations},{index:11,name:M[a].decemberVariations}],k=a=>+a.match(/(\d+)/)[0],D=(a,r)=>{const e=(a=>M[a].partMinutesSeparatorVariations)(r).split("|");let t;for(const r of e){let e=r.replace("{{ duration }}","\\d+");e=e.replace("(","\\("),e=e.replace(")","\\)"),e=e.replace(") ",") ?"),e=e.replace("??","?");const i=new RegExp(e.trim()),o=a.match(i);if(o){const r=a.split(i),e=+o[0].match(/\d+/)[0],n=/^[:.「]/,s=/[:」]$/,u=r[0].trim(),c=r[1].trim().replace(n,"").replace(s,"").trim(),l=/\d{1,2}[-.] /g,m=u.match(l),d=u.split(l);let b;b=m?d[1].trim():u,b=b.replace(n,"").replace(s,"").trim(),t={type:b,time:e,src:c}}}if(t)return t;throw new A("jw-epub-parser",`Parsing failed. The input was: ${a}`)},E=(a,r)=>{let e,t,i;const o=(a=>M[a].studyArticleDateVariations)(r).split("|");a=a.toLowerCase();a:for(const n of o){let o=n.toLowerCase().replace("{{ date }}","");o=o.replace("{{ number }}","\\d+");const s=new RegExp(o.trim()).exec(a);if(null!==s){const n=s[0].length;if(n>0){const s=a.substring(n);o=s.trim();const u=o.toLowerCase(),c=new RegExp(["bis","–","-","—","do"].join("|"),"gi"),l=u.split(c),m=x(r);for(const a of l)for(const n of m){let u=`(${n.name.toLowerCase()})`;"J"===r&&(u=`\\b${u}\\b`);const c=new RegExp(u).exec(a);if(Array.isArray(c)){const a=/\d+/g,u=o.match(a);"J"===r&&(e=+u[2]),"J"!==r&&(e=+u[0]),t=n.index;const c=/\b\d{4}\b/.exec(s);null!==c&&(i=+c[0]);break a}}}}}if("number"==typeof e&&"number"==typeof t&&"number"==typeof i)return{varDay:e,monthIndex:t,varYear:i};throw new A("wtstudy",`Parsing failed for Watchtower Study Date. The input was: ${a}`)},T=(a,r,e)=>{const{varDay:t,monthIndex:i}=((a,r)=>{let e,t;const i=a.toLowerCase(),o=new RegExp(["bis","–","-","—"].join("|"),"gi"),n=i.split(o),s=x(r);a:for(const a of n)for(const o of s){let n=`(${o.name.toLowerCase()})`;"J"===r&&(n=`\\b${n}\\b`);const s=new RegExp(n).exec(a);if(Array.isArray(s)){const a=/\d+/g,n=i.match(a);"J"===r&&(e=+n[1]),"J"!==r&&(e=+n[0]),t=o.index;break a}}if("number"==typeof e&&"number"==typeof t)return{varDay:e,monthIndex:t};throw new A("week-date",`Parsing failed when extracting the week date. The input was: ${a}`)})(a,e);return`${r}/${String(i+1).padStart(2,"0")}/${String(t).padStart(2,"0")}`},q=a=>{let r=!1;if(a.startsWith("OEBPS")&&a.endsWith(".xhtml")&&-1===a.indexOf("-extracted")){const e=a.split("/")[1].split(".")[0];isNaN(parseFloat(e))||(r=!0)}return r},J=(a,r)=>i(void 0,void 0,void 0,(function*(){return yield a.file(r).async("string")})),L=a=>{let r=!1,e=!1,t=!1,i=!1;return e=!!a.querySelector("[class*=treasures]"),e&&(t=!!a.querySelector("[class*=ministry]"),i=!!a.querySelector("[class*=christianLiving]")),e||(e=!!a.querySelector(".du-color--teal-700"),e&&(t=!!a.querySelector(".du-color--gold-700"),i=!!a.querySelector(".du-color--maroon-600"))),!0===e&&!0===t&&!0===i&&(r=!0),r},N=a=>t(a),C=a=>!!a.querySelector(".groupTOC"),O=(a,r)=>i(void 0,void 0,void 0,(function*(){let e;for(let[t]of Object.entries(a.files)){if(jw_epub_parser.path.basename(t)===r){const r=yield J(a,t);e=N(r);break}}return e})),P=a=>/^mwb_[A-Z][A-Z]?[A-Z]?_202\d(0[1-9]|1[0-2])\.epub$/i.test(a),F=a=>/^w_[A-Z][A-Z]?[A-Z]?_202\d(0[1-9]|1[0-2])\.epub$/i.test(a),z=a=>{let r;return r="object"==typeof a&&"url"in a?a.url:a instanceof Blob&&"name"in a?a.name:a,jw_epub_parser.path.basename(r)},$=a=>i(void 0,void 0,void 0,(function*(){let r={};const t=(a=>{const r=z(a),e=P(r),t=F(r);return e||t})(a);if(!t)throw new Error("The selected epub file has an incorrect naming.");const o=(a=>{let r=!0;const e=z(a),t=P(e),i=F(e),o=t?"mwb":i?"w":void 0,n=+e.split("_")[2].split(".epub")[0];return"mwb"===o&&n<202207&&(r=!1),"w"===o&&n<202304&&(r=!1),r})(a);if(!o)throw new Error("EPUB import is only supported for Meeting Workbook starting on July 2022, and for Watchtower Study starting on April 2023.");const n=yield(s=a,i(void 0,void 0,void 0,(function*(){let a;if(s instanceof Blob&&(a=s),"object"==typeof s&&"url"in s){const r=yield fetch(s.url);if(200!==r.status)throw new Error("EPUB file could not be downloaded. Check the URL you provided.");const e=yield r.blob();a=yield e.arrayBuffer()}return"string"==typeof s&&(a=yield jw_epub_parser.readFile(s)),a})));var s;const u=yield(c=n,i(void 0,void 0,void 0,(function*(){let a=0,r=0,t="archive_tmp";const i={isBig:!1,isMore:!1,isSuspicious:!1},o=new e,n=yield o.loadAsync(c);for(let[e]of Object.entries(n.files))a++,a>300&&(i.isMore=!0),jw_epub_parser.path.join(t,e).startsWith(t)||(i.isSuspicious=!0),r+=(yield o.file(e).async("arraybuffer")).byteLength,r>2e7&&(i.isBig=!0);return a=0,r=0,i})));var c;if(u.isBig)throw new Error("EPUB file seems to be large. Extract aborted.");if(u.isMore)throw new Error("EPUB file seems to contain more files than expected. Extract aborted.");if(u.isSuspicious)throw new Error("EPUB file seems to be suspicious. Extract aborted.");const l=z(a),m=P(l),d=F(l),b=yield(a=>i(void 0,void 0,void 0,(function*(){const r=new e;return yield r.loadAsync(a)})))(n),V=yield((a,r,e)=>i(void 0,void 0,void 0,(function*(){const t=[];for(let[i]of Object.entries(a.files))if(q(i)){const o=yield J(a,i),n=N(o);(r?L(n):e&&C(n))&&t.push(n)}return t})))(b,m,d);if(0===V.length)throw new Error(`The file you provided is not a valid ${m?"Meeting Workbook":"Watchtower Study"} EPUB file. Please make sure that the file is correct.`);if(d&&V.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 y=(a=>+z(a).split("_")[2].substring(0,4))(a),p=(a=>z(a).split("_")[1])(a);return m&&(r=yield I({htmlDocs:V,epubYear:y,epubLang:p})),d&&(r=yield U({htmlItem:V[0],epubLang:p,epubContents:b})),r})),B=(a,r,e)=>{const t=S.find((a=>a.code===e)),i={},o=(a=>a.querySelector("h1").textContent.replace(/\u00A0/g," "))(a);if(t){const a=T(o,r,e);i.mwb_week_date=a,i.mwb_week_date_locale=o}else i.mwb_week_date=o;i.mwb_weekly_bible_reading=(a=>a.querySelector("h2").textContent.replace(/\u00A0/g," "))(a);const n=(a=>{let r="";const e=a.querySelectorAll(".pGroup");for(const a of e){const e=a.querySelectorAll("li");for(const a of e)r+="@"+a.querySelector("p").textContent}if(0===r.length){const e=a.querySelectorAll("h3");for(const a of e){let e=a.classList.contains("dc-icon--music");e||(e=!!a.querySelector(".dc-icon--music"));let t="";t=a.textContent,e&&(t=t.replace("|","@")),r+="@"+t;const i=a.nextElementSibling;if(i){const a=i.querySelector(".du-color--textSubdued");a&&(r+=" "+a.querySelector("p").textContent)}}const t=r.split("@",5).join("@").length;r=r.substring(0,t)+"@junk@junk"+r.substring(t)}return r=r.replace(/\u00A0/g," "),r})(a);let s=n.split("@"),u="";i.mwb_song_first=k(s[1]),u=s[3].trim(),i.mwb_tgw_talk=t?D(u,e).type:u,u=s[7].trim(),i.mwb_tgw_bread=t?D(u,e).src:u;const c=(a=>{let r=1;const e=a.querySelector("#section3");return e&&(r=e.querySelectorAll("li").length),e||(r=a.querySelectorAll(".du-color--gold-700").length-1),r})(a);if(i.mwb_ayf_count=c,u=s[8].trim(),t){const a=D(u,e);i.mwb_ayf_part1=a.src,i.mwb_ayf_part1_time=a.time,i.mwb_ayf_part1_type=a.type}else i.mwb_ayf_part1=u;if(c>1)if(u=s[9].trim(),t){const a=D(u,e);i.mwb_ayf_part2=a.src,i.mwb_ayf_part2_time=a.time,i.mwb_ayf_part2_type=a.type}else i.mwb_ayf_part2=u;if(c>2)if(u=s[10].trim(),t){const a=D(u,e);i.mwb_ayf_part3=a.src,i.mwb_ayf_part3_time=a.time,i.mwb_ayf_part3_type=a.type}else i.mwb_ayf_part3=u;if(c>3)if(u=s[11].trim(),t){const a=D(u,e);i.mwb_ayf_part4=a.src,i.mwb_ayf_part4_time=a.time,i.mwb_ayf_part4_type=a.type}else i.mwb_ayf_part4=u;let l=c>3?12:c>2?11:c>1?10:9;i.mwb_song_middle=k(s[l]);const m=(a=>{let r=1;const e=a.querySelector("#section4");return e&&(r=e.querySelectorAll("li").length,r=6===r?2:1),null===e&&(r=a.querySelectorAll("h3.du-color--maroon-600").length-1),r})(a);if(i.mwb_lc_count=m,l++,u=s[l].trim(),t){const a=D(u,e);i.mwb_lc_part1=a.type,i.mwb_lc_part1_time=a.time,a.src&&""!==a.src&&(i.mwb_lc_part1_content=a.src)}else i.mwb_lc_part1=u;if(2===m)if(l++,u=s[l].trim(),t){const a=D(u,e);i.mwb_lc_part2=a.type,i.mwb_lc_part2_time=a.time,a.src&&""!==a.src&&(i.mwb_lc_part2_content=a.src)}else i.mwb_lc_part2=u;return l++,u=s[l].trim(),i.mwb_lc_cbs=t?D(u,e).src:u,l++,l++,u=s[l].trim(),i.mwb_song_conclude=(a=>{const r=k(a);return r>151?a:r})(u),i},Z=(a,r,e)=>{const t=S.find((a=>a.code===e)),i={},o=(a=>{let r;const e=a.querySelector(".desc");return null===e&&(r=a.textContent.replace(/\u00A0/g," ")),null!==e&&(r=e.textContent.replace(/\u00A0/g," ")),r})(a);if(o.length>0)if(t){const a=((a,r)=>{const{varDay:e,monthIndex:t,varYear:i}=E(a,r);return`${i}/${String(t+1).padStart(2,"0")}/${String(e).padStart(2,"0")}`})(o,e);i.w_study_date=a,i.w_study_date_locale=o}else i.w_study_date=o;const n=(a=>{let r;const e=a.querySelector("h2");null===e&&(r=a.nextElementSibling.querySelector("a").textContent.replace(/\u00A0/g," "));return null!==e&&(r=e.textContent.trim().replace(/\u00A0/g," ")),r})(a);i.w_study_title=n;const s=r.querySelectorAll(".pubRefs"),u=s.at(0);i.w_study_opening_song=k(u.textContent);let c=s.at(-1);if(2===s.length){c=r.querySelector(".blockTeach").nextElementSibling}return i.w_study_concluding_song=k(c.textContent),i},I=({htmlDocs:a,epubYear:r,epubLang:e})=>i(void 0,void 0,void 0,(function*(){const t=[];for(const i of a){const a=B(i,r,e);t.push(a)}return t})),U=({htmlItem:a,epubLang:r,epubContents:e})=>i(void 0,void 0,void 0,(function*(){const t=[],i=(a=>a.querySelectorAll("h3"))(a);for(const[a,o]of i.entries()){const a=o.nextElementSibling.querySelector("a").getAttribute("href"),i=yield O(e,a),n=Z(o,i,r);t.push(n)}return t})),W=a=>i(void 0,void 0,void 0,(function*(){try{(a=>{if(!a)throw new Error("You did not pass anything to the loadEPUB function.")})(a);return yield $(a)}catch(a){console.error(a)}})),R=(a,r,e)=>{try{const t=N(a).querySelector("article");return B(t,r,e)}catch(a){console.error(a)}},G=(a,r,e)=>{try{const t=N(a),i=N(r);return Z(t,i,e)}catch(a){console.error(a)}};export{W as loadEPUB,R as parseMWB,G as parseW};
//# sourceMappingURL=index.js.map
{
"name": "jw-epub-parser",
"version": "3.10.0",
"version": "3.11.0",
"type": "module",

@@ -5,0 +5,0 @@ "description": "This tool will help you to parse and extract the needed source materials from Meeting Workbook EPUB file. Support for parsing Watchtower Study will be added in future release.",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc