@iqx-limited/quick-pdf 1.1.6 → 1.1.8

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.
@@ -0,0 +1,5 @@
1
+ import { Browser } from "puppeteer";
2
+ declare let chromiumBrowser: Browser | null;
3
+ declare let firefoxBrowser: Browser | null;
4
+ declare function launchBrowsers(): Promise<void>;
5
+ export { launchBrowsers, chromiumBrowser, firefoxBrowser };
@@ -0,0 +1,56 @@
1
+ import puppeteer from "puppeteer";
2
+ let chromiumBrowser = null;
3
+ let firefoxBrowser = null;
4
+ let launchPromise = null;
5
+ async function launchBrowsers() {
6
+ if (launchPromise) {
7
+ return launchPromise;
8
+ }
9
+ launchPromise = (async () => {
10
+ try {
11
+ chromiumBrowser = await puppeteer.launch({
12
+ headless: true,
13
+ args: ["--no-sandbox", "--disable-setuid-sandbox"],
14
+ });
15
+ firefoxBrowser = await puppeteer.launch({
16
+ browser: "firefox",
17
+ headless: true,
18
+ args: ["--no-sandbox", "--disable-setuid-sandbox"],
19
+ });
20
+ }
21
+ catch (err) {
22
+ console.error("Error launching browsers in @iqx-limited/quick-form:", err);
23
+ }
24
+ })();
25
+ return launchPromise;
26
+ }
27
+ async function closeBrowsers() {
28
+ try {
29
+ if (chromiumBrowser) {
30
+ await chromiumBrowser.close();
31
+ console.log("Chromium Browser Closed");
32
+ }
33
+ if (firefoxBrowser) {
34
+ await firefoxBrowser.close();
35
+ console.log("Firefox Browser Closed");
36
+ }
37
+ }
38
+ catch (err) {
39
+ console.error("Error closing browsers in @iqx-limited/quick-form:", err);
40
+ }
41
+ }
42
+ process.on("exit", async () => {
43
+ await closeBrowsers();
44
+ });
45
+ process.on("SIGINT", async () => {
46
+ console.log("SIGINT received. Closing browsers...");
47
+ await closeBrowsers();
48
+ process.exit();
49
+ });
50
+ process.on("SIGTERM", async () => {
51
+ console.log("SIGTERM received. Closing browsers...");
52
+ await closeBrowsers();
53
+ process.exit();
54
+ });
55
+ export { launchBrowsers, chromiumBrowser, firefoxBrowser };
56
+ //# sourceMappingURL=browsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browsers.js","sourceRoot":"","sources":["../src/browsers.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,WAAW,CAAA;AAE9C,IAAI,eAAe,GAAmB,IAAI,CAAA;AAC1C,IAAI,cAAc,GAAmB,IAAI,CAAA;AAEzC,IAAI,aAAa,GAAyB,IAAI,CAAA;AAG9C,KAAK,UAAU,cAAc;IAC3B,IAAK,aAAa,EAAG,CAAC;QACpB,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,aAAa,GAAG,CAAE,KAAK,IAAK,EAAE;QAC5B,IAAI,CAAC;YAEH,eAAe,GAAG,MAAM,SAAS,CAAC,MAAM,CAAG;gBACzC,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,CAAE,cAAc,EAAE,0BAA0B,CAAE;aACrD,CAAE,CAAA;YAGH,cAAc,GAAG,MAAM,SAAS,CAAC,MAAM,CAAG;gBACxC,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,CAAE,cAAc,EAAE,0BAA0B,CAAE;aACrD,CAAE,CAAA;QACL,CAAC;QAAC,OAAQ,GAAG,EAAG,CAAC;YACf,OAAO,CAAC,KAAK,CAAG,sDAAsD,EAAE,GAAG,CAAE,CAAA;QAC/E,CAAC;IACH,CAAC,CAAE,EAAI,CAAA;IAEP,OAAO,aAAa,CAAA;AACtB,CAAC;AAGD,KAAK,UAAU,aAAa;IAC1B,IAAI,CAAC;QACH,IAAK,eAAe,EAAG,CAAC;YACtB,MAAM,eAAe,CAAC,KAAK,EAAI,CAAA;YAC/B,OAAO,CAAC,GAAG,CAAG,yBAAyB,CAAE,CAAA;QAC3C,CAAC;QACD,IAAK,cAAc,EAAG,CAAC;YACrB,MAAM,cAAc,CAAC,KAAK,EAAI,CAAA;YAC9B,OAAO,CAAC,GAAG,CAAG,wBAAwB,CAAE,CAAA;QAC1C,CAAC;IACH,CAAC;IAAC,OAAQ,GAAG,EAAG,CAAC;QACf,OAAO,CAAC,KAAK,CAAG,oDAAoD,EAAE,GAAG,CAAE,CAAA;IAC7E,CAAC;AACH,CAAC;AAGD,OAAO,CAAC,EAAE,CAAG,MAAM,EAAE,KAAK,IAAK,EAAE;IAC/B,MAAM,aAAa,EAAI,CAAA;AACzB,CAAC,CAAE,CAAA;AAGH,OAAO,CAAC,EAAE,CAAG,QAAQ,EAAE,KAAK,IAAK,EAAE;IACjC,OAAO,CAAC,GAAG,CAAG,sCAAsC,CAAE,CAAA;IACtD,MAAM,aAAa,EAAI,CAAA;IACvB,OAAO,CAAC,IAAI,EAAI,CAAA;AAClB,CAAC,CAAE,CAAA;AAEH,OAAO,CAAC,EAAE,CAAG,SAAS,EAAE,KAAK,IAAK,EAAE;IAClC,OAAO,CAAC,GAAG,CAAG,uCAAuC,CAAE,CAAA;IACvD,MAAM,aAAa,EAAI,CAAA;IACvB,OAAO,CAAC,IAAI,EAAI,CAAA;AAClB,CAAC,CAAE,CAAA;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { satisfies } from "semver";
2
+ import { launchBrowsers } from "./browsers.js";
2
3
  const requiredVersion = ">=22.0.0";
