From dfa12b53161ae759383f024341bbc8f739f4479e Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Wed, 23 Feb 2022 13:05:26 +0000 Subject: [PATCH 1/3] docs: browser CDN example --- package-lock.json | 48 ++----- .../client/examples/browser/cdn/README.md | 16 +++ .../client/examples/browser/cdn/index.html | 124 ++++++++++++++++++ packages/client/package.json | 3 +- packages/client/src/lib.js | 6 +- 5 files changed, 158 insertions(+), 39 deletions(-) create mode 100644 packages/client/examples/browser/cdn/README.md create mode 100644 packages/client/examples/browser/cdn/index.html diff --git a/package-lock.json b/package-lock.json index 69684dc481..471e507e94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4145,12 +4145,6 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "license": "MIT" }, - "node_modules/@types/parse-link-header": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-link-header/-/parse-link-header-1.0.1.tgz", - "integrity": "sha512-E2+Go9rQgPbmpkeA2iFXTWSTxX38KXlXwcdiIbt71Oorqr+G5QtH4AhpuDdxwRVyiTzdUrHnaaIumW/LhiZwVg==", - "dev": true - }, "node_modules/@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", @@ -4363,6 +4357,11 @@ "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", "license": "(Apache-2.0 AND MIT)" }, + "node_modules/@web3-storage/parse-link-header": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.0.tgz", + "integrity": "sha512-8XVacInZeeJT0qoTJxE5Ohf2duxd+Tpk6H83WBjav5J4etC6FxXW55KNSnOaAGtHaG/PpN2ZDecRpRcKBYPCyA==" + }, "node_modules/@web3-storage/pinpin": { "resolved": "packages/pinpin", "link": true @@ -16401,14 +16400,6 @@ "node": ">=4" } }, - "node_modules/parse-link-header": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-link-header/-/parse-link-header-2.0.0.tgz", - "integrity": "sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==", - "dependencies": { - "xtend": "~4.0.1" - } - }, "node_modules/parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", @@ -22026,7 +22017,7 @@ }, "packages/api": { "name": "@web3-storage/api", - "version": "5.1.4", + "version": "5.2.0", "license": "(Apache-2.0 OR MIT)", "dependencies": { "@aws-sdk/client-s3": "^3.28.0", @@ -22641,6 +22632,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", + "@web3-storage/parse-link-header": "^3.0.0", "browser-readablestream-to-it": "^1.0.3", "carbites": "^1.0.6", "cborg": "^1.6.0", @@ -22649,7 +22641,6 @@ "ipns": "^0.16.0", "libp2p-crypto": "^0.21.0", "p-retry": "^4.5.0", - "parse-link-header": "^2.0.0", "streaming-iterables": "^6.0.0", "uint8arrays": "^3.0.0" }, @@ -22659,7 +22650,6 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.1.3", "@types/mocha": "9.0.0", - "@types/parse-link-header": "^1.0.1", "bundlesize": "^0.18.1", "cors": "^2.8.5", "del-cli": "^4.0.0", @@ -23813,7 +23803,7 @@ }, "packages/website": { "name": "@web3-storage/website", - "version": "1.9.1", + "version": "1.10.0", "dependencies": { "@magic-ext/oauth": "^0.7.0", "@tailwindcss/typography": "^0.4.1", @@ -26923,12 +26913,6 @@ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, - "@types/parse-link-header": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-link-header/-/parse-link-header-1.0.1.tgz", - "integrity": "sha512-E2+Go9rQgPbmpkeA2iFXTWSTxX38KXlXwcdiIbt71Oorqr+G5QtH4AhpuDdxwRVyiTzdUrHnaaIumW/LhiZwVg==", - "dev": true - }, "@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", @@ -27837,6 +27821,11 @@ "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" }, + "@web3-storage/parse-link-header": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.0.tgz", + "integrity": "sha512-8XVacInZeeJT0qoTJxE5Ohf2duxd+Tpk6H83WBjav5J4etC6FxXW55KNSnOaAGtHaG/PpN2ZDecRpRcKBYPCyA==" + }, "@web3-storage/pinpin": { "version": "file:packages/pinpin", "requires": { @@ -37041,14 +37030,6 @@ "json-parse-better-errors": "^1.0.1" } }, - "parse-link-header": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-link-header/-/parse-link-header-2.0.0.tgz", - "integrity": "sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==", - "requires": { - "xtend": "~4.0.1" - } - }, "parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", @@ -40545,10 +40526,10 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.1.3", "@types/mocha": "9.0.0", - "@types/parse-link-header": "^1.0.1", "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", + "@web3-storage/parse-link-header": "^3.0.0", "browser-readablestream-to-it": "^1.0.3", "bundlesize": "^0.18.1", "carbites": "^1.0.6", @@ -40565,7 +40546,6 @@ "npm-run-all": "^4.1.5", "nyc": "15.1.0", "p-retry": "^4.5.0", - "parse-link-header": "^2.0.0", "playwright-test": "^7.2.2", "rollup": "2.63.0", "rollup-plugin-multi-input": "1.3.1", diff --git a/packages/client/examples/browser/cdn/README.md b/packages/client/examples/browser/cdn/README.md new file mode 100644 index 0000000000..5c972ec71d --- /dev/null +++ b/packages/client/examples/browser/cdn/README.md @@ -0,0 +1,16 @@ +# web3.storage in the browser from a CDN + +A demo using the [`web3.storage`](https://www.npmjs.com/package/web3.storage) client in the browser to pre-calculate the CID for an asset then store it on web3.storage. + +Content addressing, IPFS, Filecoin, web3.storage... it's all pretty rad! Here is gateway URL for the Content ID of this example, (stored via web3.storage of course!) so you can check it out in your browser! https://dweb.link/ipfs/bafybeic5r5yxjh5xpmeczfp34ysrjcoa66pllnjgffahopzrl5yhex7d7i + +## Getting started + +Open `index.html` in your favourite browser and add your files 🚀. + +You need an API token, which you can get by signing in to web3.storage, and clicking "Create an API token" + +## Screenshot + +![screenshot of the browser demo](https://user-images.githubusercontent.com/58871/127395300-331a21cf-90ab-4471-93e3-5c7e289ce321.png) + diff --git a/packages/client/examples/browser/cdn/index.html b/packages/client/examples/browser/cdn/index.html new file mode 100644 index 0000000000..81a4cec5e4 --- /dev/null +++ b/packages/client/examples/browser/cdn/index.html @@ -0,0 +1,124 @@ + + + + + web3.storage + + + +
+

