{"_id":"shop-search","_rev":"45-d13703e08a3e7b41676773c21ea989a3","name":"shop-search","dist-tags":{"latest":"3.8.1"},"versions":{"1.0.0":{"name":"shop-search","version":"1.0.0","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.0.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"0f63ecc599effd1dfe451caea7afce77b779af75","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.0.0.tgz","fileCount":7,"integrity":"sha512-PRBOdFZJL0NeSfiaipxXkW4/7Z+lwomSY6dZGx5rJhiSRD6pkFj6UvZ2BBDqDymv+A4kMOtYm/Qfg64BOLwO3A==","signatures":[{"sig":"MEUCIQDJnxxHTdBEyv3fulsMIlEzZxH+j6YXUQ7p7BFKtfc0VAIgK270echf30TDQmQBWvCJG+sfAWtHct5zQoWSQyy+h4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107066},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"dabe92b9584bfb1579b130f7fbbccd39a0272fb3","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.0.0_1747244612288_0.19777837273187382","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.0.1":{"name":"shop-search","version":"1.0.1","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.0.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"9004f891f7366aff2e3b76a884c0bb0a780533a4","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.0.1.tgz","fileCount":8,"integrity":"sha512-NDnLMA/CD9MBFxm1cV5OPesZ540H9LgRhHKgOynTj2nx1RdKUfGjtmKuaCkj2ExLKDdJLSutKsBWSyYQUQ7ZLw==","signatures":[{"sig":"MEYCIQCRWqilp6vT5vXFpO4ZVntDwRGrbZ+K7QwfL/xtj21wDgIhAO9ukF4MriXRNNA962EHT/u+rvzpeq2MnF+K5FCL9maj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108657},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"76c5a8bdf7223d930ae183ef55d88b6a7cf82285","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.0.1_1747246086744_0.7095054371022631","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.0.2":{"name":"shop-search","version":"1.0.2","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.0.2","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"ee85e9a11645e20099be6be7c14b360685a18f9b","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.0.2.tgz","fileCount":8,"integrity":"sha512-gd1a60x9D1UxTdE75fXMDNRLIgLH6wr7A+Wh30L0iCsL8N1C6cRn9g5vB2nltK1XZJ3h0JM4f7ETJv8hhzOL5A==","signatures":[{"sig":"MEYCIQDDRe9zJgz25Zkd8DhG3vydZ90Vl9KgpRRn5FWjVkCiTgIhAIbNrCzlfL0A7dshxOs/5jxy4v5KjTFcKGWHz+ClcK8E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110749},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e783e17e32a36cb389e52a337913cf799dd76e0c","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.0.2_1747379065078_0.47652098125600584","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.0.3":{"name":"shop-search","version":"1.0.3","keywords":["shop-search"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"ISC","_id":"shop-search@1.0.3","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"ecef76f24fe578fd3ffbe2e2ad47968fbc8b0e4b","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.0.3.tgz","fileCount":8,"integrity":"sha512-inJKemz0KwAoVMjw5H14CKj821sTR9xkiViOGovCDYb1q/iym/Mzrya40AshavOLMwfvMOeOMEiQzpJlEPtfFw==","signatures":[{"sig":"MEUCIBUp+ZAPpw8ym34jLr2CuO9drrUWH2ngKLQRHb6m1ruVAiEAhNjrz6EVAiZn0EC9Lf2Y48k6rl/c7EsXjVN5JAHv+2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144995},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"ecef76f24fe578fd3ffbe2e2ad47968fbc8b0e4b","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","actor":{"name":"tvayam.tech","type":"user","email":"peppyhop@gmail.com"},"email":"peppyhop@gmail.com"},"_integrity":"sha512-inJKemz0KwAoVMjw5H14CKj821sTR9xkiViOGovCDYb1q/iym/Mzrya40AshavOLMwfvMOeOMEiQzpJlEPtfFw==","_npmVersion":"10.8.3","description":"","directories":{},"_nodeVersion":"22.6.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.0.3_1750646217670_0.05549741500764016","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.0.4":{"name":"shop-search","version":"1.0.4","keywords":["shop-search"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"ISC","_id":"shop-search@1.0.4","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"cb6fa958fd5b975f1fe978b2e47836250af0579e","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.0.4.tgz","fileCount":8,"integrity":"sha512-IeqoTDQiC7qOOMassc/whI4S1fSqtNgXfeLudZH9rJ+o7NoMJ34iYbOn5K1Lj36vX2RpBGuH+OpRb8yjM0lfDw==","signatures":[{"sig":"MEUCIB2dEN+bEko6wElCRWs4kMvoWDG0v3hiL5Pss48P78FnAiEAgNYR0jkiOoqeepglwtQQ/vbghl0REjp2g78xUbLnFnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146152},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"cb6fa958fd5b975f1fe978b2e47836250af0579e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","actor":{"name":"tvayam.tech","type":"user","email":"peppyhop@gmail.com"},"email":"peppyhop@gmail.com"},"_integrity":"sha512-IeqoTDQiC7qOOMassc/whI4S1fSqtNgXfeLudZH9rJ+o7NoMJ34iYbOn5K1Lj36vX2RpBGuH+OpRb8yjM0lfDw==","_npmVersion":"10.8.3","description":"","directories":{},"_nodeVersion":"22.6.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.0.4_1750646440185_0.6889030124293551","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.1.0":{"name":"shop-search","version":"1.1.0","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.1.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"c7f1b1dc6c4999b0d27407d03f928901736cc3a2","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.1.0.tgz","fileCount":8,"integrity":"sha512-1nXxK9JJSu8XSQcger8oagUQXPNMJHkZ7yPZaaBthyaP4f8q8J3OC9KKEMvB9O+V1fbmrU+G/4fBmtSpGniQiw==","signatures":[{"sig":"MEYCIQCPWvQexv/40gnCNl/6IVjJwcDmDqSn54+97O50DLUFcQIhAJ0wfRbQsjPR3K2OAnEIzEgslNaxllIwn4vQWgdzzshT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171776},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.1.0_1752230092446_0.41318779442210896","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.1.1":{"name":"shop-search","version":"1.1.1","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.1.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"05172d773e5f41a88f751482e0ae4f1f9fcb591b","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.1.1.tgz","fileCount":8,"integrity":"sha512-TKF17G1HDZs7I0atmTXuntt6NSqtnzCiyvAQMS9qX9iahnW1VXmfcPkM7QkuKWXxI0aLoiXGexGeTw3U8fTc+w==","signatures":[{"sig":"MEYCIQC0d5my4MgrX6+M4p3y8KthQP/BQCQQrS0UNkOjNyCLQwIhAMCdvh71eNuRs1qQwtbkjoUnOYq3m/x9RhN6vpsXxuwT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190927},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.1.1_1752240446969_0.9543257915173469","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.1.2":{"name":"shop-search","version":"1.1.2","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.1.2","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"da4c59d6e68cfd862ff07024b4ace4b6bf374538","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.1.2.tgz","fileCount":8,"integrity":"sha512-QLlIAlRud9x5JDAyWkj8PayAT9IBUURgLz/Yii80kcmkx9UGrEhsThWVpS/zYP4NNNDhAYaKeUfdTTKUApvIKA==","signatures":[{"sig":"MEQCIG9/KjPHaTCO2xG3qEHqIACcosmXA4sO/S4NuXxzyGMTAiBEN68rnLyaZEHoxF0nSZWUCbd6WtGvt2xXHQC6oBdIHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190774},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.1.2_1752240630553_0.673012256869566","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.2.0":{"name":"shop-search","version":"1.2.0","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.2.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"aa982831ef71ffee5d02584b955b212a7c09e671","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.2.0.tgz","fileCount":8,"integrity":"sha512-1q5FxO4WmIrj6nVeq4BSd77oKg9GZLDugdAHAy4IQA9BaqbKf6VwEHFmfL4HwLsw6X9fvbm+rhxcdZR2xMiycA==","signatures":[{"sig":"MEUCIFfIgJogcU4N8JZbtZJuAgpQymBh5W48xSATBSscXsHLAiEAu+DNVXkc06s8+Z4a5k9EywF+WKC3uLjL+KOLO23xOIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190806},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.2.0_1757757044544_0.4638852387522743","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.3.0":{"name":"shop-search","version":"1.3.0","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.3.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"394ba9dea5b8a1560717ef04b444e10e1ba73377","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.3.0.tgz","fileCount":8,"integrity":"sha512-Glza9yehsXq0/eHHKZePU9subJT4HFA3qLPjLP7o7Myt49BbEPzUvFs6e1ajGW5NYPS4D/q7jMVi7AudAPdswg==","signatures":[{"sig":"MEUCIQCl+i5u5R22ry78Uk2JcBirgZVEHcNKTgy/jEMmRkvveAIgRrunxg8YFh2p4QYHTWRoeIbDM1ipF8OlGqEbh6oScUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190856},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.3.0_1757759389611_0.039818131008199975","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.4.0":{"name":"shop-search","version":"1.4.0","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.4.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"b30e6f62928335bf904f976b749c064de66f1cb0","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.4.0.tgz","fileCount":8,"integrity":"sha512-r+cB7bo9YOTNTmMTKBl7qBs6lwOsfwDfqxjnV5myIm2XACHJZYccCgce9e3C0ZQ4R7DlVsLyHRrGPhWReRkagQ==","signatures":[{"sig":"MEUCIG9bS3RWuH3yNq6eTAaF4Aznb0FgygMFlufK7zbvXEECAiEAs2mApW0iXv7ANQidwmwhSumQ4JFdZTVJ44OYQMqx834=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192763},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.4.0_1757760295617_0.14366974445142033","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.4.1":{"name":"shop-search","version":"1.4.1","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.4.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"da8fa4a3d3617cba948c4f3dff6df02f23e4b370","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.4.1.tgz","fileCount":8,"integrity":"sha512-muvS53EI9kAs5r3o3tuIIZlx8ee7qa10NUGxZb5AieOzw20ju583XbtfFD+duGIq96UAcB4IgTjC4OigFJLWcg==","signatures":[{"sig":"MEQCIHTZDraZz+qpMCcb6WjYbwPN/K3WBE+BpbBS4VbSIX5UAiAOpC/zQCWL2obALlfV+2EKUd7nvKMxHk0fCMnI8KK0XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192871},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.4.1_1757761067117_0.6990560356094906","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.4.2":{"name":"shop-search","version":"1.4.2","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.4.2","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"3dead3bef1e1312dd5abe485a12f255221daed38","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.4.2.tgz","fileCount":8,"integrity":"sha512-jOWi9v8bUAPEIau/WoeHzP4Kel9xo+qEbMgJddpgh1SrfDEiBi6Oa6bDdTuMnXNhfk3BxBx/CRO1FYstHBmIsw==","signatures":[{"sig":"MEUCIHyosiqXvuIs1blENwIRxC7dCZbe3emY151Gm8tjYdcKAiEA83Br1UDnv0k0mhOJPxtOcMFjPswsU3iHgrm0k/615uo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192832},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.0","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.4.2_1757761104809_0.02081100351281151","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.4.3":{"name":"shop-search","version":"1.4.3","keywords":["shop-search"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"ISC","_id":"shop-search@1.4.3","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"a28df475e353a1c4746fb71136c282d180e750db","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.4.3.tgz","fileCount":8,"integrity":"sha512-moNiv+RtKZ+ycytiDsAUZwbiuPqgR7oR1/Ss1j1xZFda6CumMaLUltkYwrLaOkEQ6CZ5fFVA7lAiq2ppkfIfHQ==","signatures":[{"sig":"MEYCIQC+CVB99uH1CKjDufIAbUvDjSH5uLR7kZRfOyNAh4y0hAIhAMPd9wq7hWqq5z4tSa0o0qKb8t05KhnpmEnxRTgDmRh/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192830},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"a28df475e353a1c4746fb71136c282d180e750db","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-moNiv+RtKZ+ycytiDsAUZwbiuPqgR7oR1/Ss1j1xZFda6CumMaLUltkYwrLaOkEQ6CZ5fFVA7lAiq2ppkfIfHQ==","_npmVersion":"10.8.3","description":"","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.4.3_1761089743744_0.0807627368337116","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.4.4":{"name":"shop-search","version":"1.4.4","keywords":["shop-search"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"ISC","_id":"shop-search@1.4.4","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"c6b436d980338eac4f0bdf5688d4a7bb82df48ce","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.4.4.tgz","fileCount":8,"integrity":"sha512-BknDiit79TINnehwX3zSVuQSRUaJaNJMsIlCu8oyf//DPyupwfd0oskXcZI8HHJBl7Zr2Oq0eSCtL2kmzP0hNA==","signatures":[{"sig":"MEYCIQDe+2HUKv/nHpmaicdET927RG+7+NcxFV8x8sZ1wcaV5AIhAK7sBfTtGh3QqAUXpuVIvUFUVZNXrcPzno/kFK6xJ/Vq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194584},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"c6b436d980338eac4f0bdf5688d4a7bb82df48ce","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-BknDiit79TINnehwX3zSVuQSRUaJaNJMsIlCu8oyf//DPyupwfd0oskXcZI8HHJBl7Zr2Oq0eSCtL2kmzP0hNA==","_npmVersion":"10.8.3","description":"","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.4.4_1761089799700_0.4932905606335698","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.4.5":{"name":"shop-search","version":"1.4.5","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.4.5","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"c51134f7ab383851fb397c669becb01d82f9f3af","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.4.5.tgz","fileCount":8,"integrity":"sha512-xyT0FgI/DVnjEmO0DArYOQGWv9LwR5qsbUQha25xsFp1gO5zXlUrxm1p7e25rqn4jcszxlKKUKj4zKBf7z5ejQ==","signatures":[{"sig":"MEUCIBVMAb3LL3oZ7jzyjp487ABw9/xOSRwcLGJtsVt3lN5VAiEAiEqTyJxN1PV2VT9USW3ERFzEe7KF2NlsJEQWbYEOlSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194628},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.4.5_1761090109296_0.64359721327394","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.4.6":{"name":"shop-search","version":"1.4.6","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.4.6","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"9242524fd633040893e7fbee3c75dc1428444759","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.4.6.tgz","fileCount":8,"integrity":"sha512-7yBwllAVMl9WLulTXRlLfkuO8njdk4O6HmVAbFHltnP9Q2jrn43m9kZY5MbYQq7Isi4Um5qrEkKo2+OtB0aI6A==","signatures":[{"sig":"MEUCIQDfXZr82AbkRjhiQhu2+P6dNgvhHHf92/Y5rAmwwy5u+QIgIDQ5ACgmF5GsJqkN1/C5I8fjs/e9U+b1pSM4+GVjEec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194680},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.4.6_1761090553218_0.2955051068222494","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.5.0":{"name":"shop-search","version":"1.5.0","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.5.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"75907adcc4a1fe2c246f8a883b6a9f16edfa3247","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.5.0.tgz","fileCount":8,"integrity":"sha512-SnasBbUVDh6TxDf8lMEeZhGtQhhKhkSZAQa11cn2moJ42qZihS6+0XlTmmGscF89F2ZIAA8uyVm5HkVSKwl7Vw==","signatures":[{"sig":"MEYCIQDph6hPcr9EaTDDOxP2dj78pVMdkHlIpB6EvjIqyX4tQgIhAPtkLuM3j42F3lCQHKuZQrvEP5jyhbhz2PoFOSnjMZ09","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216476},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","publish":"npm publish"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.5.0_1761091866556_0.7517348043787453","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.5.1":{"name":"shop-search","version":"1.5.1","keywords":["shop-search"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"ISC","_id":"shop-search@1.5.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"19ffa9db1e0772263dab48f9ab6a0f60dc3f61f0","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.5.1.tgz","fileCount":8,"integrity":"sha512-JtRKtGeEUbPWFrJeUZYXPnGWpPu8+OP/Li9zzlWftdzSKI9Zu1a3g1BhueeJgwjEVm1gmvYAAiL7Nu/atlY4Mg==","signatures":[{"sig":"MEQCIBBvHSzfKb8Q0Nc54JosFOL6gZtXsFm+pi8y2e89nF+uAiBzNjBrSNPn9Yo6idopcUwVed7qVlyikYvH47yFO2GJDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216503},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"79647ffe77f1c2831114a026fba67ec37ea26908","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"`shop-search` is a Node.js library to easily fetch and transform product data from Shopify stores.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.5.1_1761178385224_0.013269050831659746","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.6.0":{"name":"shop-search","version":"1.6.0","keywords":["shop-search"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"ISC","_id":"shop-search@1.6.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"ea89cdc9467e3b71fd06afe842b6782c89626334","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.6.0.tgz","fileCount":8,"integrity":"sha512-5g1/3VeAZLBp16AqxjtFXp6LfZLilB1odAomOfCIWXMJHT2qhVqobK6dLDwRQflY+mQhgAAZd+owbPNoK42EiQ==","signatures":[{"sig":"MEYCIQCPYtwUVzqUPkuB4sS/HBEjfoyYWCAdRAZ6JEtRr2mlXwIhAN7Tp2UMSJUiFjORNq4OnXTD3x97fOKw757tImKNHF39","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216503},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"ea89cdc9467e3b71fd06afe842b6782c89626334","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-5g1/3VeAZLBp16AqxjtFXp6LfZLilB1odAomOfCIWXMJHT2qhVqobK6dLDwRQflY+mQhgAAZd+owbPNoK42EiQ==","_npmVersion":"10.8.3","description":"","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.6.0_1761181486470_0.3904527187849389","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"1.6.1":{"name":"shop-search","version":"1.6.1","keywords":["shop-search"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"ISC","_id":"shop-search@1.6.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"ebef56bcb48553e8fe7d2e1aafa73fade9f6a727","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-1.6.1.tgz","fileCount":8,"integrity":"sha512-SILiacgQqEnZKVHlg1fYYtCPtDC29ZKrSPsOAfp+DL/NlHqVBTfN1+uPnqBwyKCsgPDxRNcDzxPuY8Usf2xFNg==","signatures":[{"sig":"MEUCIQD7yPOxakqJ+UhZCQMb3VzqifzK4JB2JNtY2YIvEWiTtQIgSgGie+YvCibzh7hH6nSsDj9YAbWG+5jWccQ8QP5nqek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230021},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"ebef56bcb48553e8fe7d2e1aafa73fade9f6a727","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-SILiacgQqEnZKVHlg1fYYtCPtDC29ZKrSPsOAfp+DL/NlHqVBTfN1+uPnqBwyKCsgPDxRNcDzxPuY8Usf2xFNg==","_npmVersion":"10.8.3","description":"","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_1.6.1_1761183317409_0.5157925631583344","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.0.0":{"name":"shop-search","version":"2.0.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@2.0.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"de6767f8cd2316296d55b33d5eaef3b39f4c2d75","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.0.0.tgz","fileCount":6,"integrity":"sha512-4FyiyaOWA67w9TzPWP9E5ZB3uqragvlkBjdPRjLkHpNXaKl73eZxCJ2myafyJp+9YDu/WME0lt6ao3pNqy6flw==","signatures":[{"sig":"MEUCIQCwKTgHJB0nzMLnyGtMvT7yMOrh7IL/b6Pr7Egly/qXrQIgAeAqubSSIw0DvJodE9daJgqRNmFlmkeaco9uAFslmTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290886},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"de6767f8cd2316296d55b33d5eaef3b39f4c2d75","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-4FyiyaOWA67w9TzPWP9E5ZB3uqragvlkBjdPRjLkHpNXaKl73eZxCJ2myafyJp+9YDu/WME0lt6ao3pNqy6flw==","_npmVersion":"10.8.3","description":"A powerful, type-safe Node.js library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.0.0_1761252002399_0.602059917691143","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.1.0":{"name":"shop-search","version":"2.1.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@2.1.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"3a9c871469520ecc5722c58fd30b0636f34f3c4f","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.1.0.tgz","fileCount":6,"integrity":"sha512-doPi1+Uc84VZtXQsQy2uY8HxQLSSjmCCkRsDM5c3/m7rGR7IE3e1uvkNMeqXqqmii9kYs3JC1vkgTXYe/G/5eA==","signatures":[{"sig":"MEUCIAPykixjCv/UTDoB2V83lORvoPBEybsfYRbhw0ZBOQG9AiEA+jsnMg33S8jXsPOvtJyvAeBuugrXejmXbp2XOleGJ8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291920},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"3a9c871469520ecc5722c58fd30b0636f34f3c4f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-doPi1+Uc84VZtXQsQy2uY8HxQLSSjmCCkRsDM5c3/m7rGR7IE3e1uvkNMeqXqqmii9kYs3JC1vkgTXYe/G/5eA==","_npmVersion":"10.8.3","description":"A powerful, type-safe Node.js library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.1.0_1761253853539_0.18762632553408953","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.1.1":{"name":"shop-search","version":"2.1.1","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@2.1.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"1b71b17b510c8b758752193b6b5c6a71f830d827","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.1.1.tgz","fileCount":6,"integrity":"sha512-V7+8bMl3YSjZN9V4MjUzyAHcBgSREjfa1PBBzuzmYpvrxBP3xU3YrFLbKaG2506D/ayM9UEu8aurOmGfmMidLw==","signatures":[{"sig":"MEYCIQD2PoO5kq3B5GbCHiA9mjvyNqfuYcAfvybrMTeqiIhRkAIhAKhQax1nyWoOT5dOMV8ay3Oee46a6B9J/C83z2bwywSR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291920},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"1b71b17b510c8b758752193b6b5c6a71f830d827","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-V7+8bMl3YSjZN9V4MjUzyAHcBgSREjfa1PBBzuzmYpvrxBP3xU3YrFLbKaG2506D/ayM9UEu8aurOmGfmMidLw==","_npmVersion":"10.8.3","description":"A powerful, type-safe Node.js library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.1.1_1761255343694_0.12682834648007724","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.1.2":{"name":"shop-search","version":"2.1.2","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@2.1.2","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"cc21dfa4372e8f3eb11e3213c3c9200bd3e1bb2c","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.1.2.tgz","fileCount":8,"integrity":"sha512-ZdISd+qXH3eUx2gUw/KQx+VtAOmkM7DDt+1P6vcvnfjfAnkU7cKtkdkIm9OJ0XFsDHjhFHbycEnsk1davl8nYw==","signatures":[{"sig":"MEUCICSL/QJATCHC+fqPUj8vgmG0hAjJ8GYLndzMUoNVN43SAiEAqlBqBy1gmu0eYzlGx0p7AGD7MIQgMQYTfyjw1zS4j1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405141},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0457d7a955efa2fe457ec3abd19820b3918fefc1","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"A powerful, type-safe Node.js library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.1.2_1761311027632_0.3710592947487439","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.1.3":{"name":"shop-search","version":"2.1.3","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@2.1.3","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"7251a281c4f8e32289b79431e70fadcf22b9688e","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.1.3.tgz","fileCount":8,"integrity":"sha512-yYslgY7eUEt+pR0Z9mECZuQl78LEKGW6wt9ObM3cDyVp9qzzIO/FG9LpU7tDkRGu8NeGsHfg4g0YYlbGAxnEJA==","signatures":[{"sig":"MEYCIQDmBilnhCsZKDH5UEPKt98nGnOX9tGFxtwPGH6QqbgI3gIhAMfcMe28c+OZiy7WoZAwy0cvICfMhRp4UPl9S/ACIkqJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423366},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0457d7a955efa2fe457ec3abd19820b3918fefc1","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"A powerful, type-safe Node.js library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.1.3_1761311281671_0.22737586016509215","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.2.0":{"name":"shop-search","version":"2.2.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@2.2.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"87d010f30caeac2c7db03ec1c3f0a3a7ae15d6a7","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.2.0.tgz","fileCount":8,"integrity":"sha512-yZ6ntHq/vApMCtlLr4lPhFWd9yjYFdRkxWm31wRF6yBmW4BVG/ivIGTFtIXYMeFz+xRnO0bx8oNMwjAzASCybA==","signatures":[{"sig":"MEQCIFANce6ywLkXYTksx56NnAkXCiWq431lvDI6ZtjzkYR1AiB2EzYmMDQOGPnA0TgHgJcQmiPTGv9y5t/aMbrO6mPnmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423366},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"0457d7a955efa2fe457ec3abd19820b3918fefc1","scripts":{"dev":"tsup --watch","test":"jest","build":"tsup"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"A powerful, type-safe Node.js library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.2.0_1761557888863_0.2905672559340631","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.2.1":{"name":"shop-search","version":"2.2.1","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@2.2.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"38fa89f5b8a5a2927c7494d105a2362f78d44d98","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.2.1.tgz","fileCount":8,"integrity":"sha512-pZq5T71z7XpbXpwo23vT+5/AH9zCH7idyJ7LzPKGH8RFMD6cGqU0Uaev/WxSzKlmJ6N6YniiA8BMV8YKgQ00lg==","signatures":[{"sig":"MEYCIQCnly6Kj0zj2t3FRQUoXIoctKLf/zsKTW0wId5CYeyaWAIhAP3pghJ16TGC27TI01ORK/vyCs8/DOHZVyC2ekU0RD/u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":424970},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"38fa89f5b8a5a2927c7494d105a2362f78d44d98","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","test:ci":"jest --ci --coverage --watchAll=false","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-pZq5T71z7XpbXpwo23vT+5/AH9zCH7idyJ7LzPKGH8RFMD6cGqU0Uaev/WxSzKlmJ6N6YniiA8BMV8YKgQ00lg==","_npmVersion":"10.8.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.2.1_1762801494692_0.5167916133970898","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.2.2":{"name":"shop-search","version":"2.2.2","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@2.2.2","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"e44270b26c1409b0934ddbf734fc4bf0d9de640a","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.2.2.tgz","fileCount":8,"integrity":"sha512-Fjp+0qoInxnR/dZ0/n201/EN/IdTKV76EqjPsABOLpaYQ0Tn8gLV0p/2Kk/OPT6A7Gx+b/Eu0oH9iCJcZG4rMQ==","signatures":[{"sig":"MEYCIQCUdd3nrzAKQFtthgX7kfS4w5zEWQC+EBxpsoJCQilpmgIhAPOobAlQkk/+Y92QQYycPgzSVGNGV+enZMn2Rb2uQG3c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426018},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"e44270b26c1409b0934ddbf734fc4bf0d9de640a","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","test:ci":"jest --ci --coverage --watchAll=false","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-Fjp+0qoInxnR/dZ0/n201/EN/IdTKV76EqjPsABOLpaYQ0Tn8gLV0p/2Kk/OPT6A7Gx+b/Eu0oH9iCJcZG4rMQ==","_npmVersion":"10.8.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.2.2_1762847504470_0.4080550461618062","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.2.3":{"name":"shop-search","version":"2.2.3","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@2.2.3","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"48ba78a10499a7acc5b300ae10c5ac6f7ac05486","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.2.3.tgz","fileCount":8,"integrity":"sha512-hR6sgSC7e0UStQZbW7lGeGfccLWbfb1/38AsZbXraTeiIhSpS0Yw0IRGnNwPwrqpQrkusBKMseNOQBk2VPLsvA==","signatures":[{"sig":"MEYCIQDb4jaxVO9Y6gNxraVG5mjHpUj3ExWMapz/tIsbHNba+AIhAIR++tKXEujjNamNStvwafbWF800O7e+amS//DL3evNG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":442996},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"48ba78a10499a7acc5b300ae10c5ac6f7ac05486","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","test:ci":"jest --ci --coverage --watchAll=false","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-hR6sgSC7e0UStQZbW7lGeGfccLWbfb1/38AsZbXraTeiIhSpS0Yw0IRGnNwPwrqpQrkusBKMseNOQBk2VPLsvA==","_npmVersion":"10.8.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.2.3_1762883461061_0.9996684180515589","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.2.4":{"name":"shop-search","version":"2.2.4","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@2.2.4","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"39e06737924561f7ff17e3a8fe2baf5652055ad1","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.2.4.tgz","fileCount":8,"integrity":"sha512-wm32mAY7qyd0wbb44VEotWTd14Q4wW9mF6ajZBxNpyNcqAOuB9mtsqTuU5sUEZoeOxVSlwGA/7EKkrYdkW9/Jw==","signatures":[{"sig":"MEUCIAzdJG6yBwmssLv1cet7jU7RTP7gT9SySIvncynEBP0zAiEAms7CTpP+cVMRFMcG4FVWaJ0l1Q5cyIaEC1epVdxLyqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449968},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"39e06737924561f7ff17e3a8fe2baf5652055ad1","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","test:ci":"jest --ci --coverage --watchAll=false","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-wm32mAY7qyd0wbb44VEotWTd14Q4wW9mF6ajZBxNpyNcqAOuB9mtsqTuU5sUEZoeOxVSlwGA/7EKkrYdkW9/Jw==","_npmVersion":"10.8.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.2.4_1762884764367_0.8971982253598483","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"2.3.0":{"name":"shop-search","version":"2.3.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@2.3.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"0d1a823e3eca623a1f3d10687de4f70963125c53","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-2.3.0.tgz","fileCount":8,"integrity":"sha512-jEYhXEkVchrTeO8+5ioTzUZ3dXOA53yitgpyx+5NLnJ1Ws6ir8KMNLysORYLoMCU0QdvZN1Xbc7DM81gXp2C7A==","signatures":[{"sig":"MEYCIQC97q4rcKD1VaZnV+FWJSVkFjnaxyH6Juoi22QbVLDPeQIhAIYmk1R9zHNDtiRGp9pieMsHT4h+TW879yTv3Ab1T8pI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461788},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d1602d6beece04bbac7d53d062465cf17f810d95","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit -p tsconfig.json && biome lint --diagnostic-level=error --no-errors-on-unmatched ./packages/**/*.{js,ts,tsx}","test":"jest","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"husky","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"biome check --write --unsafe ./packages/**/*.{js,ts,tsx}","lint:staged":"biome check --error-on-warnings --no-errors-on-unmatched --allow-empty --staged ./packages/**/*.{js,ts,tsx}","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}":["biome check --write --no-errors-on-unmatched","biome format --write --no-errors-on-unmatched"]},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","lint-staged":"^16.2.6","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_2.3.0_1763202489088_0.042173734325683165","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.0.0":{"name":"shop-search","version":"3.0.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.0.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"11ea3d2b7306b8cdf6d8f503eb919421c2149017","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.0.0.tgz","fileCount":12,"integrity":"sha512-sh+nbgl+cWcAHiUsVn+xnxph5YPx8Qmb+H6Mi91jaR4O0xo/kGxPtdeHTUYTuQznn0l3QViog58HFUMjC77BGA==","signatures":[{"sig":"MEUCIQD6CylDpNWBVkElCtGlWr0HHUhQMuIt3eQJzJjUibHHqgIgEscdewEFO95wUbss+yU10XX1ULH1F/FC2my2yXQ4Cpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":713501},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f243f74f5c2d8f4e99180d8f699e7abf44cfaab2","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit -p tsconfig.json && biome lint --diagnostic-level=error --no-errors-on-unmatched .","test":"jest","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"husky","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","lint-staged":"^16.2.6","@types/turndown":"^5.0.6","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.0.0_1763316145812_0.1279810516203561","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.0.1":{"name":"shop-search","version":"3.0.1","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.0.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"4cbb71ae8165e921a6dc872cbfadf3e1250847cf","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.0.1.tgz","fileCount":12,"integrity":"sha512-sk46LgXWvPrEAiaeinb1tj1O8iBluAcW6Zc/8K+LRFA6AcCCJ2ArfcydIey12jd6YEhL5meOO48N4laOPGiDbA==","signatures":[{"sig":"MEUCIQCoOhbO3MeN1XkKQsWcKWabXlMy6HPdxhwPOyUNoHxzAQIgGIhyOxzFe1xBQ0GNy28uHzYx7jbGzHiw7pFuDHU9Xmc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":715205},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f243f74f5c2d8f4e99180d8f699e7abf44cfaab2","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit -p tsconfig.json && biome lint --diagnostic-level=error --no-errors-on-unmatched .","test":"jest","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"husky","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","lint-staged":"^16.2.6","@types/turndown":"^5.0.6","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.0.1_1763317361348_0.6573232084627108","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.1.0":{"name":"shop-search","version":"3.1.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.1.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"89f6bdc6511fd88e70374d0b0a6f72dcf9853e12","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.1.0.tgz","fileCount":12,"integrity":"sha512-jpDa7d9KRimw8W7cqTDouZ4G6Mi5P/hTYSA6mvpFfEfCvITPgccfNekp2lZrW7ttwKVOI+slelic9JoFPUgzhA==","signatures":[{"sig":"MEUCIQCTT5iGFBgUjxsDfrHRYc35C6H5x5d5fGOg9HvFFU0P6gIgJrS8hOdTPrF8o65oD2ooDhGholXS0hyCBB5t3B5tlWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":717021},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f243f74f5c2d8f4e99180d8f699e7abf44cfaab2","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit -p tsconfig.json && biome lint --diagnostic-level=error --no-errors-on-unmatched .","test":"jest","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"husky","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_npmVersion":"10.9.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.21.5","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","ts-jest":"^29.3.2","typescript":"^5.8.3","@types/jest":"^29.5.14","lint-staged":"^16.2.6","@types/turndown":"^5.0.6","semantic-release":"^25.0.1 ","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.1.0_1763876138629_0.6887550762121823","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.2.0":{"name":"shop-search","version":"3.2.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.2.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"dist":{"shasum":"0ae33be23a5d8498f737485be4013cf0bbf7c864","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.2.0.tgz","fileCount":12,"integrity":"sha512-6+MLf8MIdWS6tfHW/JLZDhEV5ux7Z2XaQ9QxBjEZ3JDPRB9QxN7XbzKxzEIDjOqXT3LcERsQWYV73+7P2RK+pA==","signatures":[{"sig":"MEYCIQDJnm2KBd6ZGNMwO8CvkTLGsSlG/sxZqLNcGJrl1apW6gIhANSXy/7kuPqxkJle/UaiR1x0bovCfwaea6P8eBiFlsZs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706834},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"de853a22208ba1596ec9598dcddaea3b0c763045","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit -p tsconfig.json && biome lint --diagnostic-level=error --no-errors-on-unmatched .","test":"jest","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"husky","test:ci":"jest --ci --coverage --watchAll=false","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"overrides":{"glob":"11.1.0"},"_npmVersion":"11.6.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"_nodeVersion":"22.20.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.1","husky":"^9.1.7","ts-jest":"^29.4.5","typescript":"^5.9.3","@types/jest":"^29.5.14","lint-staged":"^16.2.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.2.0_1763883823569_0.9539408323750633","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.3.0":{"name":"shop-search","version":"3.3.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@3.3.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"38a704316de25d347c00d6d244bbee34d604f8b9","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.3.0.tgz","fileCount":12,"integrity":"sha512-COZH+i9GWhqmCExeke9deWByxTdWkc4VzBnTfUZSqDVKZQ0GPWsrx87d/yZ5jHPSjk5LpJeIe2P6ijuVoz4wcg==","signatures":[{"sig":"MEQCIDDREgMdrk3DG4r22FomugbRNBCtZIzasHnXwaqGPcgGAiAGRFFk04tZfCiRZKYheSqe4rZAsqLDOpxpT3mJkRgTEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":710773},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"38a704316de25d347c00d6d244bbee34d604f8b9","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"overrides":{"glob":"11.1.0"},"_integrity":"sha512-COZH+i9GWhqmCExeke9deWByxTdWkc4VzBnTfUZSqDVKZQ0GPWsrx87d/yZ5jHPSjk5LpJeIe2P6ijuVoz4wcg==","repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"10.8.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"provenance":true,"ignore-scripts":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.3.0_1764155920087_0.6587671063267795","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.4.0":{"name":"shop-search","version":"3.4.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@3.4.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"50064f37b746e63719ed53f0c809563615b16467","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.4.0.tgz","fileCount":12,"integrity":"sha512-2AbnzYstBl+h9+l7k1oUWHe1xXs8Abcg5As3MhqYSAj4EoxLednF+GAZ58eFclD+9awp92wYqSZDR0NDyV7KeQ==","signatures":[{"sig":"MEUCIGCFVGJUHsHV7ykBhqqfTCRaYdlCGH+lzrdWP8XWErFFAiEAonyGheN98h3Iupw/Jqk1QWBNrX7t+cLIY8NnwC9G7cw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756588},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"50064f37b746e63719ed53f0c809563615b16467","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"overrides":{"glob":"11.1.0"},"_integrity":"sha512-2AbnzYstBl+h9+l7k1oUWHe1xXs8Abcg5As3MhqYSAj4EoxLednF+GAZ58eFclD+9awp92wYqSZDR0NDyV7KeQ==","repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"10.8.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"provenance":true,"ignore-scripts":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.4.0_1764232190637_0.10745842103700332","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.5.0":{"name":"shop-search","version":"3.5.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":"tvayam.tech <<peppyhop@gmail.com>>","license":"MIT","_id":"shop-search@3.5.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"600d2154fd028aee33f74edbcacdcf64b34add3f","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.5.0.tgz","fileCount":54,"integrity":"sha512-XuyEgjogUKlYHvS9pXt4W801f3uZVPmfibWCMJSpSS/oZepVmKZIFkBspeKPb0iwt6meZxHrRHgy1bpKzMDjYw==","signatures":[{"sig":"MEYCIQCPFv8bu1fVMeLCw1ydsEtuJ3sQdUfIFJqH+xMlOpZIPQIhAKGdV0vQ8RptLWwv9p7FAZOMXOLGxfZptmBciLOqOcer","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1039448},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","shasum":"600d2154fd028aee33f74edbcacdcf64b34add3f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./store":{"types":"./dist/store.d.ts","import":"./dist/store.mjs","require":"./dist/store.js"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.mjs","require":"./dist/checkout.js"},"./products":{"types":"./dist/products.d.ts","import":"./dist/products.mjs","require":"./dist/products.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","import":"./dist/rate-limit.mjs","require":"./dist/rate-limit.js"},"./collections":{"types":"./dist/collections.d.ts","import":"./dist/collections.mjs","require":"./dist/collections.js"}},"scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"_integrity":"sha512-XuyEgjogUKlYHvS9pXt4W801f3uZVPmfibWCMJSpSS/oZepVmKZIFkBspeKPb0iwt6meZxHrRHgy1bpKzMDjYw==","repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"10.8.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"tag":"latest","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.5.0_1764243174532_0.2255355328577371","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.6.0":{"name":"shop-search","version":"3.6.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.6.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"5bc415f17e9b34601250db99a04a5810a935596b","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.6.0.tgz","fileCount":54,"integrity":"sha512-jvmAtw2ka3TPr1msmafjOFrMpp9XvOIC+HuyqhMeKKWIDHwKaBzjLhYtAHa3k0O6gdRMLrhTIIIdHOTTNowFSw==","signatures":[{"sig":"MEYCIQCwCwhq+QtYz4KnogOTNqbfTLo2OKbutijhPjFzNAXzQQIhAPS7YTw5uNwdWl5DdkINykb1zVxrb2GRZz1uNSGQB/iN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shop-search@3.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1108290},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./store":{"types":"./dist/store.d.ts","import":"./dist/store.mjs","require":"./dist/store.js"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.mjs","require":"./dist/checkout.js"},"./products":{"types":"./dist/products.d.ts","import":"./dist/products.mjs","require":"./dist/products.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","import":"./dist/rate-limit.mjs","require":"./dist/rate-limit.js"},"./collections":{"types":"./dist/collections.d.ts","import":"./dist/collections.mjs","require":"./dist/collections.js"}},"gitHead":"246a576eef297825bde2830cd4b74390d2b42ca7","scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:584a9c35-5179-4ec8-9dc1-4ee8cee19425"}},"repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"11.6.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"tag":"latest","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.6.0_1764350546675_0.36723801139433254","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.6.1":{"name":"shop-search","version":"3.6.1","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.6.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"228a0132a2e4113dff3a40e1ef43e8db8765997c","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.6.1.tgz","fileCount":52,"integrity":"sha512-TjqE5jPHeHSIIwLKo8wdRW/MONwhVfXNW3kr7Nb4JNDBkVJn2VIdQTNP4BiM08b4E4TEetVIuJy3chM8BM8RPA==","signatures":[{"sig":"MEUCIQCxGDvtQKEpbKwByLFziIa7pjPjsVLJVOiALg5u1tpzqQIgLpQeLLhURhpVhr0V0D1cMXerPJI0Oh/9pgOVWx8wrvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shop-search@3.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1081948},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./store":{"types":"./dist/store.d.ts","import":"./dist/store.mjs","require":"./dist/store.js"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.mjs","require":"./dist/checkout.js"},"./products":{"types":"./dist/products.d.ts","import":"./dist/products.mjs","require":"./dist/products.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","import":"./dist/rate-limit.mjs","require":"./dist/rate-limit.js"},"./collections":{"types":"./dist/collections.d.ts","import":"./dist/collections.mjs","require":"./dist/collections.js"}},"gitHead":"d4bb314eb1434523df78da5513640634f3764d13","scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:584a9c35-5179-4ec8-9dc1-4ee8cee19425"}},"repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"11.6.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"tag":"latest","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.6.1_1764404398142_0.34329699466422947","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.7.0":{"name":"shop-search","version":"3.7.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.7.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"1de855e811c5d368f73e323134664f779a2effbb","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.7.0.tgz","fileCount":53,"integrity":"sha512-s+N0O7Y/A6p5ko7PouGXICZ5uQSr7MuxFTnVJwXoJHS5oBuvDl6rs2F1ZS1qL0CC9EJjsSAUGsHYRIJpxBhHAQ==","signatures":[{"sig":"MEUCIQDl5ANz26tatk8aUlPnItHyU7dbdqZk+mngeZbi20KCtAIgKjTxuDoa8OTl5YpmzX9Z2vDLB9lY0iWsE2zM7WSP97w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shop-search@3.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1093119},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./store":{"types":"./dist/store.d.ts","import":"./dist/store.mjs","require":"./dist/store.js"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.mjs","require":"./dist/checkout.js"},"./products":{"types":"./dist/products.d.ts","import":"./dist/products.mjs","require":"./dist/products.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","import":"./dist/rate-limit.mjs","require":"./dist/rate-limit.js"},"./collections":{"types":"./dist/collections.d.ts","import":"./dist/collections.mjs","require":"./dist/collections.js"}},"gitHead":"b6633b2d0265d23288edcded6be70a1fa5b50e42","scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:584a9c35-5179-4ec8-9dc1-4ee8cee19425"}},"repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"11.6.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"tag":"latest","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.7.0_1764708041846_0.7642932677133905","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.8.0":{"name":"shop-search","version":"3.8.0","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.8.0","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"36acfd57d74910d8c3761b11690053175164e0f7","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.8.0.tgz","fileCount":53,"integrity":"sha512-MM/P5L9h06YHpKeh9dAtKKWZ3VFR9MbvQhmT/brq9DyPQ8XizXQUOTszXQijXRQTfYY7xnTKEPueOk8WNRT+NA==","signatures":[{"sig":"MEQCIBz4hSthdQ/7dQh+lxpAxsWzFN1Zc/M1+PWF7p5S8RTYAiBuyDp+ICkdxKaO97ErSCaeCSXhP28B+tt5OGocRHPDRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shop-search@3.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1093538},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./store":{"types":"./dist/store.d.ts","import":"./dist/store.mjs","require":"./dist/store.js"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.mjs","require":"./dist/checkout.js"},"./products":{"types":"./dist/products.d.ts","import":"./dist/products.mjs","require":"./dist/products.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","import":"./dist/rate-limit.mjs","require":"./dist/rate-limit.js"},"./collections":{"types":"./dist/collections.d.ts","import":"./dist/collections.mjs","require":"./dist/collections.js"}},"gitHead":"b1b36bc38bae10c92644ca0e3d891645725d53f5","scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:584a9c35-5179-4ec8-9dc1-4ee8cee19425"}},"repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"11.6.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"tag":"latest","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.8.0_1764708507709_0.35163033101276486","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."},"3.8.1":{"name":"shop-search","version":"3.8.1","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","_id":"shop-search@3.8.1","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"homepage":"https://github.com/peppyhop/shop-search#readme","bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"dist":{"shasum":"587e3e861c93e30209d182f0c49f8b0856fca507","tarball":"https://registry.npmjs.org/shop-search/-/shop-search-3.8.1.tgz","fileCount":53,"integrity":"sha512-JsW3sdSV4jvK2XiQBt35vYUewXr/J9VrkjWI9I0oX1xp3IXYxVyuYw0TLcmOTFZyKg1bQkJywpBEoGlu0pdMJQ==","signatures":[{"sig":"MEUCIQDLNpdDriy4NJ5fbIZPlgOLaPzH8Dph4yK1xJJ23lhQ2wIgZOmrrZSQbXK6pPKk/ULTIQW74IVJjw2tbMRCd70IP7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shop-search@3.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1102178},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./store":{"types":"./dist/store.d.ts","import":"./dist/store.mjs","require":"./dist/store.js"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.mjs","require":"./dist/checkout.js"},"./products":{"types":"./dist/products.d.ts","import":"./dist/products.mjs","require":"./dist/products.js"},"./rate-limit":{"types":"./dist/rate-limit.d.ts","import":"./dist/rate-limit.mjs","require":"./dist/rate-limit.js"},"./collections":{"types":"./dist/collections.d.ts","import":"./dist/collections.mjs","require":"./dist/collections.js"}},"gitHead":"4cddc7673a433d9f358f856076860189f078f295","scripts":{"dev":"tsup --watch","lint":"biome lint --diagnostic-level=error --no-errors-on-unmatched . && tsc --noEmit -p tsconfig.json","test":"bun test","build":"tsup","format":"biome format --write --no-errors-on-unmatched","prepare":"command -v husky >/dev/null 2>&1 && husky || true","test:ci":"bun test --coverage","lint:fix":"biome check --write --unsafe .","lint:staged":"lint-staged","semantic-release":"semantic-release"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:584a9c35-5179-4ec8-9dc1-4ee8cee19425"}},"repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"_npmVersion":"11.6.3","description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","directories":{},"lint-staged":{"src/**/*.{test,spec}.{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"],"**/*.{cjs,mjs,json,jsonc,d.cts,d.mts}":["biome format --write --no-errors-on-unmatched"],"src/**/!(*.test|*.spec).{ts,tsx,js,jsx}":["biome format --write --no-errors-on-unmatched"]},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"tldts":"^7.0.7","remeda":"^2.32.0","turndown":"^7.2.2","turndown-plugin-gfm":"^1.0.2"},"publishConfig":{"tag":"latest","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.3","devDependencies":{"tsup":"^8.5.1","husky":"^9.1.7","@types/bun":"^1.3.3","typescript":"^5.9.3","lint-staged":"^16.2.7","@tsconfig/bun":"^1.0.10","@biomejs/biome":"2.3.7","@types/turndown":"^5.0.6","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shop-search_3.8.1_1764893462743_0.16712604673635734","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: Use 'shop-client' instead. Migration: npm i shop-client && update imports to 'shop-client'."}},"time":{"created":"2025-05-14T17:43:32.287Z","modified":"2025-12-05T10:25:59.635Z","1.0.0":"2025-05-14T17:43:32.453Z","1.0.1":"2025-05-14T18:08:06.936Z","1.0.2":"2025-05-16T07:04:25.251Z","1.0.3":"2025-06-23T02:36:57.842Z","1.0.4":"2025-06-23T02:40:40.398Z","1.1.0":"2025-07-11T10:34:52.643Z","1.1.1":"2025-07-11T13:27:27.198Z","1.1.2":"2025-07-11T13:30:30.756Z","1.2.0":"2025-09-13T09:50:44.746Z","1.3.0":"2025-09-13T10:29:49.780Z","1.4.0":"2025-09-13T10:44:55.816Z","1.4.1":"2025-09-13T10:57:47.309Z","1.4.2":"2025-09-13T10:58:25.021Z","1.4.3":"2025-10-21T23:35:43.960Z","1.4.4":"2025-10-21T23:36:39.856Z","1.4.5":"2025-10-21T23:41:49.458Z","1.4.6":"2025-10-21T23:49:13.417Z","1.5.0":"2025-10-22T00:11:06.792Z","1.5.1":"2025-10-23T00:13:05.422Z","1.6.0":"2025-10-23T01:04:46.670Z","1.6.1":"2025-10-23T01:35:17.643Z","2.0.0":"2025-10-23T20:40:02.591Z","2.1.0":"2025-10-23T21:10:53.775Z","2.1.1":"2025-10-23T21:35:44.032Z","2.1.2":"2025-10-24T13:03:47.862Z","2.1.3":"2025-10-24T13:08:01.874Z","2.2.0":"2025-10-27T09:38:09.156Z","2.2.1":"2025-11-10T19:04:54.911Z","2.2.2":"2025-11-11T07:51:44.667Z","2.2.3":"2025-11-11T17:51:01.255Z","2.2.4":"2025-11-11T18:12:44.566Z","2.3.0":"2025-11-15T10:28:09.348Z","3.0.0":"2025-11-16T18:02:26.059Z","3.0.1":"2025-11-16T18:22:41.552Z","3.1.0":"2025-11-23T05:35:38.951Z","3.2.0":"2025-11-23T07:43:43.925Z","3.3.0":"2025-11-26T11:18:40.359Z","3.4.0":"2025-11-27T08:29:50.902Z","3.5.0":"2025-11-27T11:32:54.756Z","3.6.0":"2025-11-28T17:22:26.884Z","3.6.1":"2025-11-29T08:19:58.382Z","3.7.0":"2025-12-02T20:40:42.064Z","3.8.0":"2025-12-02T20:48:27.953Z","3.8.1":"2025-12-05T00:11:02.959Z"},"bugs":{"url":"https://github.com/peppyhop/shop-search/issues"},"author":{"name":"tvayam.tech","email":"peppyhop@gmail.com"},"license":"MIT","homepage":"https://github.com/peppyhop/shop-search#readme","keywords":["shopify","ecommerce","product-data","store-scraping","typescript","nodejs","product-catalog","shop-search","shopify-api","product-scraper","ecommerce-tools"],"repository":{"url":"git+https://github.com/peppyhop/shop-search.git","type":"git"},"description":"A powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.","maintainers":[{"name":"tvayam.tech","email":"peppyhop@gmail.com"}],"readme":"# Shop Search\n\n[![npm version](https://badge.fury.io/js/shop-search.svg)](https://badge.fury.io/js/shop-search)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n`shop-search` is a powerful, type-safe TypeScript library for fetching and transforming product data from Shopify stores. Perfect for building e-commerce applications, product catalogs, price comparison tools, and automated store analysis.\n\n## 🚀 Features\n\n- **Complete Store Data Access**: Fetch products, collections, and store information\n- **Flexible Product Retrieval**: Get all products, paginated results, or find specific items\n- **Collection Management**: Access collections and their associated products\n- **Checkout Integration**: Generate pre-filled checkout URLs\n- **Type-Safe**: Written in TypeScript with comprehensive type definitions\n- **Performance Optimized**: Efficient data fetching with built-in error handling\n- **Zero Dependencies**: Lightweight with minimal external dependencies\n- **Store Type Classification**: Infers audience and verticals from showcased products (body_html-only)\n\n## 📦 Installation\n\n```bash\nnpm install shop-search\n```\n\n```bash\nyarn add shop-search\n```\n\n```bash\npnpm add shop-search\n```\n\n## 🔧 Quick Start\n\n```typescript\nimport { ShopClient } from 'shop-search';\n\n// Initialize shop client instance\nconst shop = new ShopClient(\"your-store-domain.com\");\n\n// Fetch store information\nconst storeInfo = await shop.getInfo();\n\n// Fetch all products\nconst products = await shop.products.all();\n\n// Find specific product\nconst product = await shop.products.find(\"product-handle\");\n```\n\n## Browser Usage\n\nSome in-browser environments load npm packages via blob URLs and can error if the content is not served with a JavaScript MIME type (e.g., “Modules must be served with a valid MIME type like application/javascript”). To use `shop-search` directly in the browser, import the ESM build from a CDN that sets the correct `Content-Type`:\n\n```html\n<!-- Import map to pin shop-search to a CDN ESM URL -->\n<script type=\"importmap\">\n{\n  \"imports\": {\n    \"shop-search\": \"https://cdn.jsdelivr.net/npm/shop-search/+esm\"\n  }\n}\n</script>\n\n<script type=\"module\">\n  import { ShopClient } from 'shop-search';\n  const shop = new ShopClient('https://example.myshopify.com/');\n  const info = await shop.getInfo();\n  console.log(info);\n  const products = await shop.products.paginated({ page: 1, limit: 24 });\n  console.log(products);\n  // For collections:\n  const colProducts = await shop.collections.products.paginated('mens', { page: 1, limit: 24 });\n  console.log(colProducts);\n}</script>\n```\n\nAlternative CDN URLs:\n- `https://esm.sh/shop-search@3.5.0`\n- `https://unpkg.com/shop-search@3.5.0?module`\n\nTroubleshooting:\n- Ensure the CDN returns `Content-Type: application/javascript`. The `+esm` and `?module` suffixes enforce ESM delivery.\n- If you build your own blob, set `new Blob(code, { type: 'text/javascript' })` before `import()`.\n- For app frameworks (Vite, Next.js), import `shop-search` normally and let the bundler serve modules.\n\n## Server/Edge Usage\n\nFor robust production setups, run `shop-search` on the server or an edge function and return JSON to the browser:\n\n```ts\n// /api/shop-info.ts (Edge/Node)\nimport { ShopClient } from 'shop-search';\n\nexport default async function handler(req, res) {\n  const shop = new ShopClient('https://example.myshopify.com/');\n  const info = await shop.getInfo();\n  res.json(info);\n}\n```\n\nClient:\n\n```ts\nconst info = await fetch('/api/shop-info').then(r => r.json());\n```\n\n## Deep Imports & Tree-Shaking\n\nFor optimal bundle size, import only what you need using subpath exports. The library ships ESM/CJS builds and declares `sideEffects: false` for better dead code elimination.\n\nExamples:\n\n```typescript\n// ESM deep imports\nimport { configureRateLimit } from 'shop-search/rate-limit';\nimport { ProductOperations } from 'shop-search/products';\n\n// CommonJS deep imports\nconst { configureRateLimit } = require('shop-search/rate-limit');\nconst { ProductOperations } = require('shop-search/products');\n\n// Recommended: import specific functions you use\nimport { ShopClient } from 'shop-search';\nimport { fetchProducts } from 'shop-search/products';\n```\n\nNotes:\n- ESM consumers (Vite/Rollup/esbuild) get tree-shaking out of the box.\n- Webpack benefits from `sideEffects: false`; avoid importing wide barrels when possible.\n- Rate limiter timer starts lazily on first use (no import-time side effects).\n\n### Migration: Barrel → Subpath Imports\n\nYou can keep using the root entry (`shop-search`), but for smaller bundles switch to deep imports. The API remains the same—only the import paths change.\n\nExamples:\n\n```typescript\n// Before (barrel import)\nimport { ShopClient, configureRateLimit } from 'shop-search';\n\n// After (deep imports for better tree-shaking)\nimport { ShopClient } from 'shop-search';\nimport { configureRateLimit } from 'shop-search/rate-limit';\n\n// Feature-specific imports\nimport { fetchProducts } from 'shop-search/products';\nimport { createCheckoutOperations } from 'shop-search/checkout';\n```\n\nCommonJS:\n\n```javascript\n// Before\nconst { ShopClient, configureRateLimit } = require('shop-search');\n\n// After\nconst { ShopClient } = require('shop-search');\nconst { configureRateLimit } = require('shop-search/rate-limit');\n```\n\nNotes:\n- No bundler changes required; deep imports are exposed via `exports`.\n- The root entry continues to work; prefer deep imports for production apps.\n\n## ��️ Rate Limiting\n\n`shop-search` ships with an opt-in, global rate limiter that transparently throttles all internal HTTP requests (products, collections, store info, enrichment). This helps avoid `429 Too Many Requests` responses and keeps crawling stable.\n\n- Default: disabled\n- When enabled: defaults to `5` requests per `1000ms` with max concurrency `5`\n- Configure globally via `configureRateLimit`\n\n```typescript\nimport { ShopClient, configureRateLimit } from 'shop-search';\n\n// Enable and configure the global rate limiter\nconfigureRateLimit({\n  enabled: true,\n  maxRequestsPerInterval: 60, // 60 requests\n  intervalMs: 60_000,         // per minute\n  maxConcurrency: 4,          // up to 4 in parallel\n});\n\nconst shop = new ShopClient(\"your-store-domain.com\");\n\n// All subsequent library calls use the limiter automatically\nconst products = await shop.products.all();\n```\n\nNotes:\n- The limiter is global to the process. Call `configureRateLimit` once at startup.\n- If you are crawling multiple stores, prefer lower concurrency and a longer interval to reduce pressure.\n- When disabled, the library uses native `fetch` without throttling.\n\n### Advanced: Per-Host and Per-Class Limits\n\nYou can set different buckets by host (including wildcards) or by logical class:\n\n```typescript\nimport { configureRateLimit } from 'shop-search';\n\nconfigureRateLimit({\n  enabled: true,\n  // Default fallback\n  maxRequestsPerInterval: 10,\n  intervalMs: 1000,\n  maxConcurrency: 5,\n\n  // Host-specific buckets (exact host or wildcard suffix '*.example.com')\n  perHost: {\n    'openrouter.ai': { maxRequestsPerInterval: 2, intervalMs: 1000, maxConcurrency: 1 },\n    '*.myshopify.com': { maxRequestsPerInterval: 5, intervalMs: 1000, maxConcurrency: 3 },\n    'your-store-domain.com': { maxRequestsPerInterval: 8, intervalMs: 1000, maxConcurrency: 4 },\n  },\n\n  // Class-specific buckets (use by passing `rateLimitClass` in RequestInit)\n  perClass: {\n    openrouter: { maxRequestsPerInterval: 2, intervalMs: 1000, maxConcurrency: 1 },\n    shopify: { maxRequestsPerInterval: 6, intervalMs: 1000, maxConcurrency: 3 },\n  },\n});\n\n// If you make custom fetches, you can tag them with a class:\n// await rateLimitedFetch(url, { rateLimitClass: 'openrouter' });\n```\n\nResolution order:\n- If `rateLimitClass` is present, that bucket is used.\n- Else, a matching `perHost` bucket is used (exact match first, then wildcard suffix).\n- Else, the global default bucket is used.\n\nTip: You can deep import the limiter configuration surface:\n\n```typescript\nimport { configureRateLimit } from 'shop-search/rate-limit';\n```\n\n## 📚 API Reference\n\n### Store Information\n\n#### `getInfo()`\n\nFetches comprehensive store metadata including branding, social links, and featured content.\n\n```typescript\nconst storeInfo = await shop.getInfo();\n```\n\n**Returns:** `StoreInfo` object containing:\n- `name`: Store name from meta tags\n- `title`: Store title\n- `description`: Store description\n- `domain`: Store domain\n- `slug`: Generated store slug\n- `logoUrl`: Store logo URL\n- `socialLinks`: Social media URLs (Facebook, Instagram, etc.)\n- `contactLinks`: Contact information (phone, email, contact page)\n- `headerLinks`: Navigation menu links\n- `showcase`: Featured products and collections\n- `jsonLdData`: Structured data from the store\n\n### Products\n\n#### `products.all()`\n\nFetches all products from the store with automatic pagination handling.\n\n```typescript\nconst allProducts = await shop.products.all();\n```\n\n**Returns:** `Product[]` - Array of all products in the store\n\n#### `products.paginated(options)`\n\nFetches products with manual pagination control.\n\n```typescript\nconst products = await shop.products.paginated({\n  page: 1,\n  limit: 25,\n  // Optional currency override aligned with Intl.NumberFormat\n  currency: \"EUR\",\n});\n```\n\n**Parameters:**\n- `page` (number, optional): Page number (default: 1)\n- `limit` (number, optional): Products per page (default: 250, max: 250)\n - `currency` (CurrencyCode, optional): ISO 4217 code aligned with `Intl.NumberFormatOptions['currency']` (e.g., `\"USD\"`, `\"EUR\"`, `\"JPY\"`)\n\n**Returns:** `Product[]` - Array of products for the specified page\n\n#### `products.find(handle)`\n\nFinds a specific product by its handle.\n\n```typescript\nconst product = await shop.products.find(\"product-handle\");\n\n// With currency override\nconst productEur = await shop.products.find(\"product-handle\", { currency: \"EUR\" });\n```\n\n**Parameters:**\n- `handle` (string): The product handle/slug\n - `options` (object, optional): Additional options\n   - `currency` (CurrencyCode, optional): ISO 4217 code aligned with `Intl.NumberFormatOptions['currency']`\n\n**Returns:** `Product | null` - Product object or null if not found\n\n#### `products.showcased()`\n\nFetches products featured on the store's homepage.\n\n```typescript\nconst showcasedProducts = await shop.products.showcased();\n```\n\n**Returns:** `Product[]` - Array of featured products\n\n#### `products.filter()`\n\nCreates a map of variant options and their distinct values from all products in the store. This is useful for building filter interfaces, search facets, and product option selectors.\n\n```typescript\nconst filters = await shop.products.filter();\nconsole.log('Available filters:', filters);\n\n// Example output:\n// {\n//   \"size\": [\"small\", \"medium\", \"large\", \"xl\"],\n//   \"color\": [\"black\", \"blue\", \"red\", \"white\"],\n//   \"material\": [\"cotton\", \"polyester\", \"wool\"]\n// }\n\n// Use filters for UI components\nObject.entries(filters || {}).forEach(([optionName, values]) => {\n  console.log(`${optionName}: ${values.join(', ')}`);\n});\n```\n\n**Returns:** `Record<string, string[]> | null` - Object mapping option names to arrays of their unique values (all lowercase), or null if error occurs\n\n**Features:**\n- Processes all products across all pages automatically\n- Returns lowercase, unique values for consistency\n- Handles products with multiple variant options\n- Returns empty object `{}` if no products have variants\n\n### Collections\n\n#### `collections.all()`\n\nFetches all collections from the store.\n\n```typescript\nconst collections = await shop.collections.all();\n```\n\n**Returns:** `Collection[]` - Array of all collections\n\n#### `collections.find(handle)`\n\nFinds a specific collection by its handle.\n\n```typescript\nconst collection = await shop.collections.find(\"collection-handle\");\n```\n\n**Parameters:**\n- `handle` (string): The collection handle/slug\n\n**Returns:** `Collection | null` - Collection object or null if not found\n\n#### `collections.showcased()`\n\nFetches collections featured on the store's homepage.\n\n```typescript\nconst showcasedCollections = await shop.collections.showcased();\n```\n\n**Returns:** `Collection[]` - Array of featured collections\n\n#### `collections.paginated(options)`\n\nFetches collections with manual pagination control.\n\n```typescript\nconst collectionsPage = await shop.collections.paginated({\n  page: 1,\n  limit: 10,\n});\n```\n\n**Parameters:**\n- `page` (number, optional): Page number (default: 1)\n- `limit` (number, optional): Collections per page (default: 10, max: 250)\n\n**Returns:** `Collection[]` - Array of collections for the specified page\n\n### Collection Products\n\n#### `collections.products.all(handle)`\n\nFetches all products from a specific collection.\n\n```typescript\nconst products = await shop.collections.products.all(\"collection-handle\");\n```\n\n**Parameters:**\n- `handle` (string): The collection handle\n\n**Returns:** `Product[] | null` - Array of products in the collection\n\n#### `collections.products.paginated(handle, options)`\n\nFetches products from a collection with pagination.\n\n```typescript\nconst products = await shop.collections.products.paginated(\"collection-handle\", {\n  page: 1,\n  limit: 25,\n  currency: \"GBP\",\n});\n```\n\n**Parameters:**\n- `handle` (string): The collection handle\n- `options` (object): Pagination options\n  - `page` (number, optional): Page number (default: 1)\n  - `limit` (number, optional): Products per page (default: 250)\n  - `currency` (CurrencyCode, optional): ISO 4217 code aligned with `Intl.NumberFormatOptions['currency']`\n\n**Returns:** `Product[]` - Array of products for the specified page\n\n#### Currency Override\n\nBy default, pricing is formatted using the store’s detected currency.\nYou can override the currency for product and collection queries by passing a `currency` option.\nThis override updates `Product.currency` and `Product.localizedPricing.currency` (and related formatted strings) only.\n\n```typescript\n// Products\nawait shop.products.paginated({ page: 1, limit: 25, currency: \"EUR\" });\nawait shop.products.all({ currency: \"JPY\" });\nawait shop.products.find(\"product-handle\", { currency: \"GBP\" });\n\n// Collection products\nawait shop.collections.products.paginated(\"collection-handle\", { page: 1, limit: 25, currency: \"CAD\" });\nawait shop.collections.products.all(\"collection-handle\", { currency: \"AUD\" });\n```\n\nType: `CurrencyCode` is defined as `NonNullable<Intl.NumberFormatOptions['currency']>`.\nThis ensures compatibility with `Intl.NumberFormat` and avoids maintaining a hardcoded list.\n\n### Checkout\n\n#### `checkout.createUrl(params)`\n\nGenerates a Shopify checkout URL with pre-filled customer information and cart items.\n\n```typescript\nconst checkoutUrl = shop.checkout.createUrl({\n  email: \"customer@example.com\",\n  items: [\n    { productVariantId: \"variant-id-1\", quantity: \"2\" },\n    { productVariantId: \"variant-id-2\", quantity: \"1\" }\n  ],\n  address: {\n    firstName: \"John\",\n    lastName: \"Doe\",\n    address1: \"123 Main St\",\n    city: \"Anytown\",\n    zip: \"12345\",\n    country: \"USA\",\n    province: \"CA\",\n    phone: \"123-456-7890\"\n  }\n});\n```\n\n**Parameters:**\n- `email` (string): Customer's email address\n- `items` (array): Cart items with `productVariantId` and `quantity`\n- `address` (object): Shipping address details\n\n**Returns:** `string` - Complete checkout URL\n\n### Utilities\n\nHelper utilities exported for common normalization and parsing tasks.\n\n```typescript\nimport { sanitizeDomain, safeParseDate } from 'shop-search';\n\n// Normalize domains safely\nsanitizeDomain('https://www.example.com');            // \"example.com\"\nsanitizeDomain('www.example.com', { stripWWW: false }); // \"www.example.com\"\nsanitizeDomain('http://example.com/path');            // \"example.com\"\n\n// Errors on invalid input (e.g., bare hostname without suffix)\ntry {\n  sanitizeDomain('example'); // throws\n} catch (e) {\n  console.error('Invalid domain');\n}\n\n// Safely parse dates (avoids Invalid Date)\nsafeParseDate('2024-10-31T12:34:56Z');  // Date\nsafeParseDate('');                      // undefined\nsafeParseDate('not-a-date');            // undefined\n```\n\nNotes:\n- `sanitizeDomain` trims protocols, paths, and optional `www.` depending on `stripWWW`.\n- Throws for invalid inputs: empty strings or hostnames missing a public suffix (e.g., `example`).\n- `safeParseDate` returns `undefined` for invalid inputs; product `publishedAt` may be `null` when unavailable.\n\n#### Release and Publishing\n\n- Releases are automated via `semantic-release` and npm Trusted Publishing.\n- The release workflow uses Node.js `22.14.0` to satisfy `semantic-release` requirements.\n- npm publishes use OIDC with provenance; no `NPM_TOKEN` secret is required.\n- Ensure your npm package settings add this GitHub repo as a trusted publisher and set the environment name to `npm-publish`.\n\n### Store Type Classification\n\nDetermine the store’s primary verticals and target audiences using showcased products. Classification uses only each product’s `body_html` content and aggregates per-product results, optionally pruned by store-level signals.\n\n```typescript\nimport { ShopClient } from 'shop-search';\n\nconst shop = new ShopClient('your-store-domain.com');\n\nconst breakdown = await shop.determineStoreType({\n  // Optional: provide an OpenRouter API key for online classification\n  // Offline mode falls back to regex heuristics if no key is set\n  apiKey: process.env.OPENROUTER_API_KEY,\n  // Optional: model name when using online classification\n  model: 'openai/gpt-4o-mini',\n  // Optional: limit the number of showcased products sampled (default 10, max 50)\n  maxShowcaseProducts: 12,\n  // Note: showcased collections are not used for classification\n  maxShowcaseCollections: 0,\n});\n\n// Example breakdown shape\n// {\n//   generic: { accessories: ['general'] },\n//   adult_female: { clothing: ['dresses', 'tops'] }\n// }\n```\n\nDetails:\n- Uses only `product.bodyHtml` for classification (no images or external text).\n- Samples up to `maxShowcaseProducts` from `getInfo().showcase.products`.\n- Aggregates per-product audience/vertical into a multi-audience breakdown.\n- If `OPENROUTER_API_KEY` is absent or `OPENROUTER_OFFLINE=1`, uses offline regex heuristics.\n- Applies store-level pruning based on title/description to improve consistency.\n\n## 🏗️ Type Definitions\n\n### StoreInfo\n\n```typescript\ntype StoreInfo = {\n  name: string;\n  domain: string;\n  slug: string;\n  title: string | null;\n  description: string | null;\n  shopifyWalletId: string | null;\n  myShopifySubdomain: string | null;\n  logoUrl: string | null;\n  socialLinks: Record<string, string>;\n  contactLinks: {\n    tel: string | null;\n    email: string | null;\n    contactPage: string | null;\n  };\n  headerLinks: string[];\n  showcase: {\n    products: string[];\n    collections: string[];\n  };\n  jsonLdData: any[] | null;\n};\n```\n\n### Product\n\n```typescript\ntype Product = {\n  slug: string;\n  handle: string;\n  platformId: string;\n  title: string;\n  available: boolean;\n  price: number;\n  priceMin: number;\n  priceVaries: boolean;\n  compareAtPrice: number;\n  compareAtPriceMin: number;\n  priceMax: number;\n  compareAtPriceMax: number;\n  compareAtPriceVaries: boolean;\n  discount: number;\n  currency?: string;\n  options: ProductOption[];\n  bodyHtml: string | null;\n  active?: boolean;\n  productType: string | null;\n  tags: string[];\n  vendor: string;\n  featuredImage?: string | null;\n  isProxyFeaturedImage: boolean | null;\n  createdAt?: Date;\n  updatedAt?: Date;\n  variants: ProductVariant[] | null;\n  images: ProductImage[];\n  publishedAt: Date | null;\n  seo?: MetaTag[] | null;\n  metaTags?: MetaTag[] | null;\n  displayScore?: number;\n  deletedAt?: Date | null;\n  storeSlug: string;\n  storeDomain: string;\n  embedding?: number[] | null;\n  url: string;\n  requiresSellingPlan?: boolean | null;\n  sellingPlanGroups?: unknown;\n  // Keys formatted as name#value parts joined by '##' (alphabetically sorted), e.g., \"color#blue##size#xl\"\n  variantOptionsMap: Record<string, string>;\n};\n\n#### Date Handling\n\n- `createdAt` and `updatedAt` are parsed using a safe parser and may be `undefined` when source values are empty or invalid.\n- `publishedAt` is `Date | null` and will be `null` when unavailable or invalid.\n\n#### Variant Options Map\n\n- Each product includes `variantOptionsMap: Record<string, string>` when variants are present.\n- Keys are composed of normalized option name/value pairs in the form `name#value`, joined by `##` and sorted alphabetically for stability.\n- Example: `{ \"color#blue##size#xl\": \"123\", \"color#red##size#m\": \"456\" }`.\n- Normalization uses `normalizeKey` (lowercases; spaces → `_`; non-space separators like `-` remain intact).\n```\n\n### ProductVariant\n\n```typescript\ntype ProductVariant = {\n  id: string;\n  platformId: string;\n  name?: string;\n  title: string;\n  option1: string | null;\n  option2: string | null;\n  option3: string | null;\n  options?: string[];\n  sku: string | null;\n  requiresShipping: boolean;\n  taxable: boolean;\n  featuredImage: ProductVariantImage | null;\n  available: boolean;\n  price: number;\n  weightInGrams?: number;\n  compareAtPrice: number;\n  position: number;\n  productId: number;\n  createdAt?: string;\n  updatedAt?: string;\n};\n```\n\n### ProductVariantImage\n\n```typescript\ntype ProductVariantImage = {\n  id: number;\n  src: string;\n  position: number;\n  productId: number;\n  aspectRatio: number;\n  variantIds: unknown[];\n  createdAt: string;\n  updatedAt: string;\n  alt: string | null;\n  width: number;\n  height: number;\n};\n```\n\n### ProductImage\n\n```typescript\ntype ProductImage = {\n  id: number;\n  productId: number;\n  alt: string | null;\n  position: number;\n  src: string;\n  mediaType: \"image\" | \"video\";\n  variantIds: unknown[];\n  createdAt?: string;\n  updatedAt?: string;\n  width: number;\n  height: number;\n  aspect_ratio?: number;\n};\n```\n\n### ProductOption\n\n```typescript\ntype ProductOption = {\n  key: string;\n  data: string[];\n  name: string;\n  position: number;\n  values: string[];\n};\n```\n\n### Collection\n\n```typescript\ntype Collection = {\n  id: string;\n  title: string;\n  handle: string;\n  description?: string;\n  image?: {\n    id: number;\n    createdAt: string;\n    src: string;\n    alt?: string;\n  };\n  productsCount: number;\n  publishedAt: string;\n  updatedAt: string;\n};\n```\n\n### MetaTag\n\n```typescript\ntype MetaTag =\n  | { name: string; content: string }\n  | { property: string; content: string }\n  | { itemprop: string; content: string };\n```\n\n## 💡 Use Cases\n\n### E-commerce Applications\n- Build product catalogs and search functionality\n- Create comparison shopping tools\n- Develop inventory management systems\n\n### Data Analysis\n- Analyze product pricing trends\n- Monitor competitor stores\n- Generate market research reports\n\n### Marketing Tools\n- Create automated product feeds\n- Build recommendation engines\n- Generate SEO-optimized product pages\n\n### Integration Examples\n- Sync products with external databases\n- Create custom checkout flows\n- Build headless commerce solutions\n\n## 🔍 Advanced Examples\n\n### Building a Product Search\n\n```typescript\nasync function searchProducts(shop: ShopClient, query: string) {\n  const allProducts = await shop.products.all();\n  return allProducts.filter(product => \n    product.title.toLowerCase().includes(query.toLowerCase()) ||\n    product.tags.some(tag => tag.toLowerCase().includes(query.toLowerCase()))\n  );\n}\n```\n\n### Price Monitoring\n\n```typescript\nasync function monitorPrices(shop: ShopClient) {\n  const products = await shop.products.all();\n  return products.map(product => ({\n    handle: product.handle,\n    title: product.title,\n    currentPrice: product.price,\n    originalPrice: product.compareAtPrice,\n    discount: product.discount,\n    onSale: product.compareAtPrice > product.price\n  }));\n}\n```\n\n### Collection Analysis\n\n```typescript\nasync function analyzeCollections(shop: ShopClient) {\n  const collections = await shop.collections.all();\n  const analysis = [];\n  \n  for (const collection of collections) {\n    const products = await shop.collections.products.all(collection.handle);\n    if (products) {\n      analysis.push({\n        name: collection.title,\n        productCount: products.length,\n        averagePrice: products.reduce((sum, p) => sum + p.price, 0) / products.length,\n        priceRange: {\n          min: Math.min(...products.map(p => p.price)),\n          max: Math.max(...products.map(p => p.price))\n        }\n      });\n    }\n  }\n  \n  return analysis;\n}\n```\n\n## 🤖 LLM Integration\n\nThis package is designed to be LLM-friendly with comprehensive documentation and structured APIs:\n\n### For AI Code Generation\n- **Complete Type Safety**: Full TypeScript definitions enable accurate code completion and generation\n- **Predictable API Patterns**: Consistent method naming and return types across all operations\n- **Comprehensive Examples**: Real-world usage patterns in `/examples` directory\n- **Detailed Documentation**: Technical context in `/.llm` directory for AI understanding\n\n### For E-commerce AI Applications\n- **Rich Product Data**: Complete product information including variants, pricing, and metadata\n- **Structured Store Information**: Organized store data perfect for AI analysis and recommendations\n- **Search-Ready Data**: Product tags, descriptions, and categories optimized for semantic search\n- **Batch Operations**: Efficient data fetching for large-scale AI processing\n\n### LLM-Friendly Resources\n- [`llm.txt`](./llm.txt) - Complete repository overview and API surface\n- [`/.llm/context.md`](./.llm/context.md) - Technical architecture and implementation details\n- [`/.llm/api-reference.md`](./.llm/api-reference.md) - Comprehensive API documentation with examples\n- [`/.llm/examples.md`](./.llm/examples.md) - Code patterns and usage examples\n- [`ARCHITECTURE.md`](./ARCHITECTURE.md) - System design and extension points\n- [`CONTRIBUTING.md`](./CONTRIBUTING.md) - Development guidelines and best practices\n\n### AI Use Cases\n- **Product Recommendation Systems**: Rich product data with relationships and metadata\n- **Price Monitoring**: Automated price tracking and comparison tools\n- **Inventory Analysis**: Stock level monitoring and trend analysis\n- **Content Generation**: Product descriptions and marketing content creation\n- **Market Research**: Competitive analysis and market trend identification\n\n### Keywords for LLM Discovery\n`shopify`, `ecommerce`, `product-data`, `store-scraping`, `typescript`, `nodejs`, `api-client`, `product-catalog`, `checkout`, `collections`, `variants`, `pricing`, `inventory`, `headless-commerce`, `ai-ready`, `llm-friendly`, `semantic-search`, `product-recommendations`, `price-monitoring`\n\n## 🛠️ Error Handling\n\nThe library includes comprehensive error handling:\n\n```typescript\ntry {\n  const product = await shop.products.find(\"non-existent-handle\");\n  // Returns null for not found\n} catch (error) {\n  // Handles network errors, invalid domains, etc.\n  console.error('Error fetching product:', error.message);\n}\n```\n\n## 🔐 Security and Dependency Overrides\n\n- This project pins vulnerable transitive dependencies using npm `overrides` to keep CI/security scans green.\n- We currently force `glob` to `11.1.0` to avoid the CLI command injection vulnerability affecting `glob@10.3.7–11.0.3`.\n- The library does not use the `glob` CLI; pinning removes audit warnings without impacting functionality.\n- If scanners flag new CVEs, update `package.json` `overrides` and reinstall dependencies.\n\n## ✅ Parsing Reliability Notes\n\n- Contact link parsing is hardened to correctly detect:\n  - `tel:` phone links\n  - `mailto:` email links\n  - `contactPage` URLs (e.g., `/pages/contact`)\n- Tests cover protocol-relative social links normalization and contact page detection to prevent regressions.\n\n## 📄 License\n\nMIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📞 Support\n\nFor questions and support, please open an issue on the GitHub repository.\n","readmeFilename":"README.md"}