unvendor: Replace pdfjs-dist

a32fe00e343d317f9f7849fdd7456d8ba2280f2d

Cohee <18619528+Cohee1207@users.noreply.github.com>

7 files changed, +524 -46Showing whitespace changes
.eslintrc.cjs+0 -1
@@ -52,7 +52,6 @@ module.exports = {
5252 globals: {
5353 droll: 'readonly',
5454 moment: 'readonly',
55- pdfjsLib: 'readonly',
5655 Popper: 'readonly',
5756 showdown: 'readonly',
5857 showdownKatex: 'readonly',
package-lock.json+519 -8
@@ -45,6 +45,7 @@
4545 "node-fetch": "^3.3.2",
4646 "node-persist": "^4.0.1",
4747 "open": "^8.4.2",
48+ "pdfjs-dist": "^4.7.76",
4849 "png-chunk-text": "^1.0.0",
4950 "png-chunks-encode": "^1.0.0",
5051 "png-chunks-extract": "^1.0.0",
@@ -942,6 +943,100 @@
942943 "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==",
943944 "license": "MIT"
944945 },
946+ "node_modules/@mapbox/node-pre-gyp": {
947+ "version": "1.0.11",
948+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
949+ "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
950+ "license": "BSD-3-Clause",
951+ "optional": true,
952+ "dependencies": {
953+ "detect-libc": "^2.0.0",
954+ "https-proxy-agent": "^5.0.0",
955+ "make-dir": "^3.1.0",
956+ "node-fetch": "^2.6.7",
957+ "nopt": "^5.0.0",
958+ "npmlog": "^5.0.1",
959+ "rimraf": "^3.0.2",
960+ "semver": "^7.3.5",
961+ "tar": "^6.1.11"
962+ },
963+ "bin": {
964+ "node-pre-gyp": "bin/node-pre-gyp"
965+ }
966+ },
967+ "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": {
968+ "version": "6.0.2",
969+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
970+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
971+ "license": "MIT",
972+ "optional": true,
973+ "dependencies": {
974+ "debug": "4"
975+ },
976+ "engines": {
977+ "node": ">= 6.0.0"
978+ }
979+ },
980+ "node_modules/@mapbox/node-pre-gyp/node_modules/debug": {
981+ "version": "4.3.7",
982+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
983+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
984+ "license": "MIT",
985+ "optional": true,
986+ "dependencies": {
987+ "ms": "^2.1.3"
988+ },
989+ "engines": {
990+ "node": ">=6.0"
991+ },
992+ "peerDependenciesMeta": {
993+ "supports-color": {
994+ "optional": true
995+ }
996+ }
997+ },
998+ "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": {
999+ "version": "5.0.1",
1000+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
1001+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
1002+ "license": "MIT",
1003+ "optional": true,
1004+ "dependencies": {
1005+ "agent-base": "6",
1006+ "debug": "4"
1007+ },
1008+ "engines": {
1009+ "node": ">= 6"
1010+ }
1011+ },
1012+ "node_modules/@mapbox/node-pre-gyp/node_modules/ms": {
1013+ "version": "2.1.3",
1014+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1015+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1016+ "license": "MIT",
1017+ "optional": true
1018+ },
1019+ "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": {
1020+ "version": "2.7.0",
1021+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
1022+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
1023+ "license": "MIT",
1024+ "optional": true,
1025+ "dependencies": {
1026+ "whatwg-url": "^5.0.0"
1027+ },
1028+ "engines": {
1029+ "node": "4.x || >=6.0.0"
1030+ },
1031+ "peerDependencies": {
1032+ "encoding": "^0.1.0"
1033+ },
1034+ "peerDependenciesMeta": {
1035+ "encoding": {
1036+ "optional": true
1037+ }
1038+ }
1039+ },
9451040 "node_modules/@nodelib/fs.scandir": {
9461041 "version": "2.1.5",
9471042 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -1661,6 +1756,13 @@
16611756 "node": ">=18.0.0"
16621757 }
16631758 },
1759+ "node_modules/abbrev": {
1760+ "version": "1.1.1",
1761+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
1762+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
1763+ "license": "ISC",
1764+ "optional": true
1765+ },
16641766 "node_modules/abort-controller": {
16651767 "version": "3.0.0",
16661768 "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
@@ -1873,6 +1975,13 @@
18731975 "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==",
18741976 "license": "MIT"
18751977 },
1978+ "node_modules/aproba": {
1979+ "version": "2.0.0",
1980+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
1981+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
1982+ "license": "ISC",
1983+ "optional": true
1984+ },
18761985 "node_modules/archiver": {
18771986 "version": "7.0.1",
18781987 "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz",
@@ -2088,6 +2197,36 @@
20882197 "safe-buffer": "~5.2.0"
20892198 }
20902199 },
2200+ "node_modules/are-we-there-yet": {
2201+ "version": "2.0.0",
2202+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
2203+ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
2204+ "deprecated": "This package is no longer supported.",
2205+ "license": "ISC",
2206+ "optional": true,
2207+ "dependencies": {
2208+ "delegates": "^1.0.0",
2209+ "readable-stream": "^3.6.0"
2210+ },
2211+ "engines": {
2212+ "node": ">=10"
2213+ }
2214+ },
2215+ "node_modules/are-we-there-yet/node_modules/readable-stream": {
2216+ "version": "3.6.2",
2217+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
2218+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
2219+ "license": "MIT",
2220+ "optional": true,
2221+ "dependencies": {
2222+ "inherits": "^2.0.3",
2223+ "string_decoder": "^1.1.1",
2224+ "util-deprecate": "^1.0.1"
2225+ },
2226+ "engines": {
2227+ "node": ">= 6"
2228+ }
2229+ },
20912230 "node_modules/argparse": {
20922231 "version": "2.0.1",
20932232 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -2261,7 +2400,7 @@
22612400 "version": "1.1.11",
22622401 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
22632402 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
22642403 "devdevOptional": true,
22652404 "license": "MIT",
22662405 "dependencies": {
22672406 "balanced-match": "^1.0.0",
@@ -2444,6 +2583,22 @@
24442583 ],
24452584 "license": "CC-BY-4.0"
24462585 },
2586+ "node_modules/canvas": {
2587+ "version": "2.11.2",
2588+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz",
2589+ "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==",
2590+ "hasInstallScript": true,
2591+ "license": "MIT",
2592+ "optional": true,
2593+ "dependencies": {
2594+ "@mapbox/node-pre-gyp": "^1.0.0",
2595+ "nan": "^2.17.0",
2596+ "simple-get": "^3.0.3"
2597+ },
2598+ "engines": {
2599+ "node": ">=6"
2600+ }
2601+ },
24472602 "node_modules/centra": {
24482603 "version": "2.7.0",
24492604 "resolved": "https://registry.npmjs.org/centra/-/centra-2.7.0.tgz",
@@ -2517,6 +2672,16 @@
25172672 "url": "https://github.com/sponsors/fb55"
25182673 }
25192674 },
2675+ "node_modules/chownr": {
2676+ "version": "2.0.0",
2677+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
2678+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
2679+ "license": "ISC",
2680+ "optional": true,
2681+ "engines": {
2682+ "node": ">=10"
2683+ }
2684+ },
25202685 "node_modules/chrome-trace-event": {
25212686 "version": "1.0.4",
25222687 "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
@@ -2579,6 +2744,16 @@
25792744 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
25802745 "license": "MIT"
25812746 },
2747+ "node_modules/color-support": {
2748+ "version": "1.1.3",
2749+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
2750+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
2751+ "license": "ISC",
2752+ "optional": true,
2753+ "bin": {
2754+ "color-support": "bin.js"
2755+ }
2756+ },
25822757 "node_modules/colorette": {
25832758 "version": "2.0.20",
25842759 "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
@@ -2734,7 +2909,7 @@
27342909 "version": "0.0.1",
27352910 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
27362911 "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
27372912 "devdevOptional": true,
27382913 "license": "MIT"
27392914 },
27402915 "node_modules/concat-stream": {
@@ -2752,6 +2927,13 @@
27522927 "typedarray": "^0.0.6"
27532928 }
27542929 },
2930+ "node_modules/console-control-strings": {
2931+ "version": "1.1.0",
2932+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
2933+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
2934+ "license": "ISC",
2935+ "optional": true
2936+ },
27552937 "node_modules/content-disposition": {
27562938 "version": "0.5.4",
27572939 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -3177,6 +3359,13 @@
31773359 "node": ">=0.4.0"
31783360 }
31793361 },
3362+ "node_modules/delegates": {
3363+ "version": "1.0.0",
3364+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
3365+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
3366+ "license": "MIT",
3367+ "optional": true
3368+ },
31803369 "node_modules/depd": {
31813370 "version": "2.0.0",
31823371 "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -3196,6 +3385,16 @@
31963385 "npm": "1.2.8000 || >= 1.4.16"
31973386 }
31983387 },
3388+ "node_modules/detect-libc": {
3389+ "version": "2.0.3",
3390+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
3391+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
3392+ "license": "Apache-2.0",
3393+ "optional": true,
3394+ "engines": {
3395+ "node": ">=8"
3396+ }
3397+ },
31993398 "node_modules/digest-fetch": {
32003399 "version": "1.3.0",
32013400 "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz",
@@ -4121,11 +4320,37 @@
41214320 "node": ">=14.14"
41224321 }
41234322 },
4323+ "node_modules/fs-minipass": {
4324+ "version": "2.1.0",
4325+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
4326+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
4327+ "license": "ISC",
4328+ "optional": true,
4329+ "dependencies": {
4330+ "minipass": "^3.0.0"
4331+ },
4332+ "engines": {
4333+ "node": ">= 8"
4334+ }
4335+ },
4336+ "node_modules/fs-minipass/node_modules/minipass": {
4337+ "version": "3.3.6",
4338+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
4339+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
4340+ "license": "ISC",
4341+ "optional": true,
4342+ "dependencies": {
4343+ "yallist": "^4.0.0"
4344+ },
4345+ "engines": {
4346+ "node": ">=8"
4347+ }
4348+ },
41244349 "node_modules/fs.realpath": {
41254350 "version": "1.0.0",
41264351 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
41274352 "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
41284353 "devdevOptional": true,
41294354 "license": "ISC"
41304355 },
41314356 "node_modules/function-bind": {
@@ -4146,6 +4371,35 @@
41464371 "node": ">=10"
41474372 }
41484373 },
4374+ "node_modules/gauge": {
4375+ "version": "3.0.2",
4376+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
4377+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
4378+ "deprecated": "This package is no longer supported.",
4379+ "license": "ISC",
4380+ "optional": true,
4381+ "dependencies": {
4382+ "aproba": "^1.0.3 || ^2.0.0",
4383+ "color-support": "^1.1.2",
4384+ "console-control-strings": "^1.0.0",
4385+ "has-unicode": "^2.0.1",
4386+ "object-assign": "^4.1.1",
4387+ "signal-exit": "^3.0.0",
4388+ "string-width": "^4.2.3",
4389+ "strip-ansi": "^6.0.1",
4390+ "wide-align": "^1.1.2"
4391+ },
4392+ "engines": {
4393+ "node": ">=10"
4394+ }
4395+ },
4396+ "node_modules/gauge/node_modules/signal-exit": {
4397+ "version": "3.0.7",
4398+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
4399+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
4400+ "license": "ISC",
4401+ "optional": true
4402+ },
41494403 "node_modules/get-caller-file": {
41504404 "version": "2.0.5",
41514405 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -4241,7 +4495,7 @@
42414495 "version": "7.2.3",
42424496 "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
42434497 "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
42444498 "devdevOptional": true,
42454499 "license": "ISC",
42464500 "dependencies": {
42474501 "fs.realpath": "^1.0.0",
@@ -4430,6 +4684,13 @@
44304684 "url": "https://github.com/sponsors/ljharb"
44314685 }
44324686 },
4687+ "node_modules/has-unicode": {
4688+ "version": "2.0.1",
4689+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
4690+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
4691+ "license": "ISC",
4692+ "optional": true
4693+ },
44334694 "node_modules/hasown": {
44344695 "version": "2.0.2",
44354696 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
@@ -4712,7 +4973,7 @@
47124973 "version": "1.0.6",
47134974 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
47144975 "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
47154976 "devdevOptional": true,
47164977 "license": "ISC",
47174978 "dependencies": {
47184979 "once": "^1.3.0",
@@ -5246,6 +5507,32 @@
52465507 "node": "14 || >=16.14"
52475508 }
52485509 },
5510+ "node_modules/make-dir": {
5511+ "version": "3.1.0",
5512+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
5513+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
5514+ "license": "MIT",
5515+ "optional": true,
5516+ "dependencies": {
5517+ "semver": "^6.0.0"
5518+ },
5519+ "engines": {
5520+ "node": ">=8"
5521+ },
5522+ "funding": {
5523+ "url": "https://github.com/sponsors/sindresorhus"
5524+ }
5525+ },
5526+ "node_modules/make-dir/node_modules/semver": {
5527+ "version": "6.3.1",
5528+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
5529+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
5530+ "license": "ISC",
5531+ "optional": true,
5532+ "bin": {
5533+ "semver": "bin/semver.js"
5534+ }
5535+ },
52495536 "node_modules/marks-pane": {
52505537 "version": "1.0.9",
52515538 "resolved": "https://registry.npmjs.org/marks-pane/-/marks-pane-1.0.9.tgz",
@@ -5372,7 +5659,7 @@
53725659 "version": "3.1.2",
53735660 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
53745661 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
53755662 "devdevOptional": true,
53765663 "license": "ISC",
53775664 "dependencies": {
53785665 "brace-expansion": "^1.1.7"
@@ -5398,6 +5685,46 @@
53985685 "node": ">=16 || 14 >=14.17"
53995686 }
54005687 },
5688+ "node_modules/minizlib": {
5689+ "version": "2.1.2",
5690+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
5691+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
5692+ "license": "MIT",
5693+ "optional": true,
5694+ "dependencies": {
5695+ "minipass": "^3.0.0",
5696+ "yallist": "^4.0.0"
5697+ },
5698+ "engines": {
5699+ "node": ">= 8"
5700+ }
5701+ },
5702+ "node_modules/minizlib/node_modules/minipass": {
5703+ "version": "3.3.6",
5704+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
5705+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
5706+ "license": "ISC",
5707+ "optional": true,
5708+ "dependencies": {
5709+ "yallist": "^4.0.0"
5710+ },
5711+ "engines": {
5712+ "node": ">=8"
5713+ }
5714+ },
5715+ "node_modules/mkdirp": {
5716+ "version": "1.0.4",
5717+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
5718+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
5719+ "license": "MIT",
5720+ "optional": true,
5721+ "bin": {
5722+ "mkdirp": "bin/cmd.js"
5723+ },
5724+ "engines": {
5725+ "node": ">=10"
5726+ }
5727+ },
54015728 "node_modules/ms": {
54025729 "version": "2.0.0",
54035730 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -5434,6 +5761,13 @@
54345761 "mkdirp": "bin/cmd.js"
54355762 }
54365763 },
5764+ "node_modules/nan": {
5765+ "version": "2.22.0",
5766+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz",
5767+ "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==",
5768+ "license": "MIT",
5769+ "optional": true
5770+ },
54375771 "node_modules/natural-compare": {
54385772 "version": "1.4.0",
54395773 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -5531,6 +5865,22 @@
55315865 "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
55325866 "license": "MIT"
55335867 },
5868+ "node_modules/nopt": {
5869+ "version": "5.0.0",
5870+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
5871+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
5872+ "license": "ISC",
5873+ "optional": true,
5874+ "dependencies": {
5875+ "abbrev": "1"
5876+ },
5877+ "bin": {
5878+ "nopt": "bin/nopt.js"
5879+ },
5880+ "engines": {
5881+ "node": ">=6"
5882+ }
5883+ },
55345884 "node_modules/normalize-path": {
55355885 "version": "3.0.0",
55365886 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -5551,6 +5901,20 @@
55515901 "url": "https://github.com/sponsors/sindresorhus"
55525902 }
55535903 },
5904+ "node_modules/npmlog": {
5905+ "version": "5.0.1",
5906+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
5907+ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
5908+ "deprecated": "This package is no longer supported.",
5909+ "license": "ISC",
5910+ "optional": true,
5911+ "dependencies": {
5912+ "are-we-there-yet": "^2.0.0",
5913+ "console-control-strings": "^1.1.0",
5914+ "gauge": "^3.0.0",
5915+ "set-blocking": "^2.0.0"
5916+ }
5917+ },
55545918 "node_modules/nth-check": {
55555919 "version": "2.1.1",
55565920 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
@@ -5915,7 +6279,7 @@
59156279 "version": "1.0.1",
59166280 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
59176281 "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
59186282 "devdevOptional": true,
59196283 "license": "MIT",
59206284 "engines": {
59216285 "node": ">=0.10.0"
@@ -5957,6 +6321,29 @@
59576321 "integrity": "sha512-AmeDxedoo5svf7aB3FYqSAKqMxys014lVKBzy1o/5vv9CtU7U4wgGWL1dA2o6MOzcD53ScN4Jmiq6VbtLz1vIQ==",
59586322 "license": "MIT"
59596323 },
6324+ "node_modules/path2d": {
6325+ "version": "0.2.1",
6326+ "resolved": "https://registry.npmjs.org/path2d/-/path2d-0.2.1.tgz",
6327+ "integrity": "sha512-Fl2z/BHvkTNvkuBzYTpTuirHZg6wW9z8+4SND/3mDTEcYbbNKWAy21dz9D3ePNNwrrK8pqZO5vLPZ1hLF6T7XA==",
6328+ "license": "MIT",
6329+ "optional": true,
6330+ "engines": {
6331+ "node": ">=6"
6332+ }
6333+ },
6334+ "node_modules/pdfjs-dist": {
6335+ "version": "4.7.76",
6336+ "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.7.76.tgz",
6337+ "integrity": "sha512-8y6wUgC/Em35IumlGjaJOCm3wV4aY/6sqnIT3fVW/67mXsOZ9HWBn8GDKmJUK0GSzpbmX3gQqwfoFayp78Mtqw==",
6338+ "license": "Apache-2.0",
6339+ "engines": {
6340+ "node": ">=18"
6341+ },
6342+ "optionalDependencies": {
6343+ "canvas": "^2.11.2",
6344+ "path2d": "^0.2.1"
6345+ }
6346+ },
59606347 "node_modules/peek-readable": {
59616348 "version": "4.1.0",
59626349 "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz",
@@ -6477,7 +6864,7 @@
64776864 "version": "3.0.2",
64786865 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
64796866 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
64806867 "devdevOptional": true,
64816868 "license": "ISC",
64826869 "dependencies": {
64836870 "glob": "^7.1.3"
@@ -6593,6 +6980,19 @@
65936980 "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
65946981 "license": "MIT"
65956982 },
6983+ "node_modules/semver": {
6984+ "version": "7.6.3",
6985+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
6986+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
6987+ "license": "ISC",
6988+ "optional": true,
6989+ "bin": {
6990+ "semver": "bin/semver.js"
6991+ },
6992+ "engines": {
6993+ "node": ">=10"
6994+ }
6995+ },
65966996 "node_modules/send": {
65976997 "version": "0.19.0",
65986998 "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
@@ -6656,6 +7056,13 @@
66567056 "node": ">= 0.8.0"
66577057 }
66587058 },
7059+ "node_modules/set-blocking": {
7060+ "version": "2.0.0",
7061+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
7062+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
7063+ "license": "ISC",
7064+ "optional": true
7065+ },
66597066 "node_modules/set-function-length": {
66607067 "version": "1.2.2",
66617068 "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -6747,6 +7154,65 @@
67477154 "onnxruntime-web": "1.14.0"
67487155 }
67497156 },
7157+ "node_modules/simple-concat": {
7158+ "version": "1.0.1",
7159+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
7160+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
7161+ "funding": [
7162+ {
7163+ "type": "github",
7164+ "url": "https://github.com/sponsors/feross"
7165+ },
7166+ {
7167+ "type": "patreon",
7168+ "url": "https://www.patreon.com/feross"
7169+ },
7170+ {
7171+ "type": "consulting",
7172+ "url": "https://feross.org/support"
7173+ }
7174+ ],
7175+ "license": "MIT",
7176+ "optional": true
7177+ },
7178+ "node_modules/simple-get": {
7179+ "version": "3.1.1",
7180+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
7181+ "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
7182+ "license": "MIT",
7183+ "optional": true,
7184+ "dependencies": {
7185+ "decompress-response": "^4.2.0",
7186+ "once": "^1.3.1",
7187+ "simple-concat": "^1.0.0"
7188+ }
7189+ },
7190+ "node_modules/simple-get/node_modules/decompress-response": {
7191+ "version": "4.2.1",
7192+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
7193+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
7194+ "license": "MIT",
7195+ "optional": true,
7196+ "dependencies": {
7197+ "mimic-response": "^2.0.0"
7198+ },
7199+ "engines": {
7200+ "node": ">=8"
7201+ }
7202+ },
7203+ "node_modules/simple-get/node_modules/mimic-response": {
7204+ "version": "2.1.0",
7205+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
7206+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
7207+ "license": "MIT",
7208+ "optional": true,
7209+ "engines": {
7210+ "node": ">=8"
7211+ },
7212+ "funding": {
7213+ "url": "https://github.com/sponsors/sindresorhus"
7214+ }
7215+ },
67507216 "node_modules/simple-git": {
67517217 "version": "3.19.1",
67527218 "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.19.1.tgz",
@@ -7019,6 +7485,24 @@
70197485 "node": ">=6"
70207486 }
70217487 },
7488+ "node_modules/tar": {
7489+ "version": "6.2.1",
7490+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
7491+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
7492+ "license": "ISC",
7493+ "optional": true,
7494+ "dependencies": {
7495+ "chownr": "^2.0.0",
7496+ "fs-minipass": "^2.0.0",
7497+ "minipass": "^5.0.0",
7498+ "minizlib": "^2.1.1",
7499+ "mkdirp": "^1.0.3",
7500+ "yallist": "^4.0.0"
7501+ },
7502+ "engines": {
7503+ "node": ">=10"
7504+ }
7505+ },
70227506 "node_modules/tar-stream": {
70237507 "version": "3.1.7",
70247508 "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
@@ -7029,6 +7513,16 @@
70297513 "streamx": "^2.15.0"
70307514 }
70317515 },
7516+ "node_modules/tar/node_modules/minipass": {
7517+ "version": "5.0.0",
7518+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
7519+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
7520+ "license": "ISC",
7521+ "optional": true,
7522+ "engines": {
7523+ "node": ">=8"
7524+ }
7525+ },
70327526 "node_modules/terser": {
70337527 "version": "5.36.0",
70347528 "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz",
@@ -7611,6 +8105,16 @@
76118105 "node": ">= 8"
76128106 }
76138107 },
8108+ "node_modules/wide-align": {
8109+ "version": "1.1.5",
8110+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
8111+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
8112+ "license": "ISC",
8113+ "optional": true,
8114+ "dependencies": {
8115+ "string-width": "^1.0.2 || 2 || 3 || 4"
8116+ }
8117+ },
76148118 "node_modules/wordwrap": {
76158119 "version": "1.0.0",
76168120 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
@@ -7748,6 +8252,13 @@
77488252 "node": ">=10"
77498253 }
77508254 },
8255+ "node_modules/yallist": {
8256+ "version": "4.0.0",
8257+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
8258+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
8259+ "license": "ISC",
8260+ "optional": true
8261+ },
77518262 "node_modules/yaml": {
77528263 "version": "2.3.4",
77538264 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
package.json+1 -0
@@ -35,6 +35,7 @@
3535 "node-fetch": "^3.3.2",
3636 "node-persist": "^4.0.1",
3737 "open": "^8.4.2",
38+ "pdfjs-dist": "^4.7.76",
3839 "png-chunk-text": "^1.0.0",
3940 "png-chunks-encode": "^1.0.0",
4041 "png-chunks-extract": "^1.0.0",
public/global.d.ts+0 -1
@@ -1,6 +1,5 @@
11// Global namespace modules
22declare var droll;
3-declare var pdfjsLib;
43declare var Popper;
54declare var showdown;
65declare var showdownKatex;
public/jsconfig.json+0 -1
@@ -22,7 +22,6 @@
2222 "seedrandom",
2323 "showdown-katex",
2424 "droll",
25- "pdfjs-dist",
2625 "@mozilla/readability"
2726 ]
2827 }
public/lib.js+3 -0
@@ -10,6 +10,7 @@ import Handlebars from 'handlebars';
1010import css from '@adobe/css-tools';
1111import Bowser from 'bowser';
1212import ePub from 'epubjs';
13+import * as pdfjsLib from 'pdfjs-dist/webpack.mjs';
1314
1415/**
1516 * Expose the libraries to the 'window' object.
@@ -51,6 +52,7 @@ export default {
5152 css,
5253 Bowser,
5354 ePub,
55+ pdfjsLib,
5456};
5557
5658export {
@@ -62,4 +64,5 @@ export {
6264 css,
6365 Bowser,
6466 ePub,
67+ pdfjsLib,
6568};
public/scripts/utils.js+1 -35
@@ -1,4 +1,4 @@
11import { DOMPurify, ePub, pdfjsLib } from '../lib.js';
22
33import { getContext } from './extensions.js';
44import { characters, getRequestHeaders, this_chid } from '../script.js';
@@ -1493,40 +1493,6 @@ export async function getReadableText(document, textSelector = 'body') {
14931493 * @returns {Promise<string>} A promise that resolves to the parsed text.
14941494 */
14951495export async function extractTextFromPDF(blob) {
1496- async function initPdfJs() {
1497- const promises = [];
1498-
1499- const workerPromise = new Promise((resolve, reject) => {
1500- const workerScript = document.createElement('script');
1501- workerScript.type = 'module';
1502- workerScript.async = true;
1503- workerScript.src = 'lib/pdf.worker.mjs';
1504- workerScript.onload = resolve;
1505- workerScript.onerror = reject;
1506- document.head.appendChild(workerScript);
1507- });
1508-
1509- promises.push(workerPromise);
1510-
1511- const pdfjsPromise = new Promise((resolve, reject) => {
1512- const pdfjsScript = document.createElement('script');
1513- pdfjsScript.type = 'module';
1514- pdfjsScript.async = true;
1515- pdfjsScript.src = 'lib/pdf.mjs';
1516- pdfjsScript.onload = resolve;
1517- pdfjsScript.onerror = reject;
1518- document.head.appendChild(pdfjsScript);
1519- });
1520-
1521- promises.push(pdfjsPromise);
1522-
1523- return Promise.all(promises);
1524- }
1525-
1526- if (!('pdfjsLib' in window)) {
1527- await initPdfJs();
1528- }
1529-
15301496 const buffer = await getFileBuffer(blob);
15311497 const pdf = await pdfjsLib.getDocument(buffer).promise;
15321498 const pages = [];