next-manga-pdf 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +20 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/package.json +55 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as pdfjs from 'pdfjs-dist';
|
|
3
|
+
|
|
4
|
+
interface PdfViewerProps {
|
|
5
|
+
url: string;
|
|
6
|
+
scale?: number;
|
|
7
|
+
className?: string;
|
|
8
|
+
canvasClassName?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function PdfViewer({ url, scale, className, canvasClassName }: PdfViewerProps): react.JSX.Element;
|
|
11
|
+
|
|
12
|
+
interface PdfCanvasProps {
|
|
13
|
+
pdfRef: React.RefObject<pdfjs.PDFDocumentProxy | null>;
|
|
14
|
+
pageNumber: number;
|
|
15
|
+
scale?: number;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
declare function PdfCanvas({ pdfRef, pageNumber, scale, className }: PdfCanvasProps): react.JSX.Element;
|
|
19
|
+
|
|
20
|
+
export { PdfCanvas, type PdfCanvasProps, PdfViewer, type PdfViewerProps };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as pdfjs from 'pdfjs-dist';
|
|
3
|
+
|
|
4
|
+
interface PdfViewerProps {
|
|
5
|
+
url: string;
|
|
6
|
+
scale?: number;
|
|
7
|
+
className?: string;
|
|
8
|
+
canvasClassName?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function PdfViewer({ url, scale, className, canvasClassName }: PdfViewerProps): react.JSX.Element;
|
|
11
|
+
|
|
12
|
+
interface PdfCanvasProps {
|
|
13
|
+
pdfRef: React.RefObject<pdfjs.PDFDocumentProxy | null>;
|
|
14
|
+
pageNumber: number;
|
|
15
|
+
scale?: number;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
declare function PdfCanvas({ pdfRef, pageNumber, scale, className }: PdfCanvasProps): react.JSX.Element;
|
|
19
|
+
|
|
20
|
+
export { PdfCanvas, type PdfCanvasProps, PdfViewer, type PdfViewerProps };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var h=Object.create;var l=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var y=(e,r)=>{for(var n in r)l(e,n,{get:r[n],enumerable:!0})},x=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of C(r))!k.call(e,t)&&t!==n&&l(e,t,{get:()=>r[t],enumerable:!(o=j(r,t))||o.enumerable});return e};var N=(e,r,n)=>(n=e!=null?h(b(e)):{},x(r||!e||!e.__esModule?l(n,"default",{value:e,enumerable:!0}):n,e)),D=e=>x(l({},"__esModule",{value:!0}),e);var T={};y(T,{PdfCanvas:()=>d,PdfViewer:()=>E});module.exports=D(T);var f=require("react"),i=N(require("pdfjs-dist"));var p=require("react"),R=require("react/jsx-runtime");function d({pdfRef:e,pageNumber:r,scale:n=1.5,className:o=""}){let t=(0,p.useRef)(null),a=(0,p.useRef)(null);return(0,p.useEffect)(()=>{let c=!0,s=t.current,u=e.current;return!u||!s||!s?void 0:((async()=>{a.current&&(a.current.cancel(),a.current=null);let P=await u.getPage(r);if(!c)return;let m=P.getViewport({scale:n}),v=s.getContext("2d");v&&(s.height=m.height,s.width=m.width,requestAnimationFrame(()=>{c&&(a.current=P.render({canvasContext:v,viewport:m,canvas:s}),a.current.promise.catch(w=>{w.name!=="RenderingCancelledException"&&console.error(`Error en p\xE1gina ${r}:`,w)}))}))})(),()=>{c=!1,a.current&&a.current.cancel()})},[e,r,n]),(0,R.jsx)("canvas",{ref:t,className:o,style:{display:"block"}})}var g=require("react/jsx-runtime");i.GlobalWorkerOptions.workerSrc=`//unpkg.com/pdfjs-dist@${i.version}/build/pdf.worker.min.mjs`;function E({url:e,scale:r=1.5,className:n="",canvasClassName:o=""}){let[t,a]=(0,f.useState)(0),c=(0,f.useRef)(null);return(0,f.useEffect)(()=>{i.getDocument({url:e}).promise.then(s=>{c.current=s,a(s.numPages)})},[e]),(0,g.jsx)("div",{className:`pdf-viewer-wrapper ${n}`,children:Array.from({length:t},(s,u)=>(0,g.jsx)(d,{pdfRef:c,pageNumber:u+1,scale:r,className:o},`page-${u+1}`))})}0&&(module.exports={PdfCanvas,PdfViewer});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as x,useState as R,useRef as h}from"react";import*as t from"pdfjs-dist";import{useEffect as v,useRef as d}from"react";import{jsx as w}from"react/jsx-runtime";function g({pdfRef:s,pageNumber:a,scale:c=1.5,className:i=""}){let f=d(null),r=d(null);return v(()=>{let n=!0,e=f.current,o=s.current;return!o||!e||!e?void 0:((async()=>{r.current&&(r.current.cancel(),r.current=null);let p=await o.getPage(a);if(!n)return;let u=p.getViewport({scale:c}),l=e.getContext("2d");l&&(e.height=u.height,e.width=u.width,requestAnimationFrame(()=>{n&&(r.current=p.render({canvasContext:l,viewport:u,canvas:e}),r.current.promise.catch(m=>{m.name!=="RenderingCancelledException"&&console.error(`Error en p\xE1gina ${a}:`,m)}))}))})(),()=>{n=!1,r.current&&r.current.cancel()})},[s,a,c]),w("canvas",{ref:f,className:i,style:{display:"block"}})}import{jsx as P}from"react/jsx-runtime";t.GlobalWorkerOptions.workerSrc=`//unpkg.com/pdfjs-dist@${t.version}/build/pdf.worker.min.mjs`;function D({url:s,scale:a=1.5,className:c="",canvasClassName:i=""}){let[f,r]=R(0),n=h(null);return x(()=>{t.getDocument({url:s}).promise.then(e=>{n.current=e,r(e.numPages)})},[s]),P("div",{className:`pdf-viewer-wrapper ${c}`,children:Array.from({length:f},(e,o)=>P(g,{pdfRef:n,pageNumber:o+1,scale:a,className:i},`page-${o+1}`))})}export{g as PdfCanvas,D as PdfViewer};
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "next-manga-pdf",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "A lightweight, high-performance PDF viewer for Next.js, optimized for manga and document reading.",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"next": ">=16.2.9",
|
|
23
|
+
"react": ">=18.0.0"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"next": "16.2.9",
|
|
27
|
+
"pdfjs-dist": "^6.0.227"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"nextjs",
|
|
31
|
+
"pdf",
|
|
32
|
+
"pdf-reader",
|
|
33
|
+
"react",
|
|
34
|
+
"server-components",
|
|
35
|
+
"optimized",
|
|
36
|
+
"manga-reader",
|
|
37
|
+
"manga",
|
|
38
|
+
"manhua-reader",
|
|
39
|
+
"manhwa-reader",
|
|
40
|
+
"manhua",
|
|
41
|
+
"manhwa"
|
|
42
|
+
],
|
|
43
|
+
"author": "ShiroAky",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/node": "^26.0.1",
|
|
47
|
+
"@types/react": "^19.2.17",
|
|
48
|
+
"tsup": "^8.5.1",
|
|
49
|
+
"typescript": "^6.0.3"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "tsup src/index.ts --format cjs,esm --dts --clean --external react --external next --external pdfjs-dist --minify",
|
|
53
|
+
"dev": "tsup src/index.ts --format cjs,esm --dts --watch --external react --external next --external pdfjs-dist"
|
|
54
|
+
}
|
|
55
|
+
}
|