⁂ + web3.storage +

+
+
+ + + + + +
+
+ + + diff --git a/packages/client/package.json b/packages/client/package.json index 23fe92a285..bd2cdff355 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -34,6 +34,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", + "@web3-storage/parse-link-header": "^3.0.0", "browser-readablestream-to-it": "^1.0.3", "carbites": "^1.0.6", "cborg": "^1.6.0", @@ -42,7 +43,6 @@ "ipns": "^0.16.0", "libp2p-crypto": "^0.21.0", "p-retry": "^4.5.0", - "parse-link-header": "^2.0.0", "streaming-iterables": "^6.0.0", "uint8arrays": "^3.0.0" }, @@ -52,7 +52,6 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.1.3", "@types/mocha": "9.0.0", - "@types/parse-link-header": "^1.0.1", "bundlesize": "^0.18.1", "cors": "^2.8.5", "del-cli": "^4.0.0", diff --git a/packages/client/src/lib.js b/packages/client/src/lib.js index 73d235da7c..6f25a88381 100644 --- a/packages/client/src/lib.js +++ b/packages/client/src/lib.js @@ -16,7 +16,7 @@ import { transform } from 'streaming-iterables' import pRetry from 'p-retry' import { pack } from 'ipfs-car/pack' -import parseLink from 'parse-link-header' +import { parseLinkHeader } from '@web3-storage/parse-link-header' import { unpackStream } from 'ipfs-car/unpack' import { TreewalkCarSplitter } from 'carbites/treewalk' import { CarReader } from '@ipld/car' @@ -469,13 +469,13 @@ function toWeb3Response (res) { async function * paginator (fn, service, opts) { let res = await fn(service, opts) yield res - let link = parseLink(res.headers.get('Link') || '') + let link = parseLinkHeader(res.headers.get('Link') || '') // @ts-ignore while (link && link.next) { // @ts-ignore res = await fn(service, link.next) yield res - link = parseLink(res.headers.get('Link') || '') + link = parseLinkHeader(res.headers.get('Link') || '') } } From a42c74d6f5874e0c2c94ec334e35a539243aa580 Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Wed, 23 Feb 2022 14:38:39 +0000 Subject: [PATCH 2/3] chore: update dep --- package-lock.json | 16 ++++++++-------- packages/client/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 471e507e94..d0248c9342 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4358,9 +4358,9 @@ "license": "(Apache-2.0 AND MIT)" }, "node_modules/@web3-storage/parse-link-header": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.0.tgz", - "integrity": "sha512-8XVacInZeeJT0qoTJxE5Ohf2duxd+Tpk6H83WBjav5J4etC6FxXW55KNSnOaAGtHaG/PpN2ZDecRpRcKBYPCyA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.1.tgz", + "integrity": "sha512-S9Q/ioHJmacoNNorF5/7WZ506mCUUXH4UjAfr+1GHscbOrfw+OpS+FZMS7V7v+oyruBaRjAe/gQEVnhJg2G1HA==" }, "node_modules/@web3-storage/pinpin": { "resolved": "packages/pinpin", @@ -22632,7 +22632,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", - "@web3-storage/parse-link-header": "^3.0.0", + "@web3-storage/parse-link-header": "^3.0.1", "browser-readablestream-to-it": "^1.0.3", "carbites": "^1.0.6", "cborg": "^1.6.0", @@ -27822,9 +27822,9 @@ "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" }, "@web3-storage/parse-link-header": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.0.tgz", - "integrity": "sha512-8XVacInZeeJT0qoTJxE5Ohf2duxd+Tpk6H83WBjav5J4etC6FxXW55KNSnOaAGtHaG/PpN2ZDecRpRcKBYPCyA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.1.tgz", + "integrity": "sha512-S9Q/ioHJmacoNNorF5/7WZ506mCUUXH4UjAfr+1GHscbOrfw+OpS+FZMS7V7v+oyruBaRjAe/gQEVnhJg2G1HA==" }, "@web3-storage/pinpin": { "version": "file:packages/pinpin", @@ -40529,7 +40529,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", - "@web3-storage/parse-link-header": "^3.0.0", + "@web3-storage/parse-link-header": "^3.0.1", "browser-readablestream-to-it": "^1.0.3", "bundlesize": "^0.18.1", "carbites": "^1.0.6", diff --git a/packages/client/package.json b/packages/client/package.json index bd2cdff355..d7f4fc0438 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -34,7 +34,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", - "@web3-storage/parse-link-header": "^3.0.0", + "@web3-storage/parse-link-header": "^3.0.1", "browser-readablestream-to-it": "^1.0.3", "carbites": "^1.0.6", "cborg": "^1.6.0", From 8157ea907a7ae9c4796ed881e6d50a21be4b52cc Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Wed, 23 Feb 2022 16:31:52 +0000 Subject: [PATCH 3/3] chore: update dep again --- package-lock.json | 16 ++++++++-------- packages/client/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index d0248c9342..cc7decf47f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4358,9 +4358,9 @@ "license": "(Apache-2.0 AND MIT)" }, "node_modules/@web3-storage/parse-link-header": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.1.tgz", - "integrity": "sha512-S9Q/ioHJmacoNNorF5/7WZ506mCUUXH4UjAfr+1GHscbOrfw+OpS+FZMS7V7v+oyruBaRjAe/gQEVnhJg2G1HA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.1.0.tgz", + "integrity": "sha512-K1undnK70vLLauqdE8bq/l98isTF2FDhcP0UPpXVSjkSWe3xhAn5eRXk5jfA1E5ycNm84Ws/rQFUD7ue11nciw==" }, "node_modules/@web3-storage/pinpin": { "resolved": "packages/pinpin", @@ -22632,7 +22632,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", - "@web3-storage/parse-link-header": "^3.0.1", + "@web3-storage/parse-link-header": "^3.1.0", "browser-readablestream-to-it": "^1.0.3", "carbites": "^1.0.6", "cborg": "^1.6.0", @@ -27822,9 +27822,9 @@ "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" }, "@web3-storage/parse-link-header": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.0.1.tgz", - "integrity": "sha512-S9Q/ioHJmacoNNorF5/7WZ506mCUUXH4UjAfr+1GHscbOrfw+OpS+FZMS7V7v+oyruBaRjAe/gQEVnhJg2G1HA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@web3-storage/parse-link-header/-/parse-link-header-3.1.0.tgz", + "integrity": "sha512-K1undnK70vLLauqdE8bq/l98isTF2FDhcP0UPpXVSjkSWe3xhAn5eRXk5jfA1E5ycNm84Ws/rQFUD7ue11nciw==" }, "@web3-storage/pinpin": { "version": "file:packages/pinpin", @@ -40529,7 +40529,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", - "@web3-storage/parse-link-header": "^3.0.1", + "@web3-storage/parse-link-header": "^3.1.0", "browser-readablestream-to-it": "^1.0.3", "bundlesize": "^0.18.1", "carbites": "^1.0.6", diff --git a/packages/client/package.json b/packages/client/package.json index d7f4fc0438..89b96762c5 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -34,7 +34,7 @@ "@web-std/blob": "^3.0.1", "@web-std/fetch": "^3.0.0", "@web-std/file": "^3.0.0", - "@web3-storage/parse-link-header": "^3.0.1", + "@web3-storage/parse-link-header": "^3.1.0", "browser-readablestream-to-it": "^1.0.3", "carbites": "^1.0.6", "cborg": "^1.6.0",