From d25ae14dee28beeec6df4805c5371c1b5b4c8dcf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Sep 2025 01:42:07 +0000 Subject: [PATCH 1/2] fix(deps): update dependency cacheable to v2 --- package-lock.json | 51 +++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 48 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4ead689..46e96b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@types/jsdom": "^21.1.7", "async-mutex": "^0.5.0", "bytes": "^3.1.2", - "cacheable": "^1.10.4", + "cacheable": "^2.0.0", "cheerio": "^1.0.0", "express": "^5.1.0", "fetch-socks": "^1.3.2", @@ -568,6 +568,34 @@ "dev": true, "license": "MIT" }, + "node_modules/@cacheable/memoize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@cacheable/memoize/-/memoize-2.0.0.tgz", + "integrity": "sha512-Q6PjhmFuLOKLFSLrs/2NaGvryuiTsUJON+rJlUxkzXQowja7hmqD9Y8iFU9UgocMoUbW31bMcpyGZWj5A8Q+1Q==", + "license": "MIT", + "dependencies": { + "@cacheable/utils": "^2.0.0" + } + }, + "node_modules/@cacheable/memory": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.0.tgz", + "integrity": "sha512-zVRFSZvkRYmDPxn7H83c7GqzJeXCb8fEuz0q/McG9VtiF/somlQwyRFstBSyKFJyq/IvUGfir1uSKg/WkWiTTA==", + "license": "MIT", + "dependencies": { + "@cacheable/memoize": "^2.0.0", + "@cacheable/utils": "^2.0.0", + "@keyv/bigmap": "^1.0.0", + "hookified": "^1.12.0", + "keyv": "^5.5.0" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.0.0.tgz", + "integrity": "sha512-Y+ZxdxSo2ErcROjNCdButjobQDuu4mpx875uhItK6ZqW3XmDikG+YIjh30ELfOZnVFjxfpvgjz57HbYJ0m1ApQ==", + "license": "MIT" + }, "node_modules/@colors/colors": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", @@ -1413,6 +1441,18 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@keyv/bigmap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.0.0.tgz", + "integrity": "sha512-N2UsRSXlWwbvYKdFVS7sKqj6oXGegELh+zr9VripWDc8grsq8KBNp8JHI+9AQuUEFiM1S7+tm6lLp/lmbBCqCw==", + "license": "MIT", + "dependencies": { + "hookified": "^1.10.0" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/@keyv/serialize": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.0.tgz", @@ -3314,11 +3354,14 @@ "optional": true }, "node_modules/cacheable": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.4.tgz", - "integrity": "sha512-Gd7ccIUkZ9TE2odLQVS+PDjIvQCdJKUlLdJRVvZu0aipj07Qfx+XIej7hhDrKGGoIxV5m5fT/kOJNJPQhQneRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.0.0.tgz", + "integrity": "sha512-b8AHJNiDmWu7Eg83rRDhu6mbG2qRG+84tAFq1wS+vgHEp6x9qYeyPz5lszfefftbmXpvjzCqcvZiK4fOO1iNMQ==", "license": "MIT", "dependencies": { + "@cacheable/memoize": "^2.0.0", + "@cacheable/memory": "^2.0.0", + "@cacheable/utils": "^2.0.0", "hookified": "^1.11.0", "keyv": "^5.5.0" } diff --git a/package.json b/package.json index fb96b28..3a27cc2 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@types/jsdom": "^21.1.7", "async-mutex": "^0.5.0", "bytes": "^3.1.2", - "cacheable": "^1.10.4", + "cacheable": "^2.0.0", "cheerio": "^1.0.0", "express": "^5.1.0", "fetch-socks": "^1.3.2", -- 2.45.2 From 7cdbad8798a37393462298b9c3b42c4026cfe7a1 Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Wed, 10 Sep 2025 10:10:24 +0000 Subject: [PATCH 2/2] chore: migrate to cacheable v2 --- src/extractor/ExtractorRegistry.ts | 2 +- src/utils/Fetcher.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extractor/ExtractorRegistry.ts b/src/extractor/ExtractorRegistry.ts index 37f9db7..b48e4ad 100644 --- a/src/extractor/ExtractorRegistry.ts +++ b/src/extractor/ExtractorRegistry.ts @@ -39,7 +39,7 @@ export class ExtractorRegistry { ? `${extractor.id}_${normalizedUrl}_${ctx.config.mediaFlowProxyUrl}` : `${extractor.id}_${normalizedUrl}`; - const storedDataRaw = await this.urlResultCache.get(cacheKey, { raw: true }); + const storedDataRaw = await this.urlResultCache.getRaw(cacheKey); const expires = storedDataRaw?.expires; if (storedDataRaw && expires) { // Ignore the cache randomly after at least 2/3 of the TTL passed to start refreshing results slowly diff --git a/src/utils/Fetcher.ts b/src/utils/Fetcher.ts index bd5694b..b3bde20 100644 --- a/src/utils/Fetcher.ts +++ b/src/utils/Fetcher.ts @@ -262,7 +262,7 @@ export class Fetcher { protected async fetchWithTimeout(ctx: Context, url: URL, init?: CustomRequestInit, tryCount = 0): Promise { this.logger.info(`Fetch ${init?.method ?? 'GET'} ${url}`, ctx); - const isRateLimitedRaw = await this.rateLimitedCache.get(url.host, { raw: true }); + const isRateLimitedRaw = await this.rateLimitedCache.getRaw(url.host); /* istanbul ignore if */ if (isRateLimitedRaw && isRateLimitedRaw.value && isRateLimitedRaw.expires) { const ttl = isRateLimitedRaw.expires - Date.now(); -- 2.45.2