3
4
  if (!satisfies(process.version, requiredVersion)) {
4
5
  console.error(`\nError: Node.js version ${requiredVersion} is required. You are using ${process.version}.\n`);
5
6
  process.exit(1);
6
7
  }
8
+ await launchBrowsers();
7
9
  export * from "./modules/pdf2img.js";
8
10
  export * from "./modules/img2pdf.js";
9
11
  export * from "./modules/html2pdf.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,eAAe,GAAG,UAAU,CAAA;AAElC,IAAK,CAAC,SAAS,CAAG,OAAO,CAAC,OAAO,EAAE,eAAe,CAAE,EAAG,CAAC;IACtD,OAAO,CAAC,KAAK,CACX,4BAA4B,eAAe,+BAA+B,OAAO,CAAC,OAAO,KAAK,CAC/F,CAAA;IACD,OAAO,CAAC,IAAI,CAAG,CAAC,CAAE,CAAA;AACpB,CAAC;AAED,cAAc,sBAAsB,CAAA;AAEpC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,eAAe,GAAG,UAAU,CAAA;AAElC,IAAK,CAAC,SAAS,CAAG,OAAO,CAAC,OAAO,EAAE,eAAe,CAAE,EAAG,CAAC;IACtD,OAAO,CAAC,KAAK,CACX,4BAA4B,eAAe,+BAA+B,OAAO,CAAC,OAAO,KAAK,CAC/F,CAAA;IACD,OAAO,CAAC,IAAI,CAAG,CAAC,CAAE,CAAA;AACpB,CAAC;AAED,MAAM,cAAc,EAAI,CAAA;AAExB,cAAc,sBAAsB,CAAA;AAEpC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,uBAAuB,CAAA"}
@@ -3,4 +3,4 @@ export type Options = {
3
3
  rules?: object;
4
4
  scale?: number;
5
5
  };
6
- export declare const html2pdf: (input: string | URL, options?: Options) => Promise<string | Buffer>;
6
+ export declare const html2pdf: (input: string | URL, options?: Options) => Promise<string | Buffer<ArrayBuffer>>;
@@ -1,7 +1,31 @@
1
1
  import { existsSync } from "fs";
2
2
  import { HtmlValidate } from "html-validate/node";
3
3
  import { fetchHtmlFromUrl, readHtmlFromFilePath } from "../utilies.js";
