From 91f8fadc5f6d2c9e43cda0de63aeab24c9225d2f Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Tue, 1 Apr 2025 22:11:56 -0700 Subject: [PATCH] deps update: update webrecorder dependencies (#810) - browsertrix-behaviors 0.8.1 for improved logging / new behavior functions - wabac.js 2.22.9 - RWP 2.3.4 for QA - update ReplayServer to support 'range: -x' requests used in latest RWP/wabac.js --- Dockerfile | 2 +- package.json | 4 ++-- src/util/replayserver.ts | 15 +++++++++------ yarn.lock | 26 +++++++++++++------------- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/Dockerfile b/Dockerfile index ebf77851..7d83e2c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,7 +39,7 @@ ADD config/ /app/ ADD html/ /app/html/ -ARG RWP_VERSION=2.2.5 +ARG RWP_VERSION=2.3.4 ADD https://cdn.jsdelivr.net/npm/replaywebpage@${RWP_VERSION}/ui.js /app/html/rwp/ ADD https://cdn.jsdelivr.net/npm/replaywebpage@${RWP_VERSION}/sw.js /app/html/rwp/ ADD https://cdn.jsdelivr.net/npm/replaywebpage@${RWP_VERSION}/adblock/adblock.gz /app/html/rwp/adblock.gz diff --git a/package.json b/package.json index aa49c852..947c71aa 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ }, "dependencies": { "@novnc/novnc": "1.4.0", - "@webrecorder/wabac": "^2.20.8", - "browsertrix-behaviors": "0.8.0", + "@webrecorder/wabac": "^2.22.9", + "browsertrix-behaviors": "^0.8.1", "client-zip": "^2.4.5", "css-selector-parser": "^3.0.5", "fetch-socks": "^1.3.0", diff --git a/src/util/replayserver.ts b/src/util/replayserver.ts index bf233001..ab416210 100644 --- a/src/util/replayserver.ts +++ b/src/util/replayserver.ts @@ -129,7 +129,7 @@ export class ReplayServer { getRespOptsForRequest(request: IncomingMessage, total: number) { const range = request.headers["range"] || ""; - const array = range.match(/bytes=(\d+)-(\d*)/); + const array = range.match(/bytes=(\d+)?-(\d*)/); let contentRange = undefined; // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -137,16 +137,19 @@ export class ReplayServer { if (array) { opts.start = parseInt(array[1]); opts.end = parseInt(array[2]); - if (isNaN(opts.end)) { - opts.end = undefined; + // negative value, subtract from end + if (isNaN(opts.start) && !isNaN(opts.end)) { + opts.start = total - opts.end; + opts.end = total - 1; + } else if (isNaN(opts.end)) { + opts.end = total - 1; } - const end = opts.end || total - 1; - contentRange = `bytes ${opts.start}-${end}/${total}`; + contentRange = `bytes ${opts.start}-${opts.end}/${total}`; return { status: 206, opts, contentRange, - contentLength: end - opts.start + 1, + contentLength: opts.end - opts.start + 1, }; } return { status: 200, opts, contentRange, contentLength: total }; diff --git a/yarn.lock b/yarn.lock index ce6dd6d8..ebf553fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1009,16 +1009,16 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@webrecorder/wabac@^2.20.8": - version "2.20.8" - resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.20.8.tgz#37dd14f4cf821f36ecdf5719d5f334bb3445290e" - integrity sha512-P6FxC17ZgPfwfp3HbdI9hkzMnqD5I3kBF0cMnue6m8wBVMCzcVGp9x43wT+pcq0zOv6ATGObxcmjJKCsDUus7A== +"@webrecorder/wabac@^2.22.9": + version "2.22.9" + resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.22.9.tgz#c48fae9bc10015789999e87e68d14d52ad99515f" + integrity sha512-FsOP9TAZtS1kFAcBMv4yTwcj0VvE2Ke25gDnxlZ/WQIDjZsjWaEK0ZRlY645Simi40byFQ2dry44X3dwtKWhEA== dependencies: "@peculiar/asn1-ecc" "^2.3.4" "@peculiar/asn1-schema" "^2.3.3" "@peculiar/x509" "^1.9.2" "@types/js-levenshtein" "^1.1.3" - "@webrecorder/wombat" "^3.8.7" + "@webrecorder/wombat" "^3.8.8" acorn "^8.10.0" auto-js-ipfs "^2.1.1" base64-js "^1.5.1" @@ -1039,10 +1039,10 @@ stream-browserify "^3.0.0" warcio "^2.4.3" -"@webrecorder/wombat@^3.8.7": - version "3.8.7" - resolved "https://registry.yarnpkg.com/@webrecorder/wombat/-/wombat-3.8.7.tgz#51c7465c589e0020be064121127c7c10a38ec21f" - integrity sha512-bW5V7cBweTkTazOIN8oZZGwHLevsGNv1luY3t0RYdEZhs5BDpTmUHN33zEbrXDOiPUlY3N3I8+73VA+PuxihoQ== +"@webrecorder/wombat@^3.8.8": + version "3.8.8" + resolved "https://registry.yarnpkg.com/@webrecorder/wombat/-/wombat-3.8.8.tgz#aab4dd8eea6d6cb17bfefb7ee1802e7b45b11ed7" + integrity sha512-XkJOZAyHrdXNkAVoISQEh/NHzaBMekQZfWqes/k2vYkW6v9DmZ0wjP7Kf6MHCuajKX8uSH+caB2tv1kJgvnv3Q== dependencies: warcio "^2.4.0" @@ -1460,10 +1460,10 @@ browserslist@^4.24.0: node-releases "^2.0.18" update-browserslist-db "^1.1.1" -browsertrix-behaviors@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/browsertrix-behaviors/-/browsertrix-behaviors-0.8.0.tgz#2e84a323f065bb4281ddfe6e3a96efbf18fb9b3c" - integrity sha512-aakiuTBf0SuX8P48/dbWZYPJ6TMGdqLEO9+Z3QfUpu4viBI7xY1necuJlTOuW4963AR/5aZCaLjfMNF/lOvl9w== +browsertrix-behaviors@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/browsertrix-behaviors/-/browsertrix-behaviors-0.8.1.tgz#21d2726d32ca23f94efd2c3e9a0b8b98c42482bb" + integrity sha512-bG5KA/9fF60slakycvbJZ4COo/nD9GKflNEhEk3yQQTy3C0ikRVOpueG9XfvAgq2r4Ji1NMY9pesJRpQqtHKXg== dependencies: query-selector-shadow-dom "^1.0.1"