{"_id":"@alertnew/recipes","_rev":"10-804aa46b8ed7f9cbc9d365f521a91076","name":"@alertnew/recipes","dist-tags":{"latest":"1.0.9"},"versions":{"1.0.0":{"name":"@alertnew/recipes","version":"1.0.0","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.0","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"f4c32077854ff3139816c1987953761e0275d243","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.0.tgz","fileCount":20,"integrity":"sha512-DWZn7/Zs1Mkh+04VnK7UDD0xQmHbZQrOzE0hbvkq5iSltFSrYLbUUhuLNN5+W/P/gC3+sQdJP4urCrrLMPJTog==","signatures":[{"sig":"MEYCIQCYTkfSKlNxFZUBcc2FgMto3XS31m4kUgZT3tEDEpPtsAIhAKt6uPnIGyUlm2BGWjtkdA8MVJM9rCMt0foV7rmBGPCS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208830},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"6830eeda333e20fc937f474b5db88fd207e7dc1e","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.0_1765114482104_0.6319979099486304","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alertnew/recipes","version":"1.0.1","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.1","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"a76260da93ffc15534ca517821580d1f9f82033b","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.1.tgz","fileCount":20,"integrity":"sha512-kM4Skan4zYeZjLXT9sUszC0oxuTD8WZvJdvRRK8+O0Wg3haWKvXYsTbmEMESgZBC5HHbNKzQRVwHA45UdHbJ3A==","signatures":[{"sig":"MEYCIQDGWPi9ixG4jeuAxAW6iFoUBQmrM1p4WOVHvS+WDkEDuAIhAP2e5hIfN3bqIgjURb/4X2ZM3dsiGDBfmo+rdypE97co","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208824},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"737f71fe8f0120d5cd5aa5f853ddcb15772aff90","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.1_1765114717784_0.0009673167641461866","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alertnew/recipes","version":"1.0.2","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.2","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"9323ab3da033d3a28519421531211e5e29d8aca4","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.2.tgz","fileCount":20,"integrity":"sha512-SLwnaFJ8Bu4vn8G0V36CTAXytwyQQAbfH4/wToEHtOb6fRJz2iuO7bdFTp75pPACORy3etMr78KicRRHRl4l8Q==","signatures":[{"sig":"MEQCIAUyUrNIG3hb2Yr0/zveveZf4MBW+kJehOSMqsiHzw+kAiAO1lXNZuaEB5iO1mZWEDtTeeBefAX4upOKgVXvQheHHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212355},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"6cc32a19e6bf2c337eb97b078a5a8f0690777676","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.2_1765156755943_0.5074846238422346","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alertnew/recipes","version":"1.0.3","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.3","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"0477f84efad5d53a62db73f8854df29df7badc21","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.3.tgz","fileCount":20,"integrity":"sha512-ibxBHa9rEPM98AZWAUFtMIMoCcq2aRizEe8tefQ5wqXl1iabW20rr1rHMDOJxtJoc/H/6bRUhqW0W8xWmaA7LA==","signatures":[{"sig":"MEQCIED7qti0NoKunS8FZ/A/bbAAPYuNTrAquMHCfQJwFDm/AiBO4mab/sVDeyvmbM+xbH9pztoYQippPKEIlBDB3+HEHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223956},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"6cc32a19e6bf2c337eb97b078a5a8f0690777676","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.3_1765159502512_0.3937683637864313","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alertnew/recipes","version":"1.0.4","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.4","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"b5fe51bdef40707c030246c68c1fb36e2b53d3c3","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.4.tgz","fileCount":20,"integrity":"sha512-zVKbOH67CkN05H2JuLgGGcndaG4SPykKwbzBFf9/ZW39MAtP62R2AqEmX5/RPeT1v1DyXAPwiH0WjbYWGIbnzA==","signatures":[{"sig":"MEYCIQDJqKDI9fa0BrZejznx7Bw0nJn0S4Ulc6LqDH46rDqxAQIhAN6YJDvw2OVCki4DesFDlHuzSL/hOaMjpkMnhSz6LQY/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221833},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"6cc32a19e6bf2c337eb97b078a5a8f0690777676","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.4_1765159786534_0.11045146457300459","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@alertnew/recipes","version":"1.0.5","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.5","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"9c61b9c35aabd86e5ed6678e234f4da7b1f65d5d","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.5.tgz","fileCount":20,"integrity":"sha512-JWS4tq9Gfg+axSlZSF1jaCrNAEap4w5+Jz/4OvmVOui4RNF5JchqxToH16OyhNTe7REzTHYnrPdSarvaSYmmVw==","signatures":[{"sig":"MEUCIAeXy88MAyFNffva8+9TcZLywNbdy7jvOqbu8X0sagvKAiEA9ygS21oVGeSXWOXpFxjiGNOvZ3Jz6h1qZh7/cZLjQ20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217252},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"6cc32a19e6bf2c337eb97b078a5a8f0690777676","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.5_1765161820452_0.3645510185441423","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@alertnew/recipes","version":"1.0.6","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.6","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"e9cbda5d89321f485ed916d5a9cb6cfd54faf83f","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.6.tgz","fileCount":20,"integrity":"sha512-2cA9XCzvw7b7UDa9qsLqnMXuC79eIKdRZxhXofSVxkPrS9lD/RFdoApUzLR7djPmnUT+/luMEcA4w6Ot65KyOw==","signatures":[{"sig":"MEUCIQC6qmWn/P9wXOZNWq2fTd9XfImkskR12+yWqx8wPjO5JQIgG8Thi/UeghKjPj56iXbP4pdSNpXXLl2QoPXdYKIA7sE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217909},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"ec08d05ed65e05e486371ef15cae988f675dd072","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.6_1765174716490_0.013156180441420862","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@alertnew/recipes","version":"1.0.7","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.7","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"bcbabfb9ea7ba17a11829d1f5cad1a4413f0169b","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.7.tgz","fileCount":20,"integrity":"sha512-94XtqWbAvCKrYWv8ENN00414y1AbqEBtL8I05afLLxM5qVryEefgyhP+e36Rnh1NrML6YB3RWGIQytqmvbjZcg==","signatures":[{"sig":"MEUCIA+ExRtXcURH+BD5MArBxOrBivCxHqIgWP/sPfgT4SgMAiEAtsJXMuQTXqItoyJle2d64QUFzCYkTbJo1VgbAMUDuLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218136},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"6ff91644d5c741cdc36fbe1af983ca9084ad929e","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.7_1765179691713_0.500884282576985","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@alertnew/recipes","version":"1.0.8","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"url":"https://alert.new","name":"alert.new","email":"hello@alert.new"},"license":"MIT","_id":"@alertnew/recipes@1.0.8","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"dist":{"shasum":"118dcaeddd2bd562a18d63ad44e4552d0329863a","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.8.tgz","fileCount":19,"integrity":"sha512-B+POFgBPk7F0f9FvVXwFYk8qcKKcg5n1VLIUDRoUuJXgedSQQep1SUK1+a2zsP+weE879SHAYMPTtd41hB4VTA==","signatures":[{"sig":"MEUCICJ4A11VL4Q7HN4JXmwtbX67IopedMlfsHgyRmJxNQ37AiEAwdMvhpi2j4gdWw6kRjYxjGDRMgMrkqjVo54Tv65WQPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206902},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":{"url":"https://alert.new","type":"website"},"gitHead":"ebb883c5a868030dde171ba4eea44cf93689d8d2","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"alert-new","email":"alex@alert.new"},"repository":{"url":"git+https://github.com/alert-new/recipes.git","type":"git"},"_npmVersion":"11.4.2","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.5.0","eslint":"^9.0.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/recipes_1.0.8_1765182370630_0.34102506980071334","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@alertnew/recipes","version":"1.0.9","description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","main":"dist/index.js","types":"dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --format esm --dts --clean","typecheck":"tsc --noEmit","lint":"eslint src --ext .ts","test":"vitest run","test:watch":"vitest","validate":"npx tsx scripts/validate-recipes.ts","test:live":"npx tsx scripts/test-live-urls.ts","test:changed":"npx tsx scripts/test-changed-recipes.ts","prepublishOnly":"npm run build"},"keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"author":{"name":"alert.new","email":"hello@alert.new","url":"https://alert.new"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alert-new/recipes.git"},"homepage":"https://alert.new","bugs":{"url":"https://github.com/alert-new/recipes/issues"},"funding":{"type":"website","url":"https://alert.new"},"publishConfig":{"access":"public"},"devDependencies":{"@types/node":"^22.0.0","eslint":"^9.0.0","tsup":"^8.5.0","tsx":"^4.19.0","typescript":"^5.7.0","vitest":"^3.0.0"},"engines":{"node":">=20"},"gitHead":"ff11fdd7819c6fee6b177da3f6a3ae8d95bdce0f","_id":"@alertnew/recipes@1.0.9","_nodeVersion":"22.21.1","_npmVersion":"11.6.4","dist":{"integrity":"sha512-foQDYZB/Uyg34njR67HpDb/DseQr7WplYlk+HdC0CxPDj1h6Lg3EaluGbCyrzmQneNv5YE4aUermSJFSUTk53w==","shasum":"9ec96cae180665f4c114fb8763aaeca044640b04","tarball":"https://registry.npmjs.org/@alertnew/recipes/-/recipes-1.0.9.tgz","fileCount":19,"unpackedSize":206375,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alertnew%2frecipes@1.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCSmMfsEEgCNyGslSovjTKOs89DhzRESnAQzz8v0lamNwIhAKNs0V0wVbCjuWYYzIeTwrMovRq9AdQQOopcjvud8EWX"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a89ab3ca-cf33-4cbe-a67f-49cd3c8119c6"}},"directories":{},"maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/recipes_1.0.9_1765276150777_0.38147654517673146"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-07T13:34:41.999Z","modified":"2025-12-09T10:29:11.376Z","1.0.0":"2025-12-07T13:34:42.289Z","1.0.1":"2025-12-07T13:38:37.933Z","1.0.2":"2025-12-08T01:19:16.087Z","1.0.3":"2025-12-08T02:05:02.662Z","1.0.4":"2025-12-08T02:09:46.704Z","1.0.5":"2025-12-08T02:43:40.610Z","1.0.6":"2025-12-08T06:18:36.642Z","1.0.7":"2025-12-08T07:41:31.858Z","1.0.8":"2025-12-08T08:26:10.788Z","1.0.9":"2025-12-09T10:29:10.961Z"},"bugs":{"url":"https://github.com/alert-new/recipes/issues"},"author":{"name":"alert.new","email":"hello@alert.new","url":"https://alert.new"},"license":"MIT","homepage":"https://alert.new","keywords":["alert","alerts","monitoring","web-scraping","scraping","price-tracking","price-alert","price-drop","stock-alert","back-in-stock","website-monitoring","web-monitoring","change-detection","amazon-price-tracker","ebay-tracker","github-releases","youtube-stats","reddit-tracker","notification","automation","extractors","recipes"],"repository":{"type":"git","url":"git+https://github.com/alert-new/recipes.git"},"description":"Open-source web extraction recipes for alert.new - track prices, stock, GitHub releases, YouTube stats & more. Free website monitoring at https://alert.new","maintainers":[{"name":"alert-new","email":"alex@alert.new"}],"readme":"# @alertnew/recipes\n\n[![npm version](https://img.shields.io/npm/v/@alertnew/recipes.svg)](https://www.npmjs.com/package/@alertnew/recipes)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Open-source extraction recipes for [alert.new](https://alert.new)** - the easiest way to monitor any website for changes.\n\n## What is alert.new?\n\n[**alert.new**](https://alert.new) is a free website monitoring service that lets you:\n\n- **Track price drops** on Amazon, eBay, and any e-commerce site\n- **Get notified** when products come back in stock\n- **Monitor GitHub repos** for new releases\n- **Follow social media** metrics (YouTube views, Reddit upvotes, etc.)\n- **Watch any webpage** for changes\n\n**No coding required.** Just paste a URL and set your alert conditions.\n\n**Try it free at [alert.new](https://alert.new)**\n\n---\n\n## What is a Recipe?\n\nRecipes are the extraction logic that powers alert.new. They define:\n\n- **URL matching** - Which websites this recipe handles\n- **Fields** - What data to extract (price, stock, views, etc.)\n- **Default alerts** - Pre-configured conditions users can enable\n- **Extraction logic** - How to parse HTML/JSON into structured data\n\n## Available Recipes\n\n| Recipe | Website | Fields Extracted |\n|--------|---------|-----------------|\n| **amazon** | Amazon (all regions) | Price, stock, rating, reviews, deals, coupons, BSR |\n| **ebay** | eBay | Price, bids, seller rating, shipping, time left |\n| **github** | GitHub | Stars, forks, releases, issues, license, topics |\n| **youtube** | YouTube | Views, likes, comments, subscribers, duration |\n| **reddit** | Reddit | Score, comments, awards, upvote ratio |\n| **hackernews** | Hacker News | Points, comments, author, rank |\n| **npm** | npm Registry | Version, downloads, dependencies, license |\n| **twitter** | X/Twitter | Author, verified status |\n| **producthunt** | Product Hunt | Upvotes, comments, rank |\n| **generic** | Any website | Title, description, meta tags, JSON-LD |\n\n## Installation\n\n```bash\nnpm install @alertnew/recipes\n```\n\n## Usage\n\n```typescript\nimport { getRecipeForUrl, getRecipeBySlug } from '@alertnew/recipes'\n\n// Get the right recipe for any URL\nconst recipe = getRecipeForUrl('https://www.amazon.com/dp/B0D1XD1ZV3')\nconsole.log(recipe.meta.name) // \"Amazon Product\"\n\n// Extract data from HTML\nconst html = await fetch(url).then(r => r.text())\nconst data = await recipe.extract(html, url)\nconsole.log(data) // { title: \"...\", price: 29.99, inStock: true, ... }\n\n// Or get a recipe by slug\nconst github = getRecipeBySlug('github')\n```\n\n## Contributing a Recipe\n\nWe welcome contributions! Help us support more websites.\n\n### 1. Fork & Clone\n\n```bash\ngit clone https://github.com/alert-new/recipes.git\ncd recipes\nnpm install\n```\n\n### 2. Create Your Recipe\n\nCreate a new file in `src/recipes/`:\n\n```typescript\nimport { defineRecipe } from '../types'\n\nexport const myRecipe = defineRecipe({\n  meta: {\n    slug: 'my-site',\n    name: 'My Site',\n    description: 'Track prices on My Site',\n    icon: 'https://example.com/favicon.ico',\n    category: 'ecommerce',\n    tags: ['shopping', 'deals'],\n    maintainers: ['your-github-username'],\n    examples: ['https://example.com/product/123'],\n  },\n\n  match: /^https?:\\/\\/(www\\.)?example\\.com\\/product\\//i,\n\n  fields: {\n    title: { type: 'string', label: 'Title', primary: true },\n    price: { type: 'currency', label: 'Price', primary: true },\n    inStock: { type: 'boolean', label: 'In Stock' },\n  },\n\n  defaultAlerts: [\n    {\n      id: 'price-drop',\n      label: 'Price Drop',\n      description: 'Notify when price decreases',\n      when: 'price < previous.price',\n      icon: '💰',\n    },\n  ],\n\n  async extract(html, url) {\n    const data = {}\n    // Your extraction logic here\n    return data\n  },\n})\n```\n\n### 3. Test Your Recipe\n\n```bash\nnpm test                    # Run unit tests\nnpm run validate            # Validate all recipes\nnpm run test:live           # Test against live URLs\n```\n\n### 4. Submit a PR\n\nWe'll review and merge quality contributions!\n\n## Helper Functions\n\nImport from `@alertnew/recipes`:\n\n| Function | Description |\n|----------|-------------|\n| `extractFirst(html, regex)` | Extract first regex match |\n| `extractAll(html, regex)` | Extract all matches |\n| `extractMetaTags(html)` | Get all meta tags as object |\n| `extractJsonLd(html)` | Parse JSON-LD structured data |\n| `parsePrice(str)` | Parse \"$1,234.56\" to number |\n| `parseAbbreviatedNumber(str)` | Parse \"1.2K\", \"5M\" to number |\n| `decodeHtmlEntities(str)` | Decode &amp; etc. |\n\n## Field Types\n\n| Type | Description | Condition Support |\n|------|-------------|-------------------|\n| `string` | Text content | `=`, `!=`, `contains` |\n| `number` | Numeric value | `<`, `>`, `<=`, `>=`, `=`, `!=` |\n| `boolean` | True/false | `== true`, `== false` |\n| `currency` | Money value | Same as number |\n| `url` | URL string | `=`, `!=` |\n| `date` | ISO date string | `=`, `!=` |\n\n## Alert Conditions\n\nThe `when` expression supports:\n\n```javascript\n// Comparisons\nprice < 100\nprice < previous.price\ninStock == true && previous.inStock == false\n\n// Math\nprice < previous.price * 0.9     // 10% price drop\n\n// Functions\nfloor(stars / 1000) > floor(previous.stars / 1000)  // Star milestone\n```\n\n## API Reference\n\n```typescript\n// Get all recipes\nimport { recipes, allRecipes } from '@alertnew/recipes'\n\n// Find recipe for URL\nimport { getRecipeForUrl } from '@alertnew/recipes'\nconst recipe = getRecipeForUrl(url)\n\n// Get recipe by slug\nimport { getRecipeBySlug } from '@alertnew/recipes'\nconst amazon = getRecipeBySlug('amazon')\n\n// Types\nimport type { Recipe, RecipeField, ExtractedData } from '@alertnew/recipes'\n```\n\n## Fair Use & Legal\n\nThis repository is for **educational and personal use**. By using these recipes:\n\n1. **Respect robots.txt** - Don't scrape disallowed pages\n2. **Rate limit** - Don't overload target websites\n3. **Public data only** - Only extract publicly available information\n4. **Comply with ToS** - Follow each website's Terms of Service\n\n[alert.new](https://alert.new) is designed for personal monitoring at reasonable intervals, not bulk data collection.\n\n## Links\n\n- **Website**: [alert.new](https://alert.new)\n- **Documentation**: [alert.new/docs](https://alert.new/docs)\n- **Issues**: [GitHub Issues](https://github.com/alert-new/recipes/issues)\n\n## License\n\nMIT - see [LICENSE](LICENSE)\n\n---\n\n**Start monitoring any website for free at [alert.new](https://alert.new)**\n","readmeFilename":"README.md"}