@iqx-limited/quick-pdf 1.2.0 → 1.3.0

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.mjs ADDED
@@ -0,0 +1,459 @@
1
+ import { satisfies } from 'semver';
2
+ import { pathToFileURL } from 'node:url';
3
+ import { resolve } from 'node:path';
4
+ import { writeFile, unlink } from 'node:fs/promises';
5
+ import puppeteer from 'puppeteer';
6
+ import { imageSize } from 'image-size';
7
+ import PDFDocument from 'pdfkit';
8
+ import { existsSync, readFileSync } from 'node:fs';
9
+ import { HtmlValidate } from 'html-validate/node';
10
+
11
+ let chrome = null;
12
+ let firefox = null;
13
+ async function getChromium() {
14
+ if (chrome)
15
+ return chrome;
16
+ try {
17
+ chrome = await puppeteer.launch({
18
+ args: ["--no-sandbox", "--disable-setuid-sandbox"],
19
+ });
20
+ }
21
+ catch (err) {
22
+ console.error("Error launching Chromium browser in @iqx-limited/quick-form:", err);
23
+ }
24
+ return chrome;
25
+ }
26
+ async function getFirefox() {
27
+ if (firefox)
28
+ return firefox;
29
+ try {
30
+ firefox = await puppeteer.launch({
31
+ browser: "firefox",
32
+ headless: true,
33
+ args: ["--no-sandbox", "--disable-setuid-sandbox"],
34
+ });
35
+ }
36
+ catch (err) {
37
+ console.error("Error launching Firefox browser in @iqx-limited/quick-form:", err);
38
+ }
39
+ return firefox;
40
+ }
41
+ async function closeBrowsers() {
42
+ try {
43
+ const chrome = await getChromium();
44
+ const firefox = await getFirefox();
45
+ if (chrome) {
46
+ await chrome.close();
47
+ console.log("Chromium Browser Closed");
48
+ }
49
+ if (firefox) {
50
+ await firefox.close();
51
+ console.log("Firefox Browser Closed");
52
+ }
53
+ }
54
+ catch (err) {
55
+ console.error("Error closing browsers in @iqx-limited/quick-form:", err);
56
+ }
57
+ }
58
+ process.on("exit", async () => {
59
+ await closeBrowsers();
60
+ });
61
+ process.on("SIGINT", async () => {
62
+ console.log("SIGINT received. Closing browsers...");
63
+ await closeBrowsers();
64
+ });
65
+ process.on("SIGTERM", async () => {
66
+ console.log("SIGTERM received. Closing browsers...");
67
+ await closeBrowsers();
68
+ });
69
+
70
+ const pagePoolSize$1 = 5;
71
+ const RESOURCE_LIMIT$1 = 100;
72
+ let resourceCount$1 = 0;
73
+ let pagePool$1 = [];
74
+ let browser$1 = null;
75
+ async function launchPages$1() {
76
+ if (pagePool$1.length > 0) {
77
+ return pagePool$1;
78
+ }
79
+ pagePool$1 = await Promise.all(Array.from({ length: pagePoolSize$1 }, async () => {
80
+ if (browser$1) {
81
+ const page = await browser$1.newPage();
82
+ await page.setRequestInterception(true);
83
+ await page.setDefaultNavigationTimeout(10000);
84
+ await page.goto("about:blank");
85
+ page.on("request", request => {
86
+ resourceCount$1++;
87
+ if (resourceCount$1 > RESOURCE_LIMIT$1) {
88
+ page.reload();
89
+ resourceCount$1 = 0;
90
+ }
91
+ else {
92
+ request.continue();
93
+ }
94
+ });
95
+ return page;
96
+ }
97
+ else {
98
+ throw new Error("Browser not available");
99
+ }
100
+ }));
101
+ return pagePool$1;
102
+ }
103
+ const pdf2img = async (input, options = {}) => {
104
+ browser$1 = await getFirefox();
105
+ if (!browser$1) {
106
+ throw new Error("Browser not available");
107
+ }
108
+ const pagePool = await launchPages$1();
109
+ let page = pagePool.pop();
110
+ let tempPage = false;
111
+ if (!page) {
112
+ tempPage = true;
113
+ page = await browser$1.newPage();
114
+ }
115
+ let path = "";
116
+ let address = "";
117
+ let tempFile = false;
118
+ if (Buffer.isBuffer(input)) {
119
+ path = resolve(process.cwd(), "temp.pdf");
120
+ address = pathToFileURL(path).toString();
121
+ tempFile = true;
122
+ await writeFile(path, input);
123
+ }
124
+ else {
125
+ if (typeof input === "string" && input.startsWith("http")) {
126
+ path = input;
127
+ address = path;
128
+ }
129
+ else {
130
+ path = resolve(input.toString());
131
+ address = pathToFileURL(path).toString();
132
+ }
133
+ }
134
+ try {
135
+ await page.goto(address);
136
+ if (options.password) {
137
+ try {
138
+ await page.waitForSelector('input[type="password"]', {
139
+ visible: true,
140
+ timeout: 5000
141
+ });
142
+ console.log("Password prompt detected, entering password...");
143
+ await page.type('input[type="password"]', options.password || "");
144
+ await page.keyboard.press("Enter");
145
+ }
146
+ catch { }
147
+ }
148
+ await page.waitForSelector("canvas", { timeout: 5000 });
149
+ await page.waitForSelector(".loadingIcon", {
150
+ timeout: 5000,
151
+ hidden: true
152
+ });
153
+ const imageBuffers = [];
154
+ const pageCount = await page.evaluate(() => {
155
+ if (window.PDFViewerApplication) {
156
+ return window.PDFViewerApplication.pagesCount;
157
+ }
158
+ return 0;
159
+ });
160
+ const metadata = await page.evaluate(() => {
161
+ const app = window.PDFViewerApplication;
162
+ if (app && app.pdfDocument) {
163
+ return app.documentInfo ?? {};
164
+ }
165
+ return {};
166
+ });
167
+ const pdfDimensions = await page.evaluate(() => {
168
+ const canvas = document.querySelector("canvas");
169
+ const { width, height } = canvas.getBoundingClientRect();
170
+ return { width, height };
171
+ });
172
+ await page.setViewport({
173
+ width: pdfDimensions.width,
174
+ height: pdfDimensions.height,
175
+ deviceScaleFactor: 1
176
+ });
177
+ for (let i = 1; i <= pageCount; i++) {
178
+ await page.evaluate((pageNum) => {
179
+ if (window.PDFViewerApplication) {
180
+ window.PDFViewerApplication.page = pageNum;
181
+ }
182
+ }, i);
183
+ const pageBoundingBox = await page.evaluate(() => {
184
+ const pageElement = document.querySelector("canvas");
185
+ const { x, y, width, height } = pageElement.getBoundingClientRect();
186
+ return { x, y, width, height };
187
+ });
188
+ const screenshotOptions = {
189
+ fullPage: false,
190
+ type: options.type ?? "png",
191
+ clip: {
192
+ x: pageBoundingBox.x,
193
+ y: pageBoundingBox.y,
194
+ width: pageBoundingBox.width,
195
+ height: pageBoundingBox.height
196
+ }
197
+ };
198
+ if (options.type && options.type !== "png") {
199
+ screenshotOptions.quality = options.quality ?? 100;
200
+ }
201
+ const uint8array = await page.screenshot(screenshotOptions);
202
+ imageBuffers.push(Buffer.from(uint8array));
203
+ }
204
+ if (tempFile) {
205
+ await unlink(path);
206
+ }
207
+ if (tempPage) {
208
+ page.close();
209
+ }
210
+ else {
211
+ await page.setViewport({
212
+ width: 800,
213
+ height: 600,
214
+ deviceScaleFactor: 1
215
+ });
216
+ pagePool.push(page);
217
+ }
218
+ return {
219
+ length: pageCount,
220
+ metadata: metadata.info,
221
+ pages: imageBuffers
222
+ };
223
+ }
224
+ catch (error) {
225
+ if (tempFile) {
226
+ await unlink(path);
227
+ }
228
+ if (tempPage) {
229
+ page.close();
230
+ }
231
+ else {
232
+ await page.setViewport({
233
+ width: 800,
234
+ height: 600,
235
+ deviceScaleFactor: 1
236
+ });
237
+ pagePool.push(page);
238
+ }
239
+ throw error;
240
+ }
241
+ finally {
242
+ if (browser$1 && typeof process !== "undefined" && process.versions && process.versions.node) {
243
+ await browser$1.close();
244
+ }
245
+ }
246
+ };
247
+
248
+ async function getBuffer(input) {
249
+ if (input instanceof Buffer) {
250
+ return input;
251
+ }
252
+ return fetch(input.toString())
253
+ .then(res => {
254
+ if (res.ok) {
255
+ return res.arrayBuffer();
256
+ }
257
+ else {
258
+ throw new Error("Failed to Fetch the File");
259
+ }
260
+ })
261
+ .then(array => Buffer.from(array))
262
+ .catch(() => {
263
+ if (existsSync(input.toString())) {
264
+ return readFileSync(input.toString());
265
+ }
266
+ throw new Error("Failed to Fetch the File");
267
+ });
268
+ }
269
+ const fetchHtmlFromUrl = async (url) => {
270
+ const response = await fetch(url);
271
+ if (!response.ok) {
272
+ throw new Error(`Failed to fetch content from URL: ${url}`);
273
+ }
274
+ return await response.text();
275
+ };
276
+ const readHtmlFromFilePath = async (filePath) => {
277
+ return readFileSync(filePath, "utf-8");
278
+ };
279
+
280
+ const img2pdf = async (input, options = {}) => {
281
+ const { fileTypeFromBuffer } = await import('file-type');
282
+ return new Promise((resolve, reject) => {
283
+ getBuffer(input).then(async (buf) => {
284
+ const type = await fileTypeFromBuffer(buf);
285
+ if (type?.mime !== "image/jpeg" && type?.mime !== "image/png") {
286
+ throw new Error("Provided File is not a JPEG or a PNG.");
287
+ }
288
+ const pdfBuffers = [];
289
+ const imgSize = imageSize(buf);
290
+ const landscape = imgSize.width && imgSize.height ? imgSize.width > imgSize.height : false;
291
+ const doc = new PDFDocument({
292
+ size: "a4",
293
+ layout: landscape ? "landscape" : "portrait",
294
+ margins: {
295
+ top: 0,
296
+ bottom: 0,
297
+ left: 0,
298
+ right: 0
299
+ }
300
+ });
301
+ doc.on("data", (data) => {
302
+ pdfBuffers.push(data);
303
+ });
304
+ doc.on("end", () => {
305
+ resolve(Buffer.concat(pdfBuffers));
306
+ });
307
+ doc.fontSize(options.fontSize ?? 10);
308
+ const topMargin = options.header ? 20 : 0;
309
+ const bottomMargin = options.footer ? 20 : 0;
310
+ const sidePadding = 20;
311
+ const imageHeight = doc.page.height - topMargin - bottomMargin;
312
+ if (options.header) {
313
+ doc.text(options.header, sidePadding, topMargin / 2 - 6, {
314
+ align: "center",
315
+ baseline: "top",
316
+ width: doc.page.width - 2 * sidePadding,
317
+ height: topMargin - 5,
318
+ ellipsis: true
319
+ }).moveDown(0.5);
320
+ }
321
+ doc.image(buf, 0, topMargin, {
322
+ width: doc.page.width,
323
+ height: imageHeight
324
+ });
325
+ if (options.footer) {
326
+ doc.text(options.footer, sidePadding, doc.page.height - bottomMargin / 2 - 6, {
327
+ align: "center",
328
+ width: doc.page.width - 2 * sidePadding,
329
+ height: bottomMargin - 5,
330
+ ellipsis: true
331
+ });
332
+ }
333
+ doc.end();
334
+ }).catch((e) => {
335
+ reject(e);
336
+ });
337
+ });
338
+ };
339
+
340
+ const pagePoolSize = 5;
341
+ const RESOURCE_LIMIT = 100;
342
+ let resourceCount = 0;
343
+ let pagePool = [];
344
+ let browser = null;
345
+ async function launchPages() {
346
+ if (pagePool.length > 0) {
347
+ return pagePool;
348
+ }
349
+ pagePool = await Promise.all(Array.from({ length: pagePoolSize }, async () => {
350
+ if (browser) {
351
+ const page = await browser.newPage();
352
+ await page.setRequestInterception(true);
353
+ await page.setDefaultNavigationTimeout(10000);
354
+ await page.goto("about:blank");
355
+ page.on("request", request => {
356
+ resourceCount++;
357
+ if (resourceCount > RESOURCE_LIMIT) {
358
+ page.reload();
359
+ resourceCount = 0;
360
+ }
361
+ else {
362
+ request.continue();
363
+ }
364
+ });
365
+ return page;
366
+ }
367
+ else {
368
+ throw new Error("Browser not available");
369
+ }
370
+ }));
371
+ return pagePool;
372
+ }
373
+ const html2pdf = async (input, options = {}) => {
374
+ const validator = new HtmlValidate(options.rules ?? {
375
+ extends: ["html-validate:standard"],
376
+ rules: {
377
+ "no-trailing-whitespace": "off"
378
+ }
379
+ });
380
+ let htmlContent = input.toString();
381
+ if (htmlContent.startsWith("http://") || htmlContent.startsWith("https://")) {
382
+ htmlContent = await fetchHtmlFromUrl(htmlContent);
383
+ }
384
+ else if (existsSync(input)) {
385
+ htmlContent = await readHtmlFromFilePath(htmlContent);
386
+ }
387
+ browser = await getChromium();
388
+ if (!browser) {
389
+ throw new Error("Browser not available");
390
+ }
391
+ const pagePool = await launchPages();
392
+ let page = pagePool.pop();
393
+ let tempPage = false;
394
+ if (!page) {
395
+ tempPage = true;
396
+ page = await browser.newPage();
397
+ }
398
+ return validator.validateString(htmlContent).then(async (res) => {
399
+ if (res.valid) {
400
+ await page.setContent(htmlContent, { waitUntil: "load" });
401
+ const pdf = await page.pdf({ format: "A4", printBackground: true, scale: options.scale ?? 1 });
402
+ const pdfBuffer = Buffer.from(pdf);
403
+ if (options.base64 ?? false) {
404
+ return pdfBuffer.toString("base64");
405
+ }
406
+ return pdfBuffer;
407
+ }
408
+ else {
409
+ return Promise.reject({
410
+ valid: false,
411
+ count: {
412
+ errors: res.errorCount,
413
+ warnings: res.warningCount
414
+ },
415
+ validation: res.results.map(res => {
416
+ return {
417
+ file: res.filePath,
418
+ count: {
419
+ errors: res.errorCount,
420
+ warnings: res.warningCount
421
+ },
422
+ messages: res.messages.map(msg => {
423
+ return {
424
+ message: msg.message,
425
+ line: msg.line,
426
+ column: msg.column,
427
+ ruleId: msg.ruleId
428
+ };
429
+ })
430
+ };
431
+ })
432
+ });
433
+ }
434
+ }).finally(async () => {
435
+ if (tempPage) {
436
+ page.close();
437
+ }
438
+ else {
439
+ await page.setViewport({
440
+ width: 800,
441
+ height: 600,
442
+ deviceScaleFactor: 1
443
+ });
444
+ pagePool.push(page);
445
+ }
446
+ if (browser && typeof process !== "undefined" && process.versions && process.versions.node) {
447
+ await browser.close();
448
+ }
449
+ });
450
+ };
451
+
452
+ const requiredVersion = ">=20.0.0";
453
+ if (!satisfies(process.version, requiredVersion)) {
454
+ console.error(`\nError: Node.js version ${requiredVersion} is required. You are using ${process.version}.\n`);
455
+ process.exit(1);
456
+ }
457
+
458
+ export { html2pdf, img2pdf, pdf2img };
459
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/browsers.ts","../src/modules/pdf2img.ts","../src/utilies.ts","../src/modules/img2pdf.ts","../src/modules/html2pdf.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["pagePoolSize","RESOURCE_LIMIT","resourceCount","pagePool","browser","launchPages"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Browser } from "puppeteer";
2
+ declare function getChromium(): Promise<Browser | null>;
3
+ declare function getFirefox(): Promise<Browser | null>;
4
+ export { getChromium, getFirefox };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iqx-limited/quick-pdf",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "author": "IQX",
5
5
  "description": "Converting PDFs to images (📃 to 📸)",
