Decrypted plugin sample
Each page is fetched only as an AES-GCM encrypted .encfile. definePlugin() decrypts it before the image is rendered.
Source code
1import * as ComicViewer from "@publira/comic-viewer";23const encryptedJpegPlugin = ComicViewer.definePlugin({4 name: "encrypted-jpeg",5 customFetch: ({ signal, url }) =>6 fetch(url, { signal }).then((response) => response.arrayBuffer()),7 afterFetch: ({ buffer }) => decryptPage(buffer),8});910export const Reader = ({ pages }) => (11 <ComicViewer.Root pages={pages} plugins={[encryptedJpegPlugin]}>12 <ComicViewer.Viewport />13 <ComicViewer.Toolbar />14 <ComicViewer.PageNavigation />15 </ComicViewer.Root>16);