{"_id":"playwright-ghost","_rev":"15-b176eb3c08e8a4187747558eaa1ec3f2","name":"playwright-ghost","dist-tags":{"latest":"0.19.0"},"versions":{"0.7.2":{"name":"playwright-ghost","version":"0.7.2","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.7.2","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"46e1b83498ef642ffe3c2129ad025a306fe30850","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.7.2.tgz","fileCount":25,"integrity":"sha512-najwFDTDdsz/mZSOnEVRxihBkcz3nGOrySCh4pzuIOJGb9xgm/sLFsU9FbAkZnqR4I+KlY/ZL10QW4AHhxCbIQ==","signatures":[{"sig":"MEYCIQC6AhGjaTK+OYMnyX3gH6pu9xnwGpES1/bMPVF6dVkMtQIhAOPld0LzSdSPQmmiqVwJbGg84fBnRuwH5uFZ9xIxT8yB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47523},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.1.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./package.json":"./package.json"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"85ba0ae7a718c680598a63372f181648a1e37c84","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","lint:fix":"metalint --fix","test:unit":"mocha --config test/unit/mocharc.json","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"mocha --config test/integration/mocharc.json"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.8.1","description":"Surcouche de Playwright avec des plugins.","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"10.7.0","eslint":"8.57.0","typedoc":"0.26.5","metalint":"0.17.0","prettier":"3.3.3","yaml-lint":"1.7.0","playwright":"1.46.0","typescript":"5.5.4","@types/node":"22.1.0","@types/mocha":"10.0.7","markdownlint":"0.34.0","@types/eslint":"9.6.0","eslint-plugin-n":"17.10.2","@prantlf/jsonlint":"14.0.3","eslint-plugin-jsdoc":"49.0.0","eslint-plugin-mocha":"10.5.0","@prettier/plugin-xml":"3.4.1","eslint-plugin-import":"2.29.1","eslint-plugin-regexp":"2.6.0","@stryker-mutator/core":"8.4.0","eslint-plugin-promise":"7.1.0","eslint-plugin-unicorn":"55.0.0","npm-package-json-lint":"8.0.0","eslint-plugin-array-func":"4.0.0","@cliqz/adblocker-playwright":"1.31.3","eslint-plugin-no-unsanitized":"4.0.2","@stryker-mutator/mocha-runner":"8.4.0","eslint-plugin-eslint-comments":"3.2.0"},"peerDependencies":{"playwright":">=1.46.0","@cliqz/adblocker-playwright":">=1.31.3"},"peerDependenciesMeta":{"@cliqz/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.7.2_1723035126362_0.7697390699728079","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"playwright-ghost","version":"0.8.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.8.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"d755546ebd02ca316a56ff45e4bf16d73bed6464","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.8.0.tgz","fileCount":27,"integrity":"sha512-5kK3y0ej/DQyvVtMTAk/ZEOxxL44V5s/uSzRPMQN8XQm9okkjL0+WYwwpV+iEsFdonUhvY7OhtAD6eZRFIxINw==","signatures":[{"sig":"MEUCIBFPYtWn/M8dqePLC+sWcpgFa0XybESpKQzEUog7IPtlAiEAxTQar1XkiWmP8GiZxBvZwukQ8rGxoK4GX60KNMMo30k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52375},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.9.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./rebrowser":{"types":"./types/index.d.ts","default":"./src/rebrowser.js"},"./package.json":"./package.json"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"f04d8b15d03c11b72ac0be90dd09b4c83600cfba","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","lint:fix":"metalint --fix","test:unit":"mocha --config test/unit/mocharc.json","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"mocha --config test/integration/mocharc.json"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.8.2","description":"Surcouche de Playwright avec des plugins.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"10.7.3","eslint":"9.12.0","globals":"15.11.0","publint":"0.2.11","typedoc":"0.26.8","metalint":"0.18.0","prettier":"3.3.3","yaml-lint":"1.7.0","playwright":"1.48.0","typescript":"5.6.3","@types/node":"22.7.5","@types/mocha":"10.0.9","markdownlint":"0.35.0","eslint-plugin-n":"17.11.1","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"50.3.1","eslint-plugin-mocha":"10.5.0","@prettier/plugin-xml":"3.4.1","eslint-plugin-import":"2.31.0","eslint-plugin-regexp":"2.6.0","rebrowser-playwright":"1.47.100","@stryker-mutator/core":"8.6.0","eslint-plugin-promise":"7.1.0","eslint-plugin-unicorn":"56.0.0","npm-package-json-lint":"8.0.0","eslint-plugin-array-func":"5.0.2","@cliqz/adblocker-playwright":"1.33.2","eslint-plugin-no-unsanitized":"4.1.2","@stryker-mutator/mocha-runner":"8.6.0","eslint-plugin-eslint-comments":"3.2.0"},"peerDependencies":{"playwright":">=1.48.0","rebrowser-playwright":">=1.47.100","@cliqz/adblocker-playwright":">=1.33.2"},"peerDependenciesMeta":{"playwright":{"optional":true},"rebrowser-playwright":{"optional":true},"@cliqz/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.8.0_1728486460964_0.6527034498136348","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"playwright-ghost","version":"0.9.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.9.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"6c9b42143e4a0cfea944837af05ae37061300b64","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.9.0.tgz","fileCount":28,"integrity":"sha512-LutZfNHMBiqouZCOQqnXXCu3qYuoCz3CP86Yt9VeWfEaPp/ct8bWuIBY2tf3rl6kDKUP+/P4m7+/Hhb10jEhTA==","signatures":[{"sig":"MEYCIQC2uS6Z3XzNR5rv1i3qAxUa9he3o9l5EARg4z7ZdNwZAQIhAL668pmUpfy+EmWNVFarBjf0JZcbmByAw1teH53AO+ii","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59110},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.10"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./rebrowser":{"types":"./types/index.d.ts","default":"./src/rebrowser.js"},"./package.json":"./package.json"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"19087b6968a74466c3255aa90bd407f214593a4a","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","lint:fix":"metalint --fix","test:unit":"mocha --config test/unit/mocharc.json","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"mocha --config test/integration/mocharc.json"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.0","description":"Playwright overlay with plugins.","directories":{},"_nodeVersion":"22.10.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"10.8.2","eslint":"9.13.0","globals":"15.11.0","publint":"0.2.12","typedoc":"0.26.10","metalint":"0.18.0","prettier":"3.3.3","yaml-lint":"1.7.0","playwright":"1.48.1","typescript":"5.6.3","@types/node":"22.8.4","@types/mocha":"10.0.9","markdownlint":"0.36.1","eslint-plugin-n":"17.12.0","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"50.4.3","eslint-plugin-mocha":"10.5.0","@prettier/plugin-xml":"3.4.1","eslint-plugin-import":"2.31.0","eslint-plugin-regexp":"2.6.0","rebrowser-playwright":"1.48.2","@stryker-mutator/core":"8.6.0","eslint-plugin-promise":"7.1.0","eslint-plugin-unicorn":"56.0.0","npm-package-json-lint":"8.0.0","eslint-plugin-array-func":"5.0.2","eslint-plugin-no-unsanitized":"4.1.2","@stryker-mutator/mocha-runner":"8.6.0","eslint-plugin-eslint-comments":"3.2.0","@ghostery/adblocker-playwright":"2.0.3"},"peerDependencies":{"playwright":">=1.48","rebrowser-playwright":">=1.48","@ghostery/adblocker-playwright":">=2.0"},"peerDependenciesMeta":{"playwright":{"optional":true},"rebrowser-playwright":{"optional":true},"@ghostery/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.9.0_1730311721194_0.33798788355691944","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"playwright-ghost","version":"0.10.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.10.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"2a947388b629b74e549c7c79461cedf5e54fd4cb","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.10.0.tgz","fileCount":31,"integrity":"sha512-7wiWPfLkWIajU3dGsqhzfxoqG9dlABoGUTo96ojTJKihPOr7Wc0ktQaB10CQhij+LEIwJRj46uw+tu9LJFeX8A==","signatures":[{"sig":"MEYCIQCNZbdo+kZb2ROMQuRVOnEbIIL9biAsgFKOjP5NF5VXRwIhAPXtza6KBhU96SOIytmm2i3XY79tiw5f43BUJyQShCUx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84412},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./rebrowser":{"types":"./types/index.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/index.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"7deaa1f17d823dd5a371d93e8a33ab2f2b0c1864","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","lint:fix":"metalint --fix","test:unit":"mocha --config test/unit/mocharc.json","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"mocha --config test/integration/mocharc.json"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.2","description":"Playwright overlay with plugins.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ghost-cursor":"1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"11.1.0","eslint":"9.21.0","globals":"16.0.0","publint":"0.3.7","typedoc":"0.27.9","metalint":"0.19.0","prettier":"3.5.2","yaml-lint":"1.7.0","patchright":"1.50.1","playwright":"1.50.1","typescript":"5.8.2","@types/node":"22.13.8","@types/mocha":"10.0.10","markdownlint":"0.37.4","eslint-plugin-n":"17.16.1","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"50.6.3","eslint-plugin-mocha":"10.5.0","@prettier/plugin-xml":"3.4.1","eslint-plugin-import":"2.31.0","eslint-plugin-regexp":"2.7.0","rebrowser-playwright":"1.49.1","@stryker-mutator/core":"8.7.1","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"57.0.0","npm-package-json-lint":"8.0.0","eslint-plugin-array-func":"5.0.2","@types/eslint-plugin-mocha":"10.4.0","eslint-plugin-no-unsanitized":"4.1.2","@stryker-mutator/mocha-runner":"8.7.1","eslint-plugin-eslint-comments":"3.2.0","@ghostery/adblocker-playwright":"2.5.0"},"peerDependencies":{"patchright":">=1.50","playwright":">=1.50","rebrowser-playwright":">=1.49","@ghostery/adblocker-playwright":">=2.5"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true},"@ghostery/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.10.0_1741021843657_0.2699347437004114","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"playwright-ghost","version":"0.11.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.11.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"3523e8acf9c57eb0c736dd8f12c4d2d293ccd56c","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.11.0.tgz","fileCount":31,"integrity":"sha512-m9wx8Hh10WWmIAC4qBygGEVFpUYjelFd++eFkqmiNB2WzEamaxx2p4N8GwNbBfc70fzlIxC7MoxAZMKrXVFqLw==","signatures":[{"sig":"MEUCIAW6O3nZVKPasqPm9IAElOzxJEwXK3S1O/NTi6rmgsrmAiEAj048HgYgo2fzbyqCQ5gkzBz50fv7oLb01HzgrNnNWw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87570},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./rebrowser":{"types":"./types/index.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/index.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"ec5cc54acad620374475c5d1b700a44b248f27bb","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","lint:fix":"metalint --fix","test:unit":"mocha --config test/unit/mocharc.json","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"mocha --config test/integration/mocharc.json"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.2","description":"Playwright overlay with plugins.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ghost-cursor":"1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"11.1.0","eslint":"9.21.0","globals":"16.0.0","publint":"0.3.8","typedoc":"0.27.9","metalint":"0.19.0","prettier":"3.5.3","yaml-lint":"1.7.0","patchright":"1.50.1","playwright":"1.50.1","typescript":"5.8.2","@types/node":"22.13.9","@types/mocha":"10.0.10","markdownlint":"0.37.4","eslint-plugin-n":"17.16.2","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"50.6.3","eslint-plugin-mocha":"10.5.0","@prettier/plugin-xml":"3.4.1","eslint-plugin-import":"2.31.0","eslint-plugin-regexp":"2.7.0","rebrowser-playwright":"1.49.1","@stryker-mutator/core":"8.7.1","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"57.0.0","npm-package-json-lint":"8.0.0","eslint-plugin-array-func":"5.0.2","@types/eslint-plugin-mocha":"10.4.0","eslint-plugin-no-unsanitized":"4.1.2","@stryker-mutator/mocha-runner":"8.7.1","eslint-plugin-eslint-comments":"3.2.0","@ghostery/adblocker-playwright":"2.5.0"},"peerDependencies":{"patchright":">=1.50","playwright":">=1.50","rebrowser-playwright":">=1.49","@ghostery/adblocker-playwright":">=2.5"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true},"@ghostery/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.11.0_1741195145050_0.795418178934677","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"playwright-ghost","version":"0.12.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.12.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"237bf3653235fd2800388244afaf01eaac5f4c0f","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.12.0.tgz","fileCount":34,"integrity":"sha512-suzPY/cl2m1c+LH2hNH1INYUg9oy2YwT3WlC+3dTmGmpGt85XDOZlx8f3UuflautN932IdnAq6Rc/dsod6+Wqw==","signatures":[{"sig":"MEUCIQC0rhm3OSmjKkdHNhMn1NasExwa72BntoyhWb4Ea+bQPwIgKsYW5YiLl04d/BSAk6FAPYQ0ZswogWFoVJ+e65LiPXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100690},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./rebrowser":{"types":"./types/index.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/index.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"f81eca2bbbd1a9e4a5a55961c6a582d3347e31c7","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","lint:fix":"metalint --fix","test:unit":"mocha --config test/unit/mocharc.json","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"mocha --config test/integration/mocharc.json"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.2","description":"Playwright overlay with plugins.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ghost-cursor":"1.4.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"11.1.0","eslint":"9.23.0","globals":"16.0.0","publint":"0.3.9","typedoc":"0.28.1","metalint":"0.19.0","prettier":"3.5.3","yaml-lint":"1.7.0","patchright":"1.51.2","playwright":"1.51.1","typescript":"5.8.2","@types/node":"22.13.14","@types/mocha":"10.0.10","markdownlint":"0.37.4","eslint-plugin-n":"17.17.0","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"50.6.9","eslint-plugin-mocha":"10.5.0","@prettier/plugin-xml":"3.4.1","eslint-plugin-import":"2.31.0","eslint-plugin-regexp":"2.7.0","fingerprint-injector":"2.1.63","rebrowser-playwright":"1.49.1","@stryker-mutator/core":"8.7.1","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"58.0.0","fingerprint-generator":"2.1.63","npm-package-json-lint":"8.0.0","eslint-plugin-array-func":"5.0.2","@types/eslint-plugin-mocha":"10.4.0","eslint-plugin-no-unsanitized":"4.1.2","@stryker-mutator/mocha-runner":"8.7.1","eslint-plugin-eslint-comments":"3.2.0","@ghostery/adblocker-playwright":"2.5.0"},"peerDependencies":{"patchright":">=1.50","playwright":">=1.50","fingerprint-injector":">=2.1","rebrowser-playwright":">=1.49","fingerprint-generator":">=2.1","@ghostery/adblocker-playwright":">=2.5"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"fingerprint-injector":{"optional":true},"rebrowser-playwright":{"optional":true},"fingerprint-generator":{"optional":true},"@ghostery/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.12.0_1743159360671_0.17258155240905237","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"playwright-ghost","version":"0.13.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.13.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"964e884fb1026fb04925be3c901ec0a30e05efcf","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.13.0.tgz","fileCount":34,"integrity":"sha512-jivSG5MWl9vNRuq+/3BDTM5mRYAH/22rClPd0fjW6DVEc/Uguscng0CzK/0cqTHP2fHezUb74M2NKx/vPYx7Eg==","signatures":[{"sig":"MEUCIQDdaauFjUZCfkoFaYnx9gi4RU0Q0qTY3IccsW6Y0DR6lwIgOq452TU0Y1sg0y34RQl3ciXAPZfvkrKEm2kNnvAOtHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106790},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./rebrowser":{"types":"./types/index.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/index.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"db123eef6dc4fdbe99185b910e1f3f28fe9b77f2","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","lint:fix":"metalint --fix","test:unit":"node --test 'test/unit/**/*.js'","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"node --test 'test/integration/**/*.js'"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.2","description":"Playwright overlay with plugins.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ghost-cursor":"1.4.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.25.1","globals":"16.0.0","publint":"0.3.12","typedoc":"0.28.3","metalint":"0.20.0","prettier":"3.5.3","yaml-lint":"1.7.0","patchright":"1.52.0","playwright":"1.52.0","typescript":"5.8.3","@types/node":"22.15.2","markdownlint":"0.37.4","eslint-plugin-n":"17.17.0","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"50.6.11","eslint-plugin-mocha":"11.0.0","@prettier/plugin-xml":"3.4.1","eslint-plugin-import":"2.31.0","eslint-plugin-regexp":"2.7.0","fingerprint-injector":"2.1.66","rebrowser-playwright":"1.49.1","@stryker-mutator/core":"8.7.1","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"59.0.0","fingerprint-generator":"2.1.66","npm-package-json-lint":"8.0.0","eslint-plugin-array-func":"5.0.2","@types/eslint-plugin-mocha":"10.4.0","@stryker-mutator/tap-runner":"8.7.1","eslint-plugin-no-unsanitized":"4.1.2","eslint-plugin-eslint-comments":"3.2.0","@ghostery/adblocker-playwright":"2.5.1"},"peerDependencies":{"patchright":">=1.50","playwright":">=1.50","fingerprint-injector":">=2.1","rebrowser-playwright":">=1.49","fingerprint-generator":">=2.1","@ghostery/adblocker-playwright":">=2.5"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"fingerprint-injector":{"optional":true},"rebrowser-playwright":{"optional":true},"fingerprint-generator":{"optional":true},"@ghostery/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.13.0_1745776067032_0.4482934930443738","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"playwright-ghost","version":"0.14.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.14.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"ddc8fbfb80d48bf78ab868b879bd7557a7a795f0","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.14.0.tgz","fileCount":81,"integrity":"sha512-LHOpP6YC9FWNPKJf4xo2UA+cVqt8egdeMD7SEWDiigncT53fJQxPQdSKq+Gc1nVdTVEL4bJv8V48sCsKdDM7ig==","signatures":[{"sig":"MEUCIA94L+OulCwLPqxwgzH3ZMI7NtquECIaMmgMxa2t81pyAiEAuTVjm7Ldv5G72pkPYtvXwKJjYKd0xx1aqyDd/WH6EjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416337},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./rebrowser":{"types":"./types/rebrowser.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json","./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/utils/xvfb":{"types":"./types/plugins/utils/xvfb.d.ts","default":"./src/plugins/utils/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./plugins/utils/debug":{"types":"./types/plugins/utils/debug.d.ts","default":"./src/plugins/utils/debug.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/utils/camoufox":{"types":"./types/plugins/utils/camoufox.d.ts","default":"./src/plugins/utils/camoufox.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/utils/adblocker":{"types":"./types/plugins/utils/adblocker.d.ts","default":"./src/plugins/utils/adblocker.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/utils/fingerprint":{"types":"./types/plugins/utils/fingerprint.d.ts","default":"./src/plugins/utils/fingerprint.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"}},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"6118adcb761564618621cd96a71cb336b1ebdd07","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","prepare":"tsc --project .tsconfig_types.json","lint:fix":"metalint --fix","test:unit":"node --test 'test/unit/**/*.js'","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"node --test 'test/integration/**/*.js'"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.2","description":"Playwright with plugins to be a ghost.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"camoufox-js":">=0.6.2","ghost-cursor":"1.4.1","fingerprint-injector":">=2.1.69","fingerprint-generator":">=2.1.69","@ghostery/adblocker-playwright":">=2.11.3"},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.13.5","eslint":"9.32.0","globals":"16.3.0","publint":"0.3.12","typedoc":"0.28.8","metalint":"0.20.0","prettier":"3.6.2","puppeteer":"24.15.0","yaml-lint":"1.7.0","patchright":"1.52.5","playwright":"1.54.1","typescript":"5.8.3","@types/node":"24.1.0","markdownlint":"0.38.0","eslint-plugin-n":"17.21.3","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"52.0.1","eslint-plugin-mocha":"11.1.0","@prettier/plugin-xml":"3.4.2","eslint-plugin-import":"2.32.0","eslint-plugin-regexp":"2.9.0","rebrowser-playwright":"1.52.0","@stryker-mutator/core":"9.0.1","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"60.0.0","npm-package-json-lint":"9.0.0","eslint-plugin-array-func":"5.0.2","@stryker-mutator/tap-runner":"9.0.1","eslint-plugin-no-unsanitized":"4.1.2","eslint-plugin-eslint-comments":"3.2.0"},"peerDependencies":{"patchright":">=1.50.0","playwright":">=1.50.0","rebrowser-playwright":">=1.49.0"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.14.0_1753889566101_0.38655538646121435","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"playwright-ghost","version":"0.14.1","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.14.1","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"1fa2ab57314001bdf11f01d6f1d71cd3a7fe47bc","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.14.1.tgz","fileCount":81,"integrity":"sha512-nUPfWnOboV9HSaveVYzuwaAUnr3M27puxysXsWPiLgzQ3GTPcsHoJzEWWzskFdWRjcHhyd0/TRttX9qoDm0BMg==","signatures":[{"sig":"MEUCICBsQ9A1qUf5RfBWw7TDwUtaA6+hnpGZ6pzKkXN2q3tWAiEAim/twE4VrdVTml7v4zDJrH1SisxBuVpjElu4v05g3bA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416333},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./rebrowser":{"types":"./types/rebrowser.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json","./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/utils/xvfb":{"types":"./types/plugins/utils/xvfb.d.ts","default":"./src/plugins/utils/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./plugins/utils/debug":{"types":"./types/plugins/utils/debug.d.ts","default":"./src/plugins/utils/debug.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/utils/camoufox":{"types":"./types/plugins/utils/camoufox.d.ts","default":"./src/plugins/utils/camoufox.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/utils/adblocker":{"types":"./types/plugins/utils/adblocker.d.ts","default":"./src/plugins/utils/adblocker.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/utils/fingerprint":{"types":"./types/plugins/utils/fingerprint.d.ts","default":"./src/plugins/utils/fingerprint.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"}},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"6a4f7c611f2e9c2420a3e0a1ea883f5d08f7ca56","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","prepare":"tsc --project .tsconfig_types.json","lint:fix":"metalint --fix","test:unit":"node --test 'test/unit/**/*.js'","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"node --test 'test/integration/**/*.js'"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.2","description":"Playwright with plugins to be a ghost.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"camoufox-js":"^0.6.2","ghost-cursor":"1.4.1","fingerprint-injector":"^2.1.69","fingerprint-generator":"^2.1.69","@ghostery/adblocker-playwright":"^2.11.3"},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.13.5","eslint":"9.32.0","globals":"16.3.0","publint":"0.3.12","typedoc":"0.28.8","metalint":"0.20.0","prettier":"3.6.2","puppeteer":"24.15.0","yaml-lint":"1.7.0","patchright":"1.52.5","playwright":"1.54.1","typescript":"5.8.3","@types/node":"24.1.0","markdownlint":"0.38.0","eslint-plugin-n":"17.21.3","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"52.0.1","eslint-plugin-mocha":"11.1.0","@prettier/plugin-xml":"3.4.2","eslint-plugin-import":"2.32.0","eslint-plugin-regexp":"2.9.0","rebrowser-playwright":"1.52.0","@stryker-mutator/core":"9.0.1","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"60.0.0","npm-package-json-lint":"9.0.0","eslint-plugin-array-func":"5.0.2","@stryker-mutator/tap-runner":"9.0.1","eslint-plugin-no-unsanitized":"4.1.2","eslint-plugin-eslint-comments":"3.2.0"},"peerDependencies":{"patchright":">=1.50.0","playwright":">=1.50.0","rebrowser-playwright":">=1.49.0"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.14.1_1753891466862_0.19166609380733202","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"playwright-ghost","version":"0.14.2","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.14.2","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"490023719a0b12d54da36d980b53098b7f137a42","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.14.2.tgz","fileCount":81,"integrity":"sha512-KfzxRKV2QtrEgAXi+3aSEc+Uk8npxGNCSwUtCEWpJJLQLhfhaGXXe5xcu9LStACaRW7tddfsrz5B2cvJ3kGNqA==","signatures":[{"sig":"MEUCIQCjJmmYBiauAGGf1nJbcgkZBkQxhiRPGCICpEXmlSb91gIgSCXG5OuhRU7lvKkJS6iG4iRAGkepkkme7qkbk/2Hy/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":452293},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./rebrowser":{"types":"./types/rebrowser.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json","./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/utils/xvfb":{"types":"./types/plugins/utils/xvfb.d.ts","default":"./src/plugins/utils/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./plugins/utils/debug":{"types":"./types/plugins/utils/debug.d.ts","default":"./src/plugins/utils/debug.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/utils/camoufox":{"types":"./types/plugins/utils/camoufox.d.ts","default":"./src/plugins/utils/camoufox.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/utils/adblocker":{"types":"./types/plugins/utils/adblocker.d.ts","default":"./src/plugins/utils/adblocker.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/utils/fingerprint":{"types":"./types/plugins/utils/fingerprint.d.ts","default":"./src/plugins/utils/fingerprint.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"}},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"d7978652eda3bc26189dd8e28409f33257233a07","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","prepare":"tsc --project .tsconfig_types.json","lint:fix":"metalint --fix","test:unit":"node --test 'test/unit/**/*.js'","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"node --test 'test/integration/**/*.js'"},"_npmUser":{"name":"regseb","email":"regseb@gmail.com"},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"10.9.2","description":"Playwright with plugins to be a ghost.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"camoufox-js":"^0.6.2","ghost-cursor":"1.4.1","fingerprint-injector":"^2.1.69","fingerprint-generator":"^2.1.69","@ghostery/adblocker-playwright":"^2.11.3"},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.13.5","eslint":"9.32.0","globals":"16.3.0","publint":"0.3.12","typedoc":"0.28.9","metalint":"0.20.0","prettier":"3.6.2","puppeteer":"24.15.0","yaml-lint":"1.7.0","patchright":"1.52.5","playwright":"1.54.2","typescript":"5.9.2","@types/node":"24.1.0","markdownlint":"0.38.0","eslint-plugin-n":"17.21.3","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"52.0.2","eslint-plugin-mocha":"11.1.0","@prettier/plugin-xml":"3.4.2","eslint-plugin-import":"2.32.0","eslint-plugin-regexp":"2.9.0","rebrowser-playwright":"1.52.0","@stryker-mutator/core":"9.0.1","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"60.0.0","npm-package-json-lint":"9.0.0","eslint-plugin-array-func":"5.0.2","@stryker-mutator/tap-runner":"9.0.1","eslint-plugin-no-unsanitized":"4.1.2","eslint-plugin-eslint-comments":"3.2.0"},"peerDependencies":{"patchright":">=1.50.0","playwright":">=1.50.0","rebrowser-playwright":">=1.49.0"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.14.2_1754130004825_0.4500260759316148","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"playwright-ghost","version":"0.15.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.15.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"296d8288d2d6ab9596cc0503b6afaf0eae0996a0","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.15.0.tgz","fileCount":81,"integrity":"sha512-Xj5p9SV9sMuCAc7sGDrcwthXz9ZmY6/fKW/X3iIhxJoHnxiyP3s+qTta61fCT+iWU6h5wgEygr0z7OMFKO1PJg==","signatures":[{"sig":"MEUCIGKXqxSdRkiNwTiQzpicp0DSNgJMAFQEH8KVQ4iQmStsAiEAmeGJRjG0HtUb4Hv2y+pDI/INzivubAVyEV9f+TMNgHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":454158},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.14.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./rebrowser":{"types":"./types/rebrowser.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json","./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/utils/xvfb":{"types":"./types/plugins/utils/xvfb.d.ts","default":"./src/plugins/utils/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./plugins/utils/debug":{"types":"./types/plugins/utils/debug.d.ts","default":"./src/plugins/utils/debug.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/utils/camoufox":{"types":"./types/plugins/utils/camoufox.d.ts","default":"./src/plugins/utils/camoufox.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/utils/adblocker":{"types":"./types/plugins/utils/adblocker.d.ts","default":"./src/plugins/utils/adblocker.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/utils/fingerprint":{"types":"./types/plugins/utils/fingerprint.d.ts","default":"./src/plugins/utils/fingerprint.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"}},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"b505e95049c2f4a1eb383252d2c67c15c1c30dd5","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","prepare":"tsc --project .tsconfig_types.json","lint:fix":"metalint --fix","test:unit":"node --test 'test/unit/**/*.js'","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"node --test 'test/integration/**/*.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1105cb85-044a-4555-9792-a262b47b4fad"}},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"11.6.1","description":"Playwright with plugins to be a ghost.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"camoufox-js":"^0.7.0","ghost-cursor":"1.4.1","fingerprint-injector":"^2.1.74","fingerprint-generator":"^2.1.74","@ghostery/adblocker-playwright":"^2.12.1"},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.13.5","eslint":"9.37.0","globals":"16.4.0","publint":"0.3.13","typedoc":"0.28.13","metalint":"0.20.0","prettier":"3.6.2","puppeteer":"24.23.0","yaml-lint":"1.7.0","patchright":"1.55.3","playwright":"1.55.1","typescript":"5.9.3","@types/node":"24.6.2","markdownlint":"0.38.0","eslint-plugin-n":"17.23.1","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"60.8.1","eslint-plugin-mocha":"11.2.0","@prettier/plugin-xml":"3.4.2","eslint-plugin-import":"2.32.0","eslint-plugin-regexp":"2.10.0","rebrowser-playwright":"1.52.0","@stryker-mutator/core":"9.2.0","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"61.0.2","npm-package-json-lint":"9.0.0","eslint-plugin-array-func":"5.1.0","@stryker-mutator/tap-runner":"9.2.0","eslint-plugin-no-unsanitized":"4.1.4","eslint-plugin-eslint-comments":"3.2.0"},"peerDependencies":{"patchright":">=1.50.0","playwright":">=1.50.0","rebrowser-playwright":">=1.49.0"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.15.0_1759666781533_0.7903658804829543","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"playwright-ghost","version":"0.16.0","keywords":["playwright","ghost","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.16.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"a093a8828039d9e9b84b3f741d644cd447ba0001","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.16.0.tgz","fileCount":91,"integrity":"sha512-rSzp/LKyd5WU7IOSxakyz4dfAY5k+qncsXS0T1G/W8nlH2cgFzZC3kuJvN/7kjCISaFEnpsj/YC6wSxmWxoHJA==","signatures":[{"sig":"MEYCIQD8/ftzfx9+mOQk8MXOp46VjwA7zasK9FvqHRrjAqGL+QIhAICSp0S6Ar5kwracj0HTNIeDAI3Qg4Tckp6tVkN/WaTN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":481616},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.20.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./rebrowser":{"types":"./types/rebrowser.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json","./plugins/debug":{"types":"./types/plugins/debug/index.d.ts","default":"./src/plugins/debug/index.js"},"./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/utils/xvfb":{"types":"./types/plugins/utils/xvfb.d.ts","default":"./src/plugins/utils/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./plugins/utils/debug":{"types":"./types/plugins/utils/debug.d.ts","default":"./src/plugins/utils/debug.js"},"./plugins/debug/cursor":{"types":"./types/plugins/debug/cursor.d.ts","default":"./src/plugins/debug/cursor.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/utils/weston":{"types":"./types/plugins/utils/weston.d.ts","default":"./src/plugins/utils/weston.js"},"./plugins/debug/console":{"types":"./types/plugins/debug/console.d.ts","default":"./src/plugins/debug/console.js"},"./plugins/debug/sniffer":{"types":"./types/plugins/debug/sniffer.d.ts","default":"./src/plugins/debug/sniffer.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/utils/camoufox":{"types":"./types/plugins/utils/camoufox.d.ts","default":"./src/plugins/utils/camoufox.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/utils/adblocker":{"types":"./types/plugins/utils/adblocker.d.ts","default":"./src/plugins/utils/adblocker.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/utils/fingerprint":{"types":"./types/plugins/utils/fingerprint.d.ts","default":"./src/plugins/utils/fingerprint.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"}},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"92b76541ad75bd8d8bafd13d170a6142342a4707","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","prepare":"tsc --project .tsconfig_types.json","lint:fix":"metalint --fix","test:unit":"node --test 'test/unit/**/*.js'","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:integration":"node --test --test-concurrency 1 'test/integration/**/*.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1105cb85-044a-4555-9792-a262b47b4fad"}},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"11.6.2","description":"Playwright with plugins to be a ghost.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ws":"8.18.3","camoufox-js":"^0.8.2","ghost-cursor":"1.4.1","fingerprint-injector":"^2.1.77","fingerprint-generator":"^2.1.77","@ghostery/adblocker-playwright":"^2.12.5"},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.13.5","eslint":"9.39.1","globals":"16.5.0","publint":"0.3.15","typedoc":"0.28.14","metalint":"0.21.1","prettier":"3.6.2","@types/ws":"8.18.1","puppeteer":"24.30.0","yaml-lint":"1.7.0","patchright":"1.56.1","playwright":"1.56.1","typescript":"5.9.3","@types/node":"24.10.1","markdownlint":"0.39.0","@biomejs/js-api":"4.0.0","eslint-plugin-n":"17.23.1","@prantlf/jsonlint":"16.0.0","eslint-plugin-jsdoc":"61.2.1","eslint-plugin-mocha":"11.2.0","@biomejs/wasm-nodejs":"2.3.5","@prettier/plugin-xml":"3.4.2","eslint-plugin-import":"2.32.0","eslint-plugin-regexp":"2.10.0","rebrowser-playwright":"1.52.0","@stryker-mutator/core":"9.3.0","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"62.0.0","npm-package-json-lint":"9.0.0","eslint-plugin-array-func":"5.1.0","@stryker-mutator/tap-runner":"9.3.0","eslint-plugin-no-unsanitized":"4.1.4","eslint-plugin-eslint-comments":"3.2.0"},"peerDependencies":{"patchright":">=1.50.0","playwright":">=1.50.0","rebrowser-playwright":">=1.49.0"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.16.0_1763292138030_0.4952548782915329","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"playwright-ghost","version":"0.17.0","keywords":["playwright","ghost","plugin","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.17.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"cb22d494bf621037dd15ab10e827083ddd53e7cd","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.17.0.tgz","fileCount":97,"integrity":"sha512-5SAzsrQrMJrghZtmVJxpBm2w9ZhHurXxWenYmONDKVpCcfN9uILg8CcSU8TMdnsPDqNqt0IWdKX8hQSZL6mqvg==","signatures":[{"sig":"MEUCIQCxo2TCcvLQ0p3dVYu2SfkAj+1IQU3YKNPK8U5FYvWSQQIgd/Fm3KmcxPOWJRH5pX9VFfgVKoE84cES3pLCbwI1vbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":511621},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.20.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./rebrowser":{"types":"./types/rebrowser.d.ts","default":"./src/rebrowser.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json","./plugins/debug":{"types":"./types/plugins/debug/index.d.ts","default":"./src/plugins/debug/index.js"},"./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/utils/xvfb":{"types":"./types/plugins/utils/xvfb.d.ts","default":"./src/plugins/utils/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./plugins/utils/debug":{"types":"./types/plugins/utils/debug.d.ts","default":"./src/plugins/utils/debug.js"},"./plugins/debug/cursor":{"types":"./types/plugins/debug/cursor.d.ts","default":"./src/plugins/debug/cursor.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/utils/weston":{"types":"./types/plugins/utils/weston.d.ts","default":"./src/plugins/utils/weston.js"},"./plugins/debug/console":{"types":"./types/plugins/debug/console.d.ts","default":"./src/plugins/debug/console.js"},"./plugins/debug/sniffer":{"types":"./types/plugins/debug/sniffer.d.ts","default":"./src/plugins/debug/sniffer.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/utils/camoufox":{"types":"./types/plugins/utils/camoufox.d.ts","default":"./src/plugins/utils/camoufox.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/utils/adblocker":{"types":"./types/plugins/utils/adblocker.d.ts","default":"./src/plugins/utils/adblocker.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/utils/fingerprint":{"types":"./types/plugins/utils/fingerprint.d.ts","default":"./src/plugins/utils/fingerprint.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"}},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"8ecfaee324a8f979f3926fae6895cce0048c4022","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","prepare":"tsc --project .tsconfig_types.json","lint:fix":"metalint --fix","test:unit":"npm run test:unit:node","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:unit:bun":"bun test --preload ./test/polyfills/bun.js test/unit/","test:unit:node":"node --test 'test/unit/**/*.test.js'","test:integration":"npm run test:integration:node","test:integration:bun":"bun test --timeout 60000 --max-concurrency 1 --preload ./test/polyfills/bun.js test/integration/","test:integration:node":"node --test --test-concurrency 1 'test/integration/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1105cb85-044a-4555-9792-a262b47b4fad"}},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"11.6.2","description":"Playwright with plugins to be a ghost.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"8.19.0","camoufox-js":"^0.8.5","ghost-cursor":"1.4.1","fingerprint-injector":"^2.1.79","fingerprint-generator":"^2.1.79","@ghostery/adblocker-playwright":"^2.13.3"},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.13.5","eslint":"9.39.2","globals":"17.0.0","publint":"0.3.16","typedoc":"0.28.15","metalint":"0.21.2","prettier":"3.7.4","@types/ws":"8.18.1","puppeteer":"24.34.0","yaml-lint":"1.7.0","@types/bun":"1.3.5","patchright":"1.57.0","playwright":"1.57.0","secretlint":"11.2.5","typescript":"5.9.3","@types/node":"25.0.3","markdownlint":"0.40.0","@biomejs/js-api":"4.0.0","eslint-plugin-n":"17.23.1","@prantlf/jsonlint":"17.0.0","eslint-plugin-jsdoc":"62.0.0","eslint-plugin-mocha":"11.2.0","@biomejs/wasm-nodejs":"2.3.11","@prettier/plugin-xml":"3.4.2","eslint-plugin-import":"2.32.0","eslint-plugin-regexp":"2.10.0","rebrowser-playwright":"1.52.0","@stryker-mutator/core":"9.4.0","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"62.0.0","npm-package-json-lint":"9.1.0","eslint-plugin-array-func":"5.1.0","@stryker-mutator/tap-runner":"9.4.0","eslint-plugin-no-unsanitized":"4.1.4","eslint-plugin-eslint-comments":"3.2.0","@secretlint/secretlint-rule-npm":"11.2.5","@secretlint/secretlint-rule-github":"11.2.5"},"peerDependencies":{"patchright":">=1.50.0","playwright":">=1.50.0","rebrowser-playwright":">=1.49.0"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"rebrowser-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.17.0_1767990502358_0.9450546000214604","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"playwright-ghost","version":"0.18.0","keywords":["playwright","ghost","plugin","polyfill","headless"],"author":{"url":"https://github.com/regseb","name":"Sébastien Règne","email":"regseb@gmail.com"},"license":"MIT","_id":"playwright-ghost@0.18.0","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"dist":{"shasum":"db5c1a40349e229798d58bb5aa2f099cb7a87655","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.18.0.tgz","fileCount":95,"integrity":"sha512-FsUbObii2Jy3ntKPnbHXNGFGHMpJkvv3BqV6uQnpZb20D0kLuVp7nn8ODOY9FILXbMYTOXS8SA4qcpATSMJBuw==","signatures":[{"sig":"MEQCIHht1oSjAlzapiOQLy04LeqTPn33UytASYF21pnSDWl+AiAe1dVC5+qKmPRTgsRco8GKFB/zMLzRfhj6eMoH89WGng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":429518},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.20.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./package.json":"./package.json","./plugins/debug":{"types":"./types/plugins/debug/index.d.ts","default":"./src/plugins/debug/index.js"},"./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/tools/xvfb":{"types":"./types/plugins/tools/xvfb.d.ts","default":"./src/plugins/tools/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./plugins/debug/cursor":{"types":"./types/plugins/debug/cursor.d.ts","default":"./src/plugins/debug/cursor.js"},"./plugins/tools/weston":{"types":"./types/plugins/tools/weston.d.ts","default":"./src/plugins/tools/weston.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/debug/console":{"types":"./types/plugins/debug/console.d.ts","default":"./src/plugins/debug/console.js"},"./plugins/debug/sniffer":{"types":"./types/plugins/debug/sniffer.d.ts","default":"./src/plugins/debug/sniffer.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/tools/camoufox":{"types":"./types/plugins/tools/camoufox.d.ts","default":"./src/plugins/tools/camoufox.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/tools/adblocker":{"types":"./types/plugins/tools/adblocker.d.ts","default":"./src/plugins/tools/adblocker.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/tools/fingerprint":{"types":"./types/plugins/tools/fingerprint.d.ts","default":"./src/plugins/tools/fingerprint.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"}},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"gitHead":"d2c843d1204dc097e7e46d0f508cf6d7277544f7","scripts":{"lint":"metalint","test":"npm run test:coverage","clean":"node .script/clean.js","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","prepare":"tsc --project .tsconfig_types.json","lint:fix":"metalint --fix","test:unit":"npm run test:unit:node","lint:types":"tsc --project .tsconfig_lint.json","test:coverage":"stryker run","test:unit:bun":"bun test --preload ./test/polyfills/bun.js test/unit/","test:unit:node":"node --test 'test/unit/**/*.test.js'","test:integration":"npm run test:integration:node","test:integration:bun":"bun test --timeout 60000 --max-concurrency 1 --preload ./test/polyfills/bun.js test/integration/","test:integration:node":"node --test --test-concurrency 1 'test/integration/**/*.test.js'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1105cb85-044a-4555-9792-a262b47b4fad"}},"repository":{"url":"git+https://github.com/regseb/playwright-ghost.git","type":"git"},"_npmVersion":"11.12.1","description":"Playwright with plugins to be a ghost.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"8.20.0","ghost-cursor":"1.4.2","playwright-core":"1.58.2"},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.14.3","eslint":"9.39.3","globals":"17.4.0","publint":"0.3.18","typedoc":"0.28.18","metalint":"0.21.2","prettier":"3.8.1","@types/ws":"8.18.1","puppeteer":"24.40.0","yaml-lint":"1.7.0","@types/bun":"1.3.11","patchright":"1.58.2","playwright":"1.58.2","secretlint":"11.4.0","typescript":"6.0.2","@types/node":"25.5.0","camoufox-js":"0.9.3","markdownlint":"0.40.0","@biomejs/js-api":"4.0.0","eslint-plugin-n":"17.24.0","@prantlf/jsonlint":"17.0.1","@lightpanda/browser":"1.2.0","eslint-plugin-jsdoc":"62.8.1","@biomejs/wasm-nodejs":"2.4.9","@prettier/plugin-xml":"3.4.2","eslint-plugin-import":"2.32.0","eslint-plugin-regexp":"3.1.0","fingerprint-injector":"2.1.81","@stryker-mutator/core":"9.6.0","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"64.0.0","fingerprint-generator":"2.1.81","npm-package-json-lint":"9.1.0","eslint-plugin-array-func":"5.1.1","@stryker-mutator/tap-runner":"9.6.0","eslint-plugin-no-unsanitized":"4.1.5","@ghostery/adblocker-playwright":"2.14.1","@secretlint/secretlint-rule-npm":"11.4.0","@secretlint/secretlint-rule-github":"11.4.0","@eslint-community/eslint-plugin-eslint-comments":"4.7.1"},"peerDependencies":{"patchright":">=1.58.0","playwright":">=1.58.0","camoufox-js":">=0.9.3","@lightpanda/browser":">=1.2.0","fingerprint-injector":">=2.1.81","fingerprint-generator":">=2.1.81","@ghostery/adblocker-playwright":">=2.14.1"},"peerDependenciesMeta":{"patchright":{"optional":true},"playwright":{"optional":true},"camoufox-js":{"optional":true},"@lightpanda/browser":{"optional":true},"fingerprint-injector":{"optional":true},"fingerprint-generator":{"optional":true},"@ghostery/adblocker-playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/playwright-ghost_0.18.0_1774703515926_0.9641206607236772","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"playwright-ghost","version":"0.19.0","description":"Playwright with plugins to be a ghost.","keywords":["playwright","ghost","plugin","polyfill","headless"],"homepage":"https://github.com/regseb/playwright-ghost#readme","bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"license":"MIT","author":{"name":"Sébastien Règne","email":"regseb@gmail.com","url":"https://github.com/regseb"},"funding":["https://buymeacoffee.com/regseb","https://www.paypal.me/sebastienregne"],"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"},"./patchright":{"types":"./types/patchright.d.ts","default":"./src/patchright.js"},"./plugins":{"types":"./types/plugins/index.d.ts","default":"./src/plugins/index.js"},"./plugins/polyfill":{"types":"./types/plugins/polyfill/index.d.ts","default":"./src/plugins/polyfill/index.js"},"./plugins/polyfill/automation":{"types":"./types/plugins/polyfill/automation.d.ts","default":"./src/plugins/polyfill/automation.js"},"./plugins/polyfill/headless":{"types":"./types/plugins/polyfill/headless.d.ts","default":"./src/plugins/polyfill/headless.js"},"./plugins/polyfill/screen":{"types":"./types/plugins/polyfill/screen.d.ts","default":"./src/plugins/polyfill/screen.js"},"./plugins/polyfill/useragent":{"types":"./types/plugins/polyfill/useragent.d.ts","default":"./src/plugins/polyfill/useragent.js"},"./plugins/polyfill/viewport":{"types":"./types/plugins/polyfill/viewport.d.ts","default":"./src/plugins/polyfill/viewport.js"},"./plugins/polyfill/webdriver":{"types":"./types/plugins/polyfill/webdriver.d.ts","default":"./src/plugins/polyfill/webdriver.js"},"./plugins/polyfill/webgl":{"types":"./types/plugins/polyfill/webgl.d.ts","default":"./src/plugins/polyfill/webgl.js"},"./plugins/polyfill/recommended":{"types":"./types/plugins/polyfill/recommended.d.ts","default":"./src/plugins/polyfill/recommended.js"},"./plugins/humanize":{"types":"./types/plugins/humanize/index.d.ts","default":"./src/plugins/humanize/index.js"},"./plugins/humanize/click":{"types":"./types/plugins/humanize/click.d.ts","default":"./src/plugins/humanize/click.js"},"./plugins/humanize/cursor":{"types":"./types/plugins/humanize/cursor.d.ts","default":"./src/plugins/humanize/cursor.js"},"./plugins/humanize/dialog":{"types":"./types/plugins/humanize/dialog.d.ts","default":"./src/plugins/humanize/dialog.js"},"./plugins/humanize/recommended":{"types":"./types/plugins/humanize/recommended.d.ts","default":"./src/plugins/humanize/recommended.js"},"./plugins/utils":{"types":"./types/plugins/utils/index.d.ts","default":"./src/plugins/utils/index.js"},"./plugins/utils/locale":{"types":"./types/plugins/utils/locale.d.ts","default":"./src/plugins/utils/locale.js"},"./plugins/debug":{"types":"./types/plugins/debug/index.d.ts","default":"./src/plugins/debug/index.js"},"./plugins/debug/console":{"types":"./types/plugins/debug/console.d.ts","default":"./src/plugins/debug/console.js"},"./plugins/debug/cursor":{"types":"./types/plugins/debug/cursor.d.ts","default":"./src/plugins/debug/cursor.js"},"./plugins/debug/sniffer":{"types":"./types/plugins/debug/sniffer.d.ts","default":"./src/plugins/debug/sniffer.js"},"./plugins/tools/adblocker":{"types":"./types/plugins/tools/adblocker.d.ts","default":"./src/plugins/tools/adblocker.js"},"./plugins/tools/camoufox":{"types":"./types/plugins/tools/camoufox.d.ts","default":"./src/plugins/tools/camoufox.js"},"./plugins/tools/fingerprint":{"types":"./types/plugins/tools/fingerprint.d.ts","default":"./src/plugins/tools/fingerprint.js"},"./plugins/tools/weston":{"types":"./types/plugins/tools/weston.d.ts","default":"./src/plugins/tools/weston.js"},"./plugins/tools/xvfb":{"types":"./types/plugins/tools/xvfb.d.ts","default":"./src/plugins/tools/xvfb.js"},"./plugins/recommended":{"types":"./types/plugins/recommended.d.ts","default":"./src/plugins/recommended.js"},"./package.json":"./package.json"},"main":"./src/index.js","types":"./types/index.d.ts","repository":{"type":"git","url":"git+https://github.com/regseb/playwright-ghost.git"},"type":"module","scripts":{"prepare":"tsc --project .tsconfig_types.json","lint":"metalint","lint:fix":"metalint --fix","lint:types":"tsc --project .tsconfig_lint.json","test":"npm run test:coverage","test:unit":"npm run test:unit:node","test:unit:node":"node --test 'test/unit/**/*.test.js'","test:unit:bun":"bun test --preload ./test/polyfills/bun.js test/unit/","test:unit:deno":"deno test --no-check --allow-read --allow-net --allow-env --allow-sys --import ./test/polyfills/deno.js test/unit/","test:integration":"npm run test:integration:node","test:integration:node":"node --test --test-concurrency 1 'test/integration/**/*.test.js'","test:integration:bun":"bun test --timeout 60000 --max-concurrency 1 --preload ./test/polyfills/bun.js test/integration/","test:integration:deno":"deno test --no-check --allow-read --allow-net --allow-env --allow-sys test/integration/","test:coverage":"stryker run","jsdocs":"typedoc --tsconfig .tsconfig_jsdocs.json","clean":"node .script/clean.js"},"dependencies":{"ghost-cursor":"1.4.2","playwright-core":"1.60.0","ws":"8.21.0"},"devDependencies":{"@biomejs/js-api":"4.0.0","@biomejs/wasm-nodejs":"2.4.16","@eslint-community/eslint-plugin-eslint-comments":"4.7.2","@ghostery/adblocker-playwright":"2.18.0","@lightpanda/browser":"1.2.0","@prantlf/jsonlint":"17.0.1","@prettier/plugin-xml":"3.4.2","@secretlint/secretlint-rule-github":"13.0.2","@secretlint/secretlint-rule-npm":"13.0.2","@std/testing":"npm:@jsr/std__testing@1.0.19","@stryker-mutator/core":"9.6.1","@stryker-mutator/tap-runner":"9.6.1","@types/bun":"1.3.14","@types/eslint-plugin-security":"3.0.1","@types/node":"25.9.2","@types/ws":"8.18.1","camoufox-js":"0.11.0","eslint":"9.39.3","eslint-plugin-array-func":"5.1.1","eslint-plugin-import":"2.32.0","eslint-plugin-jsdoc":"63.0.2","eslint-plugin-n":"18.1.0","eslint-plugin-no-unsanitized":"4.1.5","eslint-plugin-promise":"7.3.0","eslint-plugin-regexp":"3.1.0","eslint-plugin-security":"4.0.0","eslint-plugin-unicorn":"65.0.1","fingerprint-generator":"2.1.82","fingerprint-injector":"2.1.82","globals":"17.6.0","jsr":"0.14.3","markdownlint":"0.40.0","metalint":"0.21.2","npm-package-json-lint":"10.4.0","patchright":"1.60.2","playwright":"1.60.0","prettier":"3.8.4","publint":"0.3.21","puppeteer":"25.1.0","secretlint":"13.0.2","typedoc":"0.28.19","typescript":"6.0.3","yaml-lint":"1.7.0"},"peerDependencies":{"@ghostery/adblocker-playwright":">=2.14.1","@lightpanda/browser":">=1.2.0","camoufox-js":">=0.9.3","fingerprint-generator":">=2.1.81","fingerprint-injector":">=2.1.81","patchright":">=1.58.0","playwright":">=1.58.0"},"peerDependenciesMeta":{"@ghostery/adblocker-playwright":{"optional":true},"@lightpanda/browser":{"optional":true},"camoufox-js":{"optional":true},"fingerprint-generator":{"optional":true},"fingerprint-injector":{"optional":true},"patchright":{"optional":true},"playwright":{"optional":true}},"engines":{"node":">=22.20.0"},"allowScripts":{"@lightpanda/browser@1.2.0":true,"better-sqlite3@12.10.0":true,"impit@0.13.1":true,"puppeteer@25.1.0":false},"gitHead":"1f62082bc186a30ce07da772152f7e421469082c","_id":"playwright-ghost@0.19.0","_nodeVersion":"26.3.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-L1IRO859ujDlGfmrefGpOgRhRkasJg0bFMI23DaJKKzin52bfoDIBt3VTd1mpPlc62VH3+hbgqy6uQSgdwE71w==","shasum":"a428d6f7b797450229aba02e04e2b1eed1b3ed4e","tarball":"https://registry.npmjs.org/playwright-ghost/-/playwright-ghost-0.19.0.tgz","fileCount":95,"unpackedSize":433500,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/playwright-ghost@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGU0/YH2RTfQP4UOjA5MWHWwYCw09to5ocZdR2ysw3IGAiEAvuoPKq4BPF4dianG+jfjCVpQs+AV9tIqaX1zSxbKYqo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1105cb85-044a-4555-9792-a262b47b4fad"}},"directories":{},"maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/playwright-ghost_0.19.0_1781633570275_0.17010156776792296"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-07T12:52:06.281Z","modified":"2026-06-16T18:12:50.772Z","0.7.2":"2024-08-07T12:52:06.521Z","0.8.0":"2024-10-09T15:07:41.130Z","0.9.0":"2024-10-30T18:08:41.392Z","0.10.0":"2025-03-03T17:10:43.842Z","0.11.0":"2025-03-05T17:19:05.236Z","0.12.0":"2025-03-28T10:56:00.886Z","0.13.0":"2025-04-27T17:47:47.250Z","0.14.0":"2025-07-30T15:32:46.290Z","0.14.1":"2025-07-30T16:04:27.052Z","0.14.2":"2025-08-02T10:20:05.060Z","0.15.0":"2025-10-05T12:19:41.719Z","0.16.0":"2025-11-16T11:22:18.251Z","0.17.0":"2026-01-09T20:28:22.518Z","0.18.0":"2026-03-28T13:11:56.105Z","0.19.0":"2026-06-16T18:12:50.463Z"},"bugs":{"url":"https://github.com/regseb/playwright-ghost/issues","email":"regseb@gmail.com"},"author":{"name":"Sébastien Règne","email":"regseb@gmail.com","url":"https://github.com/regseb"},"license":"MIT","homepage":"https://github.com/regseb/playwright-ghost#readme","keywords":["playwright","ghost","plugin","polyfill","headless"],"repository":{"type":"git","url":"git+https://github.com/regseb/playwright-ghost.git"},"description":"Playwright with plugins to be a ghost.","maintainers":[{"name":"regseb","email":"regseb@gmail.com"}],"readme":"# Playwright-ghost\n\n<!-- Utiliser du HTML (avec l'attribut \"align\" obsolète) pour faire flotter\n     l'image à droite. -->\n<!-- markdownlint-disable-next-line no-inline-html -->\n<img src=\"asset/logo.svg\" align=\"right\" width=\"100\" height=\"100\" alt=\"\">\n\n[![npm][img-npm]][link-npm] [![jsr][img-jsr]][link-jsr]\n![compatibility][img-compatibility][![node.js][img-node]][link-node][![bun][img-bun]][link-bun][![deno][img-deno]][link-deno]\n[![build][img-build]][link-build] [![coverage][img-coverage]][link-coverage]\n\nPlaywright-ghost is an overlay on [Playwright](https://playwright.dev/), adding\nplugins to conceal the differences between a browser used by a human being and a\n[headless browser](https://en.wikipedia.org/wiki/Headless_browser) controlled by\na program.\n\nThe Playwright-ghost API is identical to that of Playwright, except for the\naddition of the `plugins` option to the methods of the\n[`BrowserType`](https://playwright.dev/docs/api/class-browsertype) class:\n\n- [`connect(wsEndpoint, [options])`](https://playwright.dev/docs/api/class-browsertype#browser-type-connect)\n- [`connectOverCDP(wsEndpoint, [options])`](https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp)\n- [`launch([options])`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch)\n- [`launchPersistentContext(userDataDir, [options])`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context)\n- [`launchServer([options])`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-server)\n\nThe `plugins` property is an array containing the plugins to be added.\n\n## Disclaimer\n\nThis project is not officially commissioned or supported by Microsoft and\nPlaywright.\n\n## Install\n\n[`playwright-ghost`](https://www.npmjs.com/package/playwright-ghost) doesn't\nprovide [`playwright`](https://www.npmjs.com/package/playwright), so you need to\nadd it to your dependencies.\n\n```shell\nnpm install playwright playwright-ghost\n```\n\n`playwright-ghost` can also be used with\n[`patchright`](https://www.npmjs.com/package/patchright).\n\n```shell\nnpm install patchright playwright-ghost\n```\n\n## Use\n\nHere's an example with the recommended plugins.\n\n```javascript\nimport { chromium } from \"playwright-ghost\";\n// Or to use patchright:\n// import { chromium } from \"playwright-ghost/patchright\";\nimport plugins from \"playwright-ghost/plugins\";\n\nconst browser = await chromium.launch({\n  plugins: plugins.recommended(),\n});\nconst context = await browser.newContext();\nconst page = await context.newPage();\n\nawait page.goto(\"https://example.com/\");\nconst title = await page.locator(\"h1\").textContent();\nconsole.log(title);\n\nawait context.close();\nawait browser.close();\n```\n\nIn this other example, three plugins are added:\n\n- `polyfill.headless` has no options;\n- `polyfill.screen` sets other values for screen size;\n- `debug.console` uses default options.\n\n```javascript\nimport { chromium } from \"playwright-ghost\";\nimport plugins from \"playwright-ghost/plugins\";\n\nconst browser = await chromium.launch({\n  plugins: [\n    plugins.polyfill.headless(),\n    plugins.polyfill.screen({ width: 2560, height: 1440 }),\n    plugins.debug.console(),\n  ],\n});\n// ...\n```\n\nAnd for this example, the recommended plugins and the `utils.locale` plugin are\nadded.\n\n```javascript\nimport { chromium } from \"playwright-ghost\";\nimport plugins from \"playwright-ghost/plugins\";\n\nconst browser = await chromium.launch({\n  plugins: [...plugins.recommended(), plugins.utils.locale()],\n});\n// ...\n```\n\n## Plugins\n\n⭐️ is in [`recommended`](docs/plugins/recommended.md) / ⚙️ has options\n\n### Polyfill\n\n<!-- markdownlint-disable no-inline-html -->\n<table>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <th>Name</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td></td>\n    <td>\n      <a href=\"docs/plugins/polyfill/automation.md\">\n        <code>polyfill.automation</code>\n      </a>\n    </td>\n    <td>Disable <code>--enable-automation</code> in Chromium.</td>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td></td>\n    <td>\n      <a href=\"docs/plugins/polyfill/headless.md\">\n        <code>polyfill.headless</code>\n      </a>\n    </td>\n    <td>\n      Correct many differences in JavaScript APIs between the headful and\n      headless versions of Chromium.\n    </td>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/polyfill/screen.md\"><code>polyfill.screen</code></a>\n    </td>\n    <td>Set a realistic value for screen size: 1920x1080.</td>\n  </tr>\n  <tr>\n    <td>️</td>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/polyfill/useragent.md\">\n        <code>polyfill.userAgent</code>\n      </a>\n    </td>\n    <td>Change the browser's user agent.</td>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/polyfill/viewport.md\">\n        <code>polyfill.viewport</code>\n      </a>\n    </td>\n    <td>\n      Vary viewport size with random values between 1000x500 and 1800x800.\n    </td>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td></td>\n    <td>\n      <a href=\"docs/plugins/polyfill/webdriver.md\">\n        <code>polyfill.webdriver</code>\n      </a>\n    </td>\n    <td>Set <code>navigator.webdriver</code> to <code>false</code>.</td>\n  </tr>\n  <tr>\n    <td></td>\n    <td></td>\n    <td>\n      <a href=\"docs/plugins/polyfill/webgl.md\"><code>polyfill.webGL</code></a>\n    </td>\n    <td>Modify WebGL parameter values.</td>\n  </tr>\n</table>\n\n### Humanize\n\n<!-- markdownlint-disable no-inline-html -->\n<table>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <th>Name</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/humanize/click.md\"><code>humanize.click</code></a>\n    </td>\n    <td>\n      Add delay between <code>mousedown</code> and <code>mouseup</code> for\n      clicks and double-clicks.\n    </td>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/humanize/cursor.md\"><code>humanize.cursor</code></a>\n    </td>\n    <td>Move the cursor with human-like movements.</td>\n  </tr>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/humanize/dialog.md\"><code>humanize.dialog</code></a>\n    </td>\n    <td>\n      Close <code>&lt;dialog&gt;</code> within a humanly possible time (between\n      1 and 5 seconds).\n    </td>\n  </tr>\n</table>\n\n### Utils\n\n<!-- markdownlint-disable no-inline-html -->\n<table>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <th>Name</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td></td>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/utils/locale.md\"><code>utils.locale</code></a>\n    </td>\n    <td>Use the locally installed browser.</td>\n  </tr>\n</table>\n\n### Debug\n\n<!-- markdownlint-disable no-inline-html -->\n<table>\n  <tr>\n    <td>⭐️</td>\n    <td>⚙️</td>\n    <th>Name</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td></td>\n    <td>️⚙️</td>\n    <td>\n      <a href=\"docs/plugins/debug/console.md\"><code>debug.console</code></a>\n    </td>\n    <td>\n      Display console messages and error from the browser in the program\n      console.\n    </td>\n  </tr>\n  <tr>\n    <td></td>\n    <td></td>\n    <td>\n      <a href=\"docs/plugins/debug/cursor.md\"><code>debug.cursor</code></a>\n    </td>\n    <td>Show cursor in page.</td>\n  </tr>\n  <tr>\n    <td></td>\n    <td></td>\n    <td>\n      <a href=\"docs/plugins/debug/sniffer.md\"><code>debug.sniffer</code></a>\n    </td>\n    <td>Monitor all JavaScript properties used in a page.</td>\n  </tr>\n</table>\n\n### Tools\n\nThese plugins are not exported with the other plugins because they require\nexternal tools (npm dependencies or executables). They must be imported\nindividually:\n\n```javascript\nimport { chromium } from \"playwright-ghost\";\nimport plugins from \"playwright-ghost/plugins\";\n// Import the plugin specifically for the Foo tool.\nimport toolsFooPlugin from \"playwright-ghost/plugins/tools/foo\";\n\nconst browser = await chromium.launch({\n  plugins: [...plugins.recommended(), toolsFooPlugin()],\n});\n// ...\n```\n\n<!-- markdownlint-disable no-inline-html -->\n<table>\n  <tr>\n    <td>⚙️</td>\n    <th>Name</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>️⚙️</td>\n    <td>\n      <a href=\"docs/plugins/tools/adblocker.md\"><code>tools.adblocker</code></a>\n    </td>\n    <td>Add Ghostery adblocker.</td>\n  </tr>\n  <tr>\n    <td>️⚙️</td>\n    <td>\n      <a href=\"docs/plugins/tools/camoufox.md\"><code>tools.camoufox</code></a>\n    </td>\n    <td>Replace Firefox by Camoufox.</td>\n  </tr>\n  <tr>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/tools/fingerprint.md\">\n        <code>tools.fingerprint</code>\n      </a>\n    </td>\n    <td>Change the browser fingerprint.</td>\n  </tr>\n  <tr>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/tools/lightpanda.md\">\n        <code>tools.lightpanda</code>\n      </a>\n    </td>\n    <td>Start an instance of Lightpanda and connect to this browser.\n  </tr>\n  <tr>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/tools/weston.md\"><code>tools.weston</code></a>\n    </td>\n    <td>Run browser in <code>weston</code> (a Wayland compositor).</td>\n  </tr>\n  <tr>\n    <td>⚙️</td>\n    <td>\n      <a href=\"docs/plugins/tools/xvfb.md\"><code>tools.xvfb</code></a>\n    </td>\n    <td>Run browser in <code>Xvfb</code> (<em>X Virtual Frame Buffer</em>).</td>\n  </tr>\n</table>\n\n## Anti-bots\n\n### Pass\n\nThis 27 anti-bots don't detect Playwright-ghost:\n[Anubis](https://anubis.techaro.lol),\n[Bing](https://www.bing.com/turing/captcha/challenge),\n[bounty-nodejs](https://bounty-nodejs.datashield.co/),\n[Brotector](https://kaliiiiiiiiii.github.io/brotector/),\n[BrowserScan](https://www.browserscan.net/bot-detection),\n[Chromedriver Detector](https://hmaker.github.io/selenium-detector/),\n[CSSWAF](https://github.com/yzqzss/csswaf),\n[Detect CDP](https://bypassantibot.github.io/detectCDP/),\n[detectIncognito](https://detectincognito.com/),\n[Deviceandbrowserinfo](https://deviceandbrowserinfo.com/are_you_a_bot),\n[Device Info](https://www.deviceinfo.me/),\n[devtools-detector](https://blog.aepkill.com/demos/devtools-detector/),\n[Disable-devtool](https://theajack.github.io/disable-devtool/),\n[Fingerprint](https://fingerprint.com/products/bot-detection/),\n[Fingerprint Pro Playground](https://demo.fingerprint.com/playground),\n[Fingerprint-Scan](https://fingerprint-scan.com/),\n[FPScanner](https://fpscanner.com/demo/),\n[HeadlessDetectJS](https://github.com/LouisKlimek/HeadlessDetectJS),\n[infosimples](https://infosimples.github.io/detect-headless/),\n[Chrome Headless Detection (Intoli)](https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html),\n[Check browser fingerprints (iphey)](https://iphey.com/),\n[OverpoweredJS Fingerprinting Demo](https://overpoweredjs.com/demo.html),\n[Pixelscan](https://pixelscan.net/fingerprint-check),\n[rebrowser-bot-detector](https://bot-detector.rebrowser.net/),\n[Antibot (Sannysoft)](https://bot.sannysoft.com/),\n[Simple Service Workers Fingerprinting Leaks Test](https://mihneamanolache.github.io/simple-sw-test/)\nand\n[Cloudflare turnstile demo](https://peet.ws/turnstile-test/non-interactive.html).\n\nTo find out which plugins are used, see the\n[anti-bots integration tests](test/integration/antibots).\n\n### Fail\n\nThis 2 anti-bots detect Playwright-ghost:\n\n- [CreepJS](https://abrahamjuliot.github.io/creepjs/): _44% like headless_\n- [Score detector (reCAPTCHA v3)](https://antcpt.com/score_detector/): _0.3_\n\nContributions are welcome to fix these defects.\n\n## Customize\n\nYou can write your own plugins. A plugin is a function that returns an object\ncontaining the hooks. The keys of this object are made up of the class, method\nand hook type. For example:\n\n- `\"BrowserType.launch:before\"`: modify the input arguments of the `launch()`\n  method of the `BrowserType` class.\n- `\"BrowserContext.newPage:after\"`: modify the return parameter of the\n  `newPage()` method of the `BrowserContext` class.\n\nThe values of the object are functions applying the modifications.\n\n- For `\"before\"` types, the function receives an array containing the arguments\n  of the hooked method. And it must return a new array containing the modified\n  arguments.\n- For `\"after\"` types, the function receives the return value of the hooked\n  method. And it must return the modified return value.\n\n```javascript\n/// rickrollPlugin.js\nexport default function rickrollPlugin() {\n  return {\n    \"BrowserType.launch:before\": (args) => {\n      return [\n        {\n          ...args[0],\n          args: [\"--disable-volume-adjust-sound\"],\n        },\n      ];\n    },\n\n    \"BrowserContext.newPage:after\": (page) => {\n      page.addInitScript(() => {\n        // Execute script only in main frame.\n        if (window !== top) {\n          return;\n        }\n        addEventListener(\"load\", () => {\n          const iframe = document.createElement(\"iframe\");\n          iframe.src = \"https://www.youtube-nocookie.com/embed/dQw4w9WgXcQ\";\n          document.body.replaceChildren(iframe);\n        });\n      });\n      return page;\n    },\n  };\n}\n```\n\nTo use your plugin, add it to the `plugins` option.\n\n```javascript\nimport { chromium } from \"playwright-ghost\";\nimport plugins from \"playwright-ghost/plugins\";\nimport rickrollPlugin from \"./rickrollPlugin.js\";\n\nconst browser = await chromium.launch({\n  plugins: [...plugins.recommended(), rickrollPlugin()],\n});\n// ...\n```\n\nThis plugin is not perfect, so\n[let's see how we can improve it](docs/customize.md) (and also discover other\nfeatures).\n\n[img-npm]:\n  https://img.shields.io/npm/dw/playwright-ghost?style=flat-square&label=npm&logo=npm\n[img-jsr]:\n  https://jsr.io/badges/@regseb/playwright-ghost/weekly-downloads?style=flat-square&labelColor=grey&label=jsr&logoColor=whitesmoke&color=4b0\n[img-compatibility]:\n  https://img.shields.io/badge/compatibility-grey?style=flat-square&logo=data:image/svg%2bxml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDBBMTIgMTIgMCAwIDAgMCAxMmExMiAxMiAwIDAgMCAxMiAxMiAxMiAxMiAwIDAgMCAxMi0xMkExMiAxMiAwIDAgMCAxMiAwbTYuNSA2LjVhMS41IDEuNSAwIDAgMSAxLjA2LjQ0IDEuNSAxLjUgMCAwIDEgMCAyLjEybC05IDlhMS41IDEuNSAwIDAgMS0yLjEyIDBsLTUtNWExLjUgMS41IDAgMCAxIDAtMi4xMiAxLjUgMS41IDAgMCAxIDIuMTIgMGwzLjk0IDMuOTM5IDcuOTQtNy45NEExLjUgMS41IDAgMCAxIDE4LjUgNi41IiBmaWxsPSJ3aGl0ZXNtb2tlIi8+PC9zdmc+\n[img-node]:\n  https://img.shields.io/badge/-blue?style=flat-square&logo=node.js&logoColor=whitesmoke\n[img-bun]:\n  https://img.shields.io/badge/-blue?style=flat-square&logo=bun&logoColor=whitesmoke\n[img-deno]:\n  https://img.shields.io/badge/-blue?style=flat-square&logo=deno&logoColor=whitesmoke\n[img-build]:\n  https://img.shields.io/github/actions/workflow/status/regseb/playwright-ghost/ci.yml?branch=main&style=flat-square&logo=github&logoColor=whitesmoke\n[img-coverage]:\n  https://img.shields.io/endpoint?url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fregseb%2Fplaywright-ghost%2Fmain&style=flat-square&label=coverage\n[link-npm]: https://www.npmjs.com/package/playwright-ghost\n[link-jsr]: https://jsr.io/@regseb/playwright-ghost\n[link-node]: https://nodejs.org/\n[link-bun]: https://bun.com/\n[link-deno]: https://deno.com/\n[link-build]:\n  https://github.com/regseb/playwright-ghost/actions/workflows/ci.yml?query=branch%3Amain\n[link-coverage]:\n  https://dashboard.stryker-mutator.io/reports/github.com/regseb/playwright-ghost/main\n","readmeFilename":"README.md"}