6
6
  "type": "module",
@@ -10,8 +10,15 @@
10
10
  "README.md",
11
11
  "LICENSE"
12
12
  ],
13
- "main": "dist/index.js",
14
- "types": "dist/index.d.ts",
13
+ "main": "dist/index.cjs",
14
+ "module": "dist/index.mjs",
15
+ "exports": {
16
+ ".": {
17
+ "import": "./dist/index.mjs",
18
+ "require": "./dist/index.cjs"
19
+ }
20
+ },
21
+ "types": "dist/types/index.d.ts",
15
22
  "keywords": [
16
23
  "pdf",
17
24
  "jpeg",
@@ -26,30 +33,38 @@
26
33
  ],
27
34
  "repository": "https://github.com/IQXLimited/quickpdf",
28
35
  "scripts": {
29
- "build": "npm i && npx tsc --build",
36
+ "build": "npm i && rollup -c",
30
37
  "lint": "npx --yes eslint",
31
- "test": "npx --yes tsx test.ts"
38
+ "test:esm": "npm run build && node test/test-esm.mjs",
39
+ "test:cjs": "npm run build && node test/test-cjs.cjs"
32
40
  },
33
41
  "engines": {
34
- "node": ">=22.0.0"
42
+ "node": ">=20.0.0"
35
43
  },
