Skip to content

Commit ca17e9c

Browse files
committed
dependency update: wabac.js 2.9.5, replaywebpage 1.5.5, ruffle (2021-10-25), electron 15.3.0
downloader: use sha-1 when downloading as WARC/1.0 for compatibility with older tools remove duplicate sw.js bump to 0.7.4
1 parent 372ec0c commit ca17e9c

File tree

11 files changed

+146
-99730
lines changed

11 files changed

+146
-99730
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"name": "archiveweb.page",
3-
"version": "0.7.3",
3+
"version": "0.7.4",
44
"main": "index.js",
55
"description": "Create Web Archives directly in your browser",
66
"repository": "https://github.com/webrecorder/archiveweb.page",
77
"author": "Webrecorder Software",
88
"license": "AGPL-3.0-or-later",
99
"dependencies": {
1010
"@fortawesome/fontawesome-free": "^5.13.0",
11-
"@webrecorder/wabac": "^2.9.2",
11+
"@webrecorder/wabac": "^2.9.5",
1212
"browsertrix-behaviors": "^0.2.3",
1313
"btoa": "^1.2.1",
1414
"bulma": "^0.9.3",
@@ -20,14 +20,14 @@
2020
"keyword-mark-element": "^0.1.2",
2121
"node-fetch": "2.6.2",
2222
"pretty-bytes": "^5.6.0",
23-
"replaywebpage": "^1.5.3",
23+
"replaywebpage": "^1.5.5",
2424
"uuid": "^8.3.2",
2525
"warcio": "^1.4.7"
2626
},
2727
"devDependencies": {
2828
"copy-webpack-plugin": "^6.4.0",
2929
"css-loader": "^3.5.3",
30-
"electron": "^14.0.0",
30+
"electron": "^15.3.0",
3131
"electron-builder": "^22.11.11",
3232
"electron-notarize": "^1.0.0",
3333
"generate-json-webpack-plugin": "1.0.0",

src/downloader.js

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ class Downloader
8989
this.format = format;
9090
this.warcVersion = (format === "warc1.0") ? "WARC/1.0" : "WARC/1.1";
9191

92+
if (format === "warc1.0") {
93+
this.digestOpts = {algo: "sha-1", prefix: "sha1:", base32: true};
94+
} else {
95+
this.digestOpts = {algo: "sha-256", prefix: "sha256:"};
96+
}
97+
9298
this.filename = filename;
9399

94100
// determine filename from title, if it exists
@@ -577,7 +583,7 @@ class Downloader
577583
const date = this.createdDate;
578584

579585
const record = await WARCRecord.createWARCInfo({filename, type, date, warcHeaders, warcVersion}, info);
580-
const buffer = await WARCSerializer.serialize(record, {gzip: true});
586+
const buffer = await WARCSerializer.serialize(record, {gzip: true, digest: this.digestOpts});
581587
return buffer;
582588
}
583589

@@ -616,6 +622,8 @@ class Downloader
616622
let type = null;
617623

618624
let refersToUrl, refersToDate;
625+
let refersToDigest;
626+
let storeDigest = null;
619627

620628
let method = "GET";
621629
let requestBody;
@@ -647,6 +655,7 @@ class Downloader
647655

648656
refersToUrl = digestOriginal.url;
649657
refersToDate = digestOriginal.date;
658+
refersToDigest = digestOriginal.payloadDigest || resource.digest;
650659

651660
} else if (resource.origURL && resource.origTS) {
652661
if (!resource.digest) {
@@ -660,6 +669,7 @@ class Downloader
660669

661670
refersToUrl = resource.origURL;
662671
refersToDate = new Date(resource.origTS).toISOString();
672+
refersToDigest = digestOriginal.payloadDigest || resource.digest;
663673

664674
} else {
665675
type = "response";
@@ -673,7 +683,8 @@ class Downloader
673683
}
674684

675685
if (method === "GET") {
676-
this.digestsVisted[resource.digest] = {url, date};
686+
storeDigest = {url, date};
687+
this.digestsVisted[resource.digest] = storeDigest;
677688
}
678689
}
679690

@@ -691,8 +702,8 @@ class Downloader
691702
warcHeaders["WARC-JSON-Metadata"] = JSON.stringify(resource.extraOpts);
692703
}
693704

694-
if (resource.digest) {
695-
warcHeaders["WARC-Payload-Digest"] = resource.digest;
705+
if (refersToDigest) {
706+
warcHeaders["WARC-Payload-Digest"] = refersToDigest;
696707
}
697708

698709
// remove encoding, set content-length as encoding never preserved in browser-based capture
@@ -702,10 +713,13 @@ class Downloader
702713
url, date, type, warcVersion, warcHeaders, statusline, httpHeaders,
703714
refersToUrl, refersToDate}, getPayload(payload));
704715

705-
const buffer = await WARCSerializer.serialize(record, {gzip: true});
716+
const buffer = await WARCSerializer.serialize(record, {gzip: true, digest: this.digestOpts});
706717
if (!resource.digest) {
707718
resource.digest = record.warcPayloadDigest;
708719
}
720+
if (storeDigest) {
721+
storeDigest.payloadDigest = record.warcPayloadDigest;
722+
}
709723

710724
this.lastPageId = pageId;
711725
this.lastUrl = url;
@@ -730,7 +744,7 @@ class Downloader
730744
statusline,
731745
}, getPayload(requestBody));
732746

733-
records.push(await WARCSerializer.serialize(reqRecord, {gzip: true}));
747+
records.push(await WARCSerializer.serialize(reqRecord, {gzip: true, digest: this.digestOpts}));
734748
}
735749

736750
return records;
@@ -751,7 +765,7 @@ class Downloader
751765

752766
const record = await WARCRecord.create({url, date, warcHeaders, warcVersion, type}, payload);
753767

754-
const buffer = await WARCSerializer.serialize(record, {gzip: true});
768+
const buffer = await WARCSerializer.serialize(record, {gzip: true, digest: this.digestOpts});
755769
if (!resource.digest) {
756770
resource.digest = record.warcPayloadDigest;
757771
}

wr-ext/bg.js

Lines changed: 7 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Webrecorder ArchiveWeb.page",
33
"description": "Create high-fidelity web archives directly in your browser",
4-
"version": "0.7.3",
4+
"version": "0.7.4",
55
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
66
"permissions": [
77
"debugger",

wr-ext/popup.js

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/replay/sw.js

Lines changed: 18 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/replay/ui.js

Lines changed: 73 additions & 60 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
-5.59 MB
Binary file not shown.

wr-ext/ruffle/ruffle.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/sw.js

Lines changed: 0 additions & 99595 deletions
This file was deleted.

0 commit comments

Comments
 (0)