4
- import puppeteer from "puppeteer";
4
+ import { chromiumBrowser } from "src/browsers.js";
5
+ const pagePoolSize = 5;
6
+ const RESOURCE_LIMIT = 100;
7
+ let resourceCount = 0;
8
+ const pagePool = await Promise.all(Array.from({ length: pagePoolSize }, async () => {
9
+ if (chromiumBrowser) {
10
+ const page = await chromiumBrowser.newPage();
11
+ await page.setRequestInterception(true);
12
+ await page.setDefaultNavigationTimeout(10000);
13
+ page.on("request", request => {
14
+ resourceCount++;
15
+ if (resourceCount > RESOURCE_LIMIT) {
16
+ page.reload();
17
+ resourceCount = 0;
18
+ }
19
+ else {
20
+ request.continue();
21
+ }
22
+ });
23
+ return page;
24
+ }
25
+ else {
26
+ throw new Error("Browser not available");
27
+ }
28
+ }));
5
29
  export const html2pdf = async (input, options = {}) => {
6
30
  const validator = new HtmlValidate(options.rules ?? {
7
31
  extends: ["html-validate:standard"],
@@ -16,16 +40,19 @@ export const html2pdf = async (input, options = {}) => {
16
40
  else if (existsSync(input)) {
17
41
  htmlContent = await readHtmlFromFilePath(htmlContent);
18
42
  }
43
+ if (!chromiumBrowser) {
44
+ throw new Error("Browser not available");
45
+ }
46
+ let page = pagePool.pop();
47
+ let tempPage = false;
48
+ if (!page) {
49
+ tempPage = true;
50
+ page = await chromiumBrowser.newPage();
51
+ }
19
52
  return validator.validateString(htmlContent).then(async (res) => {
20
53
  if (res.valid) {
21
- const browser = await puppeteer.launch({
22
- browser: "firefox",
23
- headless: true,
24
- });
25
- const page = await browser.newPage();
26
54
  await page.setContent(htmlContent, { waitUntil: "load" });
27
55
  const pdf = await page.pdf({ format: "A4", printBackground: true, scale: options.scale ?? 1 });
28
- await browser.close();
29
56
  const pdfBuffer = Buffer.from(pdf);
30
57
  if (options.base64 ?? false) {
31
58
  return pdfBuffer.toString("base64");
@@ -58,6 +85,18 @@ export const html2pdf = async (input, options = {}) => {
58
85
  })
59
86
  });
60
87
  }
88
+ }).finally(async () => {
89
+ if (tempPage) {
90
+ page.close();
91
+ }
92
+ else {
93
+ await page.setViewport({
94
+ width: 800,
95
+ height: 600,
96
+ deviceScaleFactor: 1
97
+ });
98
+ pagePool.push(page);
99
+ }
61
100
  });
62
101
  };
63
102
  //# sourceMappingURL=html2pdf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html2pdf.js","sourceRoot":"","sources":["../../src/modules/html2pdf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html2pdf.js","sourceRoot":"","sources":["../../src/modules/html2pdf.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ type Options = {
3
3
  footer?: string;
4
4
  fontSize?: number;
5
5
  };
6
- export declare const img2pdf: (input: Buffer | string | URL, options?: Options) => Promise<Buffer>;
6
+ export declare const img2pdf: (input: Buffer | string | URL, options?: Options) => Promise<Buffer<ArrayBufferLike>>;
7
7
  export {};
