{"_id":"@archiloque/epub-builder","_rev":"7-e80cbebe22cd2ca6007d23d286d2d2d3","name":"@archiloque/epub-builder","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"@archiloque/epub-builder","version":"0.0.1","keywords":["EPUB"],"author":{"url":"https://archiloque.net","name":"Julien Kirch"},"license":"GPL-3.0-only","_id":"@archiloque/epub-builder@0.0.1","maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"homepage":"https://codeberg.org/archiloque/epub-builder","bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"dist":{"shasum":"13060dc27af227756f21929a27c3f953696667d9","tarball":"https://registry.npmjs.org/@archiloque/epub-builder/-/epub-builder-0.0.1.tgz","fileCount":37,"integrity":"sha512-socyqSeS/DMg5gJtoMh57DzWmcyGd5YNJC8EOv9vDNUUqHm1PqWh3lF4AbYCLeLT9H2oPPOSSpcRm1Ti8zRQCw==","signatures":[{"sig":"MEUCIQDHIud1XK4JwzutVssC6y4C9BG17Bui0IjKWLAJ1RDVUAIgKopBEzSF/8i8Z3kw+jjFtNhT93pwhdSId75ObgGwMhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98583},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"./xml":"./dist/xml.js","./interfaces":"./dist/interfaces.js","./package.json":"./package.json","./writer/writer":"./dist/writer/writer.js","./writer/epub-writer":"./dist/writer/epub-writer.js","./writer/memory-writer":"./dist/writer/memory-writer.js","./writer/directory-writer":"./dist/writer/directory-writer.js","./epub-builder/epub-builder":"./dist/epub-builder/epub-builder.js","./writer/writable-stream-utils":"./dist/writer/writable-stream-utils.js","./epub-builder/managers/toc-manager":"./dist/epub-builder/managers/toc-manager.js","./epub-builder/automatic-epub-builder":"./dist/epub-builder/automatic-epub-builder.js","./epub-builder/managers/image-manager":"./dist/epub-builder/managers/image-manager.js","./epub-builder/managers/inter-part-link-manager":"./dist/epub-builder/managers/inter-part-link-manager.js"},"gitHead":"746e3ec78fa57e44ac61705786098a5d41de054a","scripts":{"dev":"tsdown --watch","lint":"npx @biomejs/biome check --write ./src ./examples ./tests","test":"vitest","build":"tsdown","release":"bumpp && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"archiloque","email":"archiloque@archiloque.net"},"repository":{"url":"https://codeberg.org/archiloque/epub-builder.git","type":"git"},"_npmVersion":"11.5.2","description":"A TypeScript library to create EPUB files","directories":{},"_nodeVersion":"24.5.0","dependencies":{"mime":"^4.0.7","cheerio":"^1.1.2","@types/node":"^24.3.0","@zip.js/zip.js":"^2.7.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"bumpp":"^10.1.0","tsdown":"^0.14.1","vitest":"^3.1.3","typescript":"^5.8.3","@biomejs/biome":"2.2.0","typescript-eslint":"^8.39.0"},"_npmOperationalInternal":{"tmp":"tmp/epub-builder_0.0.1_1755763913001_0.10680753764348716","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@archiloque/epub-builder","version":"0.0.2","keywords":["EPUB"],"author":{"url":"https://archiloque.net","name":"Julien Kirch"},"license":"GPL-3.0-only","_id":"@archiloque/epub-builder@0.0.2","maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"homepage":"https://codeberg.org/archiloque/epub-builder","bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"dist":{"shasum":"e4cd7c7968fe850d0acb6adcdb180842ed856fe1","tarball":"https://registry.npmjs.org/@archiloque/epub-builder/-/epub-builder-0.0.2.tgz","fileCount":37,"integrity":"sha512-lb3ONSg38FQMSEg1XBOFPyaHQ//JywOxkxPC2kgazFrxNP3GcFQh4TdFvkpT8Nr3mi6haOA0f1rV2PqMKesUpA==","signatures":[{"sig":"MEYCIQDtTzZS+Sqjo9yC2r3PFCagq5ZDqgBnN4Yp/ZZImQuUmQIhANPmdmkOB5fdCqBfw+N2sge3pnObZWat+6rW8au7GB5r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98615},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"./xml":"./dist/xml.js","./interfaces":"./dist/interfaces.js","./package.json":"./package.json","./writer/writer":"./dist/writer/writer.js","./writer/epub-writer":"./dist/writer/epub-writer.js","./writer/memory-writer":"./dist/writer/memory-writer.js","./writer/directory-writer":"./dist/writer/directory-writer.js","./epub-builder/epub-builder":"./dist/epub-builder/epub-builder.js","./writer/writable-stream-utils":"./dist/writer/writable-stream-utils.js","./epub-builder/managers/toc-manager":"./dist/epub-builder/managers/toc-manager.js","./epub-builder/automatic-epub-builder":"./dist/epub-builder/automatic-epub-builder.js","./epub-builder/managers/image-manager":"./dist/epub-builder/managers/image-manager.js","./epub-builder/managers/inter-part-link-manager":"./dist/epub-builder/managers/inter-part-link-manager.js"},"gitHead":"746e3ec78fa57e44ac61705786098a5d41de054a","scripts":{"dev":"tsdown --watch","lint":"npx @biomejs/biome check --write ./src ./examples ./tests","test":"vitest","build":"tsdown","release":"bumpp && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"archiloque","email":"archiloque@archiloque.net"},"repository":{"url":"https://codeberg.org/archiloque/epub-builder.git","type":"git"},"_npmVersion":"11.5.2","description":"A TypeScript library to create EPUB files","directories":{},"_nodeVersion":"24.5.0","dependencies":{"mime":"^4.0.7","cheerio":"^1.1.2","@zip.js/zip.js":"^2.7.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"bumpp":"^10.1.0","tsdown":"^0.14.1","vitest":"^3.1.3","typescript":"^5.8.3","@biomejs/biome":"2.2.0","typescript-eslint":"^8.39.0"},"optionalDependencies":{"@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/epub-builder_0.0.2_1755764122811_0.978290347400077","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@archiloque/epub-builder","version":"0.0.3","keywords":["EPUB"],"author":{"url":"https://archiloque.net","name":"Julien Kirch"},"license":"GPL-3.0-only","_id":"@archiloque/epub-builder@0.0.3","maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"homepage":"https://codeberg.org/archiloque/epub-builder","bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"dist":{"shasum":"f1762d279fa6fed0b4e75c75f3726eeee2868e7f","tarball":"https://registry.npmjs.org/@archiloque/epub-builder/-/epub-builder-0.0.3.tgz","fileCount":37,"integrity":"sha512-vHvx/nXL1x/qNKqqL1y/3mHatD7Hi0T+fD/Hq2lW0sLonqBhwdRQFf8FlGLNcr+s6zRdJEGZxjZOhnR85pVp0g==","signatures":[{"sig":"MEUCIQCYVxQxrk8iu/LWDiT1N55f/rqt1L/cBnGCYPfmzoU/QgIga86QvqH/MXOIfa4xXUPzcNv8w5w9ewZ/0uy6v0WP+hY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98493},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"./xml":"./dist/xml.js","./interfaces":"./dist/interfaces.js","./package.json":"./package.json","./writer/writer":"./dist/writer/writer.js","./writer/epub-writer":"./dist/writer/epub-writer.js","./writer/memory-writer":"./dist/writer/memory-writer.js","./writer/directory-writer":"./dist/writer/directory-writer.js","./epub-builder/epub-builder":"./dist/epub-builder/epub-builder.js","./writer/writable-stream-utils":"./dist/writer/writable-stream-utils.js","./epub-builder/managers/toc-manager":"./dist/epub-builder/managers/toc-manager.js","./epub-builder/automatic-epub-builder":"./dist/epub-builder/automatic-epub-builder.js","./epub-builder/managers/image-manager":"./dist/epub-builder/managers/image-manager.js","./epub-builder/managers/inter-part-link-manager":"./dist/epub-builder/managers/inter-part-link-manager.js"},"gitHead":"133d888d71939b8a03de55d547e68da5c0794cd5","scripts":{"dev":"tsdown --watch","lint":"npx @biomejs/biome check --write ./src ./examples ./tests","test":"vitest","build":"tsdown","release":"bumpp && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"archiloque","email":"archiloque@archiloque.net"},"repository":{"url":"https://codeberg.org/archiloque/epub-builder.git","type":"git"},"_npmVersion":"11.5.2","description":"A TypeScript library to create EPUB files","directories":{},"_nodeVersion":"24.5.0","dependencies":{"mime":"^4.0.7","cheerio":"^1.1.2","@zip.js/zip.js":"^2.7.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"bumpp":"^10.1.0","tsdown":"^0.14.1","vitest":"^3.1.3","typescript":"^5.8.3","@biomejs/biome":"2.2.0","typescript-eslint":"^8.39.0"},"optionalDependencies":{"@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/epub-builder_0.0.3_1755794503001_0.8243794197189744","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@archiloque/epub-builder","version":"0.0.4","keywords":["EPUB"],"author":{"url":"https://archiloque.net","name":"Julien Kirch"},"license":"GPL-3.0-only","_id":"@archiloque/epub-builder@0.0.4","maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"homepage":"https://codeberg.org/archiloque/epub-builder","bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"dist":{"shasum":"a3d7ac7a610d8407bb948e0f233a2ad99fd9e50b","tarball":"https://registry.npmjs.org/@archiloque/epub-builder/-/epub-builder-0.0.4.tgz","fileCount":38,"integrity":"sha512-KVjrjjYZVtAprbCXxGsMTx9Ix7PiB0TcyTgsgA8/bLyQCE1vhIFfAsHLRpaA2UvW8CnNYJvr5lv0vnxLRMHaww==","signatures":[{"sig":"MEQCIDC+4/OoP8c65Nl8D46gOGLtDDxHzzXk02Jj4ftGfuHAAiBOh9vmY2xLi0vsb+JI8NLDMYOPUi/5Kn7P8G/7qz73rQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100356},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"./xml":"./dist/xml.js","./interfaces":"./dist/interfaces.js","./package.json":"./package.json","./writer/writer":"./dist/writer/writer.js","./writer/epub-writer":"./dist/writer/epub-writer.js","./writer/memory-writer":"./dist/writer/memory-writer.js","./writer/directory-writer":"./dist/writer/directory-writer.js","./epub-builder/epub-builder":"./dist/epub-builder/epub-builder.js","./writer/writable-stream-utils":"./dist/writer/writable-stream-utils.js","./epub-builder/managers/toc-manager":"./dist/epub-builder/managers/toc-manager.js","./epub-builder/automatic-epub-builder":"./dist/epub-builder/automatic-epub-builder.js","./epub-builder/managers/image-manager":"./dist/epub-builder/managers/image-manager.js","./epub-builder/managers/inter-part-link-manager":"./dist/epub-builder/managers/inter-part-link-manager.js"},"gitHead":"689f6211658e44bac75fe7f3e6f4a0a73038953b","scripts":{"dev":"tsdown --watch","lint":"npx @biomejs/biome check --write ./src ./examples ./tests","test":"vitest","build":"tsdown","release":"bumpp && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"archiloque","email":"archiloque@archiloque.net"},"repository":{"url":"https://codeberg.org/archiloque/epub-builder.git","type":"git"},"_npmVersion":"11.5.2","description":"A TypeScript library to create EPUB files","directories":{},"_nodeVersion":"24.5.0","dependencies":{"mime":"^4.0.7","cheerio":"^1.1.2","@zip.js/zip.js":"^2.7.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"bumpp":"^10.1.0","tsdown":"^0.14.1","vitest":"^3.1.3","typescript":"^5.8.3","@biomejs/biome":"2.2.0","typescript-eslint":"^8.39.0"},"optionalDependencies":{"@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/epub-builder_0.0.4_1755938447938_0.9405835882084221","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@archiloque/epub-builder","version":"0.0.5","keywords":["EPUB"],"author":{"url":"https://archiloque.net","name":"Julien Kirch"},"license":"GPL-3.0-only","_id":"@archiloque/epub-builder@0.0.5","maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"homepage":"https://codeberg.org/archiloque/epub-builder","bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"dist":{"shasum":"5116bd0a2ebaeb402a704ae3cfce1c44d5d4b66c","tarball":"https://registry.npmjs.org/@archiloque/epub-builder/-/epub-builder-0.0.5.tgz","fileCount":38,"integrity":"sha512-xugegBDwjXRQ03NOCwv2/3OvLczY+XEej91jnWjFyyNEme0dZ9H5KJqlTShPBHVANnUe4VLJhyY09vfUH+lGsQ==","signatures":[{"sig":"MEYCIQCsgUK6uo1wsuRwFzpGHtjBSz6dk+SjZY1EgEqv+U9HdwIhALaoqKJO1begUxHMrOyNYio1WHt1X3duWolxCgxDy5zC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101753},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"./xml":"./dist/xml.js","./interfaces":"./dist/interfaces.js","./package.json":"./package.json","./writer/writer":"./dist/writer/writer.js","./writer/epub-writer":"./dist/writer/epub-writer.js","./writer/memory-writer":"./dist/writer/memory-writer.js","./writer/directory-writer":"./dist/writer/directory-writer.js","./epub-builder/epub-builder":"./dist/epub-builder/epub-builder.js","./writer/writable-stream-utils":"./dist/writer/writable-stream-utils.js","./epub-builder/managers/toc-manager":"./dist/epub-builder/managers/toc-manager.js","./epub-builder/automatic-epub-builder":"./dist/epub-builder/automatic-epub-builder.js","./epub-builder/managers/image-manager":"./dist/epub-builder/managers/image-manager.js","./epub-builder/managers/inter-part-link-manager":"./dist/epub-builder/managers/inter-part-link-manager.js"},"gitHead":"6c2d399ab7f50e3bce6734dda2b129858903d5d6","scripts":{"dev":"tsdown --watch","lint":"npx @biomejs/biome check --write ./src ./examples ./tests","test":"vitest","build":"tsdown","release":"bumpp && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"archiloque","email":"archiloque@archiloque.net"},"repository":{"url":"https://codeberg.org/archiloque/epub-builder.git","type":"git"},"_npmVersion":"11.5.2","description":"A TypeScript library to create EPUB files","directories":{},"_nodeVersion":"24.5.0","dependencies":{"mime":"^4.0.7","cheerio":"^1.1.2","@zip.js/zip.js":"^2.7.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"bumpp":"^10.1.0","tsdown":"^0.14.1","vitest":"^3.1.3","typescript":"^5.8.3","@biomejs/biome":"2.2.0","typescript-eslint":"^8.39.0"},"optionalDependencies":{"@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/epub-builder_0.0.5_1756209988350_0.5833588680032513","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@archiloque/epub-builder","version":"0.0.6","keywords":["EPUB"],"author":{"url":"https://archiloque.net","name":"Julien Kirch"},"license":"GPL-3.0-only","_id":"@archiloque/epub-builder@0.0.6","maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"homepage":"https://codeberg.org/archiloque/epub-builder","bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"dist":{"shasum":"1715a3aab26463a2186c0db5937ed8d3b0295e1f","tarball":"https://registry.npmjs.org/@archiloque/epub-builder/-/epub-builder-0.0.6.tgz","fileCount":41,"integrity":"sha512-7xtXkgicf343aNjnjwpZbp6KfWdpLdlIfaWUx5phedjpMNpbpuO/30pbVU5KNrrSOKhd6h9l8CCbZ6bsx5TfYw==","signatures":[{"sig":"MEQCIAGdBByRX7Sn5s83VHEMhMR9tTi3RqVw1AfnpGq3bpAGAiAbnG/4ze72vCmKPw9QkJpvAaXcL5FKi/2qZ1VlCLy/GA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108105},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{"./xml":"./dist/xml.js","./interfaces":"./dist/interfaces.js","./package.json":"./package.json","./writer/writer":"./dist/writer/writer.js","./writer/epub-writer":"./dist/writer/epub-writer.js","./writer/memory-writer":"./dist/writer/memory-writer.js","./writer/directory-writer":"./dist/writer/directory-writer.js","./epub-builder/epub-builder":"./dist/epub-builder/epub-builder.js","./writer/writable-stream-utils":"./dist/writer/writable-stream-utils.js","./epub-builder/managers/css-manager":"./dist/epub-builder/managers/css-manager.js","./epub-builder/managers/toc-manager":"./dist/epub-builder/managers/toc-manager.js","./epub-builder/automatic-epub-builder":"./dist/epub-builder/automatic-epub-builder.js","./epub-builder/managers/image-manager":"./dist/epub-builder/managers/image-manager.js","./epub-builder/managers/inter-part-link-manager":"./dist/epub-builder/managers/inter-part-link-manager.js"},"gitHead":"41f70a1bd873ac73e3dca3ca1da72e400e1bf9a2","scripts":{"dev":"tsdown --watch","lint":"npx @biomejs/biome check --write ./src ./examples ./tests","test":"vitest","build":"tsdown","release":"bumpp && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"archiloque","email":"archiloque@archiloque.net"},"repository":{"url":"https://codeberg.org/archiloque/epub-builder.git","type":"git"},"_npmVersion":"11.5.2","description":"A TypeScript library to create EPUB files","directories":{},"_nodeVersion":"24.5.0","dependencies":{"mime":"^4.0.7","cheerio":"^1.1.2","@zip.js/zip.js":"^2.7.72"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"bumpp":"^10.1.0","tsdown":"^0.14.1","vitest":"^3.1.3","typescript":"^5.8.3","@biomejs/biome":"2.2.0","typescript-eslint":"^8.39.0"},"optionalDependencies":{"@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/epub-builder_0.0.6_1756215816089_0.2446048706753865","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@archiloque/epub-builder","version":"0.0.7","description":"A TypeScript library to create EPUB files","keywords":["EPUB"],"repository":{"type":"git","url":"https://codeberg.org/archiloque/epub-builder.git"},"bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"homepage":"https://codeberg.org/archiloque/epub-builder","license":"GPL-3.0-only","author":{"name":"Julien Kirch","url":"https://archiloque.net"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./epub-builder/automatic-epub-builder":"./dist/epub-builder/automatic-epub-builder.js","./epub-builder/epub-builder":"./dist/epub-builder/epub-builder.js","./epub-builder/managers/css-manager":"./dist/epub-builder/managers/css-manager.js","./epub-builder/managers/image-manager":"./dist/epub-builder/managers/image-manager.js","./epub-builder/managers/inter-part-link-manager":"./dist/epub-builder/managers/inter-part-link-manager.js","./epub-builder/managers/toc-manager":"./dist/epub-builder/managers/toc-manager.js","./interfaces":"./dist/interfaces.js","./writer/directory-writer":"./dist/writer/directory-writer.js","./writer/epub-writer":"./dist/writer/epub-writer.js","./writer/memory-writer":"./dist/writer/memory-writer.js","./writer/writable-stream-utils":"./dist/writer/writable-stream-utils.js","./writer/writer":"./dist/writer/writer.js","./xml":"./dist/xml.js","./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"lint":"npx @biomejs/biome check --write ./src ./examples ./tests","build":"tsdown","dev":"tsdown --watch","test":"vitest","typecheck":"tsc --noEmit","release":"bumpp && npm publish"},"devDependencies":{"@biomejs/biome":"2.2.0","bumpp":"^10.1.0","tsdown":"^0.14.1","typescript":"^5.8.3","typescript-eslint":"^8.39.0","vitest":"^3.1.3"},"dependencies":{"@zip.js/zip.js":"^2.7.72","cheerio":"^1.1.2","mime":"^4.0.7"},"optionalDependencies":{"@types/node":"^24.3.0"},"_id":"@archiloque/epub-builder@0.0.7","gitHead":"70c1581bbcb46fd5739fe4b91789cbcf4e7c75d2","_nodeVersion":"24.5.0","_npmVersion":"11.5.2","dist":{"integrity":"sha512-/w0nHDxT+H/WALHPMxAtp1ZEMQy1h3tg2aoPpcjOdN61lzCJQkTyDeMCIjh67u90gj4mExglocZZ5j102zLCSA==","shasum":"82ea03f752927c4485868c7e84262beb671bbc2d","tarball":"https://registry.npmjs.org/@archiloque/epub-builder/-/epub-builder-0.0.7.tgz","fileCount":44,"unpackedSize":111359,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC8xjlJuxmQ/AMMcbq0vdNIyTyKe1gNZ3ARfU2hy3PY2gIhAMv54kkZzqN++ed85uy4K1ANIE0WiayMJrUW6tI8P8Ie"}]},"_npmUser":{"name":"archiloque","email":"archiloque@archiloque.net"},"directories":{},"maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/epub-builder_0.0.7_1758557547286_0.7578064524627195"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-21T08:11:52.889Z","modified":"2025-09-22T16:12:27.871Z","0.0.1":"2025-08-21T08:11:53.234Z","0.0.2":"2025-08-21T08:15:22.995Z","0.0.3":"2025-08-21T16:41:43.219Z","0.0.4":"2025-08-23T08:40:48.145Z","0.0.5":"2025-08-26T12:06:28.564Z","0.0.6":"2025-08-26T13:43:36.269Z","0.0.7":"2025-09-22T16:12:27.691Z"},"bugs":{"url":"https://codeberg.org/archiloque/epub-builder/issues"},"author":{"name":"Julien Kirch","url":"https://archiloque.net"},"license":"GPL-3.0-only","homepage":"https://codeberg.org/archiloque/epub-builder","keywords":["EPUB"],"repository":{"type":"git","url":"https://codeberg.org/archiloque/epub-builder.git"},"description":"A TypeScript library to create EPUB files","maintainers":[{"name":"archiloque","email":"archiloque@archiloque.net"}],"readme":"# epub-builder: a TypeScript library to create EPUBs files \n\n## Why ?\n\nI like to read websites on my e-ink tablet, which means creating EPUB files.\n\nWhich means I have a bunch of assets I downloaded and I want to make them into a coherent EPUB.\n\nI disliked the existing options and decided to do my own.\n\n## Goal\n\nThe library is intended to be used in a browser or in NodeJS, with some NodeJS-specific APIs.\n\nIt's aimed at supported standard cases, I may choose to not support very exotic requirements.\n\nIt's not aimed at generating the XHTML files that represent the content. \n\nFeedbacks are welcome, please open an issue if you have questions / suggestions but please don't start with a MR that includes code. \n\n## How to use it.\n\nThe library can be used in two modes:\n- an \"automatic\" builder that tries to automate as much as possible the case where you have all the assets as files on a file system with working links, and where NodeJS is mandatory.\n- a manual builder for other cases, some facilities are provided if you want, but you can do everything yourself, and that can be used in the browser. \n\n### Automatic builder\n\n```TypeScript\nconst epubBuilder = new AutomaticEpubBuilder(\n  \"./source-assets\",\n  localEpubWriter(\"./nice-epub.epub\"),\n)\n\nepubBuilder.metadata = {\n  title: \"Nice title\",\n  language: \"en\",\n  identifier: \"https://example.com/book-uni\",\n  modifiedDate: new Date(),\n  author: \"Impressive author, Phd.\",\n}\n\nawait epubBuilder.setCoverImage(\"assets/cover.png\")\n// The css & images referenced by the xhtml will be\n// automatically added to the book\nawait epubBuilder.addBookPart(\"assets/chapter1.xhtml\")\nawait epubBuilder.addBookPart(\"assets/chapter2.xhtml\")\n\nawait epubBuilder.finalize()\n```\n\n### Manual builder\n\nDoes the same thing as the manual builder example:\n\n```TypeScript\nconst cssContent: string = readFileAsString(\"assets/css.css\")\nconst coverImageContent: Blob = readFileAsBlob(\"assets/cover.png\")\n\nconst chapter1Content: string = readFileAsString(\"assets/chapter1.xhtml\")\nconst chapter2Content: string = readFileAsString(\"assets/chapter2.xhtml\")\n\nconst innerImageContent: Blob = readFileAsBlob(\"assets/birds.jpg\")\n\n// From here until the EPUB is generated \n// everything is browser-compatible\nconst blobWriter: BlobWriter = new BlobWriter(\"application/zip\")\nconst writer: EpubWriter = new EpubWriter(blobWriter)\nconst epubBuilder: EpubBuilder = new EpubBuilder(writer)\n\nepubBuilder.metadata = {\n  title: \"Nice title\",\n  language: \"en\",\n  identifier: \"https://example.com/epub-id\",\n  modifiedDate: new Date(),\n  author: \"Impressive author, Phd.\",\n}\n\nawait epubBuilder.initialize()\n\n// Generate the TOC \n// by parsing the xhtml content file to extract their headers\n// it returns an updated version of the content\n// because it needs to add ids to headers to make\n// TOC links works\nconst tocManager = new TocManager(4)\n\n// The manifest must reference all the book resources: \n// xhtml files, images...\nconst manifest: ManifestElement[] = []\n\n// The spine must reference all xhtml making the book content\n// in the order they should be used\n// it use the ids defined in the manifest\nconst spine: SpineElement[] = []\n\n// !! Cover image !!\n// Reference it in the manifest\nmanifest.push({\n  href: \"cover.png\",\n  id: \"cover\",\n  // you can use mime.getType(fileName)!\n  // to find the mime type from the file name\n  mediaType: \"image/png\",\n  properties: EpubBuilder.COVER_IMAGE_PROPERTY,\n})\n// and write the file\nawait epubBuilder.writeBinaryFile(\"cover.png\", coverImageContent)\n\n// !! CSS file !!\n// Reference it in the manifest\nmanifest.push({\n  href: \"css.css\",\n  id: \"css\",\n  mediaType: EpubBuilder.CSS_MEDIA_TYPE\n})\n// and write the file\nawait epubBuilder.writeTextFileContent(\"css.css\", cssContent)\n\n// !! First chapter !!\n// Extract the headers\nconst chapter1ProcessedContent = tocManager\n  .process(\"chapter1.xhtml\", chapter1Content)\n  .xml()\n// Reference it in the spine and in the manifest\nmanifest.push({\n  href: \"chapter1.xhtml\",\n  id: \"chapter1\",\n  mediaType: EpubBuilder.XHTML_MEDIA_TYPE,\n})\nspine.push({idref: \"chapter1\"})\n// and write the file\nawait epubBuilder.writeTextFileContent(\n  \"chapter1.xhtml\",\n  chapter1ProcessedContent,\n)\n\n// !! Second chapter !!\n// Extract the headers\nconst chapter2ProcessedContent = tocManager\n  .process(\"chapter2.xhtml\", chapter2Content)\n  .xml()\n// Reference it in the spine and in the manifest\nmanifest.push({\n  href: \"chapter2.xhtml\",\n  id: \"chapter2\",\n  mediaType: EpubBuilder.XHTML_MEDIA_TYPE,\n})\nspine.push({idref: \"chapter2\"})\n// and write the file\nawait epubBuilder.writeTextFileContent(\n  \"chapter2.xhtml\",\n  chapter2ProcessedContent,\n)\n\n// !! Inner image !!\n// Reference the inner image in the manifest, NOT in the spine\nmanifest.push({\n  href: \"birds.jpg\",\n  id: \"birds\",\n  mediaType: \"image/jpeg\",\n})\n// and write the file\nawait epubBuilder.writeBinaryFile(\"birds.jpg\", innerImageContent)\n\n// !! Finish !!\n// Set the table of content from the extracted headers\nconst toc = tocContent(\"Table of content\", tocManager.toc);\nawait epubBuilder.setTocContent(toc)\n// Finalize the content\nawait epubBuilder.finalize(spine, manifest)\n\n// The blob contain the EPUB data\nconst blob: Blob = await blobWriter.getData()\n\n// This one is not browser-compatible, \n// but I need it to easily test the result\nconst buffer: Buffer = Buffer.from(await blob.arrayBuffer());\nfs.writeFileSync(\"example-epub.epub\", buffer)\n```\n\n## Output\n\n`Writer`s are in charge of storing the ebook content, there are 3 implementations you can chosse from:\n\n- `EpubWriter` write the content as an EPUB file, which is a zip file with some specific features\n- `DirectoryWriter` write the content as files in a file system, used for manual inspections or when using EPUBCheck to validate your content (`--mode exp` will make it validate a directory), it requires NodeJS\n- `MemoryWriter` write the content in memory in a `Record`, which is handy for debugging and automated testing\n\n## Development\n\n### Install dependencies:\n\n```bash\nnpm install\n```\n\n### Linter\n\n```bash\nnpm lint\n```\n\n### Run the unit tests:\n\n```bash\nnpm run test\n```\n\n### Build the library:\n\n```bash\nnpm run build\n```\n\n## Links\n\n- [Current EPUB specification](https://www.w3.org/TR/epub-33)\n- [EPUBCheck](https://www.w3.org/publishing/epubcheck/), a tool that checks if EPUB files are valid\n","readmeFilename":"README.md"}