From 82e5aa28cb4a4534e0d1a6f58d68486f1dd9b9c8 Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Mon, 21 Sep 2026 21:01:05 +0300 Subject: [PATCH 1/5] store `fetch_id` in meta cache --- lib/plugins/system/meta/meta.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/system/meta/meta.js b/lib/plugins/system/meta/meta.js index 9ae6caaf6..85065a39c 100644 --- a/lib/plugins/system/meta/meta.js +++ b/lib/plugins/system/meta/meta.js @@ -48,7 +48,8 @@ export default { cache.set(meta_key, Object.assign({ // Store `_sys_created_at` seconds creation time. _sys_created_at: Math.floor(new Date().getTime() / 1000), - _sys_headers: htmlparser.headers + _sys_headers: htmlparser.headers, + _fetch_id: options.fetch_id }, meta), { ttl: ttl, refresh: options.refresh From c347015f89f51818b24a4e7fa52c29d99e7cc055 Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Tue, 22 Sep 2026 18:20:53 +0300 Subject: [PATCH 2/5] cache request headers --- lib/plugins/system/htmlparser/htmlparser.js | 3 ++- lib/plugins/system/meta/meta.js | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/plugins/system/htmlparser/htmlparser.js b/lib/plugins/system/htmlparser/htmlparser.js index 991a780c7..5af3c4acb 100644 --- a/lib/plugins/system/htmlparser/htmlparser.js +++ b/lib/plugins/system/htmlparser/htmlparser.js @@ -73,7 +73,7 @@ export default { } } }, - onResponse: function(resp) { + onResponse: function(resp, request_options) { function cacheAndRespond(error, data) { @@ -204,6 +204,7 @@ export default { }); handler.headers = headers; handler.abortController = abortController; + handler.request_options = request_options; handler.h2 = resp.h2; var result = { diff --git a/lib/plugins/system/meta/meta.js b/lib/plugins/system/meta/meta.js index 85065a39c..9062f7a87 100644 --- a/lib/plugins/system/meta/meta.js +++ b/lib/plugins/system/meta/meta.js @@ -45,10 +45,21 @@ export default { // Do not store to cache with ttl == 0. if (ttl !== 0) { + // Filter request headers starting with "x-". + var request_headers = Object.fromEntries( + Object.entries(htmlparser.request_options.headers || {}) + .filter(([key]) => key.toLowerCase().startsWith('x-')) + ); + cache.set(meta_key, Object.assign({ // Store `_sys_created_at` seconds creation time. _sys_created_at: Math.floor(new Date().getTime() / 1000), - _sys_headers: htmlparser.headers, + _sys_headers: { + // Response headers. + ...htmlparser.headers, + // Store selected request headers. + request_headers + }, _fetch_id: options.fetch_id }, meta), { ttl: ttl, From f0f0f9f43dbe28e479c7df6590c85e6901d48668 Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Tue, 22 Sep 2026 22:41:54 +0300 Subject: [PATCH 3/5] remove obsolete --- lib/plugins/system/meta/meta.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/plugins/system/meta/meta.js b/lib/plugins/system/meta/meta.js index 9062f7a87..c2ca9a78c 100644 --- a/lib/plugins/system/meta/meta.js +++ b/lib/plugins/system/meta/meta.js @@ -59,8 +59,7 @@ export default { ...htmlparser.headers, // Store selected request headers. request_headers - }, - _fetch_id: options.fetch_id + } }, meta), { ttl: ttl, refresh: options.refresh From a638e4e77d8b0eb4583cdb02ffe836ed8dd04a4f Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Wed, 23 Sep 2026 15:50:40 +0300 Subject: [PATCH 4/5] make `filtered_request_headers` in `htmlparser` --- lib/plugins/system/htmlparser/htmlparser.js | 10 +++++++++- lib/plugins/system/meta/meta.js | 14 +------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/lib/plugins/system/htmlparser/htmlparser.js b/lib/plugins/system/htmlparser/htmlparser.js index 5af3c4acb..f42ee876c 100644 --- a/lib/plugins/system/htmlparser/htmlparser.js +++ b/lib/plugins/system/htmlparser/htmlparser.js @@ -118,6 +118,15 @@ export default { } const headers = resp.headers; + + // Filter request headers starting with "x-". + var filtered_request_headers = Object.fromEntries( + Object.entries(request_options.headers || {}) + .filter(([key]) => key.toLowerCase().startsWith('x-')) + ); + + headers.request_headers = filtered_request_headers; + const abortController = resp.abortController; if (resp.status >= 300 && resp.status < 400 && headers.location) { @@ -204,7 +213,6 @@ export default { }); handler.headers = headers; handler.abortController = abortController; - handler.request_options = request_options; handler.h2 = resp.h2; var result = { diff --git a/lib/plugins/system/meta/meta.js b/lib/plugins/system/meta/meta.js index c2ca9a78c..3b53949da 100644 --- a/lib/plugins/system/meta/meta.js +++ b/lib/plugins/system/meta/meta.js @@ -44,22 +44,10 @@ export default { // Do not store to cache with ttl == 0. if (ttl !== 0) { - - // Filter request headers starting with "x-". - var request_headers = Object.fromEntries( - Object.entries(htmlparser.request_options.headers || {}) - .filter(([key]) => key.toLowerCase().startsWith('x-')) - ); - cache.set(meta_key, Object.assign({ // Store `_sys_created_at` seconds creation time. _sys_created_at: Math.floor(new Date().getTime() / 1000), - _sys_headers: { - // Response headers. - ...htmlparser.headers, - // Store selected request headers. - request_headers - } + _sys_headers: htmlparser.headers }, meta), { ttl: ttl, refresh: options.refresh From 74340cda8a0ea3804a8d2c464d3377405a10fa9c Mon Sep 17 00:00:00 2001 From: Nazar Leush Date: Wed, 23 Sep 2026 20:17:36 +0300 Subject: [PATCH 5/5] revert remove whitespace --- lib/plugins/system/meta/meta.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/plugins/system/meta/meta.js b/lib/plugins/system/meta/meta.js index 3b53949da..9ae6caaf6 100644 --- a/lib/plugins/system/meta/meta.js +++ b/lib/plugins/system/meta/meta.js @@ -44,6 +44,7 @@ export default { // Do not store to cache with ttl == 0. if (ttl !== 0) { + cache.set(meta_key, Object.assign({ // Store `_sys_created_at` seconds creation time. _sys_created_at: Math.floor(new Date().getTime() / 1000),