36
44
  "engineStrict": true,
37
45
  "dependencies": {
38
- "file-type": "^19.6.0",
39
- "html-validate": "^9.1.1",
46
+ "file-type": "^20.1.0",
47
+ "html-validate": "^9.2.1",
40
48
  "image-size": "^1.2.0",
41
49
  "path2d-polyfill": "^3.1.3",
42
50
  "pdfkit": "^0.16.0",
43
- "puppeteer": "^23.11.1",
44
- "semver": "^7.6.3"
51
+ "puppeteer": "^24.2.0",
52
+ "rollup-plugin-node-externals": "^8.0.0",
53
+ "semver": "^7.7.1"
45
54
  },
46
55
  "devDependencies": {
47
- "@stylistic/eslint-plugin": "^2.12.1",
48
- "@types/node": "^22.10.5",
49
- "@types/pdfkit": "^0.13.8",
56
+ "@rollup/plugin-commonjs": "^28.0.2",
57
+ "@rollup/plugin-json": "^6.1.0",
58
+ "@rollup/plugin-node-resolve": "^16.0.0",
59
+ "@rollup/plugin-typescript": "^12.1.2",
60
+ "@stylistic/eslint-plugin": "^3.1.0",
61
+ "@types/node": "^22.13.1",
62
+ "@types/pdfkit": "^0.13.9",
50
63
  "@types/semver": "^7.5.8",
51
- "eslint": "^9.17.0",
52
- "typescript": "^5.7.2",
53
- "typescript-eslint": "^8.19.1"
64
+ "eslint": "^9.20.0",
65
+ "rollup": "^4.34.6",
66
+ "rollup-plugin-copy": "^3.5.0",
67
+ "typescript": "^5.7.3",
68
+ "typescript-eslint": "^8.23.0"
54
69
  }
55
70
  }
@@ -1,5 +0,0 @@
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 };
package/dist/browsers.js DELETED
@@ -1,56 +0,0 @@
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
@@ -1 +0,0 @@
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 DELETED
@@ -1,12 +0,0 @@
1
- import { satisfies } from "semver";
2
- import { launchBrowsers } from "./browsers.js";
3
- const requiredVersion = ">=22.0.0";
4
- if (!satisfies(process.version, requiredVersion)) {
5
- console.error(`\nError: Node.js version ${requiredVersion} is required. You are using ${process.version}.\n`);
6
- process.exit(1);
7
- }
8
- await launchBrowsers();
9
- export * from "./modules/pdf2img.js";
10
- export * from "./modules/img2pdf.js";
11
- export * from "./modules/html2pdf.js";
12
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
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"}