@@ -6,6 +6,6 @@ type Options = {
6
6
  export declare const pdf2img: (input: Buffer | string | URL, options?: Options) => Promise<{
7
7
  length: any;
8
8
  metadata: any;
9
- pages: Buffer[];
9
+ pages: Buffer<ArrayBuffer>[];
10
10
  }>;
11
11
  export {};
@@ -1,113 +1,170 @@
1
- import { getBuffer } from "../utilies.js";
2
- import { fileTypeFromBuffer } from "file-type";
3
1
  import { fileURLToPath, pathToFileURL } from "url";
4
2
  import { resolve, dirname } from "path";
5
- import puppeteer from "puppeteer";
6
- import { writeFile, readFile, unlink } from "fs/promises";
3
+ import { writeFile, unlink } from "fs/promises";
4
+ import { firefoxBrowser } from "src/browsers";
7
5
  const __filename = fileURLToPath(import.meta.url);
8
6
  const __dirname = dirname(__filename);
7
+ const pagePoolSize = 5;
8
+ const RESOURCE_LIMIT = 100;
9
+ let resourceCount = 0;
10
+ const pagePool = await Promise.all(Array.from({ length: pagePoolSize }, async () => {
11
+ if (firefoxBrowser) {
12
+ const page = await firefoxBrowser.newPage();
13
+ await page.setRequestInterception(true);
14
+ await page.setDefaultNavigationTimeout(10000);
15
+ page.on("response", async (response) => {
16
+ const contentType = response.headers()["content-type"];
17
+ if (!contentType || !contentType.includes("application/pdf")) {
18
+ throw new Error("Input is not a valid PDF file");
19
+ }
20
+ });
21
+ page.on("request", request => {
22
+ resourceCount++;
23
+ if (resourceCount > RESOURCE_LIMIT) {
24
+ page.reload();
25
+ resourceCount = 0;
26
+ }
27
+ else {
28
+ request.continue();
29
+ }
30
+ });
31
+ return page;
32
+ }
33
+ else {
34
+ throw new Error("Browser not available");
35
+ }
36
+ }));
9
37
  export const pdf2img = async (input, options = {}) => {
10
- const browser = await puppeteer.launch({
11
- browser: "firefox",
12
- headless: true,
13
- });
14
- const page = await browser.newPage();
38
+ if (!firefoxBrowser) {
39
+ throw new Error("Browser not available");
40
+ }
41
+ let page = pagePool.pop();
42
+ let tempPage = false;
43
+ if (!page) {
44
+ tempPage = true;
45
+ page = await firefoxBrowser.newPage();
46
+ }
15
47
  let path = "";
16
- let buffer = Buffer.from("");
17
48
  let tempFile = false;
18
49
  if (Buffer.isBuffer(input)) {
19
- buffer = input;
20
50
  path = resolve(__dirname, "temp.pdf");
21
51
  tempFile = true;
22
- await writeFile(path, buffer);
52
+ await writeFile(path, input);
23
53
  }
24
54
  else {
25
55
  if (typeof input === "string" && input.startsWith("http")) {
26
56
  path = input;
27
- buffer = await getBuffer(path);
28
57
  }
29
58
  else {
30
59
  path = pathToFileURL(resolve(input.toString())).toString();
31
- buffer = await readFile(path);
32
60
  }
33
61
  }
34
- const fileType = await fileTypeFromBuffer(buffer);
35
- if (!fileType || fileType.ext !== "pdf") {
36
- throw new Error("Invalid PDF file");
37
- }
38
- await page.goto(path, {
39
- waitUntil: "networkidle0"
40
- });
41
62
  try {
42
- await page.waitForSelector('input[type="password"]', {
43
- visible: true,
44
- timeout: 5000
45
- });
46
- console.log("Password prompt detected, entering password...");
47
- await page.type('input[type="password"]', options.password || "");
48
- await page.keyboard.press("Enter");
49
- }
50
- catch (error) {
51
- console.log("No password prompt, continuing with unlocked PDF...");
52
- }
53
- const imageBuffers = [];
54
- const pageCount = await page.evaluate(() => {
55
- if (window.PDFViewerApplication) {
56
- return window.PDFViewerApplication.pagesCount;
57
- }
58
- return 0;
59
- });
60
- const metadata = await page.evaluate(() => {
61
- const app = window.PDFViewerApplication;
62
- if (app && app.pdfDocument) {
63
- return app.documentInfo ?? {};
63
+ await page.goto(path);
64
+ if (options.password) {
65
+ try {
66
+ await page.waitForSelector('input[type="password"]', {
67
+ visible: true,
68
+ timeout: 5000
69
+ });
70
+ console.log("Password prompt detected, entering password...");
71
+ await page.type('input[type="password"]', options.password || "");
72
+ await page.keyboard.press("Enter");
73
+ }
74
+ catch { }
64
75
  }
65
- return {};
66
- });
67
- const pdfDimensions = await page.evaluate(() => {
68
- const canvas = document.querySelector("canvas");
69
- const { width, height } = canvas.getBoundingClientRect();
70
- return { width, height };
71
- });
72
- await page.setViewport({
73
- width: pdfDimensions.width,
74
- height: pdfDimensions.height
75
- });
76
- for (let i = 1; i <= pageCount; i++) {
77
- await page.evaluate((pageNum) => {
76
+ await page.waitForSelector("canvas", { timeout: 5000 });
77
+ await page.waitForSelector(".loadingIcon", {
78
+ timeout: 5000,
79
+ hidden: true
80
+ });
81
+ const imageBuffers = [];
82
+ const pageCount = await page.evaluate(() => {
78
83
  if (window.PDFViewerApplication) {
79
- window.PDFViewerApplication.page = pageNum;
84
+ return window.PDFViewerApplication.pagesCount;
80
85
  }
81
- }, i);
82
- const pageBoundingBox = await page.evaluate(() => {
83
- const pageElement = document.querySelector(".canvasWrapper");
84
- const { x, y, width, height } = pageElement.getBoundingClientRect();
85
- return { x, y, width, height };
86
+ return 0;
86
87
  });
87
- const screenshotOptions = {
88
- fullPage: false,
89
- type: options.type ?? "png",
90
- clip: {
91
- x: pageBoundingBox.x,
92
- y: pageBoundingBox.y,
93
- width: pageBoundingBox.width,
94
- height: pageBoundingBox.height
88
+ const metadata = await page.evaluate(() => {
89
+ const app = window.PDFViewerApplication;
90
+ if (app && app.pdfDocument) {
91
+ return app.documentInfo ?? {};
95
92
  }
96
- };
97
- if (options.type && options.type !== "png") {
98
- screenshotOptions.quality = options.quality ?? 100;
93
+ return {};
94
+ });
95
+ const pdfDimensions = await page.evaluate(() => {
96
+ const canvas = document.querySelector("canvas");
97
+ const { width, height } = canvas.getBoundingClientRect();
98
+ return { width, height };
99
+ });
100
+ await page.setViewport({
101
+ width: pdfDimensions.width,
102
+ height: pdfDimensions.height,
103
+ deviceScaleFactor: 1
104
+ });
105
+ for (let i = 1; i <= pageCount; i++) {
106
+ await page.evaluate((pageNum) => {
107
+ if (window.PDFViewerApplication) {
108
+ window.PDFViewerApplication.page = pageNum;
109
+ }
110
+ }, i);
111
+ const pageBoundingBox = await page.evaluate(() => {
112
+ const pageElement = document.querySelector("canvas");
113
+ const { x, y, width, height } = pageElement.getBoundingClientRect();
114
+ return { x, y, width, height };
115
+ });
116
+ const screenshotOptions = {
117
+ fullPage: false,
118
+ type: options.type ?? "png",
119
+ clip: {
120
+ x: pageBoundingBox.x,
121
+ y: pageBoundingBox.y,
122
+ width: pageBoundingBox.width,
123
+ height: pageBoundingBox.height
124
+ }
125
+ };
126
+ if (options.type && options.type !== "png") {
127
+ screenshotOptions.quality = options.quality ?? 100;
128
+ }
129
+ const uint8array = await page.screenshot(screenshotOptions);
130
+ imageBuffers.push(Buffer.from(uint8array));
131
+ }
132
+ if (tempFile) {
133
+ await unlink(path);
134
+ }
135
+ if (tempPage) {
136
+ page.close();
99
137
  }
100
- const uint8array = await page.screenshot(screenshotOptions);
101
- imageBuffers.push(Buffer.from(uint8array));
138
+ else {
139
+ await page.setViewport({
140
+ width: 800,
141
+ height: 600,
142
+ deviceScaleFactor: 1
143
+ });
144
+ pagePool.push(page);
145
+ }
146
+ return {
147
+ length: pageCount,
148
+ metadata: metadata.info,
149
+ pages: imageBuffers
150
+ };
102
151
  }
103
- if (tempFile) {
104
- await unlink(path);
152
+ catch (error) {
153
+ if (tempFile) {
154
+ await unlink(path);
155
+ }
156
+ if (tempPage) {
157
+ page.close();
158
+ }
159
+ else {
160
+ await page.setViewport({
161
+ width: 800,
162
+ height: 600,
163
+ deviceScaleFactor: 1
164
+ });
165
+ pagePool.push(page);
166
+ }
167
+ throw error;
105
168
  }
106
- await browser.close();
107
- return {
108
- length: pageCount,
109
- metadata: metadata.info,
110
- pages: imageBuffers
111
- };
112
169
  };
113
170
  //# sourceMappingURL=pdf2img.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../src/modules/pdf2img.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../src/modules/pdf2img.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,CAAA;AACpD,MAAM,SAAS,GAAG,OAAO,CAAG,UAAU,CAAE,CAAA;AAExC,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,IAAI,aAAa,GAAG,CAAC,CAAA;AAErB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAG,KAAK,CAAC,IAAI,CAAG,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,IAAK,EAAE;IACtF,IAAK,cAAc,EAAG,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAI,CAAA;QAC7C,MAAM,IAAI,CAAC,sBAAsB,CAAG,IAAI,CAAE,CAAA;QAC1C,MAAM,IAAI,CAAC,2BAA2B,CAAG,KAAK,CAAE,CAAA;QAChD,IAAI,CAAC,EAAE,CAAG,UAAU,EAAE,KAAK,EAAG,QAAQ,EAAG,EAAE;YACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAI,CAAG,cAAc,CAAE,CAAA;YAC3D,IAAK,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAG,iBAAiB,CAAE,EAAG,CAAC;gBAClE,MAAM,IAAI,KAAK,CAAG,+BAA+B,CAAE,CAAA;YACrD,CAAC;QACH,CAAC,CAAE,CAAA;QACH,IAAI,CAAC,EAAE,CAAG,SAAS,EAAE,OAAO,CAAC,EAAE;YAC7B,aAAa,EAAE,CAAA;YACf,IAAK,aAAa,GAAG,cAAc,EAAG,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAI,CAAA;gBACf,aAAa,GAAG,CAAC,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,QAAQ,EAAI,CAAA;YACtB,CAAC;QACH,CAAC,CAAE,CAAA;QACH,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAG,uBAAuB,CAAE,CAAA;IAC7C,CAAC;AACH,CAAC,CAAE,CAAE,CAAA;AA6BL,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,KAA4B,EAC5B,UAAmB,EAAG,EACtB,EAAE;IACF,IAAK,CAAC,cAAc,EAAG,CAAC;QACtB,MAAM,IAAI,KAAK,CAAG,uBAAuB,CAAE,CAAA;IAC7C,CAAC;IAED,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAI,CAAA;IAC3B,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAK,CAAC,IAAI,EAAG,CAAC;QACZ,QAAQ,GAAG,IAAI,CAAA;QACf,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAI,CAAA;IACzC,CAAC;IAED,IAAI,IAAI,GAAW,EAAE,CAAA;IACrB,IAAI,QAAQ,GAAY,KAAK,CAAA;IAE7B,IAAK,MAAM,CAAC,QAAQ,CAAG,KAAK,CAAE,EAAG,CAAC;QAChC,IAAI,GAAG,OAAO,CAAG,SAAS,EAAE,UAAU,CAAE,CAAA;QACxC,QAAQ,GAAG,IAAI,CAAA;QACf,MAAM,SAAS,CAAG,IAAI,EAAE,KAAK,CAAE,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,IAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAG,MAAM,CAAE,EAAG,CAAC;YAC/D,IAAI,GAAG,KAAK,CAAA;QACd,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,aAAa,CAAG,OAAO,CAAG,KAAK,CAAC,QAAQ,EAAI,CAAE,CAAE,CAAC,QAAQ,EAAI,CAAA;QACtE,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAG,IAAI,CAAE,CAAA;QAExB,IAAK,OAAO,CAAC,QAAQ,EAAG,CAAC;YACvB,IAAI,CAAC;gBAEH,MAAM,IAAI,CAAC,eAAe,CAAG,wBAAwB,EAAE;oBACrD,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;iBACd,CAAE,CAAA;gBAGH,OAAO,CAAC,GAAG,CAAG,gDAAgD,CAAE,CAAA;gBAChE,MAAM,IAAI,CAAC,IAAI,CAAG,wBAAwB,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAE,CAAA;gBACpE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,OAAO,CAAE,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;QACb,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAG,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAE,CAAA;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAG,cAAc,EAAE;YAC3C,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;SACb,CAAE,CAAA;QAEH,MAAM,YAAY,GAAG,EAAG,CAAA;QAExB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAG,GAAI,EAAE;YAC5C,IAAO,MAAe,CAAC,oBAAoB,EAAG,CAAC;gBAC7C,OAAS,MAAe,CAAC,oBAAoB,CAAC,UAAU,CAAA;YAC1D,CAAC;YACD,OAAO,CAAC,CAAA;QACV,CAAC,CAAE,CAAA;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAG,GAAI,EAAE;YAC3C,MAAM,GAAG,GAAK,MAAe,CAAC,oBAAoB,CAAA;YAClD,IAAK,GAAG,IAAI,GAAG,CAAC,WAAW,EAAG,CAAC;gBAC7B,OAAO,GAAG,CAAC,YAAY,IAAI,EAAG,CAAA;YAChC,CAAC;YACD,OAAO,EAAG,CAAA;QACZ,CAAC,CAAE,CAAA;QAGH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAG,GAAI,EAAE;YAChD,MAAM,MAAM,GAAQ,QAAQ,CAAC,aAAa,CAAG,QAAQ,CAAE,CAAA;YACvD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAI,CAAA;YAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;QAC1B,CAAC,CAAE,CAAA;QAGH,MAAM,IAAI,CAAC,WAAW,CAAG;YACvB,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,iBAAiB,EAAE,CAAC;SACrB,CAAE,CAAA;QAEH,KAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAG,CAAC;YAEtC,MAAM,IAAI,CAAC,QAAQ,CAAG,CAAE,OAAO,EAAG,EAAE;gBAClC,IAAO,MAAe,CAAC,oBAAoB,EAAG,CAAC;oBAC3C,MAAe,CAAC,oBAAoB,CAAC,IAAI,GAAG,OAAO,CAAA;gBACvD,CAAC;YACH,CAAC,EAAE,CAAC,CAAE,CAAA;YAGN,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAG,GAAI,EAAE;gBAClD,MAAM,WAAW,GAAQ,QAAQ,CAAC,aAAa,CAAG,QAAQ,CAAE,CAAA;gBAC5D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,qBAAqB,EAAI,CAAA;gBACrE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;YAChC,CAAC,CAAE,CAAA;YAEH,MAAM,iBAAiB,GAAsB;gBAC3C,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;gBAC3B,IAAI,EAAE;oBACJ,CAAC,EAAE,eAAe,CAAC,CAAC;oBACpB,CAAC,EAAE,eAAe,CAAC,CAAC;oBACpB,KAAK,EAAE,eAAe,CAAC,KAAK;oBAC5B,MAAM,EAAE,eAAe,CAAC,MAAM;iBAC/B;aACF,CAAA;YAED,IAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAG,CAAC;gBAC7C,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAA;YACpD,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAG,iBAAiB,CAAE,CAAA;YAG9D,YAAY,CAAC,IAAI,CAAG,MAAM,CAAC,IAAI,CAAG,UAAU,CAAE,CAAE,CAAA;QAClD,CAAC;QAED,IAAK,QAAQ,EAAG,CAAC;YACf,MAAM,MAAM,CAAG,IAAI,CAAE,CAAA;QACvB,CAAC;QAED,IAAK,QAAQ,EAAG,CAAC;YACf,IAAI,CAAC,KAAK,EAAI,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,WAAW,CAAG;gBACvB,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,iBAAiB,EAAE,CAAC;aACrB,CAAE,CAAA;YACH,QAAQ,CAAC,IAAI,CAAG,IAAI,CAAE,CAAA;QACxB,CAAC;QAGD,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,KAAK,EAAE,YAAY;SACpB,CAAA;IACH,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QACjB,IAAK,QAAQ,EAAG,CAAC;YACf,MAAM,MAAM,CAAG,IAAI,CAAE,CAAA;QACvB,CAAC;QAED,IAAK,QAAQ,EAAG,CAAC;YACf,IAAI,CAAC,KAAK,EAAI,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,WAAW,CAAG;gBACvB,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,iBAAiB,EAAE,CAAC;aACrB,CAAE,CAAA;YACH,QAAQ,CAAC,IAAI,CAAG,IAAI,CAAE,CAAA;QACxB,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/utilies.ts","../src/modules/html2pdf.ts","../src/modules/img2pdf.ts","../src/modules/pdf2img.ts"],"version":"5.6.3"}
1
+ {"root":["../src/browsers.ts","../src/index.ts","../src/utilies.ts","../src/modules/html2pdf.ts","../src/modules/img2pdf.ts","../src/modules/pdf2img.ts"],"version":"5.7.2"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iqx-limited/quick-pdf",
3
- "version": "1.1.6",
3
+ "version": "1.1.8",
4
4
  "author": "IQX",
5
5
  "description": "Converting PDFs to images (📃 to 📸)",
6
6
  "type": "module",
@@ -50,6 +50,6 @@
50
50
  "@types/semver": "^7.5.8",
51
51
  "eslint": "^9.16.0",
52
52
  "typescript": "^5.7.2",
53
- "typescript-eslint": "^8.16.0"
53
+ "typescript-eslint": "^8.17.0"
54
54
  }
55
55
  }