{"_id":"automate-google-login-scraper","_rev":"28-dc863b9735c9f17a2c82bad049750749","name":"automate-google-login-scraper","dist-tags":{"latest":"0.1.36"},"versions":{"0.1.9":{"name":"automate-google-login-scraper","version":"0.1.9","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.9","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"bd30b62bce06d978e8b2083f000d2914ccc2cf2f","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.9.tgz","fileCount":21,"integrity":"sha512-rRAbhWZ76NnPyMTSUrEfAJPZnZqNtTiWJ/ha62kzzYZ1k3aqX+mmiZxSbwIUC0GaNLp5Fqbv+UXIS/BoDNkHkw==","signatures":[{"sig":"MEUCIQDxITJ+7/zxBO/Zlx+WLtmvXTqfwBw0Gmla9QYI5OPI7AIgYan9s0Z699EIhVy6OCIyaLI3tl9GhpJdN0fNq9M2KgE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97534},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"c236b9c8d05433fbcda8083f6758c411435bc3a5","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.9_1789368743383_0.8005724871005424","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"automate-google-login-scraper","version":"0.1.10","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.10","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"1d6e507f37e282afe821da64f6ba7d51b00a570e","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.10.tgz","fileCount":21,"integrity":"sha512-4R56t0ypyjFk7greRuS7oMzDfxjpi8hIReR9XdbtGO6jh6qLu/efl+WuD0FTEzUm3egUKu716w3xV3DDxKnrdQ==","signatures":[{"sig":"MEUCIDHbcmoKnfLPVGTNiR6fPlnMyn7sgz1q/0vU5ce6+y/WAiEAt5CmSiI91aaSZVeOh6Ftomi4EcLmc7GakXRUsDBuG7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAEEL/nVOe/pr7j4/qFd8Uv4zmo+k79FSYa6RSi0Nzp7AiATEntqI8bhAa8xPIVv9g2F29ziUcZq7iTKZHB59HtWcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"cec7fbd86ee52c20d0bcc719bc5ee598ffc9e8df","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.10_1789370149239_0.3532689051510487","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"automate-google-login-scraper","version":"0.1.11","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.11","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"594795dac9e1dae5e43c3d4249d23baf826ab2a0","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.11.tgz","fileCount":21,"integrity":"sha512-65HtQUeVcxD1XV7jvxASSNj5zlNr3TXAeV5zf30YX8cSvjwNThNhZRJUItyUrLH3G5gVEJYYqtCR1UzYyUSiSA==","signatures":[{"sig":"MEUCIQDemiTn8bj6LeM9NzL+bx2HY7vPMnlib1D0EE2FTVFTxgIgAb5Cm77LUYigUlGXHnzo4ZadVo+w4kUE6RmIxPfJ0vA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD+Du5pq2mhpjii1GkfaG8T1I6bloLZso33hxPHcruEFQIgcBk44PxAV1tLZxdwSVrDpK6nskOXGhW+b6/IyL6GnBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"d4e29e08d10d3c909e971d9543fd6155932d4fce","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.11_1789370798197_0.8284870811868874","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"automate-google-login-scraper","version":"0.1.12","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.12","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"642244c005098af9095f4e0ed8b791aa8b23266f","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.12.tgz","fileCount":21,"integrity":"sha512-E49DEEYsX60/qe7HSNaZuXjlNE6cO7IbFHcXCCX2+NtfOs1P7tl4awgheSuYLk38ZBz/Dy6zJT/0gvobu2b3Sw==","signatures":[{"sig":"MEQCIGXh5B9v262bupSNb0QHZhZe9ihsEDrYb+hj7gs6G8Z4AiBLEk/DnML89Hx8RT0bv1D4oNkw3NrLk4EHKr8S0/n9mA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC98Fbygk43tlOGK2AcULwvURJ+Y3D7WwNFW0lvGVq3QwIgG4i6kExlGGDiv05r9+GOLhirE/c8nwN1gHmHQldnUcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"a985dc9f16fc52e8ba5619e9829892ed53b40597","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.12_1789465581708_0.01981405489611987","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"automate-google-login-scraper","version":"0.1.13","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.13","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"0b20e1924f1783a2f6c2fdbf921e255d3a6be1e0","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.13.tgz","fileCount":21,"integrity":"sha512-VbM3jHsU8egd9NBKAef1DFCLQ8dCtffacGh6Oc0GRMZLFdsTSgNZqVVHcqn49G3X4ZS2+hYzqlzFyQ0kUb7/0w==","signatures":[{"sig":"MEUCIQD5jF4EvGZme/gukJj797Meqa6ZBfOdV7ikQDm02fxcDAIgfPPPpWGHQHO6CgFnn3xEStR9jctUzv+EpSMb8FWtNgE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDa50oaG8FVxrHnfmZqi2e9zDbp/4EpC1EgbcjnNlRn/AiBDgOawfBQqthCvvTvOdpoDOclggkZpX183eAAQNzTzuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"9db847b3b70c82cf030f7c6065b420479d656def","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.13_1789515340393_0.4492226189458104","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"automate-google-login-scraper","version":"0.1.14","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.14","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"b8a1bc1fcfdd0691fadc2fe04ddb76f28f2b084b","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.14.tgz","fileCount":21,"integrity":"sha512-9hPPp5kf4WNcYSH9QAGDbXIdo9U+BwtwZ5uovWbaJPPVi2bbd1g6GOvQjHTkvXFjflX6/42iaGWKVZcFBMQCuw==","signatures":[{"sig":"MEUCIQDnpMDKdMlA1F7JzUoX8TQV7xIJT08isV2H8u18SXV4OwIgCcr02c5ZszHusufd97IhWv9R/kS0koGvGqGc5FMAFY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCu4dt/kkdomIHKGxo/OYipne7myKpAd0nhwfGGPLQ/LAIhAKDdozack3KDA2UgHGexN4tDWauH2BRUboNgTZ1vMCCF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"efbe0f71e362729a2c97cd9007f26dfe6db1c04b","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.14_1789525464096_0.27172950074171687","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"automate-google-login-scraper","version":"0.1.15","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.15","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"36804c5bc10507653b9a0c39e7d88a95bacb63fa","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.15.tgz","fileCount":21,"integrity":"sha512-K/4auJj76dv8I6rKgjMDEqFN7Ei+R/XFQWphSiJgBqFRaVHUHuLCbZu5RJ8wwY0UlEWz6Kdewb5JpMfxo57lvQ==","signatures":[{"sig":"MEUCIQCKScQaLKByMfDAWwApEIjt2Vt55XYYSjgMPSOtfgFedwIgUUPibLwGpSjsPTiH9yTGm18M/zumbhJstem1LKn+KnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHW3oyZqjVxGTIDitDGNf5S/8Az7D2u1+A1HJMBZc4l/AiEA0k/F8k6gRL63gvG3Qz+ddTF3VCt2hhrGbGQyr5r4ogU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"ecd938667b9e98e3663f13470bf423ec66542c0c","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.15_1789528784688_0.6027201764961367","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"automate-google-login-scraper","version":"0.1.16","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.16","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"ba7d469de0546c2bad953fcd7f160955486ae9d3","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.16.tgz","fileCount":21,"integrity":"sha512-mj2fouV0BUnhlgpwLeSo8rYTFNJlLpLELuEGTumapbi2gjA5SNcxLSW++/H0Sewsc6t0JlgS5JIP3vrt72xtoA==","signatures":[{"sig":"MEQCIBiOddtj1KNwoh8ryQ+hAJO2BzBCuHGkkBh0uki1sff4AiAFsknFp9I2SOVCHgC4+f9A99527ayptH8PeiVUy0pjvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC9yC36+9iNnBj/qPjwN37GCioT6oNo81tww+swJzgCEAIhAJOZDG0UoXlSpb2zfzQQA2BJATGIcUvK01a61SAqDEG2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97535},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"dcc2311c5d0f2dbede0d08cf143a4a670dd9cfb7","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.16_1789617520962_0.3344835295031261","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"automate-google-login-scraper","version":"0.1.17","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.17","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"62cf2e97aa2ffe3ebd597cce0c9d8fcf30bc6f07","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.17.tgz","fileCount":21,"integrity":"sha512-H8r71K+kQzumEfOUjweIftHsjRujtdMFvE0uv8OqFq0MQuLUTjmKyj1iTZqs6NA+CK9BvZ+ghoMtNxhmNMXpjA==","signatures":[{"sig":"MEUCIQD8iI0IaiqqRWtIK3ewbOBErwl9ZEE/0r24V2bsq3m94AIgL0o4L/cqqHZ4joKp/MWAM9zqKVb9Ii5NoDIr/je92eY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCY+JDB/F7m4hJwTLJSZ+lNKrkUy/Swi66nyy29gSeaSgIhALMs8SP2Hs9eD9NIAtqgqVtYYMZY31zYuihjvSi8Milr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"12a80c3dcb6df14f01c19694e565924c9f9c84e2","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.17_1789633960730_0.7318721260115848","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"automate-google-login-scraper","version":"0.1.18","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.18","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"6a37b8d0dff1a0e0b4918bbb7a47196664ba5bda","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.18.tgz","fileCount":21,"integrity":"sha512-3afAW0cXK6JLiYceA9EZO3MxwwewhLuX3LUQaBergqp12oWui3tZ07lLmByZmEX1E7/EBjpPFS2NIXTeHbjl3A==","signatures":[{"sig":"MEQCIFETvHq2ibHoPj1HonbyGWNbuh0yskggmgZmFWvwWNZ4AiBKkj3d7mEIlAFrdlWQsRvVv6IIIXfIauNnoSelO8uAOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAznhvAbl/z7upjdOSjgO+N5xUZ5q4peialDH3EefLPsAiEAgsn38xwfnDLzy5wbEMSmlkUfPx6VSHflG3cB+zlgRzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"2039e276e2dba2f139dcc0f495a127cbf08af139","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.18_1789634409198_0.216421583724131","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"automate-google-login-scraper","version":"0.1.19","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.19","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"15203eee58c5a53b9d75c8f746af8f169a5ab093","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.19.tgz","fileCount":21,"integrity":"sha512-ka0zQVwFSJPcRXcTHl0+iY/ptLE+PMtUeF2pAzOsDeSY3WbdQjkWptwArLXvTYylwN0G4a58WmFMyTAZLKhVkw==","signatures":[{"sig":"MEQCICUMJYkVOiWnawRDlW4eMt2rwonrQqhcyjYPYHqWx7NDAiAhsLnbs5LfXxNcL58plyiT+IbVhvQYQvpmGcI+sHCQCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBHpqUowypu1chMe7MA13fCyqtPB7Gv65BytXW8a1rRQIgWPUe8wKObdfGkzqbIGjAcLZQxBji7T3dB5qxSSehHns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"52d7883e09d808e252b53afcec78d3449dfea776","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.19_1789727383908_0.018337705907959467","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"automate-google-login-scraper","version":"0.1.20","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.20","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"c6ae43f8b15b3321292dbb2995a7e7286daaeda0","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.20.tgz","fileCount":21,"integrity":"sha512-xFGWotjOZcQncUyNfUj3LDpgWpbnk78tIsELlTYPIIn6OYXJOFrFPv0PeZslI5Xk6tCK/SAU4XRB+eYLd/wWrQ==","signatures":[{"sig":"MEQCIGDrfcONpOehpYwC8rDcKWh8MU43myIGqGRY3Ty7W7e3AiAP7Vp4WjLEFeXvRRwooTzJwbOBKuiNgTyCuKfJqC0JGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGV99CGyJP31YzAQTbwJz4gSadI1uu+EFek/JwHPXk/CAiEAvk8GaBkSVe5d4/PzHb3EfE8ewrzzKHbVVBZLFtFEbQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"83676b167ed18eba93dd0ecfc6f0bdb74617fd1e","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.20_1789796790961_0.5326138381088574","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"automate-google-login-scraper","version":"0.1.21","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.21","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"5579830f1714749a99ced4fc7b85a490e4960247","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.21.tgz","fileCount":21,"integrity":"sha512-/+jVzt92DvUMAXhfmV0iAooN2em3EqjfaN2QYLV15Q7FCoC2iu2jy0wlPvyLbQUDRssMMxO33B1t8si2/nmlgQ==","signatures":[{"sig":"MEUCIQCZJ61Spfv7L+W8CJGCmJKkE714mP8GqqcLJojMEX9dyAIgUbGVUr+pt0G0zBvb82KpDcoka3DLKoQ2yJT2Cdgcipc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGAq2kf94cpqcIrS4/SYs9s1BOOL+clQ3ir5NkA80XDLAiAFxx2V5FDoDdtS7UCmGbjZkRCpVKThNzd5gwCDdfYGyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"aecdac5b04a4de10c9990378fb311c2d9c90863c","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.21_1789827094190_0.8155438836038544","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"automate-google-login-scraper","version":"0.1.22","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.22","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"2fd7046de735ae2714ae244359a54c5c3c6ca66d","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.22.tgz","fileCount":21,"integrity":"sha512-mh4zWhhbkUKPiubDO9ZpBM+DZpt4k8ZWO3jUojEzKoK9vqpSEwsYgvcEyhmAkDy+Igd+IAoz3JG8vwteiG2bKQ==","signatures":[{"sig":"MEQCIGYOWWQX6WlLGGIIe6SdHK4R2OMwEWriCoexE7u5jMOgAiA5+IkiDklC3q4xNk2b9LWYFspeW8LHM8J8SLFcHcMwyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCUMbfJgTqPeOpApyU/wRNg//KMu42LBKB4t2zgv1P1rgIhAL63byvImoHlbWaMXjRXhN8OmwI8mIR/49r7tpvxWyY8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"c7ce33bbd050c73cbbf8423ae5e83067fac68c57","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.22_1789859435522_0.4436120807346111","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"automate-google-login-scraper","version":"0.1.23","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.23","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"4c84d1199683e857aa65da7e7652a85b1b64601f","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.23.tgz","fileCount":21,"integrity":"sha512-4QLfwYmn6y59VO/M9vR4eh2reHk/VHrtCP69Psi8tYQhvCVcorExj9LROMTjPFcIHPCzYJ8/gbQHATVCImrxgA==","signatures":[{"sig":"MEYCIQDs/bkAzZOWuxzpqV45rVY2CzlEIcUyMdqNci5fi6KKLgIhAM/7RdbES9jravSQZqp3IPIxcOP2p4IoPaBnPm2exhDf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGQgwutYpR49UCoYQfNkywftg4WrQA53N7X/9j4bA/9nAiApBpuOvYy3+1BW3bzkb8D6GI+gaXnPXEQhJdCMgCpQ2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"e5e02a90a09e5839c85f89a219e50aaf368f40f9","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.23_1789859525846_0.16744685359101674","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"automate-google-login-scraper","version":"0.1.24","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.24","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"11f98f72de089f9e75a5d73fc85515e212dfe1a3","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.24.tgz","fileCount":21,"integrity":"sha512-rnT5VK+NEqzNLrXZ/FqcpCeeSw0/tDLNv567CDZsdgGJ2TVawI7oMIs/DPhIYXg9f96Xax1BkYxtJ8o5nXKC1g==","signatures":[{"sig":"MEUCIHGqWWJBi4nGTKcL3dxodps0KHFaWpWMDo0pmP7t1SyIAiEAykJ7+fD3ZoBMmVY3Z1rPLP5Eax3pukYI8D5nufsiB00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHzMF6Or2vjjUMaAyX+tJV4KkVtxxJAc2MSUMsry0nP4AiEAlzalx/RcYf1KMhWkFGZU5IipG2EQdS4cC7gUaliaw2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"a98f39cd4af5dc3788a617330d832a861b6e1def","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.24_1789863264141_0.20053227698600362","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"automate-google-login-scraper","version":"0.1.25","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.25","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"c0d681f9668fe2297f5063f99fab1bc6f464607b","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.25.tgz","fileCount":21,"integrity":"sha512-V0WrW9276HQEGNVSavrSpNZ3/b87FVAjK7a4sDITp/hhtvL5Qu4wD+i+bI+c8vCw/5Th6FI9+v5HCUwajAQNqg==","signatures":[{"sig":"MEUCIQCzRFa9QiV8CzKJIAUjHf0lBqWzMiUbtGw1wr/lYloYBAIgUbwI3pKFlIfE9oHrE7i4Z1/xt7QVi7NarLVyU+eTvpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGSjgCbmaPMtNj2odneZzpRh84+/wjS9kx7KDti7ZXISAiAmGBozmY0SMcLBmMeeT6+iCiKokzS560QXP7V48iKX8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"06aaa9a07eee5c4ca7d919c8f13def16176d01d3","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.25_1789864054945_0.12188684295068963","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"automate-google-login-scraper","version":"0.1.26","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.26","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"788fb914ce3486cc2a19d360102195e92148c3fd","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.26.tgz","fileCount":21,"integrity":"sha512-rdWzEP7lKgAI9hB6U701RPkFvbCDU/G9fsAwLfsIzSsMobGt449IJiI9AhzpUrlBczuvs6KJbk2M1w8lPv8oBQ==","signatures":[{"sig":"MEQCICvovEOxzlKxCi77o55n7NeUE0uUrebDZtHlyh3vKNNlAiAZmBMzYyFvTn2lJzAKuiKOmN6APaS+pFl0mO1OBCOcXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJdmH46v9Ez1/OQ7sXsIcwRTpZ1sjC6wPAQZZikvK67gIgFWLwcha6SKa/cQyj11zvOz+wON4nvUkUEcFcxg4Zf1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"9bb83eea706daac0dff4bfb12bc5767d809479fd","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.26_1789975218709_0.2887648434779113","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"automate-google-login-scraper","version":"0.1.27","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.27","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"15de3f3a0bc81aa1378d004587070e76ac1db4c3","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.27.tgz","fileCount":21,"integrity":"sha512-c3o+zYvBkDPq5fRk4LtzYrvcTrLMVlrVcgQ4yZ2n1i1+vrO8OmhSnhN3qZULvF0dqPNB0cerEy5OBOF/UXzeZw==","signatures":[{"sig":"MEYCIQDSJGm1Uf09b29bHP5h93fNHmXkz6dKW7Ygs/WYbIHfxgIhAMpeecJIKl03Xf11t6jUHCf4edbSQf+S9NYpetJKpGE6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHBt8Vcha/SP1S8HIm62dmW087rwb9TifY7enOtpqfR7AiA7pU2ojLmDW2H30743aXKXCcuVZAjGGkXoY4e/9srrRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"248206f0e9e4ac56718d2d2311e6056905f4a448","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.27_1790029860808_0.22141272088542552","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"automate-google-login-scraper","version":"0.1.28","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.28","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"4dd900aa7b41afac0bde47832b10a07463d9acc8","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.28.tgz","fileCount":21,"integrity":"sha512-GoQZjVAAu0eXGKt7RjvhfUzMkheuJ9L57avB/a7YFYAG0AlQbVgDSseWcZAcoRMDTpklXfyM62D8l58e4tuo7w==","signatures":[{"sig":"MEQCIDt26I/j1PJfPpewDt0ckXjsLU7ZhUCzAGlJ1ndtkvfBAiAKDOfOGnshaebzTiDB6xij4c4X5i5QjBQb6F1RIJt9Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDRZS7PReXE0emYFamMRxbB3QBEvH3mSIo7BDC5Bdsj4QIhAKYgxn5DvJnLln2Oi3uU6/EYj+sYnSmlq3tD27Wvpu6J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"03344829eec31546a3e5c00ffbf25de3083e6ff2","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.28_1790032951573_0.013877087974095925","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"automate-google-login-scraper","version":"0.1.29","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.29","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"734c9410c0512d373edf88e0f3fc3204ff0fe7d9","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.29.tgz","fileCount":21,"integrity":"sha512-lLwSxB4ml2R/Lh2XNNWphkN71jJUAO/PV+voq6bq/UtIFandZ3TfSIx6iYb4kzPUaWIpYHELaiga9/q3ztWung==","signatures":[{"sig":"MEUCIQCo10ZCwF6hsMaI4OX3Vt7i1o6UKChdB6OJZYYDCIQkFgIgDrBZvHoQmTN3jVZ+SXTaS3Rt/oCbGnmKb+/5bmnEeL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDtTYO58eIgzwScghEUDR8pmUZg809jhbyjrJh49WdBPwIhAIRYnoGsJPSvrt/UoV1PiGRA7KIq5/o+10VC6Q+PgnI6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"cc17e1845e3124cd6a13eebb224786a50c7bc9bd","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.29_1790042519090_0.3437163315309222","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"automate-google-login-scraper","version":"0.1.30","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.30","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"5f57257fc624285d135ccf154d3c9942926e84f4","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.30.tgz","fileCount":21,"integrity":"sha512-bIzKiuwkVhzEiLLXHu+EHL7HhZAgnmmHG9YgDR9FtTJEmQFaHVV2O7pUWUXUXMF0XeEcR/enmD6RFBpR1w15cw==","signatures":[{"sig":"MEUCIQCBdTfEwCeEg+n5XDQJ8vicCHNWHCC1mHpAz6xhDAMgNAIgFdxe9Ofp+hPRCpkCpU2k2LgQVXmseMrvyzXfGLFqVls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEHEkcZOiEq7ajTKfz01ILCxeW1mOhPPK7SZ37RCiciYAiAM2mk0kB5r1rdl83tLC0fK0RsSr+DogaLp1Cwv5r1G/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"c545951ccccb6c55c71daa0bbd7d8b7d639c8bbf","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.30_1790042917045_0.9851523348709839","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"automate-google-login-scraper","version":"0.1.31","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.31","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"2c28c2bf29e79b41d6f8e324e7367a867724b5ff","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.31.tgz","fileCount":21,"integrity":"sha512-wTCdoKSbmhFd0PsKuTk8AfddRWRdYEbjJpu0u3ayw7so4tiU8By+zs0k7dpLwNYqLeYnf2+3MxOMp1++cee6pQ==","signatures":[{"sig":"MEUCIGNyo6JOSPrqlW2/DqVjB7czj4vew+44XRFZ3LJV7rlJAiEAgAZrHlpP6gPVHfy4rukvbQ6iGlOX3dZYYDTGOOzIOJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBNGZfQLzYW89lsCnidMRPBueHk901A3PMOCPgktZHNHAiAsn2uY72d81FEIjHBjWu54K+mN3HFKUHcso0RJhS173Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"66458ceab334c1d3c6fdb389b4c3f0a29a4f535c","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.31_1790043157729_0.7493544460858776","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"automate-google-login-scraper","version":"0.1.32","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.32","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"500570d02b594550c014de1a5944a4dcc243dc40","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.32.tgz","fileCount":21,"integrity":"sha512-O8DgVRAK/42Jfsnkkp67ZgrJg4jjoqpg5d7E4gc/eqeUpGu7xiz6WWZVjf3yQiDhqA7fsa+C8MeSWPa+JskfRw==","signatures":[{"sig":"MEUCIA5XlzfnvT+ScsAsGl2WSxIcsccfKSh/d3dTlCtwEZXDAiEAiiSAtnNKzFtxN5eRdpsvvecJBDnbkIRcT6wiVr76nmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCMMkx0c87S8ofYGN9NphNjv8emaQ8I+XfDppC6fwCyZAIgMKejK7w20MWsBiBKT8eaB/fSD3t4QUnCHpWrDqGtf30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97639},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"949ea982deae9c2cf5c9332f2b31b79223018cd0","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.32_1790045594877_0.0838393817731573","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"automate-google-login-scraper","version":"0.1.33","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.33","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"6487f14a27b48e578307f09b3d811fe81bdca20b","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.33.tgz","fileCount":21,"integrity":"sha512-LfMbtJ2ZBDygpA9ajDRgi9i+jhlefnDJgZ4NR6LyvKyiDIYtuB7NlvUSVBZOobcTlylJ7p1FPOvsT2yQyRr8qA==","signatures":[{"sig":"MEYCIQDP0MqoCZxU/jfj649qkuSEoawWoW/jztQOhO/p3gN75QIhAPFYXOCEIrGDsA6Ozt7QkcnQshtHlSIhbS/42zULMeE4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC1gZdrK4ajRlEXwUtRLVCUh1G32nsN7KKw1M1aSDYxUAIgN5kVWAMb+fdK+CH9ydl+fLS8IL5oSKd6yLETST+By5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97639},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"62e635ddc7a273870fe30578562bf7aeb5d0018f","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.19.1","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.33_1790066202951_0.3486308065702717","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"automate-google-login-scraper","version":"0.1.34","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.34","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"4eec082f2faebd89b33cd6c689aea8646edeae46","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.34.tgz","fileCount":21,"integrity":"sha512-v4sxivWqUAaFj/TRwrTxNQVpPASnl6UfeG3u7WAAUJBNZIy2wEDTcvhLtufolKYTrvb2tHbdmatfgewjRLMNtQ==","signatures":[{"sig":"MEQCIA73gYO7iZk+127GCbAiE2q15Xm6XxqOevnomz6zlJG5AiAfkGdn+jxO8NPFnhf7hiLJriXFLuu2ElHyx+w5GyxI6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHfDRzm/ud+1XEQzlgFVpYNOt3E4cNSz5rjeOuP7PSXLAiAF4yLYfSvqeCo4sU5fDAOl4n3Pukojw3m37lWPWFq9gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97639},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"281e2061bc81b986f47d5da8caea0e24f9524427","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.20.0","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.34_1790165702088_0.04218757434625964","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"automate-google-login-scraper","version":"0.1.35","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"author":{"name":"vtempest"},"license":"MIT","_id":"automate-google-login-scraper@0.1.35","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"bin":{"test-google-login":"bin/cli.js"},"dist":{"shasum":"85e4cc8cdf2d7cb71e8726105ab10940d801793c","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.35.tgz","fileCount":21,"integrity":"sha512-ar0kMjSMrWzslT0X1ONsAm2ODVez37VdkroHQJsLr10IetF4x/Fmp4iyJ6gSxob18XFuzTtCOuVYEnGQYZAXIA==","signatures":[{"sig":"MEUCIQCJajPCBuUbfTLJll9FEE0rTydJ5eA2YSEBTgkHXNsk/AIgKAeUXhYkheYdDfuzhAz+VPdw1slBVE9tLDln7UTIcTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF0am0wabMqXZBrhZHpNOi29OloFXYlnbM3bF7Ki1gt7AiAYhsfw9jSrIU7QGT+D7CjD9CC7NV/Kpb1GJYzB/Ti7ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97639},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"a2bad3d3f9eb2de086a2be97257ffc8bd9bd885d","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.20.0","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/automate-google-login-scraper_0.1.35_1790297163795_0.7666772377464539","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"_id":"automate-google-login-scraper@0.1.36","bin":{"test-google-login":"bin/cli.js"},"bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"dist":{"shasum":"63c3ace5c6377cacfca93214e117e3236110d700","tarball":"https://registry.npmjs.org/automate-google-login-scraper/-/automate-google-login-scraper-0.1.36.tgz","fileCount":21,"integrity":"sha512-W7Xiv4stvEUtlkT/Ni/5bnajR8F5k5liSqT3ei/3UZkO92VL5bwqkBlZfwIEi1imGQ17YIJ3od5fk3isk2lwRQ==","signatures":[{"sig":"MEUCIQDSMHo2Z3PG4qaDFk40ImheYzDEMTmVQxcmKkTLB26eiQIgCnp1j+Z78hVN1ezSU6P0+YJARgiWmCVVNd7bIOqytIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDzVkNhqHDI7KbTIhs/h0dmw9b0N0z6PLk2UHJjR6nThgIhANuWOUTB7K8j2mHfVZwvJkovwNKmKf7m/siMyrRoFyji"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/automate-google-login-scraper@0.1.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97639},"main":"./dist/index.js","name":"automate-google-login-scraper","type":"module","types":"./dist/index.d.ts","author":{"name":"vtempest"},"module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"}},"gitHead":"9c73d1293b181279924c008c6c014767f3112e72","license":"MIT","scripts":{"ship":"npx standard-version --release-as patch; npm publish","test":"vitest run","build":"vite build","deploy":"wrangler deploy","test:ci":"vitest run --reporter=default --reporter=junit --outputFile=junit.xml --coverage","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","dev:worker":"wrangler dev","test:watch":"vitest","prepublishOnly":"bun run build"},"version":"0.1.36","_npmUser":{"name":"vtempest","email":"grokthiscontact@gmail.com"},"homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"_npmVersion":"11.20.0","description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","directories":{},"maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^4.1.0","wrangler":"^4.24.0","typescript":"^5.9.3","@types/node":"^22.10.0","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.1.0","@cloudflare/puppeteer":"^1.4.0","@cloudflare/workers-types":"^4.20260507.1"},"peerDependencies":{"@playwright/test":"*","@cloudflare/puppeteer":"*"},"peerDependenciesMeta":{"@playwright/test":{"optional":true},"@cloudflare/puppeteer":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/automate-google-login-scraper_0.1.36_1790422890335_0.23583190447564273"}}},"time":{"created":"2026-09-14T06:52:23.120Z","modified":"2026-09-26T11:41:30.799Z","0.1.9":"2026-09-14T06:52:23.530Z","0.1.10":"2026-09-14T07:15:49.327Z","0.1.11":"2026-09-14T07:26:38.277Z","0.1.12":"2026-09-15T09:46:21.796Z","0.1.13":"2026-09-15T23:35:40.487Z","0.1.14":"2026-09-16T02:24:24.216Z","0.1.15":"2026-09-16T03:19:44.785Z","0.1.16":"2026-09-17T03:58:41.045Z","0.1.17":"2026-09-17T08:32:40.818Z","0.1.18":"2026-09-17T08:40:09.304Z","0.1.19":"2026-09-18T10:29:44.011Z","0.1.20":"2026-09-19T05:46:31.049Z","0.1.21":"2026-09-19T14:11:34.290Z","0.1.22":"2026-09-19T23:10:35.608Z","0.1.23":"2026-09-19T23:12:05.930Z","0.1.24":"2026-09-20T00:14:24.229Z","0.1.25":"2026-09-20T00:27:35.046Z","0.1.26":"2026-09-21T07:20:18.815Z","0.1.27":"2026-09-21T22:31:00.912Z","0.1.28":"2026-09-21T23:22:31.646Z","0.1.29":"2026-09-22T02:01:59.176Z","0.1.30":"2026-09-22T02:08:37.150Z","0.1.31":"2026-09-22T02:12:37.813Z","0.1.32":"2026-09-22T02:53:15.042Z","0.1.33":"2026-09-22T08:36:43.098Z","0.1.34":"2026-09-23T12:15:02.191Z","0.1.35":"2026-09-25T00:46:03.880Z","0.1.36":"2026-09-26T11:41:30.431Z"},"bugs":{"url":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"},"author":{"name":"vtempest"},"license":"MIT","homepage":"https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login","keywords":["playwright","puppeteer","google-login","oauth","storage-state","e2e","testing","cloudflare-workers","browser-rendering","durable-objects"],"repository":{"url":"git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git","type":"git","directory":"packages/test-google-login"},"description":"End-to-end test harness for Google sign-in: persist a Playwright storageState once, reuse it everywhere, and replay it from a Cloudflare Workers Browser Rendering Durable Object","maintainers":[{"name":"vtempest","email":"grokthiscontact@gmail.com"}],"readme":"<!-- template-git-repo:badges:start -->\n<p align=\"center\">\n    <a href=\"https://1computer.online/docs/packages/test-google-login\"><img src=\"https://img.shields.io/badge/Docs-blue?logo=ReadTheDocs&logoColor=white\" alt=\"Documentation\" /></a>\n    <br />\n    <a href=\"https://github.com/OpenSourceAGI/dev-tools-starter-agent/stargazers\"><img src=\"https://img.shields.io/github/stars/OpenSourceAGI/dev-tools-starter-agent\" alt=\"GitHub Stars\" /></a>\n    <a href=\"https://www.npmjs.com/package/automate-google-login-scraper\"><img src=\"https://img.shields.io/npm/dm/automate-google-login-scraper.svg\" alt=\"NPM Monthly Downloads\" /></a>\n    <a href=\"https://www.npmjs.com/package/automate-google-login-scraper\"><img src=\"https://img.shields.io/npm/v/automate-google-login-scraper.svg\" alt=\"npm version\" /></a>\n    <a href=\"https://www.npmjs.com/package/automate-google-login-scraper\"><img src=\"https://img.shields.io/npm/dt/automate-google-login-scraper.svg\" alt=\"NPM Total Downloads\" /></a>\n    <a href=\"https://www.npmjs.com/package/automate-google-login-scraper\"><img src=\"https://img.shields.io/npm/types/automate-google-login-scraper\" alt=\"TypeScript types\" /></a>\n    <a href=\"https://packagephobia.com/result?p=automate-google-login-scraper\"><img src=\"https://packagephobia.com/badge?p=automate-google-login-scraper\" alt=\"Install size\" /></a>\n    <a href=\"https://app.codecov.io/gh/OpenSourceAGI/dev-tools-starter-agent/flags\"><img src=\"https://img.shields.io/codecov/c/github/OpenSourceAGI/dev-tools-starter-agent?flag=test-google-login&label=test-google-login%20coverage&logo=codecov&logoColor=white\" alt=\"Coverage\" /></a>\n    <br />\n    <a href=\"https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues\"><img src=\"https://img.shields.io/github/issues/OpenSourceAGI/dev-tools-starter-agent?logo=github\" alt=\"GitHub Issues\" /></a>\n    <a href=\"https://github.com/OpenSourceAGI/dev-tools-starter-agent/pulls\"><img src=\"https://img.shields.io/github/issues-pr/OpenSourceAGI/dev-tools-starter-agent?logo=github&label=PRs\" alt=\"Open Pull Requests\" /></a>\n    <a href=\"https://github.com/OpenSourceAGI/dev-tools-starter-agent/pulls?q=is%3Apr+is%3Aclosed\"><img src=\"https://img.shields.io/github/issues-pr-closed/OpenSourceAGI/dev-tools-starter-agent?logo=github&label=PRs%20merged&color=8957e5\" alt=\"Merged Pull Requests\" /></a>\n    <a href=\"https://github.com/OpenSourceAGI/dev-tools-starter-agent/discussions\"><img src=\"https://img.shields.io/github/discussions/OpenSourceAGI/dev-tools-starter-agent\" alt=\"GitHub Discussions\" /></a>\n    <a href=\"https://github.com/OpenSourceAGI/dev-tools-starter-agent/commits/master/\"><img src=\"https://img.shields.io/github/last-commit/OpenSourceAGI/dev-tools-starter-agent.svg\" alt=\"GitHub last commit\" /></a>\n    <br />\n    <a href=\"https://stackblitz.com/github/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/test-google-login\"><img height=\"20px\" src=\"https://developer.stackblitz.com/img/open_in_stackblitz.svg\" alt=\"Open in StackBlitz\" /></a>\n    <img src=\"https://img.shields.io/badge/Bun-14151A?logo=bun&logoColor=white\" alt=\"Bun\" /> <img src=\"https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white\" alt=\"TypeScript\" /> <img src=\"https://img.shields.io/badge/Cloudflare%20Workers-F38020?logo=cloudflareworkers&logoColor=white\" alt=\"Cloudflare Workers\" /> <img src=\"https://img.shields.io/badge/Vite-646CFF?logo=vite&logoColor=white\" alt=\"Vite\" /> <img src=\"https://img.shields.io/badge/Vitest-6E9F18?logo=vitest&logoColor=white\" alt=\"Vitest\" /> <img src=\"https://img.shields.io/badge/Playwright-2EAD33?logo=playwright&logoColor=white\" alt=\"Playwright\" />\n</p>\n<!-- template-git-repo:badges:end -->\n\n<!-- skills:install:start -->\n**🤖 Agent skill** — `npx skills@latest add https://github.com/OpenSourceAGI/dev-tools-starter-agent --skill test-google-login` ([what it covers](../../skills/test-google-login/SKILL.md))\n<!-- skills:install:end -->\n\n# Test Google Login\n\nSign in with Google **once**, by hand, and let every test after that start\nalready signed in — locally, in CI, and from a Cloudflare Worker.\n\nTwo halves, one session file:\n\n- **Playwright** (`test-google-login`) — captures, validates, inspects and\n  redacts a `storageState`, and guards a setup project so the first run tells a\n  new contributor exactly what to do instead of timing out on a login form.\n- **Cloudflare Workers** (`test-google-login/worker`) — a Browser Rendering\n  Durable Object that replays the same session against a deployed app, keeping\n  one browser alive across a whole suite.\n\nIt has **no runtime dependencies**. Playwright and `@cloudflare/puppeteer` are\noptional peers: every function takes the `page`, `context` or `request` it needs\nas an argument, which is also why the whole package is unit-tested without ever\nlaunching a browser.\n\n## ⚠ The security boundary — read this first\n\nPutting `GOOGLE_TEST_PASSWORD` in `.env` protects nothing if you then write:\n\n```text\nplaywright/.auth/google-test-user.json\n```\n\n**That file is a live credential.** It can contain your app's session cookie,\nGoogle's cookies for `accounts.google.com`, OAuth tokens in `localStorage` or\nIndexedDB, and — depending on your auth library — something refresh-capable.\nAnyone holding it is signed in as the test account.\n\nSo:\n\n- Use a **dedicated Google account** for testing, with nothing sensitive on it.\n- **Never commit it.** `test-google-login init` adds the rules, twice.\n- **Never upload it as a public CI artifact**, and never paste it into a log,\n  an issue or a chat. Use `test-google-login redact` when you need to show it.\n- **Regenerate it** when it stops working, rather than trying to repair it.\n- Prefer testing **your app's own session**. Keep real Google sign-in as a\n  narrow, occasional smoke test.\n\nThis package is built around that last point. Everything that touches Google\nis opt-in and off by default; everything that touches the file is 0600.\n\n## Install\n\n```bash\nbun add -d test-google-login\nnpm install --save-dev test-google-login\n```\n\n## Quick start\n\n### 1. Set up the directory and the gitignore rules\n\n```bash\nnpx test-google-login init\n```\n\n```text\nCreated playwright/.auth/ (mode 0700)\nWrote   playwright/.auth/.gitignore — ignores everything in that directory\nAdded to .gitignore: playwright/.auth/, .env, .env.*, !.env.example\n\nNow capture a session by hand — this avoids automating Google's password form,\nwhich is what MFA, CAPTCHA and device checks all break:\n\n  npx playwright codegen --save-storage=playwright/.auth/google-test-user.json http://localhost:3000\n```\n\nTwo gitignores on purpose: the root one, and `playwright/.auth/.gitignore`\ncontaining `*`. The root file gets reverted, reformatted and replaced by tooling;\nthe nested one travels with the directory.\n\n### 2. Capture a session, by hand, once\n\nRun the command `init` printed. In the window that opens: click **Sign in with\nGoogle**, use the dedicated test account, finish the redirect back to *your* app,\nconfirm you are on an authenticated page, then close the window — Playwright\nwrites the state file on exit.\n\nThis is manual on purpose. Google may ask for MFA, a CAPTCHA or a device check,\nand none of those should be automated around.\n\n### 3. Reuse it\n\n`playwright.config.ts`:\n\n```ts\nimport { defineConfig, devices } from \"@playwright/test\";\nimport { DEFAULT_AUTH_FILE } from \"test-google-login\";\n\nexport default defineConfig({\n  testDir: \"./tests/e2e\",\n  use: { baseURL: process.env.E2E_BASE_URL ?? \"http://localhost:3000\" },\n  projects: [\n    { name: \"auth-setup\", testMatch: /.*\\.setup\\.ts/ },\n    {\n      name: \"chromium\",\n      dependencies: [\"auth-setup\"],\n      use: { ...devices[\"Desktop Chrome\"], storageState: DEFAULT_AUTH_FILE },\n    },\n  ],\n});\n```\n\n`tests/auth.setup.ts`:\n\n```ts\nimport { test as setup } from \"@playwright/test\";\nimport { requireStoredSession } from \"test-google-login\";\n\nsetup(\"an authenticated session is available\", () => {\n  const summary = requireStoredSession({ baseUrl: process.env.E2E_BASE_URL });\n  console.log(`session ok — ${summary.cookieCount} cookies, ${summary.domains.join(\", \")}`);\n});\n```\n\nYour tests now start signed in:\n\n```ts\ntest(\"an authenticated user can open the dashboard\", async ({ page }) => {\n  await page.goto(\"/dashboard\");\n  await expect(page.getByRole(\"heading\", { name: /dashboard/i })).toBeVisible();\n});\n```\n\n`requireStoredSession` is the part that earns its keep. A missing file throws the\n`codegen` command; an expired one throws *how long ago* it lapsed:\n\n```text\nThe persisted session is no longer usable — it expired 380 minutes ago.\n\nRe-capture it:\n  npx playwright codegen --save-storage=playwright/.auth/google-test-user.json http://localhost:3000\n```\n\nWithout that, an expired session presents as a selector timeout on an\nunauthenticated page, which reads like a broken test rather than a stale cookie.\n\n## For CI: let your app mint the session\n\nDo **not** make a Google password a repository secret every fork's pull request\ncan reach. Instead, add a test-only endpoint to your own staging environment that\ncreates the same session a successful Google callback creates, and hold one secret\nof yours.\n\n```ts\nimport { bootstrapAppSession } from \"test-google-login\";\n\nsetup(\"create authenticated test session\", async ({ page, context, request }) => {\n  await bootstrapAppSession({\n    request,\n    page,\n    context,\n    secret: process.env.E2E_TEST_AUTH_SECRET,   // required; never defaulted\n    endpoint: \"/api/test-auth/google-user\",\n    landingPath: \"/dashboard\",\n  });\n});\n```\n\nState is regenerated each run, no Google traffic is involved, and a PR check can\nnever fail because Google showed a consent screen. See\n[`examples/test-auth-endpoint.ts`](examples/test-auth-endpoint.ts) for the\nendpoint — it must 404 in production, require a strong secret compared in\nconstant time, and create a session identical to the real callback's.\n\n### Which strategy where\n\n| Strategy | Use for | Secrets held |\n| --- | --- | --- |\n| `bootstrapAppSession` — your app mints it | every PR check | `E2E_TEST_AUTH_SECRET` |\n| `requireStoredSession` — captured by hand | local development | none |\n| Encrypted stored state | private, controlled CI | the encryption key; delete state after the run |\n| `signInWithGoogle` — real Google | occasional manual smoke test | a dedicated account's credentials, environment-scoped |\n| Mock the OAuth callback | unit and integration tests | none |\n\n## Inspecting a session without opening it\n\n```bash\nnpx test-google-login check\n```\n\n```text\nState file   playwright/.auth/google-test-user.json\nCookies      3 (1 session-only)\nDomains      .google.com, app.example.test\nOrigins      1\nGoogle cookies present: yes\nExpiry       earliest in 718 minutes\n```\n\nExit codes are meant for CI: `0` healthy, `1` missing or expired, `2` present but\nmalformed. `--json` for machine-readable output, `--within 30` to warn about\ncookies expiring inside a window.\n\n```bash\nnpx test-google-login redact   # safe to paste into an issue\nnpx test-google-login clear    # delete the session\n```\n\n`redact` keeps the shape — names, domains, flags, expiries — and replaces every\nvalue with `«redacted 21 chars»`. Nothing in this package ever prints a value:\n`summarizeStorageState` returns names and domains only, and the Worker's\n`GET /state` returns a redacted copy.\n\n## The Cloudflare Workers half\n\n```ts\nimport { GoogleLoginBrowser, handleRequest } from \"test-google-login/worker\";\n\nexport { GoogleLoginBrowser };\nexport default { fetch: handleRequest };\n```\n\n```bash\nwrangler secret put TEST_AUTH_SECRET\nwrangler deploy\n```\n\nA Durable Object per named session, holding one Browser Rendering browser. Why a\nDO rather than `puppeteer.launch()` in the Worker: a launch costs seconds and is\nbilled, so one browser serves a whole suite; and Browser Rendering allows only a\nfew concurrent sessions per account, which a parallel test run would otherwise\ntrip. An alarm closes the browser once idle — an *unclosed* session is billed too.\n\n| Route | Does |\n| --- | --- |\n| `POST /state` | Store a Playwright storage state. Validated on the way in; the response summarises it and never echoes it |\n| `GET /state` | A redacted summary. **There is no route that returns live cookies** |\n| `DELETE /state` | Forget the session and close the browser |\n| `POST /check` | Replay the session against a URL; reports `authenticated`, the landing URL, title, and optionally a screenshot |\n| `POST /login` | Real Google sign-in, off unless `ALLOW_REAL_GOOGLE_LOGIN=\"true\"`. Needs `loginUrl` **and** `expectUrl` |\n| `POST /close` | Close the browser now rather than waiting for the alarm |\n\nEvery request must carry `x-test-auth-secret`. If `TEST_AUTH_SECRET` is not set\nthe Worker returns `503` to everything rather than serving an anonymous browser to\nwhoever finds the URL.\n\n```bash\ncurl -X POST \"$WORKER/check?session=signed-in\" \\\n  -H \"x-test-auth-secret: $TEST_AUTH_SECRET\" \\\n  -H 'content-type: application/json' \\\n  -d '{\"url\":\"https://app.example.test/dashboard\",\"expectSelector\":\"[data-testid=user-menu]\",\"rejectUrl\":\"/login\"}'\n```\n\n`rejectUrl` matters: a redirect to `/login` returns `200`, so without it a\nsigned-out check reads as a pass.\n\nSee [`examples/worker-check.ts`](examples/worker-check.ts) for the whole loop.\n\n### Carrying a session between Playwright and Puppeteer\n\n`applyStorageState` / `extractStorageState` convert in both directions, and the\nthree differences between the formats are each a way to lose a session silently:\n\n- **Session cookies.** Playwright writes `expires: -1`; CDP reads `-1` as an\n  expiry in 1969 and drops the cookie. The key must be *omitted*.\n- **`sameSite`.** CDP wants exactly `Strict`, `Lax` or `None`. One lowercase\n  value rejects the whole batch.\n- **`localStorage` needs a document.** There is no blind write — the page has to\n  be on the origin first, so restoring it costs one navigation per origin.\n\n```ts\nimport { applyStorageState } from \"test-google-login\";\n\nawait applyStorageState(page, state, { origins: [\"https://app.example.test\"] });\n```\n\nNarrow `origins` to your own app. A state captured through a real Google sign-in\nalso holds `accounts.google.com` storage, and navigating a datacentre browser to\nGoogle to restore it is slow and is exactly the traffic its risk checks look for.\nA cookie-only state costs **no** navigation at all.\n\n## If you automate Google anyway\n\n```ts\nimport { signInWithGoogle } from \"test-google-login\";\n\nsetup(\"real Google OAuth smoke bootstrap\", async ({ page, context }) => {\n  await signInWithGoogle({ page, context, loginPath: \"/login\" });\n});\n```\n\nIt refuses to run unless `TEST_GOOGLE_LOGIN_ALLOW_REAL=1` **and** both\n`GOOGLE_TEST_EMAIL` and `GOOGLE_TEST_PASSWORD` are set. Restrict that workflow to\na protected branch with environment-scoped secrets, trigger it by hand, and expect\nfailures that are not your app's fault — Google changes its UI, its labels and its\nlanguage, and a datacentre IP makes its risk checks *more* likely.\n\nIt waits for your own origin rather than clicking through whatever appears. If a\nconsent screen, a device check or MFA shows up, the wait times out, which is the\ncorrect outcome: those are the controls protecting the account.\n\n## Refreshing an expired session\n\n```bash\nnpx test-google-login clear\nnpx playwright codegen --save-storage=playwright/.auth/google-test-user.json http://localhost:3000\n```\n\nWith the test-only endpoint, just re-run the setup project — it regenerates state\non its own.\n\nNote that `storageState` covers cookies and `localStorage` (and IndexedDB when you\npass `indexedDB: true`), but **not `sessionStorage`**. If your app keeps anything\nthere, restore it yourself with an init script.\n\n## API\n\n| Export | Does |\n| --- | --- |\n| `requireStoredSession(options)` | Assert a usable session exists; returns a safe summary, throws with the fix |\n| `bootstrapAppSession(options)` | Mint a session through your test-only endpoint and persist it |\n| `signInWithGoogle(options)` | Drive Google's real form. Off unless opted in |\n| `loadStorageStateFor(options)` | Read the state for `browser.newContext({ storageState })` |\n| `summarizeStorageState(state)` | Counts, domains, names, expiry — no values |\n| `redactStorageState(state)` | The same state with every value replaced by its length |\n| `findExpiringCookies(state, o)` | Cookies expiring inside a window — the warning before the failure |\n| `assertStorageStateUsable(state, o)` | Throw unless still usable, with how long ago it lapsed |\n| `readStorageState` / `writeStorageState` | Read; write 0600 |\n| `hardenStorageStateFile(file)` | Chmod + validate a file Playwright wrote, preserving its extra keys |\n| `applyStorageState(page, state, o)` | Restore a whole session into a Puppeteer page |\n| `extractStorageState(page, o)` | Capture one back out, in Playwright's format |\n| `to/fromPuppeteerCookies` | Cookie-format conversion, both directions |\n| `ensureGitignored` / `writeAuthDirGitignore` | The two gitignore rules |\n| `resolveAuthFile` / `codegenCommand` | Path resolution and the capture command |\n| `constantTimeEqual` / `isAuthorized` | Secret comparison, usable in a Worker |\n| `GoogleLoginBrowser` / `handleRequest` | The Durable Object and the Worker entry |\n\nFull details in the agent skill:\n[`skills/test-google-login`](../../skills/test-google-login/SKILL.md).\n\n## Development\n\n```bash\ncd packages/test-google-login\nbun run test        # no browser is launched\nbun run build       # two entries: index (Node) and worker (Cloudflare)\nbun run typecheck\n```\n\nThe suite drives fakes for the page, the browser and the DO's storage, so it runs\nanywhere in under a second. The assertions that matter most are the negative ones:\nthat no value ever reaches a log, a response or a summary.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}