{"_id":"@adnsistemas/pdf-lib","_rev":"21-23d865e386ab00a8e8e07fc9bbec1592","name":"@adnsistemas/pdf-lib","dist-tags":{"latest":"2.9.1"},"versions":{"1.18.0":{"name":"@adnsistemas/pdf-lib","version":"1.18.0","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@1.18.0","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org/","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"dist":{"shasum":"a53acef6cc2aa792d15e14b9475f1b1132ebe090","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-1.18.0.tgz","fileCount":1696,"integrity":"sha512-gFeqsJXwSXwyRvecuCOkCsEveziuE8ub4KlPIPrVpEGs6Qx56br1Yj43GVgTyRQgWCQZgZ2GyhQO7iQUzohxuQ==","signatures":[{"sig":"MEYCIQDkQqMlICTx+o97TvCHA0/tf2ZPiWXjVH4nMVjHYygLwAIhANmzy7lnIxaDB0nnTYAEM0y7Ogfk0xYTF4OnPvWuT2BP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19641251},"main":"cjs/index.js","types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","private":false,"scripts":{"lint":"yarn lint:prettier && yarn lint:tslint:src && yarn lint:tslint:tests","test":"jest --config jest.json --runInBand","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.json --coverage && open coverage/index.html","testw":"jest --config jest.json --watch","apps:web":"http-server -c-1 .","build:es":"ttsc --module ES2015 --outDir es","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"ttsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"ttsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.js --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.js --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","release:tag":"TAG=\"v$(yarn --silent get:version)\" && git tag $TAG && git push origin $TAG","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:next":"yarn publish --tag next","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build","build:esm:min":"rollup --config rollup.config.js --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.js --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --loglevel error","release:latest":"yarn publish --tag latest --access public && yarn pack && yarn release:tag","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","lint:tslint:src":"tslint --project tsconfig.json --fix","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"ttsc --build scratchpad/tsconfig.json --watch","lint:tslint:tests":"tslint --project tests/tsconfig.json --fix","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"description":"Create and modify PDF files with JavaScript","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Andrew Dillon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"pako":"^1.0.11","tslib":"^1.11.1","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"^26.0.1","rimraf":"^3.0.2","rollup":"^2.17.1","tslint":"^6.1.2","ts-jest":"^26.1.0","prettier":"^2.0.5","node-fetch":"^2.6.0","typescript":"^3.9.5","@types/jest":"^26.0.0","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^0.12.3","ttypescript":"^1.5.15","downlevel-dts":"^0.5.0","@pdf-lib/fontkit":"^1.1.0","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^4.1.0","rollup-plugin-terser":"^6.1.0","tslint-config-prettier":"^1.18.0","@rollup/plugin-commonjs":"^13.0.0","@rollup/plugin-node-resolve":"^8.0.1","@zerollup/ts-transform-paths":"^1.7.18"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_1.18.0_1746734923293_0.6434168876217798","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@adnsistemas/pdf-lib","version":"2.4.2","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.4.2","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"dist":{"shasum":"1cec12fbaacd17dae86c4375c55e5309f617f264","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.4.2.tgz","fileCount":1773,"integrity":"sha512-MBlZNKlAka48rqnFWlPZhrPUBvbnB+I5NcC02XOMrMiy5woLibvYuQ7VEyB9ITfUvinKaQWukr3mLCIQd9NBQw==","signatures":[{"sig":"MEUCIGYI8okdGLIyWVs0u3XHNZ/YWrkrRm4rIOh/jGKeRLlWAiEAxErjzPD8eLRtDuGQkXScCbC9KR5HJM5S5DkM2dnxcAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14950367},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"4b22104689284eddcd2260b29632100582a6f03a","private":false,"scripts":{"lint":"yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 .","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.4.2_1748736235972_0.7633341734921553","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@adnsistemas/pdf-lib","version":"2.4.3","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.4.3","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"bac63a0493c265007890fc0040a6e479b0fca68e","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.4.3.tgz","fileCount":1773,"integrity":"sha512-9X43VzbY0OD77IvBtCCGc+uYeMNYQBPA39WpMeG48ZtUu6geucc4ebu12qmmSOI52/Z67FOGWtiyGuREEPXEDw==","signatures":[{"sig":"MEUCIHcjJ7TWPMl2oOJwMGe3ETndk8CgxvmCyycHOX0xT659AiEA79cEna4EkIJK8YM79orBWlAqJT9XRqK5SV4MDZ+Skfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14953089},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"2e21e49dd44d17f008ad76f30bd779bf7802e6ac","private":false,"scripts":{"lint":"yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it --npm.skipChecks","apps:web":"http-server -c-1 .","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","actor":{"name":"adnsistemas","type":"user","email":"dabdala@adnsistemas.com.ar"},"email":"dabdala@adnsistemas.com.ar"},"deprecated":"Badly packaged, no support for deletions","repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.4.3_1752178725218_0.06832459840917116","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@adnsistemas/pdf-lib","version":"2.4.4","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.4.4","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"eabbea06c3090035ac66274364ee75d8e3c9c243","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.4.4.tgz","fileCount":1773,"integrity":"sha512-VTDmAlUbFeWb0A1V+LtfpJXXzK7HPf2mzpMnqGiA+uxpMQpd+Q/YT75vB1CFkmIzwf0cgYXmp2VOTG3JI/QLdQ==","signatures":[{"sig":"MEYCIQCiZz/PUHCsshenCBO+yHYuwG1C+dhAr+hjgFnUFwr8eQIhAKUPtjVlT3M+OH12AxgfRiHI0C9f1OPa0msAX8hK26AH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14953625},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"1a7bdce066e04d4bda50e6e9631b61b8beeb274a","private":false,"scripts":{"lint":"yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it --npm.skipChecks","apps:web":"http-server -c-1 .","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"deprecated":"Badly packaged, no support for deletions","repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.4.4_1752933595072_0.5032451629786889","host":"s3://npm-registry-packages-npm-production"}},"2.4.5":{"name":"@adnsistemas/pdf-lib","version":"2.4.5","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.4.5","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"1566fb894802292c7b1100af5842b29f9459804d","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.4.5.tgz","fileCount":1773,"integrity":"sha512-y3xTWWPazfjrFEh4hTJY5CwnaVbAbocmSkVhJ6YmughAhw8PG67O0DINO3suTaYuGQmVq0U4BMh9lVBO7fqxyg==","signatures":[{"sig":"MEUCIBWnFgxJSKpaoQ4lxtaB84Az0c7JlJDyClzGDQjTkTsOAiEAwFOaDAmsscB+SPg0AWQS+4cxTKx9t+l3B3j1sP4F7Pw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21357027},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"09af05e7a001da3bdc6b60c303ed763ac7da2835","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 .","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.4.5_1752967446373_0.7989769304282477","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@adnsistemas/pdf-lib","version":"2.5.0","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.5.0","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"d4f7ef6c6be0fe46486a702df5b04dfdba49a48e","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.5.0.tgz","fileCount":1773,"integrity":"sha512-EZEXVcHUvye5Xr/qJt6uiQKohW652TgVk41KZgVDtzjwqdMQ4iSoU5nKs90b4bgfJrTuOzV0qb1CVGmaKMEQyA==","signatures":[{"sig":"MEQCHz/o1Xl68BHR3ZP+uu9zsLMIKtn8VsqxCNm0myD0VZwCIQC90De2wbjUhlKYeXm2jdCZZsVdpdMYJE2gRJliHbXGag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21425478},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"87ac8a904d7bffa49b3e663136835c415a6a4cd7","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.5.0_1753240507280_0.9881372413657532","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@adnsistemas/pdf-lib","version":"2.6.0","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.6.0","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"9780e18e6a1a1488b6331c2208745cb91c4ff0e9","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.6.0.tgz","fileCount":1773,"integrity":"sha512-FV3h6t+/lWhShHAwSfl0U46JUjLVzhLIbyRRFMwfvEiE9rT3HqHDrl3bAvcgZ2EW/b2nVK/VauDFHF4yhwmP7A==","signatures":[{"sig":"MEUCIQCOjSYDZGhvbI5tJnvPsImERDr7G9wM4PlddZ3kFZd66gIgQg0mwreJLd3cGpq2I24bMzNIjcQqEgUAFxoXSRJFXDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21511472},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"04ceb66c8047c199e91cc3792891ac88dd970e80","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.6.0_1756685103378_0.949326462836646","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@adnsistemas/pdf-lib","version":"2.6.1","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.6.1","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"32963bd8ece149007df770bd60d05346df68960f","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.6.1.tgz","fileCount":1773,"integrity":"sha512-R44A23gQeCLnmGDDD19ompBfyz3dboqObh0OvVx9NFb8bjFpI+ODTGD8bbPSB9yNz6zpAXVHT74kiGRRcaHg9g==","signatures":[{"sig":"MEQCIBZ4hGvAsWHLT9D5S3QBT/JMo2VLaAzBenY//So58TZMAiBGWVZIWJCXcJb+GDE+XiRKdn21TCM/P9P3KlxDqqNp5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21513075},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"a62dea9814140a4b8e96f1d54774f305f061db31","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.6.1_1756697325641_0.69848443451066","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"@adnsistemas/pdf-lib","version":"2.6.2","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.6.2","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"28e0d0c840a2ff8ff9b857edcf2394c0fc6dea9a","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.6.2.tgz","fileCount":1773,"integrity":"sha512-d4sy9Xbq9MyQIs+WA7I0pDN2X0iwcCWoPFSWwesHDNDkRuvi/pKX6wWusj5wzALUkdrsy5m3y2qgNOHBm38YHg==","signatures":[{"sig":"MEQCIC8o7Fp4aQtovAbbpwCQ9JzHE/EixSGLghFsRxtq0zWXAiBxztvLo80FDR5LOVTbFUwGFWd06GKBPp43XxSxXKqLSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21517599},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"5f23cff37801e0c676a94073096e4cdde171afb0","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.6.2_1756764575428_0.7326694150691548","host":"s3://npm-registry-packages-npm-production"}},"2.6.3":{"name":"@adnsistemas/pdf-lib","version":"2.6.3","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.6.3","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"e3fe871a7301f3a1459e76b943007aa9092a2c4b","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.6.3.tgz","fileCount":1773,"integrity":"sha512-2PeXV0fSyXRHsDYcMRcatgXx8BXdNnPoSTlQ8yCVbZjXHaIoUXcPoy1UGmS1mOtNF691EBy7YzihvoDMV+65jA==","signatures":[{"sig":"MEYCIQDzg5fmT9gRYm1BVYJ/LIkL/nSO6tfxY249Okb+CkY/tQIhAPFjOmhbDqhxaO86Me2/aJ1z8UovQ4nWubX8myLtFptC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21530516},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"7407f0eb396ab7c752060f17423fac82a6e64fc7","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.6.3_1762288090360_0.4326570206005944","host":"s3://npm-registry-packages-npm-production"}},"2.6.4":{"name":"@adnsistemas/pdf-lib","version":"2.6.4","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.6.4","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"1f77e235b42542de2011e3ae35c90899bbe25243","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.6.4.tgz","fileCount":1773,"integrity":"sha512-EdznnMM2Bcn2IzgLEX9Ih6OK55XO7Dc2B0arLgoe89R4zbeW6jZCIu0iTjcW77E9XOUQIkdyQDHEpZaKVPbyTw==","signatures":[{"sig":"MEQCIBab4Bym1gIY0DRG9G1ln4j4Io7/rVGD4OatXLbeKzITAiAZb0WiSxYnecK/bvwpKxeVsxXcnLxh/Ldifj3aXwLmLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21536771},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"3fa3f3da7e018725887f0ace6225e3cfe1fdc105","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.6.4_1762557674091_0.8896284546812037","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@adnsistemas/pdf-lib","version":"2.7.0","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.7.0","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"},{"url":"https://github.com/erano067","name":"Eran Ohayon"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"6b2cbf6b46225fdd5ad2f2634fa1ec1bb0c13f99","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.7.0.tgz","fileCount":1773,"integrity":"sha512-dTkTjeWc0q+ql5lJoBV60b0Wx/WU7QVOp3VHfegZaXmMq6JhaG8Iwj7Cfo+OPgry0gLWkQSS4VkXEhJjDVYigw==","signatures":[{"sig":"MEUCIQDV97oWuJGU9FvJSfYXq8CDNybyohwGFusBfQ8VO+4AjAIgEylP9MgOHUQqbhUXcAmE6pYCmh/McAlZ884m6wSDFYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21596809},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"36e83aaa1307ec0e34a14cd83175b66b22614ef2","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@pdf-lib/upng":"^1.0.1","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.7.0_1764635020074_0.05264792402426455","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@adnsistemas/pdf-lib","version":"2.7.1","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.7.1","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"},{"url":"https://github.com/erano067","name":"Eran Ohayon"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"14c9cbac27c1084d89f76565b136dd26fb34bddb","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.7.1.tgz","fileCount":1773,"integrity":"sha512-91slKf0cyeZUdw1QsCpzMu5oploAWfbEQqeEOgQz5dzDDvTzdQjnK7wrvifYVq57vOU5n+8gkRRxMx9qbmHIag==","signatures":[{"sig":"MEUCIAFLDeRiPuHYDCIUH2ZUjOHNgGklm+i699Ll414Mm1CmAiEA4Hvk+QtMAUWpLBxsQsgu2YWRuXSFpjrFva6BfU9KOb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21634922},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"3113becd803acdab6d9708c831e4f307cbb187ce","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@adnsistemas/upng":"^1.0.3","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.7.1_1764729452199_0.15466459617781858","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"@adnsistemas/pdf-lib","version":"2.7.2","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.7.2","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"},{"url":"https://github.com/erano067","name":"Eran Ohayon"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"831b3cb04c7057fc21459f8198935ec751c31277","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.7.2.tgz","fileCount":1773,"integrity":"sha512-BDT6+pBe+wRIGbiO+IoYlM0av77RH2onhdDCP7fpmrA0141Sr8IWY80lbFjEYOEDhSWN3pudQBcrjwMfLo2LKw==","signatures":[{"sig":"MEUCIQCnMbm916+3RnYcapK+NRnNdf1nXlq23u23oSnWEh+cYAIgGJi/HcgrrCq2lU5zxVEXV1B1n3YAbIsQsD/MU0NU4JM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21659323},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"d44e45eba6d2dc6e85e9707be9a1181881cbed42","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@adnsistemas/upng":"^1.0.3","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.7.2_1767815490576_0.08885613589115837","host":"s3://npm-registry-packages-npm-production"}},"2.7.3":{"name":"@adnsistemas/pdf-lib","version":"2.7.3","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.7.3","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"},{"url":"https://github.com/erano067","name":"Eran Ohayon"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"c531ac3f6adfaf5b980e5b92b4c421e8925cf30b","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.7.3.tgz","fileCount":1773,"integrity":"sha512-U65WnBMRLIulQ1Rgg4e2+ZnneEZxDj5rbyWe86Yre2tJ+jn5osLeb8BfQ8BVC17rakUMEkX2zYf6di8Nd+U3LA==","signatures":[{"sig":"MEUCIQCVjXHrsao5j1NhTWoReNQLx4fDFkUTnNAg0CRUNP5O4wIgQ3R0nV4U7wUPeuaUjgoBHXjbl86zYKpuXYs5LGAzi/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21678200},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"ed21a93090b02549399f5ad7e2ce68d6b9ce34f5","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@adnsistemas/upng":"^1.0.3","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.7.3_1771598765587_0.597445318861834","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@adnsistemas/pdf-lib","version":"2.8.0","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.8.0","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"},{"url":"https://github.com/erano067","name":"Eran Ohayon"},{"url":"https://github.com/sverch","name":"Shaun Verch"},{"url":"https://github.com/gflohr","name":"Guido Flohr"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"f094b33d1a0b5b56be06a97251069a78a998f012","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.8.0.tgz","fileCount":1773,"integrity":"sha512-Uma/L6frcvT+/Fl+JtEuGNsESRr6tlKNiAU41PZ6r7m8ZvjwbmMUiQoCqVQ9fWQANfYyQXfUNsc3z9tNuyWvQw==","signatures":[{"sig":"MEUCIGddBpuKEqV0pPLr5n+0QnfeRdfs8NHIE4LFWNZsKU+OAiEA4vZcOTXxcI+fdvWYvHiaaMgDTWgK/WRGSw4zo2r+X6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21726713},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"b1d4adf825a16422765baabe981c8f56e7006404","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@adnsistemas/upng":"^1.0.3","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.8.0_1771603807047_0.11132794615611674","host":"s3://npm-registry-packages-npm-production"}},"2.8.1":{"name":"@adnsistemas/pdf-lib","version":"2.8.1","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.8.1","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"},{"url":"https://github.com/erano067","name":"Eran Ohayon"},{"url":"https://github.com/sverch","name":"Shaun Verch"},{"url":"https://github.com/gflohr","name":"Guido Flohr"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"2f10f844f31697ab896c8bef16801187f02fa623","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.8.1.tgz","fileCount":1773,"integrity":"sha512-NNE8JBDs+TcqHOXFYj07h8xhxIySn5xoqFEkCd9TE/XhODqPhocWUP1RRXaPQZxltnMoYZfFj5DGpI1V7TYfYQ==","signatures":[{"sig":"MEYCIQD45AfxNxVEQBoMsioNFjA6KntL7aq+S1ndCw1qih992QIhAPlG8rzSKXwwNrFY2iQxwGQJgIJjgdhv9IitEsDFOWZg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21728552},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"f38175ce7b10ec385312fdbadcc18297e9cfd111","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"10.8.2","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"20.17.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@adnsistemas/upng":"^1.0.3","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.8.1_1774033688305_0.5672209108820299","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@adnsistemas/pdf-lib","version":"2.9.0","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","_id":"@adnsistemas/pdf-lib@2.9.0","maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"contributors":[{"url":"https://github.com/jerp","name":"jerp"},{"url":"https://github.com/gregbacchus","name":"Greg Bacchus"},{"url":"https://github.com/mlecoq","name":"Mickael Lecoq"},{"url":"https://github.com/philipjmurphy","name":"Philip Murphy"},{"url":"https://github.com/PlushBeaver","name":"Dmitry Kozliuk"},{"url":"https://github.com/samezyane","name":"Said Amezyane"},{"url":"https://github.com/multiplegeorges","name":"Georges Gabereau"},{"url":"https://github.com/GerardSmit","name":"Gerard Smit"},{"url":"https://github.com/jlmessenger","name":"jlmessenger"},{"url":"https://github.com/thebenlamm","name":"thebenlamm"},{"url":"https://github.com/cshenks","name":"cshenks"},{"url":"https://github.com/jwoodrow","name":"James Woodrow"},{"url":"https://github.com/Mogztter","name":"Guillaume Grossetie"},{"url":"https://github.com/tessi","name":"Philipp Tessenow"},{"url":"https://github.com/timKraeuter","name":"Tim Kräuter"},{"url":"https://github.com/taxilian","name":"Richard Bateman"},{"url":"https://github.com/sebastinez","name":"Sebastian Martinez"},{"url":"https://github.com/soadzoor","name":"soadzoor"},{"url":"https://github.com/bockoblur","name":"Slobodan Babic"},{"url":"https://github.com/ztoben","name":"Zach Toben"},{"url":"https://github.com/zackdotcomputer","name":"Zack Sheppard"},{"url":"https://github.com/DkDavid","name":"DkDavid"},{"url":"https://github.com/btecu","name":"Bj Tecu"},{"url":"https://github.com/mcshaz","name":"Brent McSharry"},{"url":"https://github.com/duffyd","name":"Tim Knapp"},{"url":"https://github.com/ChingChang9","name":"Ching Chang"},{"url":"https://github.com/Sharcoux","name":"François Billioud"},{"url":"https://github.com/PhakornKiong","name":"Phakorn Kiong"},{"url":"https://github.com/programmarchy","name":"Donald Ness"},{"url":"https://github.com/remdra","name":"Remus DRAICA"},{"url":"https://github.com/adnsistemas","name":"David Abdala"},{"url":"https://github.com/erano067","name":"Eran Ohayon"},{"url":"https://github.com/sverch","name":"Shaun Verch"},{"url":"https://github.com/gflohr","name":"Guido Flohr"}],"homepage":"https://pdf-lib.js.org","bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"npm":{"publish":false},"dist":{"shasum":"9f6e244cf19b2512257a5a0688d5fee9ff5abdff","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.9.0.tgz","fileCount":1773,"integrity":"sha512-jwI7mlDSpKTbajAgc83BKeYJkhPPM7lj3rmfeMzvGNoFOeIEgXFVtzFcnbqFGkaSZqkiE/G7/FblJiEnt9/dbQ==","signatures":[{"sig":"MEYCIQDcEq1zKTrjjwmwj2EjeNzqiiByhe07sYo/gaxwxKGXsAIhANBx0d5DuiIhpD3BHSUeNVieHhlkKUF74g0VwWR/2/RT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22001647},"main":"cjs/index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"cjs/index.d.ts","unpkg":"dist/pdf-lib.min.js","module":"es/index.js","exports":{".":{"types":"./cjs/index.d.ts","import":"./es/index.js","require":"./cjs/index.js"}},"gitHead":"c4cc030ba80e2aeddd1fdf9ba164d9df0f4d9488","private":false,"scripts":{"lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","test":"jest --config jest.config.js --runInBand --coverage","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","testc":"jest --config jest.config.js --coverage && open coverage/index.html","testw":"jest --config jest.config.js --watch","release":"yarn release:prep && release-it","apps:web":"http-server -c-1 -o apps/web/test1.html","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","build:cjs":"tsc --module commonjs --outDir cjs","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","build:test":"yarn build:es && yarn build:umd","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","get:version":"node --eval 'console.log(require(`./package.json`).version)'","lint-staged":"lint-staged","lint:eslint":"eslint .","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","scratchpad:run":"node scratchpad/build/scratchpad/index.js","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad"},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"repository":{"url":"git+https://github.com/adnsistemas/pdf-lib.git","type":"git"},"_npmVersion":"11.9.0","description":"Create and modify PDF files with JavaScript","directories":{},"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"_nodeVersion":"24.14.0","dependencies":{"pako":"^1.0.11","color":"^4.2.3","tslib":">=2","crypto-js":"^4.2.0","@adnsistemas/upng":"^1.0.3","@pdf-lib/standard-fonts":"^1.0.0","node-html-better-parser":"^1.4.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"29.7.0","husky":"4","eslint":"^8.56.0","rimraf":"^5.0.5","rollup":"^4.9.6","globals":"^14.0.0","ts-jest":"^29.0","prettier":"^3.2.5","@eslint/js":"^8.56.0","node-fetch":"^3.3.2","release-it":"^17.0.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/pako":"^1.0.1","flamebearer":"^1.1.3","http-server":"^14.1.1","lint-staged":"^15.5.0","@types/color":"^3.0.1","downlevel-dts":"^0.11.0","@pdf-lib/fontkit":"^1.1.0","@types/crypto-js":"^4.2.2","@types/node-fetch":"^2.5.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@rollup/plugin-commonjs":"^25.0.7","@typescript-eslint/parser":"^7.0.0","@rollup/plugin-node-resolve":"^15.2.3","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-lib_2.9.0_1774383383176_0.6157335316530705","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"@adnsistemas/pdf-lib","version":"2.9.1","description":"Create and modify PDF files with JavaScript","author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","exports":{".":{"types":"./cjs/index.d.ts","require":"./cjs/index.js","import":"./es/index.js"}},"contributors":[{"name":"jerp","url":"https://github.com/jerp"},{"name":"Greg Bacchus","url":"https://github.com/gregbacchus"},{"name":"Mickael Lecoq","url":"https://github.com/mlecoq"},{"name":"Philip Murphy","url":"https://github.com/philipjmurphy"},{"name":"Dmitry Kozliuk","url":"https://github.com/PlushBeaver"},{"name":"Said Amezyane","url":"https://github.com/samezyane"},{"name":"Georges Gabereau","url":"https://github.com/multiplegeorges"},{"name":"Gerard Smit","url":"https://github.com/GerardSmit"},{"name":"jlmessenger","url":"https://github.com/jlmessenger"},{"name":"thebenlamm","url":"https://github.com/thebenlamm"},{"name":"cshenks","url":"https://github.com/cshenks"},{"name":"James Woodrow","url":"https://github.com/jwoodrow"},{"name":"Guillaume Grossetie","url":"https://github.com/Mogztter"},{"name":"Philipp Tessenow","url":"https://github.com/tessi"},{"name":"Tim Kräuter","url":"https://github.com/timKraeuter"},{"name":"Richard Bateman","url":"https://github.com/taxilian"},{"name":"Sebastian Martinez","url":"https://github.com/sebastinez"},{"name":"soadzoor","url":"https://github.com/soadzoor"},{"name":"Slobodan Babic","url":"https://github.com/bockoblur"},{"name":"Zach Toben","url":"https://github.com/ztoben"},{"name":"Zack Sheppard","url":"https://github.com/zackdotcomputer"},{"name":"DkDavid","url":"https://github.com/DkDavid"},{"name":"Bj Tecu","url":"https://github.com/btecu"},{"name":"Brent McSharry","url":"https://github.com/mcshaz"},{"name":"Tim Knapp","url":"https://github.com/duffyd"},{"name":"Ching Chang","url":"https://github.com/ChingChang9"},{"name":"François Billioud","url":"https://github.com/Sharcoux"},{"name":"Phakorn Kiong","url":"https://github.com/PhakornKiong"},{"name":"Donald Ness","url":"https://github.com/programmarchy"},{"name":"Remus DRAICA","url":"https://github.com/remdra"},{"name":"David Abdala","url":"https://github.com/adnsistemas"},{"name":"Eran Ohayon","url":"https://github.com/erano067"},{"name":"Shaun Verch","url":"https://github.com/sverch"},{"name":"Guido Flohr","url":"https://github.com/gflohr"}],"scripts":{"release":"yarn release:prep && release-it","release:prep":"yarn clean && yarn lint && yarn typecheck && yarn test && yarn build && coveralls report","get:version":"node --eval 'console.log(require(`./package.json`).version)'","clean":"rimraf ts3.4 build cjs dist es scratchpad/build coverage tsBuildInfo.json apps/node-build apps/node/tsBuildInfo.json isolate*.log flamegraph.html out.pdf","typecheck":"tsc --noEmit --incremental false --tsBuildInfoFile null","test":"jest --config jest.config.js --runInBand --coverage","testw":"jest --config jest.config.js --watch","testc":"jest --config jest.config.js --coverage && open coverage/index.html","lint-staged":"lint-staged","lint":"yarn clean && yarn lint:prettier && yarn lint:eslint","lint:eslint":"eslint .","lint:prettier":"prettier --write \"./{src,tests,apps}/**/*.{ts,js,json,html,css}\" --log-level error","build":"yarn build:cjs && yarn build:es && yarn build:esm && yarn build:esm:min && yarn build:umd && yarn build:umd:min && yarn build:downlevel-dts","build:cjs":"tsc --module commonjs --outDir cjs","build:es":"tsc --module ES2015 --outDir es && node ./scripts/es-build.js","build:esm":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.js --environment MODULE_TYPE:es","build:esm:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.esm.min.js --environment MINIFY,MODULE_TYPE:es","build:umd":"rollup --config rollup.config.mjs --file dist/pdf-lib.js --environment MODULE_TYPE:umd","build:umd:min":"rollup --config rollup.config.mjs --file dist/pdf-lib.min.js --environment MINIFY,MODULE_TYPE:umd","build:downlevel-dts":"rimraf ts3.4 && yarn downlevel-dts . ts3.4 && rimraf ts3.4/scratchpad","build:test":"yarn build:es && yarn build:umd","scratchpad:start":"tsc --build scratchpad/tsconfig.json --watch","scratchpad:run":"node scratchpad/build/scratchpad/index.js","scratchpad:flame":"rimraf isolate*.log && node --prof scratchpad/build/scratchpad/index.js && node --prof-process --preprocess -j isolate*.log | flamebearer","apps:node":"tsc --build apps/node/tsconfig.json && node apps/node-build/index.js","apps:deno":"deno run --allow-read --allow-write --allow-run apps/deno/index.ts","apps:web":"http-server -c-1 -o apps/web/test1.html","apps:web:mac":"bash -c 'sleep 1 && open http://localhost:8080/apps/web/test1.html' & yarn apps:web","apps:rn:ios":"cd apps/rn && yarn add ./../.. --force && react-native run-ios","apps:rn:android":"yarn apps:rn:emulator & cd apps/rn && yarn add ./../.. --force && react-native run-android","apps:rn:emulator":"emulator -avd \"$(emulator -list-avds | head -n 1)\" & bash -c 'sleep 5 && adb reverse tcp:8080 tcp:8080 && adb reverse tcp:8081 tcp:8081'"},"main":"cjs/index.js","module":"es/index.js","unpkg":"dist/pdf-lib.min.js","types":"cjs/index.d.ts","typesVersions":{"<=3.5":{"*":["ts3.4/*"]}},"dependencies":{"@adnsistemas/upng":"^1.0.3","@pdf-lib/standard-fonts":"^1.0.0","color":"^4.2.3","crypto-js":"^4.2.0","node-html-better-parser":"^1.4.0","pako":"^1.0.11","tslib":">=2"},"devDependencies":{"@eslint/js":"^8.56.0","@pdf-lib/fontkit":"^1.1.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","@types/color":"^3.0.1","@types/crypto-js":"^4.2.2","@types/jest":"^29.5.12","@types/node-fetch":"^2.5.7","@types/pako":"^1.0.1","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","downlevel-dts":"^0.11.0","eslint":"^8.56.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","flamebearer":"^1.1.3","globals":"^14.0.0","http-server":"^14.1.1","husky":"4","jest":"29.7.0","lint-staged":"^15.5.0","node-fetch":"^3.3.2","prettier":"^3.2.5","release-it":"^17.0.3","rimraf":"^5.0.5","rollup":"^4.9.6","ts-jest":"^29.0","typescript":"^4.9.5"},"license":"MIT","private":false,"homepage":"https://pdf-lib.js.org","repository":{"type":"git","url":"git+https://github.com/adnsistemas/pdf-lib.git"},"bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"lint-staged":{"{src,tests,apps}/**/*.{ts,js,json,html,css}":["prettier --check","eslint --fix"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"npm":{"publish":false},"publishConfig":{"registry":"https://registry.npmjs.org"},"gitHead":"c52446172021bfd96c7934828e5d14ca336a1635","_id":"@adnsistemas/pdf-lib@2.9.1","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-+57zKYos8FYeCN7oR4V5Y3l73q5ShXGEYn8nxe5u+hmJfqUYtyZweV109LTEHUyyu/06ncO3DaC0iKGK+d7guQ==","shasum":"c1785d8990a6a5996df7130047bd74ffb2b076ba","tarball":"https://registry.npmjs.org/@adnsistemas/pdf-lib/-/pdf-lib-2.9.1.tgz","fileCount":1773,"unpackedSize":22015102,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCqLYkheKwcLJ07pnbNJxJBDxLymniDxiZTLJGW0oBTKgIhAK/4/ilml9k3wcwhcPf2BZ13XY/yaO2ighr+pTFSICHy"}]},"_npmUser":{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"},"directories":{},"maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pdf-lib_2.9.1_1774453031285_0.4067861210167709"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-08T20:08:43.208Z","modified":"2026-03-25T15:37:11.801Z","1.18.0":"2025-05-08T20:08:43.722Z","2.4.2":"2025-06-01T00:03:56.297Z","2.4.3":"2025-07-10T20:18:45.477Z","2.4.4":"2025-07-19T13:59:55.300Z","2.4.5":"2025-07-19T23:24:06.672Z","2.5.0":"2025-07-23T03:15:07.574Z","2.6.0":"2025-09-01T00:05:03.711Z","2.6.1":"2025-09-01T03:28:45.915Z","2.6.2":"2025-09-01T22:09:35.803Z","2.6.3":"2025-11-04T20:28:10.621Z","2.6.4":"2025-11-07T23:21:14.434Z","2.7.0":"2025-12-02T00:23:40.368Z","2.7.1":"2025-12-03T02:37:32.552Z","2.7.2":"2026-01-07T19:51:30.864Z","2.7.3":"2026-02-20T14:46:05.948Z","2.8.0":"2026-02-20T16:10:07.435Z","2.8.1":"2026-03-20T19:08:08.623Z","2.9.0":"2026-03-24T20:16:23.597Z","2.9.1":"2026-03-25T15:37:11.691Z"},"bugs":{"url":"https://github.com/adnsistemas/pdf-lib/issues"},"author":{"name":"Andrew Dillon","email":"andrew.dillon.j@gmail.com"},"license":"MIT","homepage":"https://pdf-lib.js.org","keywords":["pdf-lib","pdf","document","create","modify","creation","modification","edit","editing","typescript","javascript","library"],"repository":{"type":"git","url":"git+https://github.com/adnsistemas/pdf-lib.git"},"description":"Create and modify PDF files with JavaScript","contributors":[{"name":"jerp","url":"https://github.com/jerp"},{"name":"Greg Bacchus","url":"https://github.com/gregbacchus"},{"name":"Mickael Lecoq","url":"https://github.com/mlecoq"},{"name":"Philip Murphy","url":"https://github.com/philipjmurphy"},{"name":"Dmitry Kozliuk","url":"https://github.com/PlushBeaver"},{"name":"Said Amezyane","url":"https://github.com/samezyane"},{"name":"Georges Gabereau","url":"https://github.com/multiplegeorges"},{"name":"Gerard Smit","url":"https://github.com/GerardSmit"},{"name":"jlmessenger","url":"https://github.com/jlmessenger"},{"name":"thebenlamm","url":"https://github.com/thebenlamm"},{"name":"cshenks","url":"https://github.com/cshenks"},{"name":"James Woodrow","url":"https://github.com/jwoodrow"},{"name":"Guillaume Grossetie","url":"https://github.com/Mogztter"},{"name":"Philipp Tessenow","url":"https://github.com/tessi"},{"name":"Tim Kräuter","url":"https://github.com/timKraeuter"},{"name":"Richard Bateman","url":"https://github.com/taxilian"},{"name":"Sebastian Martinez","url":"https://github.com/sebastinez"},{"name":"soadzoor","url":"https://github.com/soadzoor"},{"name":"Slobodan Babic","url":"https://github.com/bockoblur"},{"name":"Zach Toben","url":"https://github.com/ztoben"},{"name":"Zack Sheppard","url":"https://github.com/zackdotcomputer"},{"name":"DkDavid","url":"https://github.com/DkDavid"},{"name":"Bj Tecu","url":"https://github.com/btecu"},{"name":"Brent McSharry","url":"https://github.com/mcshaz"},{"name":"Tim Knapp","url":"https://github.com/duffyd"},{"name":"Ching Chang","url":"https://github.com/ChingChang9"},{"name":"François Billioud","url":"https://github.com/Sharcoux"},{"name":"Phakorn Kiong","url":"https://github.com/PhakornKiong"},{"name":"Donald Ness","url":"https://github.com/programmarchy"},{"name":"Remus DRAICA","url":"https://github.com/remdra"},{"name":"David Abdala","url":"https://github.com/adnsistemas"},{"name":"Eran Ohayon","url":"https://github.com/erano067"},{"name":"Shaun Verch","url":"https://github.com/sverch"},{"name":"Guido Flohr","url":"https://github.com/gflohr"}],"maintainers":[{"name":"adnsistemas","email":"dabdala@adnsistemas.com.ar"}],"readme":"## Forked by [ADNSistemas](https://adnsistemas.com.ar)\n\nThis fork was initially made to improve REMDRAs incremental update implementation, and was later merge with Cantoo-Scribe fork of pdf-lib, which has a number of improvements over original pdf-lib.\n\nInstall with: `npm install @adnsistemas/pdf-lib`\n\n<hr/>\n\n<a href=\"https://pdf-lib.js.org\">\n<h1 align=\"center\">\n<img alt=\"pdf-lib\" height=\"300\" src=\"https://raw.githubusercontent.com/Hopding/pdf-lib-docs/master/assets/logo-full.svg?sanitize=true\">\n</h1>\n</a>\n\n<div align=\"center\">\n  <strong>Create and modify PDF documents in any JavaScript environment.</strong>\n</div>\n<div align=\"center\">\n  Designed to work in any modern JavaScript runtime. Tested in Node, Browser, Deno, and React Native environments.\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- NPM Version -->\n  <a href=\"https://www.npmjs.com/package/@adnsistemas/pdf-lib\">\n    <img\n      src=\"https://img.shields.io/npm/v/@adnsistemas/pdf-lib.svg?style=flat-square\"\n      alt=\"NPM Version\"\n    />\n  </a>\n  <!-- Prettier Badge -->\n  <a href=\"https://prettier.io/\">\n    <img\n      src=\"https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square\"\n      alt=\"Prettier Badge\"\n    />\n  </a>\n  <!-- Coverall Badge -->\n  <a href='https://coveralls.io/github/adnsistemas/pdf-lib?branch=master'><img src='https://coveralls.io/repos/github/adnsistemas/pdf-lib/badge.svg?branch=master' alt='Coverage Status' /></a>\n</div>\n\n<br />\n\n> **Learn more at [pdf-lib.js.org](https://pdf-lib.js.org)**\n\n## Table of Contents\n\n- [Important Changes](#changes)\n- [Features](#features)\n- [Motivation](#motivation)\n- [Usage Examples](#usage-examples)\n  - [Create Document](#create-document)\n  - [Modify Document](#modify-document)\n  - [Incremental Document Modification](#incremental-document-modification)\n  - [Consecutive Incremental Updates](#consecutive-incremental-updates)\n  - [Get Incremental Update Changed Objects](#get-modified-objects-in-incremental-update)\n  - [Create Form](#create-form)\n  - [Fill Form](#fill-form)\n  - [Flatten Form](#flatten-form)\n  - [Copy Pages](#copy-pages)\n  - [Embed PNG and JPEG Images](#embed-png-and-jpeg-images)\n  - [Embed PDF Pages](#embed-pdf-pages)\n  - [Embed Font and Measure Text](#embed-font-and-measure-text)\n  - [Add Attachments](#add-attachments)\n  - [Extract Attachments](#extract-attachments)\n  - [Set Document Metadata](#set-document-metadata)\n  - [Read Document Metadata](#read-document-metadata)\n  - [Set Viewer Preferences](#set-viewer-preferences)\n  - [Read Viewer Preferences](#read-viewer-preferences)\n  - [Draw SVG Paths](#draw-svg-paths)\n  - [Draw SVG](#draw-svg)\n- [Deno Usage](#deno-usage)\n- [Complete Examples](#complete-examples)\n- [Installation](#installation)\n- [Documentation](#documentation)\n- [Fonts and Unicode](#fonts-and-unicode)\n- [Creating and Filling Forms](#creating-and-filling-forms)\n- [Limitations](#limitations)\n- [Help and Discussion](#help-and-discussion)\n- [Encryption Handling](#encryption-handling)\n- [Migrating to v1.0.0](docs/MIGRATION.md)\n- [Contributing](#contributing)\n- [Maintainership](#maintainership)\n- [Tutorials and Cool Stuff](#tutorials-and-cool-stuff)\n- [Prior Art](#prior-art)\n- [Git History Rewrite](#git-history-rewrite)\n- [License](#license)\n\n## Changes\n\n- 2026-03-24: version 2.9.0 replaced the use of ```instanceof``` by the function ```isPDFInstance()``` which allows the library to properly function in complex environments where code comes from more than a single pdf-lib package (issue detected on monorepos using Vertest). This makes the library more flexible, but slower than previous versions.\n\n## Features\n\n- Create new PDFs\n- Modify existing PDFs\n- Modify existing PDFs with incremental updates (preserves original PDF, required for electronic/digital signatures)\n- Create forms\n- Fill forms\n- Flatten forms\n- Add Pages\n- Insert Pages\n- Remove Pages\n- Copy pages between PDFs\n- Draw Text\n- Draw Images\n- Draw PDF Pages\n- Draw Vector Graphics\n- Draw SVG Paths\n- Measure width and height of text\n- Embed Fonts (supports UTF-8 and UTF-16 character sets)\n- Set document metadata\n- Read document metadata\n- Set viewer preferences\n- Read viewer preferences\n- Add attachments\n- Extract attachments\n- Delete attachments\n- Get PDFObjects modified in a specific update of the PDF (used to check for changes between electronic/digital signatures)\n\n## Motivation\n\n`pdf-lib` was created to address the JavaScript ecosystem's lack of robust support for PDF manipulation (especially for PDF _modification_).\n\nTwo of `pdf-lib`'s distinguishing features are:\n\n1. Supporting modification (editing) of existing documents.\n2. Working in all JavaScript environments - not just in Node or the Browser.\n\nThere are [other](#prior-art) good open source JavaScript PDF libraries available. However, most of them can only _create_ documents, they cannot _modify_ existing ones. And many of them only work in particular environments.\n\n## Usage Examples\n\n### Create Document\n\n_This example produces [this PDF](assets/pdfs/examples/create_document.pdf)._\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/rxwsc8f5/13/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts, rgb } from 'pdf-lib'\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Embed the Times Roman font\nconst timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n\n// Add a blank page to the document\nconst page = pdfDoc.addPage()\n\n// Get the width and height of the page\nconst { width, height } = page.getSize()\n\n// Draw a string of text toward the top of the page\nconst fontSize = 30\npage.drawText('Creating PDFs in JavaScript is awesome!', {\n  x: 50,\n  y: height - 4 * fontSize,\n  size: fontSize,\n  font: timesRomanFont,\n  color: rgb(0, 0.53, 0.71),\n})\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Modify Document\n\n_This example produces [this PDF](assets/pdfs/examples/modify_document.pdf)_ (when [this PDF](assets/pdfs/with_update_sections.pdf) is used for the `existingPdfBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/64zajhge/1/)\n\n<!-- prettier-ignore -->\n```js\nimport { degrees, PDFDocument, rgb, StandardFonts } from 'pdf-lib';\n\n// This should be a Uint8Array or ArrayBuffer\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst existingPdfBytes = ...\n\n// Load a PDFDocument from the existing PDF bytes\nconst pdfDoc = await PDFDocument.load(existingPdfBytes)\n\n// Embed the Helvetica font\nconst helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)\n\n// Get the first page of the document\nconst pages = pdfDoc.getPages()\nconst firstPage = pages[0]\n\n// Get the width and height of the first page\nconst { width, height } = firstPage.getSize()\n\n// Draw a string of text diagonally across the first page\nfirstPage.drawText('This text was added with JavaScript!', {\n  x: 5,\n  y: height / 2 + 300,\n  size: 50,\n  font: helveticaFont,\n  color: rgb(0.95, 0.1, 0.1),\n  rotate: degrees(-45),\n})\n\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n\n### Incremental Document Modification\n\nYou can load a PDF for incremental update, generating the original document plus the increment, on save. You can also handle incremental update manually.\nThe incremental modification saving is designed to be used for pdf signing. The signature is added to an existing page, then only the 'incremental' PDF is generated and concatenated to the initial version.\n\n_This example produces [this PDF](assets/pdfs/examples/incremental_document_modification.pdf)_ (when [this PDF](assets/pdfs/simple.pdf) is used for the `existingPdfBytes` variable).\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts } from 'pdf-lib';\n\n// This should be a Uint8Array or ArrayBuffer\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst existingPdfBytes = ...\n\n// Load a PDFDocument from the existing PDF bytes\nconst pdfDoc = await PDFDocument.load(existingPdfBytes)\n\n// Take a snapshot of the document\nconst snapshot = pdfDoc.takeSnapshot();\n\n// Get the first page of the document\nconst pages = pdfDoc.getPages()\nconst firstPage = pages[0]\n\n// Mark the page as modified\nsnapshot.markRefForSave(firstPage.ref)\n\n// Draw a string of text diagonally across the first page\nfirstPage.drawText('Incremental saving is also awesome!', {\n  x: 50,\n  y: 4 * fontSize,\n  size: fontSize\n})\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfIncrementalBytes = await pdfDoc.saveIncremental(snapshot)\nconst pdfBytes = Buffer.concatenate([ existingPdfBytes, pdfIncrementalBytes ])\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\nLoading an existing PDF forIncrementalUpdate, makes things easier:\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts } from 'pdf-lib';\n\n// This should be a Uint8Array or ArrayBuffer\nconst existingPdfBytes = ...\n\n// Load a PDFDocument from the existing PDF bytes, for incremental update\nconst pdfDoc = await PDFDocument.load(existingPdfBytes,{forIncrementalUpdate:true})\n\n// Get the first page of the document\nconst pages = pdfDoc.getPages()\nconst firstPage = pages[0]\n\n// Draw a string of text diagonally across the first page\nfirstPage.drawText('Incremental saving is also awesome!', {\n  x: 50,\n  y: 4 * fontSize,\n  size: fontSize\n})\n\n// Serialize the PDFDocument to bytes (a Uint8Array), using incremental updates\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\nYou can force a rewrite of a PDF that was open for incremental update with the right parameter on save:\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib';\n\n// This should be a Uint8Array or ArrayBuffer\nconst existingPdfBytes = ...\n\n// Load a PDFDocument from the existing PDF bytes, for incremental update\nconst pdfDoc = await PDFDocument.load(existingPdfBytes,{forIncrementalUpdate:true})\n\n// Do something..\n\n// Serialize the PDFDocument to bytes (a Uint8Array), NOT using incremental updates\nconst pdfBytes = await pdfDoc.save({rewrite: true})\n```\n\n#### Using pdf-lib to generate a placeholder for an electronic signature\n@signpdf includes a placeholder-pdf-lib component, but it is based on the pdf-lib package that has no incremental update functionality. This code is taken from that library and modified to use incremental update for not invalidating previous file signatures. Is an example, that can be seen in integration test #20, some @signpdf constants has been changed to arbitrary values for the example to work \"out of the box\".  \nIf you need this functionality, you should take a look at [@adnsistemas/placeholder-pdf-lib](https://www.npmjs.com/package/@adnsistemas/placeholder-pdf-lib).\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts, rgb, PDFArray, PDFNumber, PDFName, PDFHexString, PDFString, PDFInvalidObject, isPDFInstance, PDFClasses } from 'pdf-lib';\nconst pdfBytes = ...\n\nconst pdfDoc = await PDFDocument.load(pdfBytes, {forIncrementalUpdate: true});\n// visual representation of the signature\nconst page = pdfDoc.addPage([500, 200]);\nconst font = pdfDoc.embedStandardFont(StandardFonts.Helvetica);\npage.drawRectangle({\n  x: 10,\n  y: 30,\n  width: 280,\n  height: 150,\n  borderWidth: 2,\n  borderColor: rgb(0.45, 0.45, 0.45),\n});\npage.drawText(`Electronic Signature Example\\nSigned on ${(new Date()).toIsoString()}\\nThis is not the real signature!!`, {\n  x: 20,\n  y: 200,\n  size: 14,\n  font,\n});\n// Add an AcroForm or update the existing one\nlet acroForm = pdfDoc.catalog.getOrCreateAcroForm();\n// Create a placeholder where the last 3 parameters of the\n// actual range will be replaced when signing is done.\nconst byteRange = PDFArray.withContext(pdfDoc.context);\nbyteRange.push(PDFNumber.of(0));\nbyteRange.push(PDFName.of('*********'));\nbyteRange.push(PDFName.of('*********'));\nbyteRange.push(PDFName.of('*********'));\n// Fill the contents of the placeholder with 00s.\nconst placeholder = PDFHexString.of(String.fromCharCode(0).repeat(8096));\n// Create a signature dictionary to be referenced in the signature widget.\nconst appBuild = { App: { Name: 'Signature Example pdf-lib' } };\nconst signatureDict = pdfDoc.context.obj({\n    Type: 'Sig',\n    Filter: 'Adobe.PPKLite',\n    SubFilter: 'adbe.pkcs7.detached',\n    ByteRange: byteRange,\n    Contents: placeholder,\n    Reason: PDFString.of('Example Signature'),\n    M: PDFString.fromDate(new Date()),\n    ContactInfo: PDFString.of('me@pdf-lib.org'),\n    Name: PDFString.of('Example Signer'),\n    Location: PDFString.of('In a far away galaxy..'),\n    Prop_Build: {\n      Filter: { Name: 'Adobe.PPKLite' },\n      ...appBuild,\n    },\n});\n// Register signatureDict as a PDFInvalidObject to prevent PDFLib from serializing it\n// in an object stream.\nconst signatureBuffer = new Uint8Array(signatureDict.sizeInBytes());\nsignatureDict.copyBytesInto(signatureBuffer, 0);\nconst signatureObj = PDFInvalidObject.of(signatureBuffer);\nconst signatureDictRef = pdfDoc.context.register(signatureObj);\n// Create the signature widget\nconst widgetRect = [0, 0, 0, 0];\nconst rect = PDFArray.withContext(pdfDoc.context);\nwidgetRect.forEach((c) => rect.push(PDFNumber.of(c)));\nconst apStream = pdfDoc.context.formXObject([], {\n  BBox: widgetRect,\n  Resources: {}, // Necessary to avoid Acrobat bug (see https://stackoverflow.com/a/73011571)\n});\nconst widgetDict = pdfDoc.context.obj({\n  Type: 'Annot',\n  Subtype: 'Widget',\n  FT: 'Sig',\n  Rect: rect,\n  V: signatureDictRef,\n  T: PDFString.of('TestSig'),\n  TU: PDFString.of('Electronic Signature Example'),\n  F: 2,\n  P: page.ref,\n  AP: { N: pdfDoc.context.register(apStream) }, // Required for PDF/A compliance\n});\nconst widgetDictRef = pdfDoc.context.register(widgetDict);\n// Annotate the widget on the given page\nlet annotations = page.node.lookupMaybe(PDFName.of('Annots'), PDFArray);\nif (typeof annotations === 'undefined') {\n  annotations = pdfDoc.context.obj([]);\n}\nannotations.push(widgetDictRef);\npage.node.set(PDFName.of('Annots'), annotations);\nlet sigFlags: PDFNumber;\nif (acroForm.dict.has(PDFName.of('SigFlags'))) {\n  // Already has some flags, will merge\n  sigFlags = acroForm.dict.get(PDFName.of('SigFlags')) as PDFNumber;\n} else {\n  // Create blank flags\n  sigFlags = PDFNumber.of(0);\n}\nconst updatedFlags = PDFNumber.of(sigFlags!.asNumber() | 1 | 2);\nacroForm.dict.set(PDFName.of('SigFlags'), updatedFlags);\nlet fields = acroForm.dict.get(PDFName.of('Fields'));\nif (!isPDFInstance(fields, PDFClasses.PDFArray)) {\n  fields = pdfDoc.context.obj([]);\n  acroForm.dict.set(PDFName.of('Fields'), fields);\n}\n(fields as PDFArray).push(widgetDictRef);\n// Serialize the PDFDocument to bytes (a Uint8Array), using incremental updates\nconst pdfBytes = await pdfDoc.save()\n\n// `pdfBytes` should be handled to the signing library to calculate the\n//  file hash and fill in the generated placeholder for the signature\n```\n\n### Consecutive Incremental Updates\n\nYou can load a PDF for incremental update, and then generate multiple increments, over the original document, with saveAndContinue() method.  \nThis method simplifies the sequence:\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts } from 'pdf-lib';\n\n// This should be a Uint8Array or ArrayBuffer\nconst existingPdfBytes = ...\n// Load a PDFDocument from the existing PDF bytes, for incremental update\nconst pdfDoc = await PDFDocument.load(existingPdfBytes,{forIncrementalUpdate:true})\n// modify pdf\n...\n// Serialize the PDFDocument to bytes (a Uint8Array), using incremental updates\nconst firstUpdatedDoc = await pdfDoc.save()\nconst pdfDoc2 = await PDFDocument.load(firstUpdatedDoc,{forIncrementalUpdate:true})\n// modify pdf\n...\n// Serialize the PDFDocument to bytes (a Uint8Array), using incremental updates\nconst secondUpdateDoc = await pdfDoc2.save()\n// etc, etc\n```\nAllowing this:  \n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts } from 'pdf-lib';\n\n// This should be a Uint8Array or ArrayBuffer\nconst existingPdfBytes = ...\n// Load a PDFDocument from the existing PDF bytes, for incremental update\nconst pdfDoc = await PDFDocument.load(existingPdfBytes,{forIncrementalUpdate:true})\n// modify pdf\n...\n// Serialize the PDFDocument to bytes (a Uint8Array), using incremental updates\nconst firstUpdatedDoc = await pdfDoc.saveAndContinue();\n// modify pdf\n...\nconst secondUpdateDoc = await pdfDoc2.saveAndContinue();\n// etc, etc\n```\nThe *saveAndContinue* method has the same parameters than *save* method. If document is not loaded **forIncrementalUpdate**, an exception is raised. After calling *saveAndContinue* an update section is added to the original document, and this replaces the original document, and a new snapshot is taken.  \n\n### Get Modified Objects In Incremental Update\n\nYou can load a PDF that has incremental update and get the PDFObjects that were modified in each update.\nThe list includes the actual version of the object, at the time of the update, and previous versions of it.\nIf actual is undefined, then the object was deleted in the update. If has no previous versions, the object was added in the update.\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts } from 'pdf-lib';\n\n// This should be a Uint8Array or ArrayBuffer\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst existingPdfBytes = ...\n\n// Load a PDFDocument from the existing PDF bytes, indicating you want the objects versions information preserved\nconst pdfDoc = await PDFDocument.load(existingPdfBytes,{preserveObjectsVersions: true})\n\n// Get the first page of the document\nconst lastChangedObjects = pdfDoc.getChangedObjects(); // last update\nconst prevChangedObjects = pdfDoc.getChangedObjects(1); // 1 update prior the last one\nfor (const lco of lastChangedObjects) {\n  const pco = prevChangedObjects.find( pco => pco.ref.objectNumber == lco.ref.objectNumber);\n  if (pco) { // the object changed in both updates\n    // pco.previous.length == lco.previos.length - 1\n    console.log('This is true',pco.actual, '===', lco.previous[0]);    \n  } else {\n    if (lco.previous.length)\n      console.log('The object existed, and was not updated in previous update');\n    else\n      console.log('The object was added in the last PDF update');\n  }\n  if (!lco.actual)\n    console.log('The object was deleted in the last PDF update');\n}\n```\n\n\n### Create Form\n\n_This example produces [this PDF](assets/pdfs/examples/create_form.pdf)._\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/bct7vngL/4/)\n\n> See also [Creating and Filling Forms](#creating-and-filling-forms)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Add a blank page to the document\nconst page = pdfDoc.addPage([550, 750])\n\n// Get the form so we can add fields to it\nconst form = pdfDoc.getForm()\n\n// Add the superhero text field and description\npage.drawText('Enter your favorite superhero:', { x: 50, y: 700, size: 20 })\n\nconst superheroField = form.createTextField('favorite.superhero')\nsuperheroField.setText('One Punch Man')\nsuperheroField.addToPage(page, { x: 55, y: 640 })\n\n// Add the rocket radio group, labels, and description\npage.drawText('Select your favorite rocket:', { x: 50, y: 600, size: 20 })\n\npage.drawText('Falcon Heavy', { x: 120, y: 560, size: 18 })\npage.drawText('Saturn IV', { x: 120, y: 500, size: 18 })\npage.drawText('Delta IV Heavy', { x: 340, y: 560, size: 18 })\npage.drawText('Space Launch System', { x: 340, y: 500, size: 18 })\n\nconst rocketField = form.createRadioGroup('favorite.rocket')\nrocketField.addOptionToPage('Falcon Heavy', page, { x: 55, y: 540 })\nrocketField.addOptionToPage('Saturn IV', page, { x: 55, y: 480 })\nrocketField.addOptionToPage('Delta IV Heavy', page, { x: 275, y: 540 })\nrocketField.addOptionToPage('Space Launch System', page, { x: 275, y: 480 })\nrocketField.select('Saturn IV')\n\n// Add the gundam check boxes, labels, and description\npage.drawText('Select your favorite gundams:', { x: 50, y: 440, size: 20 })\n\npage.drawText('Exia', { x: 120, y: 400, size: 18 })\npage.drawText('Kyrios', { x: 120, y: 340, size: 18 })\npage.drawText('Virtue', { x: 340, y: 400, size: 18 })\npage.drawText('Dynames', { x: 340, y: 340, size: 18 })\n\nconst exiaField = form.createCheckBox('gundam.exia')\nconst kyriosField = form.createCheckBox('gundam.kyrios')\nconst virtueField = form.createCheckBox('gundam.virtue')\nconst dynamesField = form.createCheckBox('gundam.dynames')\n\nexiaField.addToPage(page, { x: 55, y: 380 })\nkyriosField.addToPage(page, { x: 55, y: 320 })\nvirtueField.addToPage(page, { x: 275, y: 380 })\ndynamesField.addToPage(page, { x: 275, y: 320 })\n\nexiaField.check()\ndynamesField.check()\n\n// Add the planet dropdown and description\npage.drawText('Select your favorite planet*:', { x: 50, y: 280, size: 20 })\n\nconst planetsField = form.createDropdown('favorite.planet')\nplanetsField.addOptions(['Venus', 'Earth', 'Mars', 'Pluto'])\nplanetsField.select('Pluto')\nplanetsField.addToPage(page, { x: 55, y: 220 })\n\n// Add the person option list and description\npage.drawText('Select your favorite person:', { x: 50, y: 180, size: 18 })\n\nconst personField = form.createOptionList('favorite.person')\npersonField.addOptions([\n  'Julius Caesar',\n  'Ada Lovelace',\n  'Cleopatra',\n  'Aaron Burr',\n  'Mark Antony',\n])\npersonField.select('Ada Lovelace')\npersonField.addToPage(page, { x: 55, y: 70 })\n\n// Just saying...\npage.drawText(`* Pluto should be a planet too!`, { x: 15, y: 15, size: 15 })\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Fill Form\n\n_This example produces [this PDF](assets/pdfs/examples/fill_form.pdf)_ (when [this PDF](assets/pdfs/dod_character.pdf) is used for the `formPdfBytes` variable, [this image](assets/images/small_mario.png) is used for the `marioImageBytes` variable, and [this image](assets/images/mario_emblem.png) is used for the `emblemImageBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/0mwfqkv6/3/)\n\n> See also [Creating and Filling Forms](#creating-and-filling-forms)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// These should be Uint8Arrays or ArrayBuffers\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst formPdfBytes = ...\nconst marioImageBytes = ...\nconst emblemImageBytes = ...\n\n// Load a PDF with form fields\nconst pdfDoc = await PDFDocument.load(formPdfBytes)\n\n// Embed the Mario and emblem images\nconst marioImage = await pdfDoc.embedPng(marioImageBytes)\nconst emblemImage = await pdfDoc.embedPng(emblemImageBytes)\n\n// Get the form containing all the fields\nconst form = pdfDoc.getForm()\n\n// Get all fields in the PDF by their names\nconst nameField = form.getTextField('CharacterName 2')\nconst ageField = form.getTextField('Age')\nconst heightField = form.getTextField('Height')\nconst weightField = form.getTextField('Weight')\nconst eyesField = form.getTextField('Eyes')\nconst skinField = form.getTextField('Skin')\nconst hairField = form.getTextField('Hair')\n\nconst alliesField = form.getTextField('Allies')\nconst factionField = form.getTextField('FactionName')\nconst backstoryField = form.getTextField('Backstory')\nconst traitsField = form.getTextField('Feat+Traits')\nconst treasureField = form.getTextField('Treasure')\n\nconst characterImageField = form.getButton('CHARACTER IMAGE')\nconst factionImageField = form.getTextField('Faction Symbol Image')\n\n// Fill in the basic info fields\nnameField.setText('Mario')\nageField.setText('24 years')\nheightField.setText(`5' 1\"`)\nweightField.setText('196 lbs')\neyesField.setText('blue')\nskinField.setText('white')\nhairField.setText('brown')\n\n// Fill the character image field with our Mario image\ncharacterImageField.setImage(marioImage)\n\n// Fill in the allies field\nalliesField.setText(\n  [\n    `Allies:`,\n    `  • Princess Daisy`,\n    `  • Princess Peach`,\n    `  • Rosalina`,\n    `  • Geno`,\n    `  • Luigi`,\n    `  • Donkey Kong`,\n    `  • Yoshi`,\n    `  • Diddy Kong`,\n    ``,\n    `Organizations:`,\n    `  • Italian Plumbers Association`,\n  ].join('\\n'),\n)\n\n// Fill in the faction name field\nfactionField.setText(`Mario's Emblem`)\n\n// Fill the faction image field with our emblem image\nfactionImageField.setImage(emblemImage)\n\n// Fill in the backstory field\nbackstoryField.setText(\n  `Mario is a fictional character in the Mario video game franchise, owned by Nintendo and created by Japanese video game designer Shigeru Miyamoto. Serving as the company's mascot and the eponymous protagonist of the series, Mario has appeared in over 200 video games since his creation. Depicted as a short, pudgy, Italian plumber who resides in the Mushroom Kingdom, his adventures generally center upon rescuing Princess Peach from the Koopa villain Bowser. His younger brother and sidekick is Luigi.`,\n)\n\n// Fill in the traits field\ntraitsField.setText(\n  [\n    `Mario can use three basic three power-ups:`,\n    `  • the Super Mushroom, which causes Mario to grow larger`,\n    `  • the Fire Flower, which allows Mario to throw fireballs`,\n    `  • the Starman, which gives Mario temporary invincibility`,\n  ].join('\\n'),\n)\n\n// Fill in the treasure field\ntreasureField.setText(['• Gold coins', '• Treasure chests'].join('\\n'))\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Flatten Form\n\n_This example produces [this PDF](assets/pdfs/examples/flatten_form.pdf)_ (when [this PDF](assets/pdfs/form_to_flatten.pdf) is used for the `formPdfBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/skevywdz/2/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// This should be a Uint8Array or ArrayBuffer\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst formPdfBytes = ...\n\n// Load a PDF with form fields\nconst pdfDoc = await PDFDocument.load(formPdfBytes)\n\n// Get the form containing all the fields\nconst form = pdfDoc.getForm()\n\n// Fill the form's fields\nform.getTextField('Text1').setText('Some Text');\n\nform.getRadioGroup('Group2').select('Choice1');\nform.getRadioGroup('Group3').select('Choice3');\nform.getRadioGroup('Group4').select('Choice1');\n\nform.getCheckBox('Check Box3').check();\nform.getCheckBox('Check Box4').uncheck();\n\nform.getDropdown('Dropdown7').select('Infinity');\n\nform.getOptionList('List Box6').select('Honda');\n\n// Flatten the form's fields\nform.flatten();\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Copy Pages\n\n_This example produces [this PDF](assets/pdfs/examples/copy_pages.pdf)_ (when [this PDF](assets/pdfs/with_update_sections.pdf) is used for the `firstDonorPdfBytes` variable and [this PDF](assets/pdfs/with_large_page_count.pdf) is used for the `secondDonorPdfBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/ybank8s9/2/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// These should be Uint8Arrays or ArrayBuffers\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst firstDonorPdfBytes = ...\nconst secondDonorPdfBytes = ...\n\n// Load a PDFDocument from each of the existing PDFs\nconst firstDonorPdfDoc = await PDFDocument.load(firstDonorPdfBytes)\nconst secondDonorPdfDoc = await PDFDocument.load(secondDonorPdfBytes)\n\n// Copy the 1st page from the first donor document, and\n// the 743rd page from the second donor document\nconst [firstDonorPage] = await pdfDoc.copyPages(firstDonorPdfDoc, [0])\nconst [secondDonorPage] = await pdfDoc.copyPages(secondDonorPdfDoc, [742])\n\n// Add the first copied page\npdfDoc.addPage(firstDonorPage)\n\n// Insert the second copied page to index 0, so it will be the\n// first page in `pdfDoc`\npdfDoc.insertPage(0, secondDonorPage)\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Embed PNG and JPEG Images\n\n_This example produces [this PDF](assets/pdfs/examples/embed_png_and_jpeg_images.pdf)_ (when [this image](assets/images/cat_riding_unicorn.jpg) is used for the `jpgImageBytes` variable and [this image](assets/images/minions_banana_alpha.png) is used for the `pngImageBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/bcya43ju/5/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// These should be Uint8Arrays or ArrayBuffers\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst jpgImageBytes = ...\nconst pngImageBytes = ...\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Embed the JPG image bytes and PNG image bytes\nconst jpgImage = await pdfDoc.embedJpg(jpgImageBytes)\nconst pngImage = await pdfDoc.embedPng(pngImageBytes)\n\n// Get the width/height of the JPG image scaled down to 25% of its original size\nconst jpgDims = jpgImage.scale(0.25)\n\n// Get the width/height of the PNG image scaled down to 50% of its original size\nconst pngDims = pngImage.scale(0.5)\n\n// Add a blank page to the document\nconst page = pdfDoc.addPage()\n\n// Draw the JPG image in the center of the page\npage.drawImage(jpgImage, {\n  x: page.getWidth() / 2 - jpgDims.width / 2,\n  y: page.getHeight() / 2 - jpgDims.height / 2,\n  width: jpgDims.width,\n  height: jpgDims.height,\n})\n\n// Draw the PNG image near the lower right corner of the JPG image\npage.drawImage(pngImage, {\n  x: page.getWidth() / 2 - pngDims.width / 2 + 75,\n  y: page.getHeight() / 2 - pngDims.height,\n  width: pngDims.width,\n  height: pngDims.height,\n})\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Embed PDF Pages\n\n_This example produces [this PDF](assets/pdfs/examples/embed_pdf_pages.pdf)_ (when [this PDF](assets/pdfs/american_flag.pdf) is used for the `americanFlagPdfBytes` variable and [this PDF](assets/pdfs/us_constitution.pdf) is used for the `usConstitutionPdfBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/Lyb16ocj/13/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// These should be Uint8Arrays or ArrayBuffers\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst americanFlagPdfBytes = ...\nconst usConstitutionPdfBytes = ...\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Embed the American flag PDF bytes\nconst [americanFlag] = await pdfDoc.embedPdf(americanFlagPdfBytes)\n\n// Load the U.S. constitution PDF bytes\nconst usConstitutionPdf = await PDFDocument.load(usConstitutionPdfBytes)\n\n// Embed the second page of the constitution and clip the preamble\nconst preamble = await pdfDoc.embedPage(usConstitutionPdf.getPages()[1], {\n  left: 55,\n  bottom: 485,\n  right: 300,\n  top: 575,\n})\n\n// Get the width/height of the American flag PDF scaled down to 30% of\n// its original size\nconst americanFlagDims = americanFlag.scale(0.3)\n\n// Get the width/height of the preamble clipping scaled up to 225% of\n// its original size\nconst preambleDims = preamble.scale(2.25)\n\n// Add a blank page to the document\nconst page = pdfDoc.addPage()\n\n// Draw the American flag image in the center top of the page\npage.drawPage(americanFlag, {\n  ...americanFlagDims,\n  x: page.getWidth() / 2 - americanFlagDims.width / 2,\n  y: page.getHeight() - americanFlagDims.height - 150,\n})\n\n// Draw the preamble clipping in the center bottom of the page\npage.drawPage(preamble, {\n  ...preambleDims,\n  x: page.getWidth() / 2 - preambleDims.width / 2,\n  y: page.getHeight() / 2 - preambleDims.height / 2 - 50,\n})\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Embed Font and Measure Text\n\n`pdf-lib` relies on a sister module to support embedding custom fonts: [`@pdf-lib/fontkit`](https://www.npmjs.com/package/@pdf-lib/fontkit). You must add the `@pdf-lib/fontkit` module to your project and register it using `pdfDoc.registerFontkit(...)` before embedding custom fonts.\n\n> **[See below for detailed installation instructions on installing `@pdf-lib/fontkit` as a UMD or NPM module.](#fontkit-installation)**\n\n_This example produces [this PDF](assets/pdfs/examples/embed_font_and_measure_text.pdf)_ (when [this font](assets/fonts/ubuntu/Ubuntu-R.ttf) is used for the `fontBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/rgu6ca59/2/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, rgb } from 'pdf-lib'\nimport fontkit from '@pdf-lib/fontkit'\n\n// This should be a Uint8Array or ArrayBuffer\n// This data can be obtained in a number of different ways\n// If you're running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst fontBytes = ...\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Register the `fontkit` instance\npdfDoc.registerFontkit(fontkit)\n\n// Embed our custom font in the document\nconst customFont = await pdfDoc.embedFont(fontBytes)\n\n// Add a blank page to the document\nconst page = pdfDoc.addPage()\n\n// Create a string of text and measure its width and height in our custom font\nconst text = 'This is text in an embedded font!'\nconst textSize = 35\nconst textWidth = customFont.widthOfTextAtSize(text, textSize)\nconst textHeight = customFont.heightAtSize(textSize)\n\n// Draw the string of text on the page\npage.drawText(text, {\n  x: 40,\n  y: 450,\n  size: textSize,\n  font: customFont,\n  color: rgb(0, 0.53, 0.71),\n})\n\n// Draw a box around the string of text\npage.drawRectangle({\n  x: 40,\n  y: 450,\n  width: textWidth,\n  height: textHeight,\n  borderColor: rgb(1, 0, 0),\n  borderWidth: 1.5,\n})\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Add Attachments\n\n_This example produces [this PDF](assets/pdfs/examples/add_attachments.pdf)_ (when [this image](assets/images/cat_riding_unicorn.jpg) is used for the `jpgAttachmentBytes` variable and [this PDF](assets/pdfs/us_constitution.pdf) is used for the `pdfAttachmentBytes` variable).\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/9snL63wj/5/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// These should be Uint8Arrays or ArrayBuffers\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst jpgAttachmentBytes = ...\nconst pdfAttachmentBytes = ...\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Add the JPG attachment\nawait pdfDoc.attach(jpgAttachmentBytes, 'cat_riding_unicorn.jpg', {\n  mimeType: 'image/jpeg',\n  description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n  creationDate: new Date('2019/12/01'),\n  modificationDate: new Date('2020/04/19'),\n})\n\n// Add the PDF attachment\nawait pdfDoc.attach(pdfAttachmentBytes, 'us_constitution.pdf', {\n  mimeType: 'application/pdf',\n  description: 'Constitution of the United States 🇺🇸🦅',\n  creationDate: new Date('1787/09/17'),\n  modificationDate: new Date('1992/05/07'),\n})\n\n// Add a page with some text\nconst page = pdfDoc.addPage();\npage.drawText('This PDF has two attachments', { x: 135, y: 415 })\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Extract Attachments\n\nIf you load a PDF that has `cars.csv` as an attachment, you can use the\nfollowing to extract the attachments:\n\n<!-- prettier-ignore -->\n```js\nconst pdfDoc = await PDFDocument.load(...)\nconst attachments = pdfDoc.getAttachments()\nconst csv = attachments.find(({ name }) => name === 'cars.csv')\nfs.writeFileSync(csv.name, csv.data)\n```\n\n> NOTE: The method also finds attachments added after the last call to\n> `save()`.\n\n### Set Document Metadata\n\n_This example produces [this PDF](assets/pdfs/examples/set_document_metadata.pdf)_.\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/vcwmfnbe/2/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, StandardFonts } from 'pdf-lib'\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Embed the Times Roman font\nconst timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n\n// Add a page and draw some text on it\nconst page = pdfDoc.addPage([500, 600])\npage.setFont(timesRomanFont)\npage.drawText('The Life of an Egg', { x: 60, y: 500, size: 50 })\npage.drawText('An Epic Tale of Woe', { x: 125, y: 460, size: 25 })\n\n// Set all available metadata fields on the PDFDocument. Note that these fields\n// are visible in the \"Document Properties\" section of most PDF readers.\npdfDoc.setTitle('🥚 The Life of an Egg 🍳')\npdfDoc.setAuthor('Humpty Dumpty')\npdfDoc.setSubject('📘 An Epic Tale of Woe 📖')\npdfDoc.setKeywords(['eggs', 'wall', 'fall', 'king', 'horses', 'men'])\npdfDoc.setProducer('PDF App 9000 🤖')\npdfDoc.setCreator('pdf-lib (https://github.com/Hopding/pdf-lib)')\npdfDoc.setCreationDate(new Date('2018-06-24T01:58:37.228Z'))\npdfDoc.setModificationDate(new Date('2019-12-21T07:00:11.000Z'))\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Read Document Metadata\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/eg8rfz3k/16/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// This should be a Uint8Array or ArrayBuffer\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst existingPdfBytes = ...\n\n// Load a PDFDocument without updating its existing metadata\nconst pdfDoc = await PDFDocument.load(existingPdfBytes, {\n  updateMetadata: false\n})\n\n// Print all available metadata fields\nconsole.log('Title:', pdfDoc.getTitle())\nconsole.log('Author:', pdfDoc.getAuthor())\nconsole.log('Subject:', pdfDoc.getSubject())\nconsole.log('Creator:', pdfDoc.getCreator())\nconsole.log('Keywords:', pdfDoc.getKeywords())\nconsole.log('Producer:', pdfDoc.getProducer())\nconsole.log('Creation Date:', pdfDoc.getCreationDate())\nconsole.log('Modification Date:', pdfDoc.getModificationDate())\n```\n\nThis script outputs the following (_when [this PDF](assets/pdfs/with_cropbox.pdf) is used for the `existingPdfBytes` variable_):\n\n```\nTitle: Microsoft Word - Basic Curriculum Vitae example.doc\nAuthor: Administrator\nSubject: undefined\nCreator: PScript5.dll Version 5.2\nKeywords: undefined\nProducer: Acrobat Distiller 8.1.0 (Windows)\nCreation Date: 2010-07-29T14:26:00.000Z\nModification Date: 2010-07-29T14:26:00.000Z\n```\n\n### Set Viewer Preferences\n\n<!-- prettier-ignore -->\n```js\nimport {\n  PDFDocument,\n  StandardFonts,\n  NonFullScreenPageMode,\n  ReadingDirection,\n  PrintScaling,\n  Duplex,\n  PDFName,\n} from 'pdf-lib'\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Embed the Times Roman font\nconst timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n\n// Add a page and draw some text on it\nconst page = pdfDoc.addPage([500, 600])\npage.setFont(timesRomanFont)\npage.drawText('The Life of an Egg', { x: 60, y: 500, size: 50 })\npage.drawText('An Epic Tale of Woe', { x: 125, y: 460, size: 25 })\n\n// Set all available viewer preferences on the PDFDocument:\nconst viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\nviewerPrefs.setHideToolbar(true)\nviewerPrefs.setHideMenubar(true)\nviewerPrefs.setHideWindowUI(true)\nviewerPrefs.setFitWindow(true)\nviewerPrefs.setCenterWindow(true)\nviewerPrefs.setDisplayDocTitle(true)\n\n// Set the PageMode (otherwise setting NonFullScreenPageMode has no meaning)\npdfDoc.catalog.set(PDFName.of('PageMode'), PDFName.of('FullScreen'))\n\n// Set what happens when fullScreen is closed\nviewerPrefs.setNonFullScreenPageMode(NonFullScreenPageMode.UseOutlines)\n\nviewerPrefs.setReadingDirection(ReadingDirection.L2R)\nviewerPrefs.setPrintScaling(PrintScaling.None)\nviewerPrefs.setDuplex(Duplex.DuplexFlipLongEdge)\nviewerPrefs.setPickTrayByPDFSize(true)\n\n// We can set the default print range to only the first page\nviewerPrefs.setPrintPageRange({ start: 0, end: 0 })\n\n// Or we can supply noncontiguous ranges (e.g. pages 1, 3, and 5-7)\nviewerPrefs.setPrintPageRange([\n  { start: 0, end: 0 },\n  { start: 2, end: 2 },\n  { start: 4, end: 6 },\n])\n\nviewerPrefs.setNumCopies(2)\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Read Viewer Preferences\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\n\n// This should be a Uint8Array or ArrayBuffer\n// This data can be obtained in a number of different ways\n// If your running in a Node environment, you could use fs.readFile()\n// In the browser, you could make a fetch() call and use res.arrayBuffer()\nconst existingPdfBytes = ...\n\n// Load a PDFDocument without updating its existing metadata\nconst pdfDoc = await PDFDocument.load(existingPdfBytes)\nconst viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n\n// Print all available viewer preference fields\nconsole.log('HideToolbar:', viewerPrefs.getHideToolbar())\nconsole.log('HideMenubar:', viewerPrefs.getHideMenubar())\nconsole.log('HideWindowUI:', viewerPrefs.getHideWindowUI())\nconsole.log('FitWindow:', viewerPrefs.getFitWindow())\nconsole.log('CenterWindow:', viewerPrefs.getCenterWindow())\nconsole.log('DisplayDocTitle:', viewerPrefs.getDisplayDocTitle())\nconsole.log('NonFullScreenPageMode:', viewerPrefs.getNonFullScreenPageMode())\nconsole.log('ReadingDirection:', viewerPrefs.getReadingDirection())\nconsole.log('PrintScaling:', viewerPrefs.getPrintScaling())\nconsole.log('Duplex:', viewerPrefs.getDuplex())\nconsole.log('PickTrayByPDFSize:', viewerPrefs.getPickTrayByPDFSize())\nconsole.log('PrintPageRange:', viewerPrefs.getPrintPageRange())\nconsole.log('NumCopies:', viewerPrefs.getNumCopies())\n```\n\nThis script outputs the following (_when [this PDF](assets/pdfs/with_viewer_prefs.pdf) is used for the `existingPdfBytes` variable_):\n\n```\nHideToolbar: true\nHideMenubar: true\nHideWindowUI: false\nFitWindow: true\nCenterWindow: true\nDisplayDocTitle: true\nNonFullScreenPageMode: UseNone\nReadingDirection: R2L\nPrintScaling: None\nDuplex: DuplexFlipLongEdge\nPickTrayByPDFSize: true\nPrintPageRange: [ { start: 1, end: 1 }, { start: 3, end: 4 } ]\nNumCopies: 2\n```\n\n### Draw SVG Paths\n\n_This example produces [this PDF](assets/pdfs/examples/draw_svg_paths.pdf)_.\n\n[Try the JSFiddle demo](https://jsfiddle.net/Hopding/bwaomr9h/2/)\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument, rgb } from 'pdf-lib'\n\n// SVG path for a wavy line\nconst svgPath =\n  'M 0,20 L 100,160 Q 130,200 150,120 C 190,-40 200,200 300,150 L 400,90'\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Add a blank page to the document\nconst page = pdfDoc.addPage()\npage.moveTo(100, page.getHeight() - 5)\n\n// Draw the SVG path as a black line\npage.moveDown(25)\npage.drawSvgPath(svgPath)\n\n// Draw the SVG path as a thick green line\npage.moveDown(200)\npage.drawSvgPath(svgPath, { borderColor: rgb(0, 1, 0), borderWidth: 5 })\n\n// Draw the SVG path and fill it with red\npage.moveDown(200)\npage.drawSvgPath(svgPath, { color: rgb(1, 0, 0) })\n\n// Draw the SVG path at 50% of its original size\npage.moveDown(200)\npage.drawSvgPath(svgPath, { scale: 0.5 })\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n\n// For example, `pdfBytes` can be:\n//   • Written to a file in Node\n//   • Downloaded from the browser\n//   • Rendered in an <iframe>\n```\n\n### Draw SVG\n\n```js\nimport { PDFDocument, rgb } from 'pdf-lib'\n\n// SVG of a square inside a square\nconst svg = `<svg width=\"100\" height=\"100\">\n  <rect y=\"0\" x=\"0\" width=\"100\" height=\"100\" fill=\"none\" stroke=\"black\"/>\n  <rect y=\"25\" x=\"25\" width=\"50\" height=\"50\" fill=\"black\"/>\n</svg>`;\nconst svg2 = '<svg><image href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=\"/></svg>'\n\n// Create a new PDFDocument\nconst pdfDoc = await PDFDocument.create()\n\n// Add a blank page to the document\nconst page = pdfDoc.addPage()\n\n// drawSvg can accept the svg as a string, as long as there are no images in it\npage.moveTo(100, 10)\npage.drawSvg(svg)\n\n// If the svg has images, or if you don't know if it does, you should call embedSVG first\npage.moveTo(200, 10)\nconst pdfSvg = await pdfDoc.embedSvg(svg2)\npage.drawSvg(pdfSvg)\n\n// Serialize the PDFDocument to bytes (a Uint8Array)\nconst pdfBytes = await pdfDoc.save()\n```\n\n## Deno Usage\n\n`pdf-lib` fully supports the exciting new [Deno](https://deno.land/) runtime! All of the [usage examples](#usage-examples) work in Deno. The only thing you need to do is change the imports for `pdf-lib` and `@pdf-lib/fontkit` to use the [Skypack](https://www.skypack.dev/) CDN, because Deno requires all modules to be referenced via URLs.\n\n> **See also [How to Create and Modify PDF Files in Deno With pdf-lib](https://medium.com/swlh/how-to-create-and-modify-pdf-files-in-deno-ffaad7099b0?source=friends_link&sk=3da183bb776d059df428eaea52102f19)**\n\n### Creating a Document with Deno\n\nBelow is the [**create document**](#create-document) example modified for Deno:\n\n```js\nimport {\n  PDFDocument,\n  StandardFonts,\n  rgb,\n} from 'https://cdn.skypack.dev/pdf-lib@^1.11.1?dts';\n\nconst pdfDoc = await PDFDocument.create();\nconst timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman);\n\nconst page = pdfDoc.addPage();\nconst { width, height } = page.getSize();\nconst fontSize = 30;\npage.drawText('Creating PDFs in JavaScript is awesome!', {\n  x: 50,\n  y: height - 4 * fontSize,\n  size: fontSize,\n  font: timesRomanFont,\n  color: rgb(0, 0.53, 0.71),\n});\n\nconst pdfBytes = await pdfDoc.save();\n\nawait Deno.writeFile('out.pdf', pdfBytes);\n```\n\nIf you save this script as `create-document.ts`, you can execute it using Deno with the following command:\n\n```\ndeno run --allow-write create-document.ts\n```\n\nThe resulting `out.pdf` file will look like [this PDF](assets/pdfs/examples/create_document.pdf).\n\n### Embedding a Font with Deno\n\nHere's a slightly more complicated example demonstrating how to embed a font and measure text in Deno:\n\n```js\nimport {\n  degrees,\n  PDFDocument,\n  rgb,\n  StandardFonts,\n} from 'https://cdn.skypack.dev/pdf-lib@^1.11.1?dts';\nimport fontkit from 'https://cdn.skypack.dev/@pdf-lib/fontkit@^1.0.0?dts';\n\nconst url = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf';\nconst fontBytes = await fetch(url).then((res) => res.arrayBuffer());\n\nconst pdfDoc = await PDFDocument.create();\n\npdfDoc.registerFontkit(fontkit);\nconst customFont = await pdfDoc.embedFont(fontBytes);\n\nconst page = pdfDoc.addPage();\n\nconst text = 'This is text in an embedded font!';\nconst textSize = 35;\nconst textWidth = customFont.widthOfTextAtSize(text, textSize);\nconst textHeight = customFont.heightAtSize(textSize);\n\npage.drawText(text, {\n  x: 40,\n  y: 450,\n  size: textSize,\n  font: customFont,\n  color: rgb(0, 0.53, 0.71),\n});\npage.drawRectangle({\n  x: 40,\n  y: 450,\n  width: textWidth,\n  height: textHeight,\n  borderColor: rgb(1, 0, 0),\n  borderWidth: 1.5,\n});\n\nconst pdfBytes = await pdfDoc.save();\n\nawait Deno.writeFile('out.pdf', pdfBytes);\n```\n\nIf you save this script as `custom-font.ts`, you can execute it with the following command:\n\n```\ndeno run --allow-write --allow-net custom-font.ts\n```\n\nThe resulting `out.pdf` file will look like [this PDF](assets/pdfs/examples/embed_font_and_measure_text.pdf).\n\n## Complete Examples\n\nThe [usage examples](#usage-examples) provide code that is brief and to the point, demonstrating the different features of `pdf-lib`. You can find complete working examples in the [`apps/`](apps/) directory. These apps are used to do manual testing of `pdf-lib` before every release (in addition to the [automated tests](tests/)).\n\nThere are currently four apps:\n\n- [**`node`**](apps/node/) - contains [tests](apps/node/tests/) for `pdf-lib` in Node environments. These tests are a handy reference when trying to save/load PDFs, fonts, or images with `pdf-lib` from the filesystem. They also allow you to quickly open your PDFs in different viewers (Acrobat, Preview, Foxit, Chrome, Firefox, etc...) to ensure compatibility.\n- [**`web`**](apps/web/) - contains [tests](apps/web/) for `pdf-lib` in browser environments. These tests are a handy reference when trying to save/load PDFs, fonts, or images with `pdf-lib` in a browser environment.\n- [**`rn`**](apps/rn) - contains [tests](apps/rn/src/tests/) for `pdf-lib` in React Native environments. These tests are a handy reference when trying to save/load PDFs, fonts, or images with `pdf-lib` in a React Native environment.\n- [**`deno`**](apps/deno) - contains [tests](apps/deno/tests/) for `pdf-lib` in Deno environments. These tests are a handy reference when trying to save/load PDFs, fonts, or images with `pdf-lib` from the filesystem.\n\n## Installation\n\n### NPM Module\n\nTo install the latest stable version:\n\n```bash\n# With npm\nnpm install --save pdf-lib\n\n# With yarn\nyarn add pdf-lib\n```\n\nThis assumes you're using [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/lang/en/) as your package manager.\n\n### UMD Module\n\nYou can also download `pdf-lib` as a UMD module from [unpkg](https://unpkg.com/#/) or [jsDelivr](https://www.jsdelivr.com/). The UMD builds have been compiled to ES5, so they should work [in any modern browser](https://caniuse.com/#feat=es5). UMD builds are useful if you aren't using a package manager or module bundler. For example, you can use them directly in the `<script>` tag of an HTML page.\n\nThe following builds are available:\n\n- https://unpkg.com/pdf-lib/dist/pdf-lib.js\n- https://unpkg.com/pdf-lib/dist/pdf-lib.min.js\n- https://cdn.jsdelivr.net/npm/pdf-lib/dist/pdf-lib.js\n- https://cdn.jsdelivr.net/npm/pdf-lib/dist/pdf-lib.min.js\n\n> **NOTE:** if you are using the CDN scripts in production, you should include a specific version number in the URL, for example:\n>\n> - https://unpkg.com/pdf-lib@1.4.0/dist/pdf-lib.min.js\n> - https://cdn.jsdelivr.net/npm/pdf-lib@1.4.0/dist/pdf-lib.min.js\n\nWhen using a UMD build, you will have access to a global `window.PDFLib` variable. This variable contains all of the classes and functions exported by `pdf-lib`. For example:\n\n```javascript\n// NPM module\nimport { PDFDocument, rgb } from 'pdf-lib';\n\n// UMD module\nvar PDFDocument = PDFLib.PDFDocument;\nvar rgb = PDFLib.rgb;\n```\n\n## Fontkit Installation\n\n`pdf-lib` relies upon a sister module to support embedding custom fonts: [`@pdf-lib/fontkit`](https://www.npmjs.com/package/@pdf-lib/fontkit). You must add the `@pdf-lib/fontkit` module to your project and register it using `pdfDoc.registerFontkit(...)` before embedding custom fonts (see the [font embedding example](#embed-font-and-measure-text)). This module is not included by default because not all users need it, and it increases bundle size.\n\nInstalling this module is easy. Just like `pdf-lib` itself, `@pdf-lib/fontkit` can be installed with `npm`/`yarn` or as a UMD module.\n\n### Fontkit NPM Module\n\n```bash\n# With npm\nnpm install --save @pdf-lib/fontkit\n\n# With yarn\nyarn add @pdf-lib/fontkit\n```\n\nTo register the `fontkit` instance:\n\n<!-- prettier-ignore -->\n```js\nimport { PDFDocument } from 'pdf-lib'\nimport fontkit from '@pdf-lib/fontkit'\n\nconst pdfDoc = await PDFDocument.create()\npdfDoc.registerFontkit(fontkit)\n```\n\n### Fontkit UMD Module\n\nThe following builds are available:\n\n- https://unpkg.com/@pdf-lib/fontkit/dist/fontkit.umd.js\n- https://unpkg.com/@pdf-lib/fontkit/dist/fontkit.umd.min.js\n- https://cdn.jsdelivr.net/npm/@pdf-lib/fontkit/dist/fontkit.umd.js\n- https://cdn.jsdelivr.net/npm/@pdf-lib/fontkit/dist/fontkit.umd.min.js\n\n> **NOTE:** if you are using the CDN scripts in production, you should include a specific version number in the URL, for example:\n>\n> - https://unpkg.com/@pdf-lib/fontkit@0.0.4/dist/fontkit.umd.min.js\n> - https://cdn.jsdelivr.net/npm/@pdf-lib/fontkit@0.0.4/dist/fontkit.umd.min.js\n\nWhen using a UMD build, you will have access to a global `window.fontkit` variable. To register the `fontkit` instance:\n\n<!-- prettier-ignore -->\n```js\nvar pdfDoc = await PDFLib.PDFDocument.create()\npdfDoc.registerFontkit(fontkit)\n```\n\n## Documentation\n\nAPI documentation is available on the project site at https://pdf-lib.js.org/docs/api/.\n\nThe repo for the project site (and generated documentation files) is\nlocated here: https://github.com/Hopding/pdf-lib-docs.\n\n## Fonts and Unicode\n\nWhen working with PDFs, you will frequently come across the terms \"character encoding\" and \"font\". If you have experience in web development, you may wonder why these are so prevalent. Aren't they just annoying details that you shouldn't need to worry about? Shouldn't PDF libraries and readers be able to handle all of this for you like web browsers can? Unfortunately, this is not the case. The nature of the PDF file format makes it very difficult to avoid thinking about character encodings and fonts when working with PDFs.\n\n`pdf-lib` does its best to simplify things for you. But it can't perform magic. This means you should be aware of the following:\n\n- **There are 14 standard fonts** defined in the PDF specification. They are as follows: _Times Roman_ (normal, bold, and italic), _Helvetica_ (normal, bold, and italic), _Courier_ (normal, bold, and italic), _ZapfDingbats_ (normal), and _Symbol_ (normal). These 14 fonts are guaranteed to be available in PDF readers. As such, you do not need to embed any font data if you wish to use one of these fonts. You can use a standard font like so:\n  <!-- prettier-ignore -->\n  ```js\n  import { PDFDocument, StandardFonts } from 'pdf-lib'\n  const pdfDoc = await PDFDocument.create()\n  const courierFont = await pdfDoc.embedFont(StandardFonts.Courier)\n  const page = pdfDoc.addPage()\n  page.drawText('Some boring latin text in the Courier font', {\n    font: courierFont,\n  })\n  ```\n- **The standard fonts do not support all characters** available in Unicode. The Times Roman, Helvetica, and Courier fonts use WinAnsi encoding (aka [Windows-1252](https://en.wikipedia.org/wiki/Windows-1252)). The WinAnsi character set only supports 218 characters in the Latin alphabet. For this reason, many users will find the standard fonts insufficient for their use case. This is unfortunate, but there's nothing that PDF libraries can do to change this. This is a result of the PDF specification and its age. Note that the [ZapfDingbats](https://en.wikipedia.org/wiki/Zapf_Dingbats) and [Symbol](<https://en.wikipedia.org/wiki/Symbol_(typeface)>) fonts use their own specialized encodings that support 203 and 194 characters, respectively. However, the characters they support are not useful for most use cases. See [here](assets/pdfs/standard_fonts_demo.pdf) for an example of all 14 standard fonts.\n- **You can use characters outside the Latin alphabet** by embedding your own fonts. Embedding your own font requires to you load the font data (from a file or via a network request, for example) and pass it to the `embedFont` method. When you embed your own font, you can use any Unicode characters that it supports. This capability frees you from the limitations imposed by the standard fonts. Most PDF files use embedded fonts. You can embed and use a custom font like so ([see also](#embed-font-and-measure-text)):\n  <!-- prettier-ignore -->\n  ```js\n  import { PDFDocument } from 'pdf-lib'\n  import fontkit from '@pdf-lib/fontkit'\n\n  const url = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf'\n  const fontBytes = await fetch(url).then((res) => res.arrayBuffer())\n\n  const pdfDoc = await PDFDocument.create()\n\n  pdfDoc.registerFontkit(fontkit)\n  const ubuntuFont = await pdfDoc.embedFont(fontBytes)\n\n  const page = pdfDoc.addPage()\n  page.drawText('Some fancy Unicode text in the ŪЬȕǹƚü font', {\n    font: ubuntuFont,\n  })\n  ```\n\nNote that encoding errors will be thrown if you try to use a character with a font that does not support it. For example, `Ω` is not in the WinAnsi character set. So trying to draw it on a page with the standard Helvetica font will throw the following error:\n\n```\nError: WinAnsi cannot encode \"Ω\" (0x03a9)\n    at Encoding.encodeUnicodeCodePoint\n```\n\n### Font Subsetting\n\nEmbedding a font in a PDF document will typically increase the file's size. You can reduce the amount a file's size is increased by subsetting the font so that only the necessary characters are embedded. You can subset a font by setting the [`subset` option](https://pdf-lib.js.org/docs/api/interfaces/embedfontoptions#optional-subset) to `true`. For example:\n\n```js\nconst font = await pdfDoc.embedFont(fontBytes, { subset: true });\n```\n\nNote that subsetting does not work for all fonts. See https://github.com/Hopding/pdf-lib/issues/207#issuecomment-537210471 for additional details.\n\n## Creating and Filling Forms\n\n`pdf-lib` can create, fill, and read PDF form fields. The following field types are supported:\n\n- [Buttons](https://pdf-lib.js.org/docs/api/classes/pdfbutton)\n- [Check Boxes](https://pdf-lib.js.org/docs/api/classes/pdfcheckbox)\n- [Dropdowns](https://pdf-lib.js.org/docs/api/classes/pdfdropdown)\n- [Option Lists](https://pdf-lib.js.org/docs/api/classes/pdfoptionlist)\n- [Radio Groups](https://pdf-lib.js.org/docs/api/classes/pdfradiogroup)\n- [Text Fields](https://pdf-lib.js.org/docs/api/classes/pdftextfield)\n\nSee the [form creation](#create-form) and [form filling](#fill-form) usage examples for code samples. Tests 1, 14, 15, 16, and 17 in the [complete examples](#complete-examples) contain working example code for form creation and filling in a variety of different JS environments.\n\n**IMPORTANT:** The default font used to display text in buttons, dropdowns, option lists, and text fields is the standard Helvetica font. This font only supports characters in the latin alphabet (see [Fonts and Unicode](#fonts-and-unicode) for details). This means that if any of these field types are created or modified to contain text outside the latin alphabet (as is often the case), you will need to embed and use a custom font to update the field appearances. Otherwise an error will be thrown (likely when you save the `PDFDocument`).\n\nYou can use an embedded font when filling form fields as follows:\n\n```js\nimport { PDFDocument } from 'pdf-lib';\nimport fontkit from '@pdf-lib/fontkit';\n\n// Fetch the PDF with form fields\nconst formUrl = 'https://pdf-lib.js.org/assets/dod_character.pdf';\nconst formBytes = await fetch(formUrl).then((res) => res.arrayBuffer());\n\n// Fetch the Ubuntu font\nconst fontUrl = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf';\nconst fontBytes = await fetch(fontUrl).then((res) => res.arrayBuffer());\n\n// Load the PDF with form fields\nconst pdfDoc = await PDFDocument.load(formBytes);\n\n// Embed the Ubuntu font\npdfDoc.registerFontkit(fontkit);\nconst ubuntuFont = await pdfDoc.embedFont(fontBytes);\n\n// Get two text fields from the form\nconst form = pdfDoc.getForm();\nconst nameField = form.getTextField('CharacterName 2');\nconst ageField = form.getTextField('Age');\n\n// Fill the text fields with some fancy Unicode characters (outside\n// the WinAnsi latin character set)\nnameField.setText('Ӎӑȑїõ');\nageField.setText('24 ŷȇȁŗš');\n\n// **Key Step:** Update the field appearances with the Ubuntu font\nform.updateFieldAppearances(ubuntuFont);\n\n// Save the PDF with filled form fields\nconst pdfBytes = await pdfDoc.save();\n```\n\n### Handy Methods for Filling, Creating, and Reading Form Fields\n\nExisting form fields can be accessed with the following methods of [`PDFForm`](https://pdf-lib.js.org/docs/api/classes/pdfform):\n\n- [`PDFForm.getButton`](https://pdf-lib.js.org/docs/api/classes/pdfform#getbutton)\n- [`PDFForm.getCheckBox`](https://pdf-lib.js.org/docs/api/classes/pdfform#getcheckbox)\n- [`PDFForm.getDropdown`](https://pdf-lib.js.org/docs/api/classes/pdfform#getdropdown)\n- [`PDFForm.getOptionList`](https://pdf-lib.js.org/docs/api/classes/pdfform#getoptionlist)\n- [`PDFForm.getRadioGroup`](https://pdf-lib.js.org/docs/api/classes/pdfform#getradiogroup)\n- [`PDFForm.getTextField`](https://pdf-lib.js.org/docs/api/classes/pdfform#gettextfield)\n\nNew form fields can be created with the following methods of [`PDFForm`](https://pdf-lib.js.org/docs/api/classes/pdfform):\n\n- [`PDFForm.createButton`](https://pdf-lib.js.org/docs/api/classes/pdfform#createbutton)\n- [`PDFForm.createCheckBox`](https://pdf-lib.js.org/docs/api/classes/pdfform#createcheckbox)\n- [`PDFForm.createDropdown`](https://pdf-lib.js.org/docs/api/classes/pdfform#createdropdown)\n- [`PDFForm.createOptionList`](https://pdf-lib.js.org/docs/api/classes/pdfform#createoptionlist)\n- [`PDFForm.createRadioGroup`](https://pdf-lib.js.org/docs/api/classes/pdfform#createradiogroup)\n- [`PDFForm.createTextField`](https://pdf-lib.js.org/docs/api/classes/pdfform#createtextfield)\n\nBelow are some of the most commonly used methods for reading and filling the aforementioned subclasses of [`PDFField`](https://pdf-lib.js.org/docs/api/classes/pdffield):\n\n- [`PDFCheckBox.check`](https://pdf-lib.js.org/docs/api/classes/pdfcheckbox#check)\n- [`PDFCheckBox.uncheck`](https://pdf-lib.js.org/docs/api/classes/pdfcheckbox#uncheck)\n- [`PDFCheckBox.isChecked`](https://pdf-lib.js.org/docs/api/classes/pdfcheckbox#ischecked)\n\n---\n\n- [`PDFDropdown.select`](https://pdf-lib.js.org/docs/api/classes/pdfdropdown#select)\n- [`PDFDropdown.clear`](https://pdf-lib.js.org/docs/api/classes/pdfdropdown#clear)\n- [`PDFDropdown.getSelected`](https://pdf-lib.js.org/docs/api/classes/pdfdropdown#getselected)\n- [`PDFDropdown.getOptions`](https://pdf-lib.js.org/docs/api/classes/pdfdropdown#getoptions)\n- [`PDFDropdown.addOptions`](https://pdf-lib.js.org/docs/api/classes/pdfdropdown#addoptions)\n\n---\n\n- [`PDFOptionList.select`](https://pdf-lib.js.org/docs/api/classes/pdfoptionlist#select)\n- [`PDFOptionList.clear`](https://pdf-lib.js.org/docs/api/classes/pdfoptionlist#clear)\n- [`PDFOptionList.getSelected`](https://pdf-lib.js.org/docs/api/classes/pdfoptionlist#getselected)\n- [`PDFOptionList.getOptions`](https://pdf-lib.js.org/docs/api/classes/pdfoptionlist#getoptions)\n- [`PDFOptionList.addOptions`](https://pdf-lib.js.org/docs/api/classes/pdfoptionlist#addoptions)\n\n---\n\n- [`PDFRadioGroup.select`](https://pdf-lib.js.org/docs/api/classes/pdfradiogroup#select)\n- [`PDFRadioGroup.clear`](https://pdf-lib.js.org/docs/api/classes/pdfradiogroup#clear)\n- [`PDFRadioGroup.getSelected`](https://pdf-lib.js.org/docs/api/classes/pdfradiogroup#getselected)\n- [`PDFRadioGroup.getOptions`](https://pdf-lib.js.org/docs/api/classes/pdfradiogroup#getoptions)\n- [`PDFRadioGroup.addOptionToPage`](https://pdf-lib.js.org/docs/api/classes/pdfradiogroup#addoptiontopage)\n\n---\n\n- [`PDFTextField.setText`](https://pdf-lib.js.org/docs/api/classes/pdftextfield#settext)\n- [`PDFTextField.getText`](https://pdf-lib.js.org/docs/api/classes/pdftextfield#gettext)\n- [`PDFTextField.setMaxLength`](htt","readmeFilename":"README.md"}