{"_id":"@adaptive-ds/google-search-console-client","_rev":"14-9418e22b581a74cab9af1153c57e6f75","name":"@adaptive-ds/google-search-console-client","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@adaptive-ds/google-search-console-client","version":"0.1.0","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.1.0","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"f437c38d7ca874bd33f75a9df47279b0fc532bf2","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.1.0.tgz","fileCount":571,"integrity":"sha512-HTosopuye2y5SeOLrk3bzHBGDPwvrOLeeKTcn/zVIi5M41RnfmQU46BnUOwgoC4tKW1kKVrYC6dOcJLXgJK09A==","signatures":[{"sig":"MEUCIBjxGXrtam8MufPgEbbETjh3n04/IED2SRQZa3ZvAZzfAiEAiy2q+eXL/i7TDwrR2u7fAQul2mOLcCyI7rQR1/73WLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306119},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"51e5eb91ad6102d17b218d6eb68d686758eab31c","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"david1gp","email":"david1gruppenplan@gmail.com"},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"11.19.0","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.1.0_1787205363384_0.612414688263154","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@adaptive-ds/google-search-console-client","version":"0.2.0","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.2.0","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"0d6fee57d09ae5e52bb44aaf5dba5378c460be1d","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.2.0.tgz","fileCount":571,"integrity":"sha512-ijhTUMSOVGidJMQjcta8kzrDHlWHt4ygpFuhkHNPC01DHooWdanm+qQekEd8WT8NLtMOTK7ldexfgKxZy8w/+A==","signatures":[{"sig":"MEQCIEmvIHWlwIiCn2logyfqpO/y5M9xQ8S+i+D0FKmVqZZHAiAOm6txy2vqipqCPLKPyt/wsLieVLDWM2p+MficaoiqrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313196},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"fb58eacdd6f658abac3338e49f612b27aefb0ed4","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.2.0_1787230689983_0.4971748611960678","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@adaptive-ds/google-search-console-client","version":"0.2.1","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.2.1","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"8fa8bd331f2bd179ed911f2c076c1b8aa5cc3306","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.2.1.tgz","fileCount":591,"integrity":"sha512-kqfuHBkEWEDXlfOqrY5cQuQSW3oPx59GyFH4QLCmfBsXKbTs3Fp2xWAaK/O2mq2pr1lbpbpaG5fq0uqra2h+Lg==","signatures":[{"sig":"MEYCIQD5uaStxrLn7eMdBllaRHieT7FqxqnEX+tYWDlHcGFYNQIhAO5iQv0EX5h2dU5VasRqFgn83vKvR3Whgy6cquzeGrOv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342890},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"e860de89d2b02c4733e6a73e3010a9495381b465","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.2.1_1787244977441_0.8068093065796973","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@adaptive-ds/google-search-console-client","version":"0.3.0","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.3.0","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"b5904bf1c4ab4cb1ed4ccacbf017111af20c7226","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.3.0.tgz","fileCount":591,"integrity":"sha512-fALlqw3y+Wc3BfjVFryGLpwWtQ+E6DVCH5IxqW3Pe10R8gWNe75JXYB0jK83+ITMYLGD0aRXkuAouqK18CkD8w==","signatures":[{"sig":"MEQCIE54Df5Bq1dCr0I8mqSZX65KJgZ/P7MsIgWmXy7nuAVUAiBtH5LdBNHo6OUc/3RvUJ8/VJhWSzjtDWKwUKO17svQpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":359858},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"a4a80b9e630d14dd0489b55aedb66e0e730ab4f5","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.3.0_1787271496146_0.7322035142885059","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@adaptive-ds/google-search-console-client","version":"0.3.1","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.3.1","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"b8e814f1ea235a9264774de85aa38c5e89cd1f85","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.3.1.tgz","fileCount":591,"integrity":"sha512-LcfzL2YYgZTIMHBZj2/xGnG5i/GsBsxnoy5GiiQdMPa9o1CEBgzLxXR/VBONBoVYxSR4IzzXUElOuI7nGKYb/g==","signatures":[{"sig":"MEUCIQCJiWCCsxI+KceOWyBPAXkfBc1xWxG02egxdZvnXLjPzgIgUym0Zkmby9rjkUAdR/5JGx4x7YbtKgKDu4ReHHcWQAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":360786},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"d752d089230eb4b31c00fec5f8c5eb6579d59063","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.3.1_1787271959619_0.29275211124690537","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@adaptive-ds/google-search-console-client","version":"0.3.2","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.3.2","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"a0bf267732f3804a7b449a2d0aa63f1a4dd44876","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.3.2.tgz","fileCount":591,"integrity":"sha512-Kxx0OfDqs7n/pJMURIPQXnNO7MK15PcUY42DyENTNB73zp3RnGIOGj7JDSLTfcAgPCmnQAMmOYPGAQJtVIOFRw==","signatures":[{"sig":"MEYCIQDWlQr7eaB3R2b5tyWzLtjpxpAYTez1I1WkCf2drahaQwIhAPx87e3bWFiBeULV6Ji+WxsV4Mv2UZscZJixh0Pt8Oj8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":360901},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"c22b8e7ab98102648b83b34fd4b6f6df12c71f58","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.3.2_1787291724714_0.8927587122931264","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@adaptive-ds/google-search-console-client","version":"0.3.3","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.3.3","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"a117156f5b5055653c22a612af5fcde521ffcbbc","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.3.3.tgz","fileCount":591,"integrity":"sha512-Fk24K9eShtP+T1xsyoZ/9A+eDguyKh+QQAmj+ufXYyH3qi93L5DxSXRyfPiaipc0Hn5ehu4zVqjNYjEhFR3DZw==","signatures":[{"sig":"MEUCIAlCGVB/X/YzrbntpGMUjv+DE/0ybvU350HBXPVlgFNBAiEA6K7/wEKu0TZxfXZ0A36bwwIJ8f6v9zodGg32eG6gd0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":361728},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"ff445a40b604f7aef54c1c8d090cddf763df7591","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.3.3_1787293238048_0.0309648986466049","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@adaptive-ds/google-search-console-client","version":"0.3.4","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.3.4","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"2d86f479c35e4468d51d24c5d17e7123e8870c74","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.3.4.tgz","fileCount":655,"integrity":"sha512-grC2OiWJbR4Zq6jAk53uDWWHYYLnB7FZPCNCbMlX9yvOhbzrrf53icgBV1MZGPB27g0v9CF+w1faKgDvbnCKRA==","signatures":[{"sig":"MEUCIQCpyUf++XkbqfF1siYg/QyR74+/C0+btd7vzgtjGVVhVAIgQ3DnbtBcB+qbtEE3Wl3VqWpP/XCE+8wfhSxtGaNWCTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":471040},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"c80787fd412bde470a30a81c60f7d882168fbc43","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.3.4_1787297988217_0.8514299413803781","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@adaptive-ds/google-search-console-client","version":"0.4.0","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.4.0","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"15b7042d62dec6f63d36bc5a06d17ef57676edc1","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.4.0.tgz","fileCount":667,"integrity":"sha512-ok0XM+K+0CkFA8j433CNFx1wg8ZLm2vyf/KP7yDgcpOvXKGlVNGXRRocVEou9SoCL0/FOIkwl4EA8uMIGg0Tpg==","signatures":[{"sig":"MEUCIQCfIDOkWjiNocyhbcOrXSdiTZQlhBH1pPKARQ7UgyM1JwIgfiwqcTnoq1Dw6nibz4aZSxA3GdVFZcKE0vdmx4EY1NM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":498496},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"630b3cfc5214301695b08cba58ca47b8a36260bb","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.4.0_1787301463773_0.7598280837862961","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@adaptive-ds/google-search-console-client","version":"0.4.1","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.4.1","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"6c6710b8738f1bba00e466f8e13804da032d417e","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.4.1.tgz","fileCount":723,"integrity":"sha512-xpQI2IJdjk/Sv487ecYdpUivycbG7CRE0g0+GhNtGBqWm7vUZz6yt4sUgvfUoX7JLcafzCwp3aqkqhp4KEvrbQ==","signatures":[{"sig":"MEUCIQDJeP0pbxxZRcRFralg/paH+/Q5mmbgV7GsMlkkCpa91AIgQvzNmd9rjYe/Xivr4sWlhSY2+fE7/SMmEP3ctn0dU3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561144},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./domainOnboarding":{"types":"./dist/domainOnboarding/index.d.ts","import":"./dist/domainOnboarding/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"36c8a4af104beb6050de3d5fee21ae20202bfd91","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.4.1_1789375842648_0.2213390145188321","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@adaptive-ds/google-search-console-client","version":"0.4.2","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.4.2","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"24768802b9d721522bb06204c5831c654776b196","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.4.2.tgz","fileCount":723,"integrity":"sha512-AGeli+6Si88l856g9NDQ0YXJpK9xYqOm88slloWX1GlWDKS2kH0+bthTq4KGkFiBObIAdLa+HdBUmKSKLMjluA==","signatures":[{"sig":"MEUCIQC+Q2Nz/mRY3ejBPxD9DaY81Rbcm7A2AbunU3vEqoSTmgIgUy3vVjOb8oItqj4eyVL8L7IKAhyrKPCBIHYc62dhz24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":566406},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./domainOnboarding":{"types":"./dist/domainOnboarding/index.d.ts","import":"./dist/domainOnboarding/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"676e6c8001dc9d034933c38d6e3f68fc1aa34f7b","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.4.2_1789389719602_0.26368735534436527","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@adaptive-ds/google-search-console-client","version":"0.4.3","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.4.3","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"505f075ad3b890c7103ac2b2e29633a68af48fe7","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.4.3.tgz","fileCount":727,"integrity":"sha512-dudbiedMVjPGzN2pm+iISTFlLy540BLyokRsnAj9q7Q1h3y63MmgBBaxdchvmqkGM1YzeZcRhuxJbMf1n9jLXg==","signatures":[{"sig":"MEUCIQCITXRTmB6xPyr5uGUbzVbKSFaB8Xg26Rmkj2+L/EY8cgIgPfu+fJlXi9Uinl+JmpgJ67aZToCiASA9A4fFmFtlrXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDuJPtKARYLyqAe14yYmjvhTT5J9snQ79dgrA+c5+rmlQIgGaRl/Z5m43G0IhfHeDbU6c3JVoE24ZIAO+D5bIsjUdg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":575800},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./domainOnboarding":{"types":"./dist/domainOnboarding/index.d.ts","import":"./dist/domainOnboarding/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"9292a5bea864b53c0c3fc6c592ea2111946d6364","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.4.3_1789440134541_0.9348641038946872","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@adaptive-ds/google-search-console-client","version":"0.4.4","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"license":"MIT","_id":"@adaptive-ds/google-search-console-client@0.4.4","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"homepage":"https://github.com/david1gp/google-search-console-client","bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"bin":{"google-search-console":"dist/cli.js"},"dist":{"shasum":"6428667dc53ab0fb07809731781326aff9c039b1","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.4.4.tgz","fileCount":727,"integrity":"sha512-u6zhdTaT4tq/7pImDzqjayLMiiUwqThDAXLs+YUY16EZqT2wAC7OISMK3SsbU8yx1FP8vfsApNBDs4Ny5k3bhQ==","signatures":[{"sig":"MEUCIBRbAfHSoGjF+g9VZI2jHRAD5ChoB/UqvP97fajgXDLCAiEA/PCIunb0K6V4h7Fow6NY2fhjYT47uxmoo2NmPHG9lBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEgxncYlVkVPxasgULcwygRcgJGaTkQ9aOx2zxmktG8pAiA92RjbcNVu+G+0z7rnTfXy4RRppR6YOHscYlQqix2Odg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":577579},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./domainOnboarding":{"types":"./dist/domainOnboarding/index.d.ts","import":"./dist/domainOnboarding/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"d1cb7f1c383a3dc3e3d031d6f40eb48e80c56204","imports":{"#result":"@adaptive-ds/result"},"private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/google-search-console-client_0.4.4_1789451970186_0.7745550902938809","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"_id":"@adaptive-ds/google-search-console-client@0.5.0","bin":{"google-search-console":"dist/cli.js"},"bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"dist":{"shasum":"406f8c4327fbf20dd3d9c4732f6739c2ffef31ca","tarball":"https://registry.npmjs.org/@adaptive-ds/google-search-console-client/-/google-search-console-client-0.5.0.tgz","fileCount":727,"integrity":"sha512-OUMd+cNiNC9YYwEHL40SPLVHqT7YPd0VBZK+snMtZRWvR6LORlKlIIYTMp0s/zbaBkqv+WFgkbzj8/X2gNzHOQ==","signatures":[{"sig":"MEQCIFAlwb3GzXRfhpXnrNC6BQFfir/RvrGZC0gA2lxSOPJvAiA6RICCuJwLGTOSYBI0rJTUxwoUTseildqtopbnv6+Qxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICan8hhKYUEvBOtrbD6c2+2ukREv+hDDXZWE+kKezF2NAiEAzWF6sxFMTh4TB/Tt6nIZA8KUcBBm2DKJSLO+/2dJ9KY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaptive-ds%2fgoogle-search-console-client@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":575972},"main":"dist/index.js","name":"@adaptive-ds/google-search-console-client","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./sites":{"types":"./dist/sites/index.d.ts","import":"./dist/sites/index.js"},"./sitemaps":{"types":"./dist/sitemaps/index.d.ts","import":"./dist/sitemaps/index.js"},"./urlInspection":{"types":"./dist/urlInspection/index.d.ts","import":"./dist/urlInspection/index.js"},"./searchAnalytics":{"types":"./dist/searchAnalytics/index.d.ts","import":"./dist/searchAnalytics/index.js"},"./domainOnboarding":{"types":"./dist/domainOnboarding/index.d.ts","import":"./dist/domainOnboarding/index.js"},"./mobileFriendlyTest":{"types":"./dist/mobileFriendlyTest/index.d.ts","import":"./dist/mobileFriendlyTest/index.js"}},"gitHead":"29e3d7b81867e3457c710fa4d4d5243b87356cfb","imports":{"#result":"@adaptive-ds/result"},"license":"MIT","private":false,"scripts":{"dev":"bun test --watch","test":"bun run build && bun test","build":"rm -rf ./dist && bun tsc -p ./tsconfig.lib.json && chmod +x ./dist/cli.js","check":"bun tsc --noEmit","clean":"rm -rf ./dist","reset":"rm -rf ./node_modules","format":"biome format --write src test package.json tsconfig.json tsconfig.lib.json biome.json","test:w":"bun test --watch","update":"bun update","release":"bash ./ops/release.sh"},"version":"0.5.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:437c0f49-5939-45e3-a059-1c0147576045"}},"homepage":"https://github.com/david1gp/google-search-console-client","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"prettier":{"semi":false,"printWidth":120,"trailingComma":"all"},"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"_npmVersion":"12.0.2","description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","directories":{},"maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"@stricli/core":"^1.2.5"},"_hasShrinkwrap":false,"devDependencies":{"valibot":"^1.2.0","@types/bun":"^1.3.13","typescript":"^6.0.3","@biomejs/biome":"^2.5.2","@adaptive-ds/result":"^0.6.0"},"peerDependencies":{"valibot":"^1.2.0","@adaptive-ds/result":"^0.6.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/google-search-console-client_0.5.0_1789452979948_0.7294670813348054"}}},"time":{"created":"2026-08-20T05:56:03.148Z","modified":"2026-09-15T06:16:20.393Z","0.1.0":"2026-08-20T05:56:03.538Z","0.2.0":"2026-08-20T12:58:10.161Z","0.2.1":"2026-08-20T16:56:17.607Z","0.3.0":"2026-08-21T00:18:16.366Z","0.3.1":"2026-08-21T00:25:59.801Z","0.3.2":"2026-08-21T05:55:24.918Z","0.3.3":"2026-08-21T06:20:38.201Z","0.3.4":"2026-08-21T07:39:48.378Z","0.4.0":"2026-08-21T08:37:43.958Z","0.4.1":"2026-09-14T08:50:42.792Z","0.4.2":"2026-09-14T12:41:59.739Z","0.4.3":"2026-09-15T02:42:14.641Z","0.4.4":"2026-09-15T05:59:30.279Z","0.5.0":"2026-09-15T06:16:20.033Z"},"bugs":{"url":"https://github.com/david1gp/google-search-console-client/issues"},"license":"MIT","homepage":"https://github.com/david1gp/google-search-console-client","keywords":["google-search-console","gsc","search-console","seo","google-api","api-client","typescript","result","valibot"],"repository":{"url":"git+https://github.com/david1gp/google-search-console-client.git","type":"git"},"description":"TypeScript Result-based API client for Google Search Console API. Type-safe, Valibot-validated, and modern.","maintainers":[{"name":"david1gp","email":"david1gruppenplan@gmail.com"}],"readme":"# @adaptive-ds/google-search-console-client\n\nValidated TypeScript client and JSON CLI for the **Google Search Console API**. Library operations return `Result<T>` and validate inputs and responses with Valibot.\n\n## Installation\n\n```bash\nbun add @adaptive-ds/google-search-console-client @adaptive-ds/result valibot\n```\n\n```bash\nnpm install @adaptive-ds/google-search-console-client @adaptive-ds/result valibot\n```\n\nThe package also installs the `google-search-console` executable and its CLI runtime dependency.\n\n## Authentication\n\nThe library accepts separate credentials for Google's OAuth and API-key authentication. OAuth can use either a static bearer token or a refresh-token configuration:\n\n- `accessToken`: OAuth 2.0 bearer token for Sites, Sitemaps, Search Analytics, URL Inspection, and Mobile-Friendly Testing.\n- `oauth`: refresh-token configuration with `clientId`, `refreshToken`, optional `clientSecret`, and optional `tokenUrl`.\n- `mobileFriendlyApiKey`: API key for Mobile-Friendly Testing. If both Mobile-Friendly credentials are configured, the API key is selected.\n\n```typescript\nimport {\n  googleSearchConsoleClientCreate,\n  searchAnalyticsQuery,\n} from \"@adaptive-ds/google-search-console-client\"\n\nconst clientResult = googleSearchConsoleClientCreate({\n  accessToken: process.env.GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN,\n})\n\nif (!clientResult.success) {\n  console.error(clientResult.errorMessage)\n  process.exit(1)\n}\n\nconst result = await searchAnalyticsQuery(clientResult.data, {\n  siteUrl: \"https://example.com/\",\n  startDate: \"2026-08-01\",\n  endDate: \"2026-08-15\",\n  dimensions: [\"query\", \"page\"],\n  rowLimit: 10,\n})\n\nif (!result.success) {\n  console.error(`Error (${result.op}): ${result.errorMessage}`)\n  process.exit(1)\n}\n\nconsole.log(result.data.rows)\n```\n\nFor a non-interactive refresh-token client, configure OAuth instead of `accessToken`:\n\n```typescript\nimport { googleSearchConsoleClientCreate } from \"@adaptive-ds/google-search-console-client\"\n\nconst requiredEnvironmentVariable = (name: string): string => {\n  const value = process.env[name]\n  if (!value) throw new Error(`Missing required environment variable: ${name}`)\n  return value\n}\n\nconst clientResult = googleSearchConsoleClientCreate({\n  oauth: {\n    clientId: requiredEnvironmentVariable(\"GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_ID\"),\n    clientSecret: requiredEnvironmentVariable(\"GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_SECRET\"),\n    refreshToken: requiredEnvironmentVariable(\"GOOGLE_SEARCH_CONSOLE_OAUTH_REFRESH_TOKEN\"),\n    // Optional; defaults to https://oauth2.googleapis.com/token.\n    tokenUrl: process.env.GOOGLE_SEARCH_CONSOLE_OAUTH_TOKEN_URL,\n  },\n})\n```\n\n`GoogleSearchConsoleOAuthConfig`, `GoogleSearchConsoleOAuthConfigInput`, and `googleSearchConsoleOAuthConfigSchema` are exported from the package. `clientId` and `refreshToken` are required; `clientSecret` and `tokenUrl` are optional. The library does not run an interactive authorization flow, request consent, or persist tokens. The refresh token must already have been obtained for the Google account and API scopes needed by the application.\n\nWhen `oauth` is used, the client exchanges the refresh token for a bearer token automatically. The resulting access token is cached only in memory on that client, with a 60-second expiry margin; concurrent requests share one refresh. If an OAuth-backed request receives `401`, the cached token is invalidated, refreshed, and the request is retried once. Static `accessToken` takes precedence over `oauth` and therefore is not refreshed or retried by this mechanism. Mobile-Friendly API-key authentication remains separate.\n\n## CLI\n\nAfter installation, credentials can be supplied by flags, environment variables, or a dotenv-style file:\n\n```bash\nexport GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN=\"oauth-token\"\ngoogle-search-console sites list\ngoogle-search-console search-analytics query https://example.com/ 2026-08-01 2026-08-15 --dimensions query,page\n```\n\nCredential and configuration options:\n\n- `--access-token`, `GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN`, or `GOOGLE_ACCESS_TOKEN`\n- `--mobile-friendly-api-key` (or compatibility alias `--api-key`), `GOOGLE_SEARCH_CONSOLE_MOBILE_FRIENDLY_API_KEY`, `GOOGLE_SEARCH_CONSOLE_API_KEY`, or `GOOGLE_API_KEY`\n- `--env-file <path>` to load either credential from a dotenv-style file\n- `CLOUDFLARE_API_TOKEN` for `sites onboard` (also read from `--env-file`)\n- `--base-url <url>` / `GOOGLE_SEARCH_CONSOLE_BASE_URL` and `--url-inspection-base-url <url>` / `GOOGLE_SEARCH_CONSOLE_URL_INSPECTION_BASE_URL` for endpoint testing\n- `GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_ID`, `GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_SECRET`, `GOOGLE_SEARCH_CONSOLE_OAUTH_REFRESH_TOKEN`, and optional `GOOGLE_SEARCH_CONSOLE_OAUTH_TOKEN_URL` for refresh-token OAuth\n\nOAuth variables can be supplied directly in the process environment or with `--env-file <path>`. The dotenv parser accepts `KEY=value`, optional `export`, single- or double-quoted values, comments, and blank lines. For OAuth fields, precedence is direct environment, then `--env-file`, then nested `oauth` JSON values, then flat Google authorized-user JSON values. A direct environment value always wins over a dotenv value.\n\n### Authorize with `auth login`\n\n`google-search-console auth login` runs an OAuth authorization-code flow with PKCE and requests exactly the `https://www.googleapis.com/auth/webmasters` scope by default. It saves the resulting refresh credentials to the selected credential profile. Use `--onboarding-scope` when the profile will run domain onboarding; this additionally requests `https://www.googleapis.com/auth/siteverification.verify_only`. Without `--profile`, it uses the implicit `default` profile. A desktop OAuth client ID is required; pass it with `--client-id`, `GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_ID`, an env file, or an existing credentials file. A desktop client secret is optional because desktop clients may be public; if supplied, use `--client-secret`, `GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_SECRET`, an env file, or an existing credentials file. PKCE is used with or without a secret.\n\nIn normal mode, the command starts a loopback listener on `127.0.0.1`, opens Google's authorization page with the platform browser launcher, and waits for the callback. It does not read stdin:\n\n```bash\nexport GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_ID=\"your-desktop-client-id\"\ngoogle-search-console auth login --profile contentoren --onboarding-scope\n```\n\nOn success, JSON is written to stdout:\n\n```json\n{\"success\":true,\"data\":{\"credentialsFile\":\"/home/me/.config/google-search-console/credentials.json\",\"status\":\"authorized\"}}\n```\n\nBy default, `auth login` runs headlessly and prints human-readable instructions with the authorization URL:\n\n```bash\ngoogle-search-console auth login --onboarding-scope --profile contentoren\n```\n\nThe output includes the full authorization URL. Open it in any browser; after authorization, Google will show a failed loopback redirect. Copy the complete URL from the address bar, including its query string, and paste it as the callback URL argument in the emitted completion command:\n\n```bash\ngoogle-search-console auth login --profile contentoren 'PASTE_COMPLETE_LOOPBACK_REDIRECT_URL'\n```\n\nThe callback URL contains the authorization code and state; treat it as sensitive and do not publish it. A successful completion prints `{\"status\":\"authorized\"}` JSON. The authorization grant must resolve to the requested scope set (Webmasters by default, or Webmasters plus `siteverification.verify_only` with `--onboarding-scope`); credentials are not saved when the callback reports a different scope or the token response omits or differs from it.\n\nUse `--agent` when automated scripts or subagents need a pending JSON handoff instead of human text.\n\nUse `--browser` on graphical desktop environments to open your default browser automatically and listen for the loopback redirect on localhost.\n\n### Credential profiles and storage\n\nThe CLI uses one profile for each normal command. Omit `--profile` to use `default`, or select a named profile with `--profile <name>`:\n\n```bash\ngoogle-search-console auth login --profile work\ngoogle-search-console sites list --profile work\n```\n\nProfile names are 1–64 characters, start with a letter or number, and may contain only letters, numbers, `.`, `_`, and `-`. They cannot contain path separators or other path-like values.\n\nThe exact profile storage paths are:\n\n- `default` credentials: `$HOME/.config/google-search-console/credentials.json`\n- named credentials: `$HOME/.config/google-search-console/profiles/<name>/credentials.json`\n- `default` pending OAuth state: `$HOME/.config/google-search-console/.oauth-pending.json`\n- named pending OAuth state: `$HOME/.config/google-search-console/profiles/<name>/.oauth-pending.json`\n\nOn Windows, `$HOME` means `%USERPROFILE%` when `HOME` is not set. OAuth credential and pending-state files are written with mode `600`, and their containing directories with mode `700` where supported.\n\nThe existing `credentials.json` behavior remains compatible. For `auth login`, `--credentials-file <path>` takes precedence over `GOOGLE_SEARCH_CONSOLE_CREDENTIALS_FILE`, which takes precedence over the profile-derived path. The explicit path is also used by the generated callback completion command. Set `GOOGLE_SEARCH_CONSOLE_CREDENTIALS_FILE` as a direct environment variable to use a different JSON file for other CLI commands as well; `--env-file` does not select the credentials-file path. A missing implicit `default` file is allowed when credentials are supplied by flags or environment variables; regular commands require a readable valid credentials file for a selected named profile, while `auth login` can create a missing profile file. The file may contain these keys:\n\n```json\n{\n  \"accessToken\": \"oauth-token\",\n  \"mobileFriendlyApiKey\": \"api-key\",\n  \"baseUrl\": \"https://searchconsole.googleapis.com\",\n  \"urlInspectionBaseUrl\": \"https://searchconsole.googleapis.com\"\n}\n```\n\nFor refresh-token OAuth, the credentials file supports either nested camelCase fields:\n\n```json\n{\n  \"oauth\": {\n    \"clientId\": \"<client-id>\",\n    \"clientSecret\": \"<client-secret>\",\n    \"refreshToken\": \"<refresh-token>\",\n    \"tokenUrl\": \"https://oauth2.googleapis.com/token\"\n  }\n}\n```\n\nor Google's authorized-user field names at the file root:\n\n```json\n{\n  \"client_id\": \"<client-id>\",\n  \"client_secret\": \"<client-secret>\",\n  \"refresh_token\": \"<refresh-token>\",\n  \"token_uri\": \"https://oauth2.googleapis.com/token\"\n}\n```\n\n`tokenUrl`/`token_uri` is optional and defaults to `https://oauth2.googleapis.com/token`. A complete OAuth configuration requires `clientId`/`client_id` and `refreshToken`/`refresh_token`; `clientSecret`/`client_secret` is optional for public desktop clients. The file may also contain `accessToken`, `mobileFriendlyApiKey`, `baseUrl`, and `urlInspectionBaseUrl`. Overall CLI precedence is explicit flags, direct environment variables, `--env-file` values, credentials JSON values, then schema defaults where applicable; static `accessToken` still wins over refresh OAuth at request time. For regular commands, a default file may be absent when another credential source is present, but an explicitly selected file or named profile must be readable and contain valid JSON. `auth login` may create its selected target file.\n\nOnly `sites list` supports explicit aggregation across profiles:\n\n```bash\ngoogle-search-console sites list --all-profiles\n```\n\nThis discovers `default` (when its credentials file exists) and named profile directories, queries them in default-first then alphabetical order, and adds `profile` to every returned `siteEntry` while retaining each API response's `siteUrl` and `permissionLevel`. For example, successful JSON is emitted on one line in this shape:\n\n```json\n{\"success\":true,\"data\":{\"siteEntry\":[{\"siteUrl\":\"sc-domain:example.com\",\"permissionLevel\":\"siteOwner\",\"profile\":\"default\"},{\"siteUrl\":\"https://example.net/\",\"permissionLevel\":\"siteFullUser\",\"profile\":\"work\"}]}}\n```\n\n`--all-profiles` cannot be combined with `--profile` or `GOOGLE_SEARCH_CONSOLE_CREDENTIALS_FILE`. It fails if no profiles are configured or if any profile cannot be loaded or queried. Without `--all-profiles`, `sites list` keeps its existing response shape and uses exactly one profile; for example, `google-search-console sites list --profile work` still emits `{\"success\":true,\"data\":{\"siteEntry\":[{\"siteUrl\":\"https://example.net/\",\"permissionLevel\":\"siteFullUser\"}]}}` without adding a `profile` property.\n\n### Domain onboarding\n\n`sites onboard` obtains a Google DNS TXT verification token, preserves unrelated Cloudflare DNS records, ensures the exact TXT record, retries verification, and adds the `sc-domain:<domain>` property. It requires `CLOUDFLARE_API_TOKEN` in the environment or in `--env-file` and uses the selected Google profile:\n\n```bash\nexport CLOUDFLARE_API_TOKEN=\"your-cloudflare-api-token\"\ngoogle-search-console sites onboard eventoren.de --profile contentoren\n```\n\nThe command performs live Cloudflare and Google mutations. First authorize the profile with `auth login --onboarding-scope`; existing profiles authorized without that opt-in retain their existing scope behavior.\n\nThe same onboarding operation is available from TypeScript:\n\n```typescript\nimport {\n  googleSearchConsoleClientCreate,\n  googleSearchConsoleDomainOnboard,\n} from \"@adaptive-ds/google-search-console-client\"\n\nconst clientResult = googleSearchConsoleClientCreate({\n  oauth: {\n    clientId: process.env.GOOGLE_SEARCH_CONSOLE_OAUTH_CLIENT_ID!,\n    refreshToken: process.env.GOOGLE_SEARCH_CONSOLE_OAUTH_REFRESH_TOKEN!,\n  },\n})\nif (!clientResult.success) throw new Error(clientResult.errorMessage)\n\nconst result = await googleSearchConsoleDomainOnboard(clientResult.data, \"eventoren.de\", {\n  cloudflareApiToken: process.env.CLOUDFLARE_API_TOKEN!,\n})\nif (!result.success) throw new Error(`${result.op}: ${result.errorMessage}`)\nconsole.log(result.data)\n```\n\n### Create authorized-user JSON safely\n\nA Google installed-app client-secrets download is not itself a credentials file accepted by this package: its values are normally under an `installed` object. To combine it with an existing refresh token without placing secrets in shell history or output, keep the source files private and run a local script that reads them:\n\n1. Save the downloaded client-secrets JSON and a one-line refresh-token file in a protected location. Do not commit either file.\n2. Use `umask 077`, make the configuration directory private (`chmod 700`), and make each secret file private (`chmod 600`).\n3. Extract `installed.client_id`, `installed.client_secret`, and, when present, `installed.token_uri`; combine them with the refresh token into the flat authorized-user shape above. The following writes no secret values to stdout:\n\n```bash\numask 077\npython3 - <<'PY'\nimport json\nimport os\nfrom pathlib import Path\n\nclient_secrets_path = Path(\"/secure/path/client-secret.json\")\nrefresh_token_path = Path(\"/secure/path/refresh-token.txt\")\noutput_path = Path.home() / \".config/google-search-console/credentials.json\"\n\ninstalled = json.loads(client_secrets_path.read_text())[\"installed\"]\nrefresh_token = refresh_token_path.read_text().strip()\ncredentials = {\n    \"client_id\": installed[\"client_id\"],\n    \"client_secret\": installed[\"client_secret\"],\n    \"refresh_token\": refresh_token,\n}\nif installed.get(\"token_uri\") is not None:\n    credentials[\"token_uri\"] = installed[\"token_uri\"]\n\noutput_path.parent.mkdir(mode=0o700, parents=True, exist_ok=True)\nos.chmod(output_path.parent, 0o700)\nfile_descriptor = os.open(output_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600)\nwith os.fdopen(file_descriptor, \"w\") as output_file:\n    json.dump(credentials, output_file, indent=2)\n    output_file.write(\"\\n\")\nos.chmod(output_path, 0o600)\nPY\n```\n\nReplace only the path placeholders; never paste credential values into the script. Verify the resulting file has mode `600`, then remove temporary copies when no longer needed. The default file is suitable for the CLI; the library itself receives the `oauth` object directly and does not read this file.\n\n`--env-file` is separate from the credentials JSON file: it parses dotenv-style `KEY=value` entries for environment-variable configuration and does not select or replace the JSON file. `GOOGLE_SEARCH_CONSOLE_CREDENTIALS_FILE` must be set as a direct environment variable to override the JSON file location.\n\nCommands:\n\n```text\ngoogle-search-console sites list\ngoogle-search-console sites get <site-url>\ngoogle-search-console sites add <site-url>\ngoogle-search-console sites delete <site-url>\ngoogle-search-console sites onboard <domain> --profile <name>\ngoogle-search-console sitemaps list <site-url> [sitemap-index]\ngoogle-search-console sitemaps get <site-url> <sitemap-url>\ngoogle-search-console sitemaps submit <site-url> <sitemap-url>\ngoogle-search-console sitemaps delete <site-url> <sitemap-url>\ngoogle-search-console search-analytics query <site-url> <start-date> <end-date>\ngoogle-search-console url-inspection inspect <inspection-url> <site-url>\ngoogle-search-console mobile-friendly-test run <url>\ngoogle-search-console auth login [--agent] [--browser] [--client-id client-id] [--client-secret client-secret] [--credentials-file path] [--env-file path] [--onboarding-scope] [--profile name] [<callback-url>]\ngoogle-search-console sites list --all-profiles\n```\n\nUse `--help` on the executable or command for all optional flags. Successful results are JSON on stdout; `ResultErr` values are JSON on stderr and exit with status `1`.\n\n## API routes\n\nAll routes use `https://searchconsole.googleapis.com` by default. Site and sitemap URLs are encoded by the client.\n\n| Library operation | Method and route | Auth |\n| --- | --- | --- |\n| `sitesList`, `siteGet`, `siteAdd`, `siteDelete` | `GET /webmasters/v3/sites`, `GET/PUT/DELETE /webmasters/v3/sites/{siteUrl}` | OAuth |\n| `sitemapsList` | `GET /webmasters/v3/sites/{siteUrl}/sitemaps` (`sitemapIndex` is optional) | OAuth |\n| `sitemapGet`, `sitemapSubmit`, `sitemapDelete` | `GET/PUT/DELETE /webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}` | OAuth |\n| `searchAnalyticsQuery` | `POST /webmasters/v3/sites/{siteUrl}/searchAnalytics/query` | OAuth |\n| `urlInspectionIndexInspect` | `POST /v1/urlInspection/index:inspect` | OAuth |\n| `mobileFriendlyTestRun` | `POST /v1/urlTestingTools/mobileFriendlyTest:run` (or `?key={apiKey}`) | OAuth or API key |\n\nThe root module exports the client, endpoint functions, schemas, and derived types. Endpoint-specific modules are also available under `sites/`, `sitemaps/`, `searchAnalytics/`, `urlInspection/`, and `mobileFriendlyTest/`.\n\n## Official references\n\n- [Sites REST reference](https://developers.google.com/webmaster-tools/v1/sites)\n- [Search Analytics query REST reference](https://developers.google.com/webmaster-tools/v1/searchanalytics/query)\n- [Search Console v1 discovery schema](https://searchconsole.googleapis.com/$discovery/rest?version=v1)\n\n## Sites and Search Analytics schemas\n\nSites and Search Analytics schemas and types are exported from the package root and their endpoint modules. Validate a request with the exported schema and keep wire enum values lower/camel-case:\n\n```typescript\nimport * as v from \"valibot\"\nimport {\n  searchAnalyticsQueryRequestSchema,\n  type SearchAnalyticsQueryRequestInput,\n  type SearchAnalyticsQueryRequest,\n} from \"@adaptive-ds/google-search-console-client/searchAnalytics\"\n\nconst request: SearchAnalyticsQueryRequestInput = {\n  siteUrl: \"https://example.com/\",\n  startDate: \"2026-08-01\",\n  endDate: \"2026-08-15\",\n  dimensions: [\"query\", \"page\"],\n  type: \"web\",\n  aggregationType: \"byPage\",\n  dataState: \"final\",\n}\n\nconst validation = v.safeParse(searchAnalyticsQueryRequestSchema, request)\nif (validation.success) {\n  const parsedRequest: SearchAnalyticsQueryRequest = validation.output\n  void parsedRequest\n}\n// `searchType` is deprecated but remains accepted as an input alias:\nconst compatibilityRequest: SearchAnalyticsQueryRequestInput = {\n  siteUrl: \"https://example.com/\",\n  startDate: \"2026-08-01\",\n  endDate: \"2026-08-15\",\n  searchType: \"web\",\n}\nconst compatibilityValidation = v.safeParse(searchAnalyticsQueryRequestSchema, compatibilityRequest)\n// Parsed/output JSON contains only `type: \"web\"`; conflicting `type` and `searchType` values are rejected locally.\n// If neither is supplied, `type` is omitted and Google defaults to web.\n```\n\n`SearchAnalyticsQueryRequest` describes the parsed canonical request shape. `SearchAnalyticsQueryRequestInput` describes the\ninput accepted by `searchAnalyticsQuery`, including the deprecated `searchType` compatibility alias, which is normalized\nbefore sending the request.\n\nThe Sites response contains `siteEntry` values with the property URL and permission level. Google may omit `siteEntry` for an empty collection:\n\n```typescript\nimport * as v from \"valibot\"\nimport {\n  sitesListResponseSchema,\n  type SitesListResponse,\n} from \"@adaptive-ds/google-search-console-client/sites\"\n\nconst response: SitesListResponse = {\n  siteEntry: [{ siteUrl: \"sc-domain:example.com\", permissionLevel: \"siteOwner\" }],\n}\nconst validated = v.safeParse(sitesListResponseSchema, response)\nconst emptyResponse: SitesListResponse = {}\n```\n\nSearch Analytics rows always contain clicks, impressions, and CTR. `keys` is optional: it is omitted for a dimensionless query, and otherwise follows the requested dimension order. `position` is optional because Discover and Google News reports may omit it. Response metadata uses camelCase fields:\n\n```typescript\nimport type { SearchAnalyticsQueryResponse } from \"@adaptive-ds/google-search-console-client/searchAnalytics\"\n\nconst analyticsResponse: SearchAnalyticsQueryResponse = {\n  rows: [\n    { keys: [\"shoes\", \"US\"], clicks: 12, impressions: 240, ctr: 0.05, position: 3.2 },\n  ],\n  responseAggregationType: \"byPage\",\n  metadata: {\n    firstIncompleteDate: \"2026-08-14\",\n    firstIncompleteHour: \"2026-08-14T12:00:00Z\",\n  },\n}\n\n// Request dimensions: [\"query\", \"country\"] -> keys: [\"shoes\", \"US\"]\nconst dimensionlessResponse: SearchAnalyticsQueryResponse = {\n  rows: [{ clicks: 12, impressions: 240, ctr: 0.05 }],\n}\nconst discoverOrGoogleNewsResponse: SearchAnalyticsQueryResponse = {\n  rows: [{ keys: [\"shoes\"], clicks: 12, impressions: 240, ctr: 0.05 }],\n}\nconst noDataResponse: SearchAnalyticsQueryResponse = {}\n```\n\n## Development\n\n- `bun run format` - Format source and tests with Biome\n- `bun run check` - Type-check source and tests\n- `bun run test` - Build and run tests\n- `bun run build` - Compile declarations and ESM output to `dist/`\n- `bun run release` - Generate a changelog and GitHub release\n\n## License\n\n[MIT](./LICENSE) © [David Siewert](https://github.com/david1gp)\n","readmeFilename":"README.md"}