UNPKG

@epubkit/epub-gen-memory

Version:
1 lines 279 kB
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).epubGen=e()}}((function(){return function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var d=n[o]={exports:{}};t[o][0].call(d.exports,(function(e){return i(t[o][1][e]||e)}),d,d.exports,e,t,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){"use strict";window.SharedArrayBuffer={prototype:{byteLength:0}}},{}],2:[function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},r.apply(this,arguments)},i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.EPub=n.chapterDefaults=n.optionsDefaults=void 0;var s=e("ejs"),l=o(e("jszip")),c=e("mime"),d=o(e("ow")),p=e("./util");Object.defineProperty(n,"chapterDefaults",{enumerable:!0,get:function(){return p.chapterDefaults}}),Object.defineProperty(n,"optionsDefaults",{enumerable:!0,get:function(){return p.optionsDefaults}});var u=o(e("fs")),f=function(){function e(e,t){switch(this.images=[],this.options=(0,p.validateAndNormalizeOptions)(e),this.options.verbose){case!0:this.log=console.log.bind(console),this.warn=console.warn.bind(console);break;case!1:this.log=this.warn=function(){};break;default:this.log=this.options.verbose.bind(null,"log"),this.warn=this.options.verbose.bind(null,"warn")}if(this.uuid=(0,p.uuid)(),this.content=p.validateAndNormalizeChapters.call(this,t),this.zip=new l.default,this.zip.file("mimetype","application/epub+zip",{compression:"STORE"}),this.options.cover){var n=(0,c.getType)(this.options.cover),r=(0,c.getExtension)(n||"");n&&r&&(this.cover={mediaType:n,extension:r})}}return e.prototype.render=function(){return i(this,void 0,void 0,(function(){return a(this,(function(e){switch(e.label){case 0:return this.log("Generating Template Files..."),[4,this.generateTemplateFiles()];case 1:return e.sent(),this.log("Downloading fonts..."),[4,this.downloadAllFonts()];case 2:return e.sent(),this.log("Downloading images..."),[4,this.downloadAllImages()];case 3:return e.sent(),this.log("Making cover..."),[4,this.makeCover()];case 4:return e.sent(),this.log("Finishing up..."),[2,this]}}))}))},e.prototype.genEpub=function(){return i(this,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return[4,this.render()];case 1:return t.sent(),e=this.zip.generateAsync({type:p.type,mimeType:"application/epub+zip",compression:"DEFLATE",compressionOptions:{level:9}}),this.log("Done"),[2,e]}}))}))},e.prototype.generateAsync=function(e){return this.zip.generateAsync(e)},e.prototype.generateTemplateFiles=function(){return i(this,void 0,void 0,(function(){var e,t,n,i=this;return a(this,(function(a){return(e=this.zip.folder("OEBPS")).file("style.css",this.options.css),this.content.forEach((function(t){var n=(0,s.render)(i.options.chapterXHTML,r({lang:i.options.lang,prependChapterTitles:i.options.prependChapterTitles},t));e.file(t.filename,n),t.css&&e.file(t.cssFileName,t.css)})),(t=this.zip.folder("META-INF")).file("container.xml",'<?xml version="1.0" encoding="UTF-8" ?><container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"><rootfiles><rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/></rootfiles></container>'),2===this.options.version&&t.file("com.apple.ibooks.display-options.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><display_options><platform name="*"><option name="specified-fonts">true</option></platform></display_options>'),n=r(r({},this.options),{id:this.uuid,images:this.images,cover:this.cover,content:this.content}),e.file("content.opf",(0,s.render)(this.options.contentOPF,n)),e.file("toc.ncx",(0,s.render)(this.options.tocNCX,n)),e.file("toc.xhtml",(0,s.render)(this.options.tocXHTML,n)),[2]}))}))},e.prototype.downloadAllFonts=function(){return i(this,void 0,void 0,(function(){var e,t,n,i=this;return a(this,(function(a){switch(a.label){case 0:if(!this.options.fonts.length)return[2,this.log("No fonts to download")];e=this.zip.folder("OEBPS"),t=e.folder("fonts"),n=0,a.label=1;case 1:return n<this.options.fonts.length?[4,Promise.all(this.options.fonts.slice(n,n+this.options.batchSize).map((function(e){var t=(0,p.retryFetch)(e.url,i.options.fetchTimeout,i.options.retryTimes,i.log,{urlValidator:i.options.urlValidator}).then((function(t){return i.log("Downloaded font "+e.url),r(r({},e),{data:t})}));return i.options.ignoreFailedDownloads?t.catch((function(t){return i.warn("Warning (font "+e.url+"): Download failed",t),r(r({},e),{data:""})})):t})))]:[3,4];case 2:a.sent().forEach((function(e){return t.file(e.filename,e.data)})),a.label=3;case 3:return n+=this.options.batchSize,[3,1];case 4:return[2]}}))}))},e.prototype.downloadAllImages=function(){return i(this,void 0,void 0,(function(){var e,t,n,i=this;return a(this,(function(a){switch(a.label){case 0:if(!this.images.length)return[2,this.log("No images to download")];e=this.zip.folder("OEBPS"),t=e.folder("images"),n=0,a.label=1;case 1:return n<this.images.length?[4,Promise.all(this.images.slice(n,n+this.options.batchSize).map((function(e){var t,n,a,o,s=(null===(n=(t=i.options).imageTransformer)||void 0===n?void 0:n.call(t,e))||e,l=(0,p.retryFetch)(s.url,i.options.fetchTimeout,i.options.retryTimes,i.log,{headers:null===(o=(a=i.options).imageFetcherHeaders)||void 0===o?void 0:o.call(a,s.url),urlValidator:i.options.urlValidator}).then((function(e){return i.log("Downloaded image "+s.url),r(r({},s),{data:e})}));return i.options.ignoreFailedDownloads?l.catch((function(e){return i.warn("Warning (image "+s.url+"): Download failed",e),r(r({},s),{data:""})})):l})))]:[3,4];case 2:a.sent().forEach((function(e){var n,r,a=(null===(r=(n=i.options).imageTransformer)||void 0===r?void 0:r.call(n,e))||e;t.file(a.id+"."+a.extension,e.data)})),a.label=3;case 3:return n+=this.options.batchSize,[3,1];case 4:return[2]}}))}))},e.prototype.makeCover=function(){return i(this,void 0,void 0,(function(){var e,t,n=this;return a(this,(function(r){switch(r.label){case 0:return this.cover?(e=this.zip.folder("OEBPS"),t="",this.options.cover.startsWith("http")?[4,(0,p.retryFetch)(this.options.cover,this.options.fetchTimeout,this.options.retryTimes,this.log,{urlValidator:this.options.urlValidator}).catch((function(e){return n.warn("Warning (cover "+n.options.cover+"): Download failed",e),""}))]:[3,2]):[2,this.log("No cover to download")];case 1:return t=r.sent(),[3,3];case 2:t=u.default.readFileSync(this.options.cover),r.label=3;case 3:return e.file("cover."+this.cover.extension,t),[2]}}))}))},e}();n.EPub=f;n.default=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];(0,d.default)(e,d.default.any(p.optionsPredicate,d.default.string));var i=d.default.isValid(e,d.default.string)?{title:e}:e;return(0,d.default)(n,d.default.array.ofType(d.default.any(d.default.boolean,d.default.number))),n.forEach((function(e){d.default.isValid(e,d.default.boolean)?i.verbose=e:i.version=e})),new f(i,t).genEpub()}},{"./util":15,ejs:25,fs:20,jszip:30,mime:33,ow:37}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%= lang %>" lang="<%= lang %>">\n<head>\n <title><%= title %></title>\n <link rel="stylesheet" type="text/css" href="style.css" />\n</head>\n<body>\n <% if (prependChapterTitles) { %>\n <h1><%= title %></h1>\n <% if (author.length) { %>\n <p class="epub-author"><%= author.join(\', \') %></p>\n <% } %>\n <% if (url) { %>\n <p class="epub-link"><a href="<%= url %>"><%= url %></a></p>\n <% } %>\n <% } %>\n <%- content %>\n</body>\n</html>'},{}],4:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default='<?xml version="1.0" encoding="UTF-8"?>\n<package xmlns="http://www.idpf.org/2007/opf"\n version="2.0"\n unique-identifier="BookId">\n\n <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"\n xmlns:opf="http://www.idpf.org/2007/opf">\n\n <dc:identifier id="BookId" opf:scheme="URN"><%= id %></dc:identifier>\n <dc:title><%= title %></dc:title>\n <dc:description><%= description %></dc:description>\n <dc:publisher><%= publisher %></dc:publisher>\n <dc:creator opf:role="aut" opf:file-as="<%= author.join(",") %>"><%= author.join(",") %></dc:creator>\n <dc:date opf:event="modification"><%= date %></dc:date>\n <dc:language><%= lang %></dc:language>\n <% if(cover) { %>\n <meta name="cover" content="image_cover" />\n <% } %>\n <meta name="generator" content="epub-gen" />\n\n </metadata>\n\n <manifest>\n <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml" />\n <item id="toc" href="toc.xhtml" media-type="application/xhtml+xml" />\n <item id="css" href="style.css" media-type="text/css" />\n\n <% if(cover) { %>\n <item id="image_cover" href="cover.<%= cover.extension %>" media-type="<%= cover.mediaType %>" />\n <% } %>\n \n <% images.forEach(function(image, index){ %>\n <item id="image_<%= index %>" href="images/<%= image.id %>.<%= image.extension %>" media-type="<%= image.mediaType %>" />\n <% }) %>\n \n <% content.forEach(function(content, index){ %>\n <item id="content_<%= index %>_<%= content.id %>" href="<%= content.filename %>" media-type="application/xhtml+xml" />\n <% }) %>\n\n <% fonts.forEach(function(font, index) { %>\n <item id="font_<%= index %>" href="fonts/<%= font.filename %>" media-type="<%= font.mediaType %>" />\n <% }) %>\n </manifest>\n\n <spine toc="ncx">\n <% content.forEach(function(content, index){ %>\n <% if(content.beforeToc){ %>\n <itemref idref="content_<%= index %>_<%= content.id %>"/>\n <% } %>\n <% }) %>\n <itemref idref="toc" />\n <% content.forEach(function(content, index){ %>\n <% if(!content.beforeToc){ %>\n <itemref idref="content_<%= index %>_<%= content.id %>"/>\n <% } %>\n <% }) %>\n </spine>\n <guide>\n <reference type="toc" title="<%= tocTitle %>" href="toc.xhtml" />\n </guide>\n</package>'},{}],5:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n<html xml:lang="<%- lang %>" xmlns="http://www.w3.org/1999/xhtml">\n<head>\n <title><%= title %></title>\n <link rel="stylesheet" type="text/css" href="style.css" />\n</head>\n<body>\n <h1 class="h1"><%= tocTitle %></h1>\n <% content.forEach(function(content, index){ %>\n <% if(!content.excludeFromToc){ %>\n <p class="table-of-content">\n <a href="<%= content.filename %>"><%= (numberChaptersInTOC ? (1+index) + ". " : "") + content.title %>\n <% if(content.author.length){ %>\n - <small class="toc-author"><%= content.author.join(",") %></small>\n <% } %>\n <% if(content.url){ %><span class="toc-link"><%= content.url %></span><% }%>\n </a>\n </p>\n <% } %>\n <% }) %>\n</body>\n</html>'},{}],6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE html>\n<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="<%= lang %>" lang="<%= lang %>">\n<head>\n <meta charset="UTF-8" />\n <title><%= title %></title>\n <link rel="stylesheet" type="text/css" href="style.css" />\n <% if (cssFileName) { %>\n <link rel="stylesheet" type="text/css" href="<%= cssFileName %>" />\n <% } %>\n</head>\n<body>\n <% if (prependChapterTitles) { %>\n <h1><%= title %></h1>\n <% if (author.length) { %>\n <p class="epub-author"><%= author.join(\', \') %></p>\n <% } %>\n <% if (url) { %>\n <p class="epub-link"><a href="<%= url %>"><%= url %></a></p>\n <% } %>\n <% } %>\n <%- content %>\n</body>\n</html>'},{}],7:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default='<?xml version="1.0" encoding="UTF-8"?>\n<package xmlns="http://www.idpf.org/2007/opf"\n version="3.0"\n unique-identifier="BookId"\n xmlns:dc="http://purl.org/dc/elements/1.1/"\n xmlns:dcterms="http://purl.org/dc/terms/"\n xml:lang="en"\n xmlns:media="http://www.idpf.org/epub/vocab/overlays/#"\n prefix="ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/">\n\n <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"\n xmlns:opf="http://www.idpf.org/2007/opf">\n\n <dc:identifier id="BookId"><%= id %></dc:identifier>\n <meta refines="#BookId" property="identifier-type" scheme="onix:codelist5">22</meta>\n <meta property="dcterms:identifier" id="meta-identifier">BookId</meta>\n <dc:title><%= title %></dc:title>\n <meta property="dcterms:title" id="meta-title"><%= title %></meta>\n <dc:language><%= lang %></dc:language>\n <meta property="dcterms:language" id="meta-language"><%= lang %></meta>\n <meta property="dcterms:modified"><%= (new Date()).toISOString().split(".")[0]+ "Z" %></meta>\n <dc:creator id="creator"><%= author.join(",") %></dc:creator>\n <meta refines="#creator" property="file-as"><%= author.join(",") %></meta>\n <meta property="dcterms:publisher"><%= publisher %></meta>\n <dc:publisher><%= publisher %></dc:publisher>\n <meta property="dcterms:date"><%= date %></meta>\n <dc:date><%= date %></dc:date>\n <meta property="dcterms:rights">All rights reserved</meta>\n <dc:rights>Copyright &#x00A9; <%= (new Date()).getFullYear() %> by <%= publisher %></dc:rights>\n <% if(cover) { %>\n <meta name="cover" content="image_cover"/>\n <% } %>\n <meta name="generator" content="epub-gen" />\n <meta property="ibooks:specified-fonts">true</meta>\n\n </metadata>\n\n <manifest>\n <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml" />\n <item id="toc" href="toc.xhtml" media-type="application/xhtml+xml" properties="nav" />\n <item id="css" href="style.css" media-type="text/css" />\n\n <% if(cover) { %>\n <item id="image_cover" href="cover.<%= cover.extension %>" media-type="<%= cover.mediaType %>" />\n <% } %>\n \n <% images.forEach(function(image, index){ %>\n <item id="image_<%= index %>" href="images/<%= image.id %>.<%= image.extension %>" media-type="<%= image.mediaType %>" />\n <% }) %>\n \n <% content.forEach(function(content, index){ %>\n <item id="content_<%= index %>_<%= content.id %>" href="<%= content.filename %>" media-type="application/xhtml+xml" />\n <% if(content.css) { %>\n <item id="content_<%= index %>_<%= content.id %>_css" href="<%= content.cssFileName %>" media-type="text/css" />\n <% } %>\n <% }) %>\n\n <% fonts.forEach(function(font, index){%>\n <item id="font_<%= index%>" href="fonts/<%= font.filename %>" media-type="<%= font.mediaType %>" />\n <%})%>\n </manifest>\n\n <spine toc="ncx">\n <% content.forEach(function(content, index){ %>\n <% if(content.beforeToc){ %>\n <itemref idref="content_<%= index %>_<%= content.id %>"/>\n <% } %>\n <% }) %>\n <itemref idref="toc" />\n <% content.forEach(function(content, index){ %>\n <% if(!content.beforeToc){ %>\n <itemref idref="content_<%= index %>_<%= content.id %>"/>\n <% } %>\n <% }) %>\n </spine>\n <guide>\n <reference type="text" title="Table of Content" href="toc.xhtml"/>\n </guide>\n</package>'},{}],8:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default='<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE html>\n<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="<%- lang %>" lang="<%- lang %>">\n<head>\n <title><%= title %></title>\n <meta charset="UTF-8" />\n <link rel="stylesheet" type="text/css" href="style.css" />\n</head>\n<body>\n <h1 class="h1"><%= tocTitle %></h1>\n <nav id="toc" epub:type="toc">\n <% if (numberChaptersInTOC){ %>\n <ol>\n <% }else{ %>\n <ol style="list-style: none">\n <% } %>\n <% content.forEach(function(content, index){ %>\n <% if(!content.excludeFromToc){ %>\n <li class="table-of-content">\n <a href="<%= content.filename %>"><%= content.title %><% if(content.author.length){ %> - <small class="toc-author"><%= content.author.join(",") %></small><% }%><% if(content.url){ %><span class="toc-link"><%= content.url %></span><% }%></a>\n </li>\n <% } %>\n <% }) %>\n </ol>\n </nav>\n</body>\n</html>'},{}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=".epub-author {\n color: #555;\n}\n\n.epub-link {\n margin-bottom: 30px;\n}\n\n.epub-link a {\n color: #666;\n font-size: 90%;\n}\n\n.toc-author {\n font-size: 90%;\n color: #555;\n}\n\n.toc-link {\n color: #999;\n font-size: 85%;\n display: block;\n}\n\nhr {\n border: 0;\n border-bottom: 1px solid #dedede;\n margin: 60px 10%;\n}"},{}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default='<?xml version="1.0" encoding="UTF-8"?>\n<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">\n <head>\n <meta name="dtb:uid" content="<%= id %>" />\n <meta name="dtb:generator" content="epub-gen"/>\n <meta name="dtb:depth" content="1"/>\n <meta name="dtb:totalPageCount" content="0"/>\n <meta name="dtb:maxPageNumber" content="0"/>\n </head>\n <docTitle>\n <text><%= title %></text>\n </docTitle>\n <docAuthor>\n <text><%= author %></text>\n </docAuthor>\n <navMap>\n <% var _index = 0; %>\n <% content.forEach(function(content, index){ %>\n <% if(!content.excludeFromToc && content.beforeToc){ %>\n <navPoint id="content_<%= index %>_<%= content.id %>" playOrder="<%= _index++ %>" class="chapter">\n <navLabel>\n <text><%= (numberChaptersInTOC ? (1+index) + ". " : "") + content.title %></text>\n </navLabel>\n <content src="<%= content.filename %>"/>\n </navPoint>\n <% } %>\n <% }) %>\n \n <% if (tocInTOC){ %>\n <navPoint id="toc" playOrder="<%= _index++ %>" class="chapter">\n <navLabel>\n <text><%= tocTitle %></text>\n </navLabel>\n <content src="toc.xhtml"/>\n </navPoint>\n <% } %>\n\n <% content.forEach(function(content, index){ %>\n <% if(!content.excludeFromToc && !content.beforeToc){ %>\n <navPoint id="content_<%= index %>_<%= content.id %>" playOrder="<%= _index++ %>" class="chapter">\n <navLabel>\n <text><%= (numberChaptersInTOC ? (1+index) + ". " : "") + content.title %></text>\n </navLabel>\n <content src="<%= content.filename %>"/>\n </navPoint>\n <% } %>\n <% }) %>\n </navMap>\n</ncx>'},{}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.allowedXhtml11Tags=n.allowedAttributes=void 0,n.allowedAttributes=["content","alt","id","title","src","href","about","accesskey","aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-controls","aria-describedat","aria-describedby","aria-disabled","aria-dropeffect","aria-expanded","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","class","content","contenteditable","contextmenu","datatype","dir","draggable","dropzone","hidden","hreflang","id","inlist","itemid","itemref","itemscope","itemtype","lang","media","ns1:type","ns2:alphabet","ns2:ph","onabort","onblur","oncanplay","oncanplaythrough","onchange","onclick","oncontextmenu","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreadystatechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting","prefix","property","rel","resource","rev","role","spellcheck","style","tabindex","target","title","type","typeof","vocab","xml:base","xml:lang","xml:space","colspan","rowspan","epub:type","epub:prefix"],n.allowedXhtml11Tags=["div","p","h1","h2","h3","h4","h5","h6","ul","ol","li","dl","dt","dd","address","hr","pre","blockquote","center","ins","del","a","span","bdo","br","em","strong","dfn","code","samp","kbd","bar","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","basefont","font","object","param","img","table","caption","colgroup","col","thead","tfoot","tbody","tr","th","td","embed","applet","iframe","img","map","noscript","ns:svg","object","script","table","tt","var"]},{}],12:[function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}};Object.defineProperty(n,"__esModule",{value:!0}),n.type=void 0,n.type="blob";n.default=function(e,t){return r(void 0,void 0,void 0,(function(){var n,r,a;return i(this,(function(i){switch(i.label){case 0:n="undefined"!=typeof AbortController?new AbortController:{},r=setTimeout((function(){return n.abort&&n.abort()}),t),i.label=1;case 1:return i.trys.push([1,,3,4]),[4,fetch(e,{signal:n.signal})];case 2:if(!(a=i.sent()).ok)throw new Error("Got error "+a.status+" ("+a.statusText+") while fetching "+e);return[2,a.blob()];case 3:return clearTimeout(r),[7];case 4:return[2]}}))}))}},{}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.fixHTML=void 0;var r=e("./constants"),i=r.allowedXhtml11Tags.map((function(e){return e.toUpperCase()}));n.fixHTML=function(e,t,n){var a=this,o=(new DOMParser).parseFromString(t,"text/html");return Array.from(o.body.querySelectorAll("*")).reverse().forEach((function(t){for(var n=0,s=Array.from(t.attributes);n<s.length;n++){var l=s[n];-1===r.allowedAttributes.indexOf(l.name)&&(a.warn("Warning (content["+e+"]): attribute "+l.name+" isn't allowed."),t.removeAttribute(l.name))}if(2===a.options.version&&-1===i.indexOf(t.tagName)){a.warn("Warning (content["+e+"]): tag "+t.tagName+" isn't allowed in EPUB 2/XHTML 1.1 DTD.");for(var c=o.createElement("div"),d=0,p=Array.from(t.attributes);d<p.length;d++){l=p[d];c.setAttribute(l.name,l.value)}c.innerHTML=t.innerHTML,t.replaceWith(c)}})),o.body.querySelectorAll("img").forEach((function(e){e.alt||(e.alt="image-placeholder"),e.src?e.src=n.call(a,e.src):e.remove()})),(new XMLSerializer).serializeToString(o.body)}},{"./constants":11}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.normalizeHTML=void 0;var r=e("mime"),i=e("./html-parse"),a=e("./other");function o(e){var t=this.images.find((function(t){return t.url===e}));if(!t){var n=(0,r.getType)(e.replace(/\?.*/,""))||"";return t={url:e,mediaType:n,id:(0,a.uuid)(),extension:(0,r.getExtension)(n)||""},this.options.imageTransformer&&(t=this.options.imageTransformer(t)),this.images.push(t),"images/"+t.id+"."+t.extension}return"images/"+t.id+"."+t.extension}n.normalizeHTML=function(e,t){return i.fixHTML.call(this,e,t,o).replace(/^<body(?: xmlns="http:\/\/www\.w3\.org\/1999\/xhtml")?>|<\/body>$/g,"")}},{"./html-parse":13,"./other":16,mime:33}],15:[function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},r.apply(this,arguments)},i=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.validateAndNormalizeChapter=n.validateAndNormalizeChapters=n.validateAndNormalizeOptions=n.normName=n.chapterDefaults=n.optionsDefaults=n.chapterPredicate=n.optionsPredicate=void 0;var s=e("diacritics"),l=e("mime"),c=o(e("ow")),d=o(e("slugify")),p=o(e("../templates/epub2/chapter.xhtml.ejs")),u=o(e("../templates/epub2/content.opf.ejs")),f=o(e("../templates/epub2/toc.xhtml.ejs")),h=o(e("../templates/epub3/chapter.xhtml.ejs")),m=o(e("../templates/epub3/content.opf.ejs")),g=o(e("../templates/epub3/toc.xhtml.ejs")),v=o(e("../templates/template.css")),y=o(e("../templates/toc.ncx.ejs")),b=e("./html"),x=e("./validate");Object.defineProperty(n,"chapterPredicate",{enumerable:!0,get:function(){return x.chapterPredicate}}),Object.defineProperty(n,"optionsPredicate",{enumerable:!0,get:function(){return x.optionsPredicate}}),a(e("./html"),n),a(e("./other"),n);n.optionsDefaults=function(e){return void 0===e&&(e=3),{description:"",author:["anonymous"],publisher:"anonymous",tocTitle:"Table of Contents",tocInTOC:!0,numberChaptersInTOC:!0,prependChapterTitles:!0,date:(new Date).toISOString(),lang:"en",css:v.default,chapterXHTML:2===e?p.default:h.default,contentOPF:2===e?u.default:m.default,tocNCX:y.default,tocXHTML:2===e?f.default:g.default,fonts:[],version:e,fetchTimeout:2e4,retryTimes:3,batchSize:100,ignoreFailedDownloads:!1,verbose:!1}};n.chapterDefaults=function(e){return{title:"Chapter "+(e+1),id:"item_"+e,url:"",excludeFromToc:!1,beforeToc:!1}};n.normName=function(e){return c.default.isValid(e,c.default.string)?[e]:e||[]};n.validateAndNormalizeOptions=function(e){(0,c.default)(e,"options",x.optionsPredicate);var t=r(r({},(0,n.optionsDefaults)(e.version||3)),e);return t.author=(0,n.normName)(t.author),t.fonts=t.fonts.map((function(e){return r(r({},e),{mediaType:(0,l.getType)(e.filename)})})),t.date=new Date(t.date).toISOString(),t.lang=(0,s.remove)(t.lang),t},n.validateAndNormalizeChapters=function(e){var t=this;(0,c.default)(e,"content",c.default.array.ofType(x.chapterPredicate));var r=!1;return e.map((function(e,i){var a=(0,n.validateAndNormalizeChapter)(e,i);return a.content=b.normalizeHTML.call(t,i,e.content),r&&a.beforeToc&&t.warn("Warning (content["+i+"]): Got `beforeToc=true` after at least one `beforeToc=false`. Chapters will be out of order."),a.beforeToc||(r=!0),a}))};n.validateAndNormalizeChapter=function(e,t){var i=r(r({},(0,n.chapterDefaults)(t)),e),a=(0,d.default)(i.title);return i.filename?i.filename.endsWith(".xhtml")||(i.filename=i.filename+".xhtml"):i.filename=t+"_"+a+".xhtml",i.css?i.cssFileName?i.cssFileName.endsWith(".css")||(i.cssFileName=i.cssFileName+".css"):i.cssFileName=t+"_"+a+".css":i.cssFileName="",i.author=(0,n.normName)(i.author),i}},{"../templates/epub2/chapter.xhtml.ejs":3,"../templates/epub2/content.opf.ejs":4,"../templates/epub2/toc.xhtml.ejs":5,"../templates/epub3/chapter.xhtml.ejs":6,"../templates/epub3/content.opf.ejs":7,"../templates/epub3/toc.xhtml.ejs":8,"../templates/template.css":9,"../templates/toc.ncx.ejs":10,"./html":14,"./other":16,"./validate":17,diacritics:23,mime:33,ow:37,slugify:70}],16:[function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.retryFetch=n.uuid=void 0;var l=s(e("./fetchable"));i(e("./fetchable"),n);n.uuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))};n.retryFetch=function(e,t,n,r,i){return a(void 0,void 0,void 0,(function(){var a,s;return o(this,(function(o){switch(o.label){case 0:if(null===(s=null==i?void 0:i.urlValidator)||void 0===s?void 0:s.call(i,e))throw new Error("`"+e+"` failed URL validation. Skipping...");a=0,o.label=1;case 1:if(!(a<n-1))return[3,6];o.label=2;case 2:return o.trys.push([2,4,,5]),[4,(0,l.default)(e,t,{headers:null==i?void 0:i.headers})];case 3:return[2,o.sent()];case 4:return o.sent(),r("Failed to fetch `"+e+"` "+(a+1)+" "+(0===a?"time":"times")+". Retrying..."),[3,5];case 5:return a++,[3,1];case 6:return[2,(0,l.default)(e,t,{headers:null==i?void 0:i.headers})]}}))}))}},{"./fetchable":12}],17:[function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.optionsPredicate=n.fontPredicate=n.chapterPredicate=void 0;var i=r(e("ow")),a=i.default.optional.any(i.default.string,i.default.array.ofType(i.default.string),i.default.undefined),o=i.default.optional.string.is((function(e){return-1===e.indexOf("/")&&-1===e.indexOf("\\")||"Filename must not include slashes, got `"+e+"`"})),s=i.default.string.is((function(e){return-1===e.indexOf("/")&&-1===e.indexOf("\\")||"Filename must not include slashes, got `"+e+"`"}));n.chapterPredicate=i.default.object.partialShape({title:i.default.optional.string,author:a,content:i.default.string,excludeFromToc:i.default.optional.boolean,beforeToc:i.default.optional.boolean,filename:o,url:i.default.optional.string}),n.fontPredicate=i.default.object.partialShape({filename:s,url:i.default.string}),n.optionsPredicate=i.default.object.partialShape({title:i.default.string,author:a,publisher:i.default.optional.string,description:i.default.optional.string,cover:i.default.optional.string,tocTitle:i.default.optional.string,tocInTOC:i.default.optional.boolean,numberChaptersInTOC:i.default.optional.boolean,prependChapterTitles:i.default.optional.boolean,date:i.default.optional.string,lang:i.default.optional.string,css:i.default.optional.string,chapterXHTML:i.default.optional.string,contentOPF:i.default.optional.string,tocNCX:i.default.optional.string,tocXHTML:i.default.optional.string,fonts:i.default.optional.any(i.default.array.ofType(n.fontPredicate),i.default.undefined),version:i.default.optional.number.is((function(e){return 3===e||2===e||"Expected version to be 3 or 2, got `"+e+"`"})),fetchTimeout:i.default.optional.number.positive,retryTimes:i.default.optional.number.positive,batchSize:i.default.optional.number.positive,ignoreFailedDownloads:i.default.optional.boolean,verbose:i.default.optional.any(i.default.boolean,i.default.function)})},{ow:37}],18:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});const r=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];const i=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...r];const a=["null","undefined","string","number","bigint","boolean","symbol"];function o(e){return t=>typeof t===e}const{toString:s}=Object.prototype,l=e=>{const t=s.call(e).slice(8,-1);return/HTML\w+Element/.test(t)&&d.domElement(e)?"HTMLElement":(n=t,i.includes(n)?t:void 0);var n},c=e=>t=>l(t)===e;function d(e){if(null===e)return"null";switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol"}if(d.observable(e))return"Observable";if(d.array(e))return"Array";if(d.buffer(e))return"Buffer";const t=l(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}d.undefined=o("undefined"),d.string=o("string");const p=o("number");d.number=e=>p(e)&&!d.nan(e),d.bigint=o("bigint"),d.function_=o("function"),d.null_=e=>null===e,d.class_=e=>d.function_(e)&&e.toString().startsWith("class "),d.boolean=e=>!0===e||!1===e,d.symbol=o("symbol"),d.numericString=e=>d.string(e)&&!d.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),d.array=(e,t)=>!!Array.isArray(e)&&(!d.function_(t)||e.every(t)),d.buffer=e=>{var t,n,r,i;return null!==(i=null===(r=null===(n=null===(t=e)||void 0===t?void 0:t.constructor)||void 0===n?void 0:n.isBuffer)||void 0===r?void 0:r.call(n,e))&&void 0!==i&&i},d.nullOrUndefined=e=>d.null_(e)||d.undefined(e),d.object=e=>!d.null_(e)&&("object"==typeof e||d.function_(e)),d.iterable=e=>{var t;return d.function_(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},d.asyncIterable=e=>{var t;return d.function_(null===(t=e)||void 0===t?void 0:t[Symbol.asyncIterator])},d.generator=e=>d.iterable(e)&&d.function_(e.next)&&d.function_(e.throw),d.asyncGenerator=e=>d.asyncIterable(e)&&d.function_(e.next)&&d.function_(e.throw),d.nativePromise=e=>c("Promise")(e);d.promise=e=>d.nativePromise(e)||(e=>{var t,n;return d.function_(null===(t=e)||void 0===t?void 0:t.then)&&d.function_(null===(n=e)||void 0===n?void 0:n.catch)})(e),d.generatorFunction=c("GeneratorFunction"),d.asyncGeneratorFunction=e=>"AsyncGeneratorFunction"===l(e),d.asyncFunction=e=>"AsyncFunction"===l(e),d.boundFunction=e=>d.function_(e)&&!e.hasOwnProperty("prototype"),d.regExp=c("RegExp"),d.date=c("Date"),d.error=c("Error"),d.map=e=>c("Map")(e),d.set=e=>c("Set")(e),d.weakMap=e=>c("WeakMap")(e),d.weakSet=e=>c("WeakSet")(e),d.int8Array=c("Int8Array"),d.uint8Array=c("Uint8Array"),d.uint8ClampedArray=c("Uint8ClampedArray"),d.int16Array=c("Int16Array"),d.uint16Array=c("Uint16Array"),d.int32Array=c("Int32Array"),d.uint32Array=c("Uint32Array"),d.float32Array=c("Float32Array"),d.float64Array=c("Float64Array"),d.bigInt64Array=c("BigInt64Array"),d.bigUint64Array=c("BigUint64Array"),d.arrayBuffer=c("ArrayBuffer"),d.sharedArrayBuffer=c("SharedArrayBuffer"),d.dataView=c("DataView"),d.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,d.urlInstance=e=>c("URL")(e),d.urlString=e=>{if(!d.string(e))return!1;try{return new URL(e),!0}catch(e){return!1}},d.truthy=e=>Boolean(e),d.falsy=e=>!e,d.nan=e=>Number.isNaN(e),d.primitive=e=>{return d.null_(e)||(t=typeof e,a.includes(t));var t},d.integer=e=>Number.isInteger(e),d.safeInteger=e=>Number.isSafeInteger(e),d.plainObject=e=>{if("[object Object]"!==s.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.getPrototypeOf({})},d.typedArray=e=>{return t=l(e),r.includes(t);var t};d.arrayLike=e=>!d.nullOrUndefined(e)&&!d.function_(e)&&(e=>d.safeInteger(e)&&e>=0)(e.length),d.inRange=(e,t)=>{if(d.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(d.array(t)&&2===t.length)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError(`Invalid range: ${JSON.stringify(t)}`)};const u=["innerHTML","ownerDocument","style","attributes","nodeValue"];d.domElement=e=>d.object(e)&&1===e.nodeType&&d.string(e.nodeName)&&!d.plainObject(e)&&u.every((t=>t in e)),d.observable=e=>{var t,n,r,i;return!!e&&(e===(null===(n=(t=e)[Symbol.observable])||void 0===n?void 0:n.call(t))||e===(null===(i=(r=e)["@@observable"])||void 0===i?void 0:i.call(r)))},d.nodeStream=e=>d.object(e)&&d.function_(e.pipe)&&!d.observable(e),d.infinite=e=>e===1/0||e===-1/0;const f=e=>t=>d.integer(t)&&Math.abs(t%2)===e;d.evenInteger=f(0),d.oddInteger=f(1),d.emptyArray=e=>d.array(e)&&0===e.length,d.nonEmptyArray=e=>d.array(e)&&e.length>0,d.emptyString=e=>d.string(e)&&0===e.length,d.nonEmptyString=e=>d.string(e)&&e.length>0;d.emptyStringOrWhitespace=e=>d.emptyString(e)||(e=>d.string(e)&&!/\S/.test(e))(e),d.emptyObject=e=>d.object(e)&&!d.map(e)&&!d.set(e)&&0===Object.keys(e).length,d.nonEmptyObject=e=>d.object(e)&&!d.map(e)&&!d.set(e)&&Object.keys(e).length>0,d.emptySet=e=>d.set(e)&&0===e.size,d.nonEmptySet=e=>d.set(e)&&e.size>0,d.emptyMap=e=>d.map(e)&&0===e.size,d.nonEmptyMap=e=>d.map(e)&&e.size>0,d.propertyKey=e=>d.any([d.string,d.number,d.symbol],e),d.formData=e=>c("FormData")(e),d.urlSearchParams=e=>c("URLSearchParams")(e);const h=(e,t,n)=>{if(!d.function_(t))throw new TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(0===n.length)throw new TypeError("Invalid number of values");return e.call(n,t)};d.any=(e,...t)=>(d.array(e)?e:[e]).some((e=>h(Array.prototype.some,e,t))),d.all=(e,...t)=>h(Array.prototype.every,e,t);const m=(e,t,n,r={})=>{if(!e){const{multipleValues:e}=r,i=e?`received values of types ${[...new Set(n.map((e=>`\`${d(e)}\``)))].join(", ")}`:`received value of type \`${d(n)}\``;throw new TypeError(`Expected value which is \`${t}\`, ${i}.`)}};n.assert={undefined:e=>m(d.undefined(e),"undefined",e),string:e=>m(d.string(e),"string",e),number:e=>m(d.number(e),"number",e),bigint:e=>m(d.bigint(e),"bigint",e),function_:e=>m(d.function_(e),"Function",e),null_:e=>m(d.null_(e),"null",e),class_:e=>m(d.class_(e),"Class",e),boolean:e=>m(d.boolean(e),"boolean",e),symbol:e=>m(d.symbol(e),"symbol",e),numericString:e=>m(d.numericString(e),"string with a number",e),array:(e,t)=>{m(d.array(e),"Array",e),t&&e.forEach(t)},buffer:e=>m(d.buffer(e),"Buffer",e),nullOrUndefined:e=>m(d.nullOrUndefined(e),"null or undefined",e),object:e=>m(d.object(e),"Object",e),iterable:e=>m(d.iterable(e),"Iterable",e),asyncIterable:e=>m(d.asyncIterable(e),"AsyncIterable",e),generator:e=>m(d.generator(e),"Generator",e),asyncGenerator:e=>m(d.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>m(d.nativePromise(e),"native Promise",e),promise:e=>m(d.promise(e),"Promise",e),generatorFunction:e=>m(d.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>m(d.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>m(d.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>m(d.boundFunction(e),"Function",e),regExp:e=>m(d.regExp(e),"RegExp",e),date:e=>m(d.date(e),"Date",e),error:e=>m(d.error(e),"Error",e),map:e=>m(d.map(e),"Map",e),set:e=>m(d.set(e),"Set",e),weakMap:e=>m(d.weakMap(e),"WeakMap",e),weakSet:e=>m(d.weakSet(e),"WeakSet",e),int8Array:e=>m(d.int8Array(e),"Int8Array",e),uint8Array:e=>m(d.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>m(d.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>m(d.int16Array(e),"Int16Array",e),uint16Array:e=>m(d.uint16Array(e),"Uint16Array",e),int32Array:e=>m(d.int32Array(e),"Int32Array",e),uint32Array:e=>m(d.uint32Array(e),"Uint32Array",e),float32Array:e=>m(d.float32Array(e),"Float32Array",e),float64Array:e=>m(d.float64Array(e),"Float64Array",e),bigInt64Array:e=>m(d.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>m(d.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>m(d.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>m(d.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>m(d.dataView(e),"DataView",e),urlInstance:e=>m(d.urlInstance(e),"URL",e),urlString:e=>m(d.urlString(e),"string with a URL",e),truthy:e=>m(d.truthy(e),"truthy",e),falsy:e=>m(d.falsy(e),"falsy",e),nan:e=>m(d.nan(e),"NaN",e),primitive:e=>m(d.primitive(e),"primitive",e),integer:e=>m(d.integer(e),"integer",e),safeInteger:e=>m(d.safeInteger(e),"integer",e),plainObject:e=>m(d.plainObject(e),"plain object",e),typedArray:e=>m(d.typedArray(e),"TypedArray",e),arrayLike:e=>m(d.arrayLike(e),"array-like",e),domElement:e=>m(d.domElement(e),"HTMLElement",e),observable:e=>m(d.observable(e),"Observable",e),nodeStream:e=>m(d.nodeStream(e),"Node.js Stream",e),infinite:e=>m(d.infinite(e),"infinite number",e),emptyArray:e=>m(d.emptyArray(e),"empty array",e),nonEmptyArray:e=>m(d.nonEmptyArray(e),"non-empty array",e),emptyString:e=>m(d.emptyString(e),"empty string",e),nonEmptyString:e=>m(d.nonEmptyString(e),"non-empty string",e),emptyStringOrWhitespace:e=>m(d.emptyStringOrWhitespace(e),"empty string or whitespace",e),emptyObject:e=>m(d.emptyObject(e),"empty object",e),nonEmptyObject:e=>m(d.nonEmptyObject(e),"non-empty object",e),emptySet:e=>m(d.emptySet(e),"empty set",e),nonEmptySet:e=>m(d.nonEmptySet(e),"non-empty set",e),emptyMap:e=>m(d.emptyMap(e),"empty map",e),nonEmptyMap:e=>m(d.nonEmptyMap(e),"non-empty map",e),propertyKey:e=>m(d.propertyKey(e),"PropertyKey",e),formData:e=>m(d.formData(e),"FormData",e),urlSearchParams:e=>m(d.urlSearchParams(e),"URLSearchParams",e),evenInteger:e=>m(d.evenInteger(e),"even integer",e),oddInteger:e=>m(d.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>m(d.directInstanceOf(e,t),"T",e),inRange:(e,t)=>m(d.inRange(e,t),"in range",e),any:(e,...t)=>m(d.any(e,...t),"predicate returns truthy for any value",t,{multipleValues:!0}),all:(e,...t)=>m(d.all(e,...t),"predicate returns truthy for all values",t,{multipleValues:!0})},Object.defineProperties(d,{class:{value:d.class_},function:{value:d.function_},null:{value:d.null_}}),Object.defineProperties(n.assert,{class:{value:n.assert.class_},function:{value:n.assert.function_},null:{value:n.assert.null_}}),n.default=d,t.exports=d,t.exports.default=d,t.exports.assert=n.assert},{}],19:[function(e,t,n){"use strict";n.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},n.toByteArray=function(e){var t,n,r=c(e),o=r[0],s=r[1],l=new a(function(e,t,n){return 3*(t+n)/4-n}(0,o,s)),d=0,p=s>0?o-4:o;for(n=0;n<p;n+=4)t=i[e.charCodeAt(n)]<<18|i[e.charCodeAt(n+1)]<<12|i[e.charCodeAt(n+2)]<<6|i[e.charCodeAt(n+3)],l[d++]=t>>16&255,l[d++]=t>>8&255,l[d++]=255&t;2===s&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,l[d++]=255&t);1===s&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,l[d++]=t>>8&255,l[d++]=255&t);return l},n.fromByteArray=function(e){for(var t,n=e.length,i=n%3,a=[],o=16383,s=0,l=n-i;s<l;s+=o)a.push(d(e,s,s+o>l?l:s+o));1===i?(t=e[n-1],a.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],a.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return a.join("")};for(var r=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=o.length;s<l;++s)r[s]=o[s],i[o.charCodeAt(s)]=s;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function d(e,t,n){for(var i,a,o=[],s=t;s<n;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),o.push(r[(a=i)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],20:[function(e,t,n){},{}],21:[function(e,t,n){(function(t){(function(){"use strict";var t=e("base64-js"),r=e("ieee754");n.Buffer=o,n.SlowBuffer=function(e){+e!=e&&(e=0);return o.alloc(+e)},n.INSPECT_MAX_BYTES=50;var i=2147483647;function a(e){if(e>i)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=o.prototype,t}function o(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return c(e)}return s(e,t,n)}function s(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!o.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|u(e,t),r=a(n),i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return d(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(R(e,ArrayBuffer)||e&&R(e.buffer,ArrayBuffer))return function(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');var r;r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n);return r.__proto__=o.prototype,r