{"_id":"@12-apps/product-research","_rev":"44-999433c5cddf4dddad6cdf3350414a7a","name":"@12-apps/product-research","dist-tags":{"latest":"2.10.0"},"versions":{"1.0.0":{"name":"@12-apps/product-research","version":"1.0.0","license":"MIT","_id":"@12-apps/product-research@1.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"caf6dc2d20e2248ff1b8bf154bdd0b33e9b31557","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.0.0.tgz","fileCount":86,"integrity":"sha512-kLXbqRExuqZDUTzhqoVqZJeWNU2uoM7bv8rKtip+BWVUGwayOkZDZgqQvq2cIp4GPTKMFiErbdKDpFJ94hcp2A==","signatures":[{"sig":"MEUCIHmBn0E148a0p3eBDAr4Mazqy1tMn33w8GLS44AkO1Z8AiEAmKURZocGSzf90ZjqhVbh+F0diEBwQFUyPJcmaYHK36I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":569436},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"e1d0b7c4524e3a0cee4c80ebbf0bb7c11ee536f2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"tigredonorte","email":"tigredonorte3@gmail.com"},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.1.0","@12-apps/typescript-config":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.0.0_1785896250108_0.7481927121588374","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@12-apps/product-research","version":"1.2.0","license":"MIT","_id":"@12-apps/product-research@1.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"bce3a3c7525e9d3c137084561210174df531e2d8","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.2.0.tgz","fileCount":86,"integrity":"sha512-s5nYbbzp1qLMlGGnwnBYfH3yzHAlN1YD0qFkrCkfIfYLqTjK+eM6D7vYaAfzXG/QaHYI1/4AxmORJuqm1DE02Q==","signatures":[{"sig":"MEUCIQDNbHFPhpIVKfcjpeaJpGe5avp3wowNd5nEM0uh/XbEZQIgarHHAupIa87aSHOv5JhVQlBdKkjqTpF2f2DpsiZa5O8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":569436},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"d05da896cc8a43f54fec717c51429eefed6682d3","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.3.0","@12-apps/typescript-config":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.2.0_1785946175267_0.0360904018953192","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@12-apps/product-research","version":"1.2.1","license":"MIT","_id":"@12-apps/product-research@1.2.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"fb9b49608030b82757a0bfb8b9726c75f6111866","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.2.1.tgz","fileCount":86,"integrity":"sha512-HUN0fZ3hUmpQQ9vXnBiEHk8jpOO0b/QLZlAEl8Bb7lQviWgrId7Udgy+zEUrR7hV/m8ToLKGfGLYQki6Ck9TiQ==","signatures":[{"sig":"MEQCIAPYJU2VyB9OZEOMgwHTOvGH7wUI/7LpyhMOEOssC1OBAiBT/YlND2hcP81tE0ronEzNdjaq8wZcLj1QROYA7pvbYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":569436},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"6a59470cbaaf679bd15ec21462bb500a5843db54","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.3.1","@12-apps/typescript-config":"^1.3.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.2.1_1785949569671_0.44191988894915535","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@12-apps/product-research","version":"1.3.0","license":"MIT","_id":"@12-apps/product-research@1.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"dcb5d20e166caf28dcba7324c05965dbbb0b385b","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.3.0.tgz","fileCount":86,"integrity":"sha512-PuQ6VzRrHEalw4j0R/exultq3x9/Ah0JPqOJGJlobQPSTI8iDli8P7rlA7v7FZR63Pm3aP86Ojp7YFTey5TF7w==","signatures":[{"sig":"MEYCIQCPt9WheZzMtnWxVbHQLhAFiJBRiDl5VLHg95n/25mivgIhAPVs+oH9RWo0eBiD39ticL38yC0FhwVdFOHijEexFtAg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":569452},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"f52a264eaaba821a536b1f2a3fcfae9a6cc4f7c7","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.4.0","@12-apps/typescript-config":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.3.0_1785954835354_0.057181355692625724","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@12-apps/product-research","version":"1.3.1","license":"MIT","_id":"@12-apps/product-research@1.3.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"827acd8122b35ca34e614f09027bf7b1d7a45714","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.3.1.tgz","fileCount":86,"integrity":"sha512-l1iRFMpndySN9y7CP5Z0cKL94peeAfHV37Sq+1gxF2H5zd93NzhxFNXbFQTCPfZ1G6TzoGy0OR/1s/+22FD/HQ==","signatures":[{"sig":"MEUCIQCXYallL66dkSc3XdDh9Crh+iLRjOSVVEHcXQlzcV8VHQIgP3kaJZevrUavZqRFaAEBocWoEmn+UM4RP+Ytzwim7lg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":569452},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"4067cf613069590fbad29cf687882ba0f49e1073","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.4.1","@12-apps/typescript-config":"^1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.3.1_1785955900757_0.5742208111108664","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@12-apps/product-research","version":"1.4.0","license":"MIT","_id":"@12-apps/product-research@1.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8713d387b149c9909674ac09320ebbd4f97b6343","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.4.0.tgz","fileCount":86,"integrity":"sha512-2O0pwN1VPWN9hQIUtNaErkkmPP6zwUbd0Z+IHRmIkVMbTITLU5KPVjMKMfz5Mtj7wwFyBMfCPdcpjSgh6Eufcg==","signatures":[{"sig":"MEUCIQDoLgUd+buankc3OAKUIprAVmFy0x3LMzSiHjtRFKUTLAIgCRT7j35map6CE1iiATrfDrS4WxzbLbfM1E5Tgg8gN1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":569452},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"9ac31454f10150e8721e44c9a38b8bb1d545dfea","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.5.0","@12-apps/typescript-config":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.4.0_1785966183122_0.22473576834165088","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@12-apps/product-research","version":"1.4.1","license":"MIT","_id":"@12-apps/product-research@1.4.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"193572d9bffc30f838f87f2d51c238ee6336e703","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.4.1.tgz","fileCount":55,"integrity":"sha512-kYnK8H7yt5xzbw8VMSCsW8+PnSN36p37mv/HsJ4ujLPacfJHQsY+Jmr7bsdFsXVm+Pj2bhjPcyxSQnWbIrLQrg==","signatures":[{"sig":"MEUCIQD9Hf9/eAevOGTSpYpRbScocyhpaSfFwp6KhAGKDYjQHAIgQOpPwp2jHJVoCfo0UEuJQoOgQjXPMj+gMBfh4dE+AjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"81e7421d24f622d31b501c3562db19b0c6943936","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.5.1","@12-apps/typescript-config":"^1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.4.1_1785978947731_0.7363367676773735","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@12-apps/product-research","version":"1.4.2","license":"MIT","_id":"@12-apps/product-research@1.4.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"67c466927b8642222c38c51be965965e6633b658","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.4.2.tgz","fileCount":55,"integrity":"sha512-qAzuKd0PrH8PO6CB/6Y8Lm5R6iYQ8EwHOQmGg5yoUDImm4RBHfThxbq0ul60NcbwDjeMtHAZV5x8o/rr33BSvA==","signatures":[{"sig":"MEUCIQCAl23CQGBz4265v8LCdeY9MIw7adgDeV1GEe5bWzBB1gIgLXOC/AUqxFJTpa1mt7cyqqm5UIftnpF2mi8b54J+Sc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"f57c50c67e9ea99974be5dcae253e526be4090d9","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.5.3","@12-apps/typescript-config":"^1.5.3"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.4.2_1785993077978_0.17072377477545153","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@12-apps/product-research","version":"1.5.0","license":"MIT","_id":"@12-apps/product-research@1.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"f076101d178b2b812747e50f560e12fb030a9510","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.5.0.tgz","fileCount":55,"integrity":"sha512-IeSRazouH8U4bBwcAYLbltRnuFNf3zOBtB0OKrSbiiI393umwEDP3UWOMpQ1AB43rbrQCK4teHqp/eVL6JVgAw==","signatures":[{"sig":"MEYCIQDM/hz9F+qeWWYU7H76Ptr9BWblzqGYJzGpGeI9XMJsRQIhAMqoLwVNtjwE9yDVbhkVE/xI0E7LsTWFtRhObO6Jn+bz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"8e0cd152236f2f1e72297beceba8334893f28e2a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.0","@12-apps/typescript-config":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.5.0_1786030894694_0.4125986305859046","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@12-apps/product-research","version":"1.5.1","license":"MIT","_id":"@12-apps/product-research@1.5.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"89f7166b9c412edb6c1103948836060ddccdcd30","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.5.1.tgz","fileCount":55,"integrity":"sha512-TRrzP0w4Hykcg65zZlDs39yMLzJ/zm19ID4H5i0V9rxTpDCOEO/xyGzrLMlJiQP7XyAWKxEF5J0MkkPW06Gepw==","signatures":[{"sig":"MEQCIBw7YxHyH1pSsJo2VIEuc6V9Us8uXTEpPMi9dK0m60HWAiBUhHwwAWddNIAUtQx2muERFjfNdzZ+Dgg3Zj4r3X7AKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"15f8407ccc08a7d53484c2d3d701a8b1eb28639d","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.1","@12-apps/typescript-config":"^1.6.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.5.1_1786059881059_0.07349618686264403","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@12-apps/product-research","version":"1.5.2","license":"MIT","_id":"@12-apps/product-research@1.5.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"742f24b7d1d953d8327da867ba112421316d4330","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.5.2.tgz","fileCount":55,"integrity":"sha512-j3iQ1wS6JrsVStXyMRoNSXXka/CeL244F4bM7KrwW0qBQyE3WjCuBd+A2ToV69OhYNbuNmV4gThodXWuEFdvMg==","signatures":[{"sig":"MEYCIQCbdtJZZRkJPsm1PMgOhjFrfMDKBIMHHg3tpShk2cLCawIhAKLMT6H1KLwBfjHiFgRUe4MaH33G8JuLN+IoVRUsB85E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"5b1ad4d8fc1948a6a2494d48f84552644bd57405","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.2","@12-apps/typescript-config":"^1.6.2"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.5.2_1786061399056_0.5701607147685344","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@12-apps/product-research","version":"1.5.3","license":"MIT","_id":"@12-apps/product-research@1.5.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c7b2cd5981d5d99aa894a2fcb3caf78e7a4cf641","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.5.3.tgz","fileCount":55,"integrity":"sha512-tu2dpKQ/KUPmtchN+pwgasHSIZHtQ9qCznBIyU84LkHn0yhOwNMQ2TrCMeSVvvvjoXlS1C1/jxoiTChNdTbzfg==","signatures":[{"sig":"MEUCIQC20Fe2XpDsLP8pHmTUMssPG7HE0M3qcMH+jSRX1Ag3VQIgYQjgIB0oB7pJ/d7JRA9TBgZ5j0Hkj1m2eucQiDeggKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"8ba6d6ad47840a83c06c146ef654227af5104a8e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.6.3","@12-apps/typescript-config":"^1.6.3"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.5.3_1786066357464_0.2803223616952437","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@12-apps/product-research","version":"1.6.0","license":"MIT","_id":"@12-apps/product-research@1.6.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"fda6727488a2eec8093ce53612727ea8debe0a19","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.6.0.tgz","fileCount":55,"integrity":"sha512-GOJ3JRAwEqaJ8axCv/UvYjt03x27ES8iAwDYLPmW5OdhO9XSq9DK7uXeuKvp1h4CLbqn1SVk7P+gtkm3kZRbqg==","signatures":[{"sig":"MEUCICI9HfkIpyFKKzlyqKiA+DBOQLN692Zj/08GytgUDuAdAiEA1ujEERnXHpJweitgG9dNOkCLEZseATodlfq2iHnrtDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"1dbc1469b614c0f8b0f50e0116c4be4e99f39256","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.7.0","@12-apps/typescript-config":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.6.0_1786069523472_0.4889735917995506","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@12-apps/product-research","version":"1.7.0","license":"MIT","_id":"@12-apps/product-research@1.7.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"df68416625b989b4a2d3a707f75bc0b1980ef70c","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.7.0.tgz","fileCount":55,"integrity":"sha512-5fVakWWRp7S7WnETqo3+bVbZ56z5Udj9WXespwqtDA7HPZooAB1vZJHO4+q1iBBMTT9qXSQAwwxjEKytNKrrZA==","signatures":[{"sig":"MEQCIE4zeTvQRvaR2w37UHQ01px08DyhjDfWGTOY5/sQ9TF2AiASoHnzOxVp4Z8er5HPqeH5gbgvO07fTCR0DVTCd4pQng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"6d34a3a466269e83fcce802ee81df261bfb14523","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.0.1","@12-apps/typescript-config":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.7.0_1786076499969_0.9972650711129281","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@12-apps/product-research","version":"1.7.1","license":"MIT","_id":"@12-apps/product-research@1.7.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"eba7eb30247d18f7e47d064c263f3fb0ee7155e9","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.7.1.tgz","fileCount":55,"integrity":"sha512-8Capj9zRrKMxCwTYSNkbjcJ0FkbyBzYhftLZa+Vwvd71vcJ8s8gfNvdWo9zCYX6V+ITf7aGwxykDTbXUPQpF1Q==","signatures":[{"sig":"MEUCIFvPZ2RlDS9xe5yLnQmWyYgVxrNfjkiMIb2OwwkzI2o7AiEAgpq60l+4gToqTv8fN7q9wG9Ub+6jodXrc91vaOvquF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"2e9d99f013ab8d5373a4e32a01a9c0221bd12190","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.8.1","@12-apps/typescript-config":"^1.8.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.7.1_1786077100870_0.19203331985421168","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@12-apps/product-research","version":"1.8.0","license":"MIT","_id":"@12-apps/product-research@1.8.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"142c1b43579fc9834f34e07a76571b99cbf27b4b","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.8.0.tgz","fileCount":55,"integrity":"sha512-zXJMU7KEqmTFCdqumzrVjqorbmZwuLAk85fyFyheM5wxH4TshDr2GiBtvmmtCJXeORIKSXb8u8PNzvhGpivmKg==","signatures":[{"sig":"MEYCIQD2LWsP5tSA8+ZAWswRt1hfZtjVuGMrd/G91nSVfZF5agIhAPw+sDnNh4yO9CIeoUlprOorWae9frMTmLHzauHAsHGi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"7bfcec03feb4cfeb6db70c9dd7b69a936a1687bd","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.9.0","@12-apps/typescript-config":"^1.9.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.8.0_1786089718139_0.7476742262510738","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@12-apps/product-research","version":"1.8.1","license":"MIT","_id":"@12-apps/product-research@1.8.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"6449ff945222a9ec8c2a6cc859920138c96a20d5","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.8.1.tgz","fileCount":55,"integrity":"sha512-Tj3NUaIWt/e5gJpGaGq6MBBQ+Lyfu7I7N6cmC6kygxotqlAFOnzX4K45vKoYmF6qWCjRjSxFKAHfCsDxONh1pw==","signatures":[{"sig":"MEUCIAVJ1bNWiUztG5UApKxn8BHrYtnShYRbHvla7vxG/0uyAiEAjPIrOjIv63JyUChE0InX5cOD1txBnNGKUeUnR0848jE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282228},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"e7605e656458d821164b2c47ee7fe9d7d4d790bd","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.9.1","@12-apps/typescript-config":"^1.9.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.8.1_1786093377631_0.2600993871688788","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@12-apps/product-research","version":"1.9.0","license":"MIT","_id":"@12-apps/product-research@1.9.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"48888e857cc9f49518ef20506ee1f3b43c18c830","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.9.0.tgz","fileCount":55,"integrity":"sha512-yMg2ECykKk20zpzGTjyfsINNjgwrIM0OHxYI9VtS4QSf2it8+4kB4pOUvJP0W/yyi9mcgxlO/zQLBXLYMdwg5A==","signatures":[{"sig":"MEYCIQDkz3JIRiBD4OcGNO4ZPgfUhpgrzSxkJZmvQvYlRBdiPgIhAIx/92vEKWAvifdfbP3i56xNokiJ4VYvsi6sf2JKTfU3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282230},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"6bfe86e2215d81dffd8f616dad4aa181f027548b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.10.0","@12-apps/typescript-config":"^1.10.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.9.0_1786100282225_0.17437465172148214","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@12-apps/product-research","version":"1.10.0","license":"MIT","_id":"@12-apps/product-research@1.10.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c50b068cfa3c5028ab73a400eb53d8e95aeab70d","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.10.0.tgz","fileCount":55,"integrity":"sha512-0iTgb206bawurlTAJVfNhDkYGD/vGbr7BMYtZvxTGfojgPFtB+Yc/LJ3zw03ma/C+aAl7h59y6rGReyqv4y9ng==","signatures":[{"sig":"MEUCIQDBFPYQq5er+W21nj+/PeNOvLbPOtsqgOQMdsytGQUgMQIgauraqET2I/d3BexQ1fEsSn5vtv0hczqihzTXGHhndv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"ca77c6e24bbdd7ce427c8003f0de2444c95d88cf","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.11.0","@12-apps/typescript-config":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.10.0_1786103554782_0.7114826402374301","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@12-apps/product-research","version":"1.10.1","license":"MIT","_id":"@12-apps/product-research@1.10.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"ebdc5a9f0a0771d0c415d6b2f59ab2299cb754f0","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.10.1.tgz","fileCount":55,"integrity":"sha512-F4n00/z7lZEz8sclSW8o50nPfaKTDYa3CvReyLjt63vYg5d55QcOkahJphEaEi8U8IFxUKSrjYoCl2uex/h+/A==","signatures":[{"sig":"MEQCICsDPjrNrYIymh3+xfuw0otAdHZK/lsvbYdd4vlsG/ldAiAlGflYcWaXSNZQtN/JfsPKEv78+hYb/ext8aJYB++e8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"b1c4a9ee167c219178d1933083ccaa44ba467ca2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.11.1","@12-apps/typescript-config":"^1.11.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.10.1_1786108057492_0.18239238725848494","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@12-apps/product-research","version":"1.11.0","license":"MIT","_id":"@12-apps/product-research@1.11.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"d09dcec29bc9a212dc61aa322d2155af39577fd0","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.11.0.tgz","fileCount":55,"integrity":"sha512-dl5z2sz18/oQ6Rv0W0jbB+OA+qqAJDuPwmzOVufBxHXpokCff0PDxwyDF88DI/Jnnh8dsH7Jx4JCq2usXIe4jw==","signatures":[{"sig":"MEYCIQCQ9Vm11fAyrFQ/gyzkCxnJFc8L/IDdFVj7bZGOc+G/GgIhALuRzGrDV1yP0+QQxrX2/fKKH0Q82/7bwFLykpkfYc44","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"ec6d74e8ae3156dc9294ef46e3fd05dcdf8b6af4","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.12.1","@12-apps/typescript-config":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.11.0_1786117842861_0.5354295672533507","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@12-apps/product-research","version":"1.11.1","license":"MIT","_id":"@12-apps/product-research@1.11.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"7612de098044fbeadae9be592ffff0bc6f162aff","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.11.1.tgz","fileCount":55,"integrity":"sha512-0FwdIJb0rYwwvz1+HeoGDWDAjcg0TsgiifBioyHsAkMAwP7uywAWSsrgqrOd2Wgw+voQ15H1xiiDVD1x70IHOw==","signatures":[{"sig":"MEQCIEIkPijQcZKLyfHLCLw08tO1OJKwcZk3axAIGy4DQq4BAiBKlkXgU6Fl4EDMOUSPaG3evqzMIBo7CKf0Qt5pjEN4jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"e9fa4d72f92e37490fec1f39348375e9e34bf2ee","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.12.2","@12-apps/typescript-config":"^1.12.2"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.11.1_1786127718886_0.4907984917624053","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@12-apps/product-research","version":"1.12.0","license":"MIT","_id":"@12-apps/product-research@1.12.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"6222ccd56d442b7c7aa2029be83ae75b6de0dce9","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.12.0.tgz","fileCount":55,"integrity":"sha512-IsES2TKApFgsyVOG0x6g9Rx9LAFCY6noPjO0Aj67BgXNCp/r0q4bHm/n5I/GSIcppXG3rnQg6quldbGb/G46rQ==","signatures":[{"sig":"MEQCIAWGI+HpiZ0F9GaHPAjjMEl/BFPgFVATcxoFRm9B6u44AiB2EzgGVlrQ+rIy6JkoZfL75JZzwgpX4isj9BbFTgzrrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"903862a6809118567baa5931596f484c3ff8ff37","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.13.0","@12-apps/typescript-config":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.12.0_1786128526235_0.07637629411653468","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@12-apps/product-research","version":"1.13.0","license":"MIT","_id":"@12-apps/product-research@1.13.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"714b5abe109492c1030cc42fe4a2742888ec4137","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.13.0.tgz","fileCount":55,"integrity":"sha512-fHLP1oaCo0FfgoOS2zFIeUbeePfTZAUayi8bPB/nhWQjkf4LnkB/hCuO6s/xUWv4xtyBLwtBR1tqYY+yWY6WJA==","signatures":[{"sig":"MEQCIBlINBDBcLaoz1KA3MXwTQWurkTQcsfHkBtEIAzeDLeZAiBEFGXiJ/3VCwhveiKmtLVAZC1/f6SzMM5zvmjU4Nrpjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"f9c9457f43bc8c265f81d27b8d3bb5f250fce11e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.15.0","@12-apps/typescript-config":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.13.0_1786132999343_0.6744775324329588","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@12-apps/product-research","version":"1.14.0","license":"MIT","_id":"@12-apps/product-research@1.14.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3149fc16413e921bf9f6e019354a8ea84e171c47","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.14.0.tgz","fileCount":55,"integrity":"sha512-65Eh/fievaRDQN9pcgkfnMtSwC32rZ0Ac47bWiRWwChtjLlVpQsn+saOOqu+sZE/EBsCRxQ86P/UQd6PraCnGQ==","signatures":[{"sig":"MEQCIAHf7f6OgoL+A+B2RnTqPHMP7qITWFQ4kodDAFh1rZoLAiBpB0M5pN7gqFbThJTz3dEVHcXRyiEkLBE4mtHyY/K2dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"ebccb7d5693b1f1340342b72139daef11fc81223","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.16.0","@12-apps/typescript-config":"^1.16.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.14.0_1786133700688_0.07633283294496285","host":"s3://npm-registry-packages-npm-production"}},"1.14.2":{"name":"@12-apps/product-research","version":"1.14.2","license":"MIT","_id":"@12-apps/product-research@1.14.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"7ecad6e58438c82c6f1c865b945b33421a0aba0a","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.14.2.tgz","fileCount":55,"integrity":"sha512-T2ehi5MSSMwfSCpXySlD10szm2U2tYLLEluQNY9YhVTTA2PHLqn+vtC012J+dVx6TLPhyFlg5bRb1LBdJZovgA==","signatures":[{"sig":"MEQCID1uFrOvbwqgPPNlUzzEzwzYmvodWHNHUhPVteMBihteAiBm5Js9V7GQjnPH2XSOredPVBw3L+t/gx9XEKWkgbqAYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"bfd39495ffa882cae31b10538877b522984cbebc","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.16.2","@12-apps/typescript-config":"^1.16.2"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.14.2_1786138844827_0.43142558121926355","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@12-apps/product-research","version":"1.15.0","license":"MIT","_id":"@12-apps/product-research@1.15.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"98af4033e4a902b93ac9fbc3eab264b30cae0b0c","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.15.0.tgz","fileCount":55,"integrity":"sha512-YR7Pum92WcY7NqwJlvbEvW8/m7Coo8LZrVIobBqIqrrfzHyKyuPjD1b24t6sxRuH159AzDYHKrSpLzeGZjGreA==","signatures":[{"sig":"MEQCIGN1aMlFykdER7qw+tmg5tC8wFJnyLVQ2A9caRJi4CaeAiAlAaYrOdmLwPuDnrXwyMNDq3D92ma135YhTR2LP1uLsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"2d4a0e9dbf04f79e2306b779f56f0dd5d079e09a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.0","@12-apps/typescript-config":"^1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.15.0_1786145545323_0.4916656590484283","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@12-apps/product-research","version":"1.15.1","license":"MIT","_id":"@12-apps/product-research@1.15.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"90763bfcdfc55eadf33f09bf59146194b88fc491","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.15.1.tgz","fileCount":55,"integrity":"sha512-nva2pLcxxoZ8Q9waiLcztDDcu6eKSBDKV5Y/QlkINTyzKGhfc27BuhTUQYC7OLct1/LUq/Ynte807fXGUGhg6Q==","signatures":[{"sig":"MEQCIGPbJ44gsPEQ1QrsgzfmNFn2nRAWLHNeAV/y+9QSKMl7AiAFZMjwc8wtPFlj26YqNDMMuPCpTfVVGf/KyIfA4r7kdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"f0356169f9682182eabba77485cf4772051235ae","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.1","@12-apps/typescript-config":"^1.17.1"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.15.1_1786146690971_0.38249800927780764","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"@12-apps/product-research","version":"1.15.2","license":"MIT","_id":"@12-apps/product-research@1.15.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"973bce577e43a82ef5008fca07dd074d50208f99","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.15.2.tgz","fileCount":55,"integrity":"sha512-PYeHS2qB3KG61FY9E5EonPeowuxnqcIEcp7L/JegvnKf8ZPFNjeroBeC3M0M3ghNoa/VMGc4gdKqKP51s938eg==","signatures":[{"sig":"MEQCID8MloTSd2fbCJtdEk9aMk3aj/L1p2+iTcGE7QpUG18+AiA/wjD74oUgP09aCzTB0DvmSxvtwSAM6lwDkbX4DCGfUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"4b2466cbe6cded4941ec25ef92cf41d7fab0697e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.2","@12-apps/typescript-config":"^1.17.2"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.15.2_1786159942769_0.021512566457326132","host":"s3://npm-registry-packages-npm-production"}},"1.15.3":{"name":"@12-apps/product-research","version":"1.15.3","license":"MIT","_id":"@12-apps/product-research@1.15.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"66fa60f67b6517215528eaab1ff3b337913e6b67","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.15.3.tgz","fileCount":55,"integrity":"sha512-mvIhDpO6GGwl6vtCx3QlAKZ5HBlJ+VCCptDsGziKnWnSDKRBLZ6YBvITXiIbXl7nvLml7j0SOLkxtdijg+mWRg==","signatures":[{"sig":"MEUCIDUDvN2BdWCRa9s/y7DE3u6afqJkR8H9VnrC0rlsACJHAiEAheOAJpVfDguuoWZeyS7eqNY0WuMC2Rk0N9cSf0RLGl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"ee3399530780d82beea32410802a945627ffe271","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.17.3","@12-apps/typescript-config":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.15.3_1786197918003_0.5486785451536931","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@12-apps/product-research","version":"1.16.0","license":"MIT","_id":"@12-apps/product-research@1.16.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"d295f3743ce2eadf3a93871c3da30906dc92a7a7","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.16.0.tgz","fileCount":55,"integrity":"sha512-lnnXyY42Gxqvvrqb0Yij1q80pqChOFfopyFyS3u+lnig2NJnE5mP/apdpDY+Dgfc5JkQcwa/rhNlACp0QCPHZA==","signatures":[{"sig":"MEQCIDZzvCINKgh0mhSZLgSPFABrN9n+VMZjOK5FKof4n9pdAiBXxApLiYEAKVpzsDZZzNR3cN13Ybq8JXdcKprWzQY+sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"8af3c18e1811d042f30016a4ba43e74abc4b8c50","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.18.0","@12-apps/typescript-config":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.16.0_1786203891103_0.9558242528093479","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@12-apps/product-research","version":"1.17.0","license":"MIT","_id":"@12-apps/product-research@1.17.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"d50672a4aae038acba1c59702a9a34ec46302547","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.17.0.tgz","fileCount":55,"integrity":"sha512-QJ6QXq2FjYb3momx+PQ1U0tNbwcC+XcomlolEoj/eJlWhyn/733PkJ4xEAyfdymszC+D5JG6+yh1ps2sfD6W0Q==","signatures":[{"sig":"MEYCIQCMa0byrx46OlMwcmfny6E2jVuH2uY4O14w8mDi/YRIEQIhAOFCLWbFPr9IUWDwBxJtR+HGwYAJn7WE6ePD9yM4jZzW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"3a8eb1783f8cccce3b7ec49cb10e3e6d2c5d7310","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.19.0","@12-apps/typescript-config":"^1.19.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.17.0_1786206093194_0.9578770571804667","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@12-apps/product-research","version":"1.18.0","license":"MIT","_id":"@12-apps/product-research@1.18.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"a66c06f962b33291ad490fde839920fb9784e16a","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-1.18.0.tgz","fileCount":55,"integrity":"sha512-MurU3by9ODQAEUEZ7WsEPAbWlxBTcYPw4cX5DMK719PpZ3CcfSQY/y5Sub6NHtEssvjgAACAzqjDeWQTgeNEUg==","signatures":[{"sig":"MEUCICfNZ1d+UeFv9PKbsr1w8PMuAswY/ioR8YpzZgsue+vFAiEA+y0K1FRRkPxC8yWxqOAaGnU5989yOy/O9elbmITOtA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282231},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"21bbb5b06424cf045eaad617a5912aa00d0c654b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_1.18.0_1786209439944_0.8185359924641196","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@12-apps/product-research","version":"2.0.0","license":"MIT","_id":"@12-apps/product-research@2.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"ab86dc29d58d4f1444d57d1319508dc665806f17","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.0.0.tgz","fileCount":55,"integrity":"sha512-sIWYgvVN6GLqx5ASnh01ifymVkjxpgtCDTsRuIhcE7xIMit+nwAEsBvTdBl+iZ7xq4sMPiEyZKTzlfExDxjFaA==","signatures":[{"sig":"MEQCIGddd3I+D2dN4UfTSWDv7ujMX3LIW8D++02auEIVg6xVAiANMhPTOETpwbV7BGxYoZ5qBitOQTcQninn3QO4rCSKhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282230},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts"},"gitHead":"5f6a9a9dd6fadbaacb19a80e0f2b76d85ef0b07b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0"},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.0.0_1786556884719_0.4741085162413319","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@12-apps/product-research","version":"2.1.0","license":"MIT","_id":"@12-apps/product-research@2.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"48aa54a002aa2ffbd0cc6abb093d28891e4f11b7","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.1.0.tgz","fileCount":58,"integrity":"sha512-rwIbkhHNtVnWKx+PalMmvTLZVNPr7csnubnm/3mkgqQ+NMPEjbcIOh3rh1wH5/Y4Y87Ngi2i7IKTg55lX5JnXg==","signatures":[{"sig":"MEUCIQCV1isiWjJs4GY6L1a9Tv2CmBtPB0hPk/pwMsgZ6GyUjAIgZUGdSAmqEDgIjHBjbnJOvmCiWW4QgRw0UCKuSWxF3SQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287373},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./jobs":"./src/jobs.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"601ab4f191186007ec65a2caf9f4e7f040045db0","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/wiring":"^1.5.0","@12-apps/eslint-config":"^1.21.0","@12-apps/typescript-config":"^1.20.0"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.1.0_1787287849287_0.8481364639458255","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@12-apps/product-research","version":"2.2.0","license":"MIT","_id":"@12-apps/product-research@2.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"de9bd093bad429987dcedb32b624c716aeba7bfb","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.2.0.tgz","fileCount":58,"integrity":"sha512-e39Il+9JDMsqqdmjvls+N/EIPfBrVimnGdTbvjTtmeKsFp25kqD2/NFPqL0hAnclYbD5ZzR3Y09mqj7B+0d1ow==","signatures":[{"sig":"MEUCIGBq0GcIKChcY6QVQLUL6WrvY5xPKo2l0T1ODcY+UzifAiEAhX27o4ZyvmzddTNlPkukXoImTZ0wu0oxTA92dFinX9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287975},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./jobs":"./src/jobs.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"3c4711049bf8351685612372531c3cae1370bbbb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2dafcca-8a3f-4569-88ba-c36055098d02"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/wiring":"^1.6.1","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.2.0_1787327246844_0.3633281903394989","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@12-apps/product-research","version":"2.3.0","license":"MIT","_id":"@12-apps/product-research@2.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b5eee384829081cc95db6b189b28427a043458f0","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.3.0.tgz","fileCount":69,"integrity":"sha512-XQhkvN22sGoE0+tb9vdkgAhioUbownvzL8PLeUvhgPaSLbCWHUI4KoNp8zDpDnHXHT1JR9itYUM56Sp3BK33gw==","signatures":[{"sig":"MEUCIQDhgYufZRAYqPMPjE18L/E4MJvLgCK2hcdZiM0omgdB2gIgVbcITAYJO9i7TtK69TcwVTmgVyJwdjrJgsW7zC/7pUk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":337837},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./http":"./src/http/index.ts","./jobs":"./src/jobs.ts","./pt-BR":"./src/pt-BR.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"bb484cd7dec9e17822ecdf07ea9e762a62d0bcc2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/wiring":"^1.8.0","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.3.0_1787339733613_0.48574502434369293","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@12-apps/product-research","version":"2.4.0","license":"MIT","_id":"@12-apps/product-research@2.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"2204be2af2c6bf5419bc3fefc1fb8c8f2a513ffa","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.4.0.tgz","fileCount":70,"integrity":"sha512-UUo2VOjf5SmNmia3vzHOqZ1sZdvqSPi1yi8ieM9E3GnGrhgdkvD6g3KcFy8EW4JGvWp00cu/6U6AfC7kyXR9Pg==","signatures":[{"sig":"MEUCIQC0gWgyJ059qyq+J+xDmPVacdFOhzZvi4ZzyLyqGTd+QAIgCRgUB8kdb2O8k7SWMaO5K6O3xKgEExcBJykeIL9BRJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":350515},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./http":"./src/http/index.ts","./jobs":"./src/jobs.ts","./pt-BR":"./src/pt-BR.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"d0a6abcf1d3102fedf48103b7f6bf82ecec9ea3f","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/wiring":"^1.10.0","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.4.0_1787413171912_0.5102738782502156","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@12-apps/product-research","version":"2.5.0","license":"MIT","_id":"@12-apps/product-research@2.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"06853cd5e74b5dcef272c3ebda762574558f6d29","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.5.0.tgz","fileCount":72,"integrity":"sha512-RRN/olj9hpQx6QmFraVVlnslnsEaYJVqHd39AEmkpLxHU+Xoxa1Wrz94uPP4Z9D2teI8sXb6S6DpH8NzdZC/Lw==","signatures":[{"sig":"MEYCIQCRPIxacsizoGcN3yCTHVe7hn86jBrDME6DtNjwcZeseAIhANF0I98MZBuy12TtKdEkV81SWUXYdq8+VJS09q2MAPIa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":357444},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./http":"./src/http/index.ts","./jobs":"./src/jobs.ts","./pt-BR":"./src/pt-BR.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"9730c23e820cb23cfa8e34c6a241ef2621f01dfe","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/wiring":"^1.10.0","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.5.0_1787458034456_0.18306143307213363","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@12-apps/product-research","version":"2.6.0","license":"MIT","_id":"@12-apps/product-research@2.6.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"251f02eefb088dfd0b7ab70533392e6814773fe4","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.6.0.tgz","fileCount":75,"integrity":"sha512-d6k9kbBio6q16I4I9112xPIBW3SCpk26K7DG8wMVR9mUzTvZIZCIMJ1zKzVXFMS9aQ024/Lv1XsK6/YMGAceDw==","signatures":[{"sig":"MEYCIQDml0rqI1gPjJiwIkMxqyR8vs+8psSRu+e+IlXmJxP1CAIhAKNepuH5yLV1aMQEuvUInXmG5Tj2wJ61v/yjYCKL63Lq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":372221},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./http":"./src/http/index.ts","./jobs":"./src/jobs.ts","./en-US":"./src/en-US.ts","./pt-BR":"./src/pt-BR.ts","./locales":"./src/locales.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"9aa6a7b4c316ceed44033000e57b1b02c316537b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/i18n":"^1.0.0","@12-apps/wiring":"^1.10.0","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.6.0_1787547235671_0.2925989285516304","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@12-apps/product-research","version":"2.7.0","license":"MIT","_id":"@12-apps/product-research@2.7.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"a1458f92e8664cd0f1499b4840ad01f4af2fff80","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.7.0.tgz","fileCount":75,"integrity":"sha512-A3ehZepAG54UHRb9DPzrcs8A29qb7TKGv2prfMUt6jqKo0zF6V4tUr9IABPHM/UnwOrddiedol05RRmTqWk7Ig==","signatures":[{"sig":"MEQCIAePSnor8IlR4ByvY2mZJm3BH248wQwuiAU7eECCqoCfAiB6YngeEvmTr7sDZqhBYuX4iaX2OBdLZLcP/fO4Sdb7Ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375194},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./http":"./src/http/index.ts","./jobs":"./src/jobs.ts","./en-US":"./src/en-US.ts","./pt-BR":"./src/pt-BR.ts","./locales":"./src/locales.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"03c5e167469ab2118b1d18148cf456f8653a0345","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/i18n":"^1.1.0","@12-apps/wiring":"^1.12.1","@12-apps/eslint-config":"^1.21.1","@12-apps/typescript-config":"^1.20.1"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.7.0_1787594972017_0.7968604271428383","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@12-apps/product-research","version":"2.8.0","license":"MIT","_id":"@12-apps/product-research@2.8.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b438738d28d550b421bcc7d2faabe217177227e5","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.8.0.tgz","fileCount":76,"integrity":"sha512-C8wkV3vMTIk7vtXMEtCFbEWgwW0OihKAUxFgZLsfyqZP1wVIqVUR/MsHlxio8XVJzh7lerXGjdPlr84ys+1qQg==","signatures":[{"sig":"MEYCIQD2/ccQVB9aHrahIkhuzfKaxaCL08WW2VV8+l4B12Ny5wIhAOqIKWzS46LTXvaGQb/2QJG0zv+13IKSvToNYdtRBQnA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378292},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./http":"./src/http/index.ts","./jobs":"./src/jobs.ts","./en-US":"./src/en-US.ts","./pt-BR":"./src/pt-BR.ts","./locales":"./src/locales.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"4714bd10c901bcc51544843d5d6091cc1509e649","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/i18n":"^1.2.0","@12-apps/wiring":"^1.14.0","@12-apps/eslint-config":"^1.22.0","@12-apps/typescript-config":"^1.21.0"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.8.0_1787617830390_0.7759291259824685","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@12-apps/product-research","version":"2.9.0","license":"MIT","_id":"@12-apps/product-research@2.9.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"12f746cb2982295e26705c12ada403b793609101","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.9.0.tgz","fileCount":76,"integrity":"sha512-TgVW8pygFZrMbzLnfBXn1KHqd8JJvP8NsD8ScQRub7CShr60EpKXj7YtSTUx5cgemrJfl7Uf7AWsbi9fZXllEw==","signatures":[{"sig":"MEYCIQCUGGCQ68D/iaGxdawL2ZG9rdVLTTxRjYm1YIv0L9HyhwIhAKSb3ki8b871jK4No4ERO9YhJNxVO1GHm/5L4Zs3mb8O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379085},"type":"module","wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./http":"./src/http/index.ts","./jobs":"./src/jobs.ts","./en-US":"./src/en-US.ts","./pt-BR":"./src/pt-BR.ts","./locales":"./src/locales.ts","./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"e1816b3cb4bdda4b1a3957b7f6f9fece0921a459","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/product-research"},"_npmVersion":"12.0.2","description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/i18n":"^1.2.0","@12-apps/wiring":"^1.14.0","@12-apps/eslint-config":"^1.22.0","@12-apps/typescript-config":"^1.21.0"},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/product-research_2.9.0_1787620076820_0.37767259987577284","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@12-apps/product-research","version":"2.10.0","type":"module","sideEffects":false,"description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","exports":{".":"./src/index.ts","./jobs":"./src/jobs.ts","./http":"./src/http/index.ts","./pt-BR":"./src/pt-BR.ts","./manifest":"./src/manifest/index.ts","./manifest/server":"./src/manifest/server.ts","./en-US":"./src/en-US.ts","./locales":"./src/locales.ts","./package.json":"./package.json"},"scripts":{"clean":"rm -rf node_modules coverage","test":"node ../../scripts/vitest-with-teardown.mjs run","test:watch":"vitest watch","lint":"eslint src --max-warnings 0","check-types":"tsc --noEmit","typecheck":"tsc --noEmit"},"dependencies":{"zod":"^4.3.5"},"devDependencies":{"@12-apps/eslint-config":"^1.22.0","@12-apps/i18n":"^1.2.0","@12-apps/typescript-config":"^1.21.0","@12-apps/wiring":"^1.16.0","eslint":"^9.39.1","typescript":"^5.9.2","vitest":"^3.2.4"},"engines":{"node":">=22.0.0"},"license":"MIT","publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/12-apps/shared-packages.git","directory":"packages/product-research"},"wiring":{"db":{"partial":"prisma/product-research.prisma","migrations":"prisma/migrations"}},"peerDependencies":{"@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true}},"gitHead":"f20bcf2ed49c404ade9f624c06f57333bcca4beb","_id":"@12-apps/product-research@2.10.0","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"homepage":"https://github.com/12-apps/shared-packages#readme","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-PAWSI5VWIXlX1V3WJZMc4xCGzocmAKBgPdVVD1LDjBlKE9z40qEmmScWqNxujR+SJp8skm4ggvzAo3SBy8kvQw==","shasum":"8349b18d21475dc743e4e7ffce078c4d64b8fa0a","tarball":"https://registry.npmjs.org/@12-apps/product-research/-/product-research-2.10.0.tgz","fileCount":76,"unpackedSize":380502,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fproduct-research@2.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH7qPjz0WpLFaY+Av1c5tRV6VqipbEOOLD6Qm8uHvqItAiEA3IHQF6ILklQDw9MjLIOVPk1O5d9LwXrMISdG7zVTSW0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a11c1cf8-138c-44af-9588-0ca3ff85c806"}},"directories":{},"maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/product-research_2.10.0_1787746832870_0.6394690548627782"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-05T02:17:29.923Z","modified":"2026-08-26T12:20:33.402Z","1.0.0":"2026-08-05T02:17:30.320Z","1.2.0":"2026-08-05T16:09:35.408Z","1.2.1":"2026-08-05T17:06:09.855Z","1.3.0":"2026-08-05T18:33:55.514Z","1.3.1":"2026-08-05T18:51:40.903Z","1.4.0":"2026-08-05T21:43:03.345Z","1.4.1":"2026-08-06T01:15:47.875Z","1.4.2":"2026-08-06T05:11:18.122Z","1.5.0":"2026-08-06T15:41:34.826Z","1.5.1":"2026-08-06T23:44:41.254Z","1.5.2":"2026-08-07T00:09:59.208Z","1.5.3":"2026-08-07T01:32:37.631Z","1.6.0":"2026-08-07T02:25:23.623Z","1.7.0":"2026-08-07T04:21:40.147Z","1.7.1":"2026-08-07T04:31:41.009Z","1.8.0":"2026-08-07T08:01:58.327Z","1.8.1":"2026-08-07T09:02:57.769Z","1.9.0":"2026-08-07T10:58:02.363Z","1.10.0":"2026-08-07T11:52:34.946Z","1.10.1":"2026-08-07T13:07:37.636Z","1.11.0":"2026-08-07T15:50:43.025Z","1.11.1":"2026-08-07T18:35:19.038Z","1.12.0":"2026-08-07T18:48:46.431Z","1.13.0":"2026-08-07T20:03:19.508Z","1.14.0":"2026-08-07T20:15:00.842Z","1.14.2":"2026-08-07T21:40:45.004Z","1.15.0":"2026-08-07T23:32:25.474Z","1.15.1":"2026-08-07T23:51:31.111Z","1.15.2":"2026-08-08T03:32:22.969Z","1.15.3":"2026-08-08T14:05:18.147Z","1.16.0":"2026-08-08T15:44:51.318Z","1.17.0":"2026-08-08T16:21:33.351Z","1.18.0":"2026-08-08T17:17:20.127Z","2.0.0":"2026-08-12T17:48:04.867Z","2.1.0":"2026-08-21T04:50:49.442Z","2.2.0":"2026-08-21T15:47:26.997Z","2.3.0":"2026-08-21T19:15:33.797Z","2.4.0":"2026-08-22T15:39:32.102Z","2.5.0":"2026-08-23T04:07:14.617Z","2.6.0":"2026-08-24T04:53:55.801Z","2.7.0":"2026-08-24T18:09:32.180Z","2.8.0":"2026-08-25T00:30:30.615Z","2.9.0":"2026-08-25T01:07:56.976Z","2.10.0":"2026-08-26T12:20:33.009Z"},"bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"license":"MIT","homepage":"https://github.com/12-apps/shared-packages#readme","repository":{"type":"git","url":"git+https://github.com/12-apps/shared-packages.git","directory":"packages/product-research"},"description":"Generic, portable research-to-buy engine: multi-source current-price discovery (store connectors, SERP, manual price lists), no-AI relevance scoring, unit-price ranking. Framework-free core with host ports (db/cache/budget/catalog). Zero app coupling.","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"readme":"ERROR: No README data found!","readmeFilename":""}