@helia/verified-fetch 0.0.0-f58d467 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +285 -25
- package/dist/index.min.js +7 -4
- package/dist/src/index.d.ts +285 -25
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +267 -25
- package/dist/src/index.js.map +1 -1
- package/dist/src/types.d.ts +2 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/dag-cbor-to-safe-json.d.ts +7 -0
- package/dist/src/utils/dag-cbor-to-safe-json.d.ts.map +1 -0
- package/dist/src/utils/dag-cbor-to-safe-json.js +37 -0
- package/dist/src/utils/dag-cbor-to-safe-json.js.map +1 -0
- package/dist/src/utils/get-content-disposition-filename.d.ts +6 -0
- package/dist/src/utils/get-content-disposition-filename.d.ts.map +1 -0
- package/dist/src/utils/get-content-disposition-filename.js +16 -0
- package/dist/src/utils/get-content-disposition-filename.js.map +1 -0
- package/dist/src/utils/get-e-tag.d.ts +28 -0
- package/dist/src/utils/get-e-tag.d.ts.map +1 -0
- package/dist/src/utils/get-e-tag.js +18 -0
- package/dist/src/utils/get-e-tag.js.map +1 -0
- package/dist/src/utils/get-tar-stream.d.ts +4 -0
- package/dist/src/utils/get-tar-stream.d.ts.map +1 -0
- package/dist/src/utils/get-tar-stream.js +46 -0
- package/dist/src/utils/get-tar-stream.js.map +1 -0
- package/dist/src/utils/parse-url-string.d.ts +7 -1
- package/dist/src/utils/parse-url-string.d.ts.map +1 -1
- package/dist/src/utils/parse-url-string.js +6 -0
- package/dist/src/utils/parse-url-string.js.map +1 -1
- package/dist/src/utils/responses.d.ts +5 -0
- package/dist/src/utils/responses.d.ts.map +1 -0
- package/dist/src/utils/responses.js +27 -0
- package/dist/src/utils/responses.js.map +1 -0
- package/dist/src/utils/select-output-type.d.ts +12 -0
- package/dist/src/utils/select-output-type.d.ts.map +1 -0
- package/dist/src/utils/select-output-type.js +148 -0
- package/dist/src/utils/select-output-type.js.map +1 -0
- package/dist/src/verified-fetch.d.ts +19 -26
- package/dist/src/verified-fetch.d.ts.map +1 -1
- package/dist/src/verified-fetch.js +261 -142
- package/dist/src/verified-fetch.js.map +1 -1
- package/dist/typedoc-urls.json +27 -0
- package/package.json +49 -112
- package/src/index.ts +290 -29
- package/src/types.ts +1 -0
- package/src/utils/dag-cbor-to-safe-json.ts +44 -0
- package/src/utils/get-content-disposition-filename.ts +18 -0
- package/src/utils/get-e-tag.ts +36 -0
- package/src/utils/get-tar-stream.ts +68 -0
- package/src/utils/parse-url-string.ts +17 -2
- package/src/utils/responses.ts +29 -0
- package/src/utils/select-output-type.ts +167 -0
- package/src/verified-fetch.ts +310 -154
|
@@ -1,17 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { dagJson as heliaDagJson } from '@helia/dag-json';
|
|
1
|
+
import { car } from '@helia/car';
|
|
3
2
|
import { ipns as heliaIpns } from '@helia/ipns';
|
|
4
3
|
import { dnsJsonOverHttps } from '@helia/ipns/dns-resolvers';
|
|
5
|
-
import { json as heliaJson } from '@helia/json';
|
|
6
4
|
import { unixfs as heliaUnixFs } from '@helia/unixfs';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
5
|
+
import * as ipldDagCbor from '@ipld/dag-cbor';
|
|
6
|
+
import * as ipldDagJson from '@ipld/dag-json';
|
|
9
7
|
import { code as dagPbCode } from '@ipld/dag-pb';
|
|
8
|
+
import { Record as DHTRecord } from '@libp2p/kad-dht';
|
|
9
|
+
import { peerIdFromString } from '@libp2p/peer-id';
|
|
10
|
+
import { Key } from 'interface-datastore';
|
|
11
|
+
import toBrowserReadableStream from 'it-to-browser-readablestream';
|
|
10
12
|
import { code as jsonCode } from 'multiformats/codecs/json';
|
|
11
|
-
import {
|
|
13
|
+
import { code as rawCode } from 'multiformats/codecs/raw';
|
|
14
|
+
import { identity } from 'multiformats/hashes/identity';
|
|
12
15
|
import { CustomProgressEvent } from 'progress-events';
|
|
16
|
+
import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
|
|
17
|
+
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
18
|
+
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
19
|
+
import { dagCborToSafeJSON } from './utils/dag-cbor-to-safe-json.js';
|
|
20
|
+
import { getContentDispositionFilename } from './utils/get-content-disposition-filename.js';
|
|
21
|
+
import { getETag } from './utils/get-e-tag.js';
|
|
13
22
|
import { getStreamFromAsyncIterable } from './utils/get-stream-from-async-iterable.js';
|
|
23
|
+
import { tarStream } from './utils/get-tar-stream.js';
|
|
14
24
|
import { parseResource } from './utils/parse-resource.js';
|
|
25
|
+
import { badRequestResponse, notAcceptableResponse, notSupportedResponse, okResponse } from './utils/responses.js';
|
|
26
|
+
import { selectOutputType, queryFormatToAcceptHeader } from './utils/select-output-type.js';
|
|
15
27
|
import { walkPath } from './utils/walk-path.js';
|
|
16
28
|
function convertOptions(options) {
|
|
17
29
|
if (options == null) {
|
|
@@ -26,83 +38,185 @@ function convertOptions(options) {
|
|
|
26
38
|
signal
|
|
27
39
|
};
|
|
28
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* These are Accept header values that will cause content type sniffing to be
|
|
43
|
+
* skipped and set to these values.
|
|
44
|
+
*/
|
|
45
|
+
const RAW_HEADERS = [
|
|
46
|
+
'application/vnd.ipld.raw',
|
|
47
|
+
'application/octet-stream'
|
|
48
|
+
];
|
|
49
|
+
/**
|
|
50
|
+
* if the user has specified an `Accept` header, and it's in our list of
|
|
51
|
+
* allowable "raw" format headers, use that instead of detecting the content
|
|
52
|
+
* type. This avoids the user from receiving something different when they
|
|
53
|
+
* signal that they want to `Accept` a specific mime type.
|
|
54
|
+
*/
|
|
55
|
+
function getOverridenRawContentType(headers) {
|
|
56
|
+
const acceptHeader = new Headers(headers).get('accept') ?? '';
|
|
57
|
+
// e.g. "Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8"
|
|
58
|
+
const acceptHeaders = acceptHeader.split(',')
|
|
59
|
+
.map(s => s.split(';')[0])
|
|
60
|
+
.map(s => s.trim());
|
|
61
|
+
for (const mimeType of acceptHeaders) {
|
|
62
|
+
if (mimeType === '*/*') {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (RAW_HEADERS.includes(mimeType ?? '')) {
|
|
66
|
+
return mimeType;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
29
70
|
export class VerifiedFetch {
|
|
30
71
|
helia;
|
|
31
72
|
ipns;
|
|
32
73
|
unixfs;
|
|
33
|
-
dagJson;
|
|
34
|
-
dagCbor;
|
|
35
|
-
json;
|
|
36
|
-
pathWalker;
|
|
37
74
|
log;
|
|
38
75
|
contentTypeParser;
|
|
39
|
-
constructor({ helia, ipns, unixfs
|
|
76
|
+
constructor({ helia, ipns, unixfs }, init) {
|
|
40
77
|
this.helia = helia;
|
|
41
78
|
this.log = helia.logger.forComponent('helia:verified-fetch');
|
|
42
79
|
this.ipns = ipns ?? heliaIpns(helia, {
|
|
43
|
-
resolvers: [
|
|
80
|
+
resolvers: init?.dnsResolvers ?? [
|
|
44
81
|
dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query'),
|
|
45
82
|
dnsJsonOverHttps('https://dns.google/resolve')
|
|
46
83
|
]
|
|
47
84
|
});
|
|
48
85
|
this.unixfs = unixfs ?? heliaUnixFs(helia);
|
|
49
|
-
this.dagJson = dagJson ?? heliaDagJson(helia);
|
|
50
|
-
this.json = json ?? heliaJson(helia);
|
|
51
|
-
this.dagCbor = dagCbor ?? heliaDagCbor(helia);
|
|
52
|
-
this.pathWalker = pathWalker ?? walkPath;
|
|
53
86
|
this.contentTypeParser = init?.contentTypeParser;
|
|
54
87
|
this.log.trace('created VerifiedFetch instance');
|
|
55
88
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Accepts an `ipns://...` URL as a string and returns a `Response` containing
|
|
91
|
+
* a raw IPNS record.
|
|
92
|
+
*/
|
|
93
|
+
async handleIPNSRecord({ resource, cid, path, options }) {
|
|
94
|
+
if (path !== '' || !resource.startsWith('ipns://')) {
|
|
95
|
+
return badRequestResponse('Invalid IPNS name');
|
|
96
|
+
}
|
|
97
|
+
let peerId;
|
|
98
|
+
try {
|
|
99
|
+
peerId = peerIdFromString(resource.replace('ipns://', ''));
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
this.log.error('could not parse peer id from IPNS url %s', resource);
|
|
103
|
+
return badRequestResponse('Invalid IPNS name');
|
|
104
|
+
}
|
|
105
|
+
// since this call happens after parseResource, we've already resolved the
|
|
106
|
+
// IPNS name so a local copy should be in the helia datastore, so we can
|
|
107
|
+
// just read it out..
|
|
108
|
+
const routingKey = uint8ArrayConcat([
|
|
109
|
+
uint8ArrayFromString('/ipns/'),
|
|
110
|
+
peerId.toBytes()
|
|
111
|
+
]);
|
|
112
|
+
const datastoreKey = new Key('/dht/record/' + uint8ArrayToString(routingKey, 'base32'), false);
|
|
113
|
+
const buf = await this.helia.datastore.get(datastoreKey, options);
|
|
114
|
+
const record = DHTRecord.deserialize(buf);
|
|
115
|
+
const response = okResponse(record.value);
|
|
116
|
+
response.headers.set('content-type', 'application/vnd.ipfs.ipns-record');
|
|
60
117
|
return response;
|
|
61
118
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Accepts a `CID` and returns a `Response` with a body stream that is a CAR
|
|
121
|
+
* of the `DAG` referenced by the `CID`.
|
|
122
|
+
*/
|
|
123
|
+
async handleCar({ cid, options }) {
|
|
124
|
+
const c = car(this.helia);
|
|
125
|
+
const stream = toBrowserReadableStream(c.stream(cid, options));
|
|
126
|
+
const response = okResponse(stream);
|
|
127
|
+
response.headers.set('content-type', 'application/vnd.ipld.car; version=1');
|
|
66
128
|
return response;
|
|
67
129
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
response
|
|
130
|
+
/**
|
|
131
|
+
* Accepts a UnixFS `CID` and returns a `.tar` file containing the file or
|
|
132
|
+
* directory structure referenced by the `CID`.
|
|
133
|
+
*/
|
|
134
|
+
async handleTar({ cid, path, options }) {
|
|
135
|
+
if (cid.code !== dagPbCode && cid.code !== rawCode) {
|
|
136
|
+
return notAcceptableResponse('only UnixFS data can be returned in a TAR file');
|
|
137
|
+
}
|
|
138
|
+
const stream = toBrowserReadableStream(tarStream(`/ipfs/${cid}/${path}`, this.helia.blockstore, options));
|
|
139
|
+
const response = okResponse(stream);
|
|
140
|
+
response.headers.set('content-type', 'application/x-tar');
|
|
78
141
|
return response;
|
|
79
142
|
}
|
|
80
|
-
async handleJson({ cid, path, options }) {
|
|
143
|
+
async handleJson({ cid, path, accept, options }) {
|
|
81
144
|
this.log.trace('fetching %c/%s', cid, path);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
145
|
+
const block = await this.helia.blockstore.get(cid, options);
|
|
146
|
+
let body;
|
|
147
|
+
if (accept === 'application/vnd.ipld.dag-cbor' || accept === 'application/cbor') {
|
|
148
|
+
try {
|
|
149
|
+
// if vnd.ipld.dag-cbor has been specified, convert to the format - note
|
|
150
|
+
// that this supports more data types than regular JSON, the content-type
|
|
151
|
+
// response header is set so the user knows to process it differently
|
|
152
|
+
const obj = ipldDagJson.decode(block);
|
|
153
|
+
body = ipldDagCbor.encode(obj);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
this.log.error('could not transform %c to application/vnd.ipld.dag-cbor', err);
|
|
157
|
+
return notAcceptableResponse();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
// skip decoding
|
|
162
|
+
body = block;
|
|
163
|
+
}
|
|
164
|
+
const response = okResponse(body);
|
|
165
|
+
response.headers.set('content-type', accept ?? 'application/json');
|
|
90
166
|
return response;
|
|
91
167
|
}
|
|
92
|
-
async handleDagCbor({ cid, path, options }) {
|
|
168
|
+
async handleDagCbor({ cid, path, accept, options }) {
|
|
93
169
|
this.log.trace('fetching %c/%s', cid, path);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
170
|
+
const block = await this.helia.blockstore.get(cid, options);
|
|
171
|
+
let body;
|
|
172
|
+
if (accept === 'application/octet-stream' || accept === 'application/vnd.ipld.dag-cbor' || accept === 'application/cbor') {
|
|
173
|
+
// skip decoding
|
|
174
|
+
body = block;
|
|
175
|
+
}
|
|
176
|
+
else if (accept === 'application/vnd.ipld.dag-json') {
|
|
177
|
+
try {
|
|
178
|
+
// if vnd.ipld.dag-json has been specified, convert to the format - note
|
|
179
|
+
// that this supports more data types than regular JSON, the content-type
|
|
180
|
+
// response header is set so the user knows to process it differently
|
|
181
|
+
const obj = ipldDagCbor.decode(block);
|
|
182
|
+
body = ipldDagJson.encode(obj);
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
this.log.error('could not transform %c to application/vnd.ipld.dag-json', err);
|
|
186
|
+
return notAcceptableResponse();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
try {
|
|
191
|
+
body = dagCborToSafeJSON(block);
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
if (accept === 'application/json') {
|
|
195
|
+
this.log('could not decode DAG-CBOR as JSON-safe, but the client sent "Accept: application/json"', err);
|
|
196
|
+
return notAcceptableResponse();
|
|
197
|
+
}
|
|
198
|
+
this.log('could not decode DAG-CBOR as JSON-safe, falling back to `application/octet-stream`', err);
|
|
199
|
+
body = block;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const response = okResponse(body);
|
|
203
|
+
if (accept == null) {
|
|
204
|
+
accept = body instanceof Uint8Array ? 'application/octet-stream' : 'application/json';
|
|
205
|
+
}
|
|
206
|
+
response.headers.set('content-type', accept);
|
|
102
207
|
return response;
|
|
103
208
|
}
|
|
104
|
-
async handleDagPb({ cid, path, options
|
|
105
|
-
|
|
209
|
+
async handleDagPb({ cid, path, options }) {
|
|
210
|
+
let terminalElement;
|
|
211
|
+
let ipfsRoots;
|
|
212
|
+
try {
|
|
213
|
+
const pathDetails = await walkPath(this.helia.blockstore, `${cid.toString()}/${path}`, options);
|
|
214
|
+
ipfsRoots = pathDetails.ipfsRoots;
|
|
215
|
+
terminalElement = pathDetails.terminalElement;
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
this.log.error('Error walking path %s', path, err);
|
|
219
|
+
}
|
|
106
220
|
let resolvedCID = terminalElement?.cid ?? cid;
|
|
107
221
|
let stat;
|
|
108
222
|
if (terminalElement?.type === 'directory') {
|
|
@@ -110,7 +224,6 @@ export class VerifiedFetch {
|
|
|
110
224
|
const rootFilePath = 'index.html';
|
|
111
225
|
try {
|
|
112
226
|
this.log.trace('found directory at %c/%s, looking for index.html', cid, path);
|
|
113
|
-
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:start', { cid: dirCid.toString(), path: rootFilePath }));
|
|
114
227
|
stat = await this.unixfs.stat(dirCid, {
|
|
115
228
|
path: rootFilePath,
|
|
116
229
|
signal: options?.signal,
|
|
@@ -123,33 +236,40 @@ export class VerifiedFetch {
|
|
|
123
236
|
}
|
|
124
237
|
catch (err) {
|
|
125
238
|
this.log('error loading path %c/%s', dirCid, rootFilePath, err);
|
|
126
|
-
return
|
|
239
|
+
return notSupportedResponse('Unable to find index.html for directory at given path. Support for directories with implicit root is not implemented');
|
|
127
240
|
}
|
|
128
241
|
finally {
|
|
129
|
-
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:end', { cid: dirCid
|
|
242
|
+
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:end', { cid: dirCid, path: rootFilePath }));
|
|
130
243
|
}
|
|
131
244
|
}
|
|
132
|
-
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:start', { cid: resolvedCID.toString(), path: '' }));
|
|
133
245
|
const asyncIter = this.unixfs.cat(resolvedCID, {
|
|
134
246
|
signal: options?.signal,
|
|
135
247
|
onProgress: options?.onProgress
|
|
136
248
|
});
|
|
137
|
-
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:end', { cid: resolvedCID.toString(), path: '' }));
|
|
138
249
|
this.log('got async iterator for %c/%s', cid, path);
|
|
139
250
|
const { stream, firstChunk } = await getStreamFromAsyncIterable(asyncIter, path ?? '', this.helia.logger, {
|
|
140
251
|
onProgress: options?.onProgress
|
|
141
252
|
});
|
|
142
|
-
const response =
|
|
253
|
+
const response = okResponse(stream);
|
|
143
254
|
await this.setContentType(firstChunk, path, response);
|
|
255
|
+
if (ipfsRoots != null) {
|
|
256
|
+
response.headers.set('X-Ipfs-Roots', ipfsRoots.map(cid => cid.toV1().toString()).join(',')); // https://specs.ipfs.tech/http-gateways/path-gateway/#x-ipfs-roots-response-header
|
|
257
|
+
}
|
|
144
258
|
return response;
|
|
145
259
|
}
|
|
146
260
|
async handleRaw({ cid, path, options }) {
|
|
147
|
-
this.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
261
|
+
const result = await this.helia.blockstore.get(cid, options);
|
|
262
|
+
const response = okResponse(result);
|
|
263
|
+
// if the user has specified an `Accept` header that corresponds to a raw
|
|
264
|
+
// type, honour that header, so for example they don't request
|
|
265
|
+
// `application/vnd.ipld.raw` but get `application/octet-stream`
|
|
266
|
+
const overriddenContentType = getOverridenRawContentType(options?.headers);
|
|
267
|
+
if (overriddenContentType != null) {
|
|
268
|
+
response.headers.set('content-type', overriddenContentType);
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
await this.setContentType(result, path, response);
|
|
272
|
+
}
|
|
153
273
|
return response;
|
|
154
274
|
}
|
|
155
275
|
async setContentType(bytes, path, response) {
|
|
@@ -176,98 +296,97 @@ export class VerifiedFetch {
|
|
|
176
296
|
response.headers.set('content-type', contentType);
|
|
177
297
|
}
|
|
178
298
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* @see https://specs.ipfs.tech/http-gateways/path-gateway/#format-request-query-parameter
|
|
182
|
-
* @default 'raw'
|
|
299
|
+
* If the user has not specified an Accept header or format query string arg,
|
|
300
|
+
* use the CID codec to choose an appropriate handler for the block data.
|
|
183
301
|
*/
|
|
184
|
-
getFormat({ headerFormat, queryFormat }) {
|
|
185
|
-
const formatMap = {
|
|
186
|
-
'vnd.ipld.raw': 'raw',
|
|
187
|
-
'vnd.ipld.car': 'car',
|
|
188
|
-
'application/x-tar': 'tar',
|
|
189
|
-
'application/vnd.ipld.dag-json': 'dag-json',
|
|
190
|
-
'application/vnd.ipld.dag-cbor': 'dag-cbor',
|
|
191
|
-
'application/json': 'json',
|
|
192
|
-
'application/cbor': 'cbor',
|
|
193
|
-
'vnd.ipfs.ipns-record': 'ipns-record'
|
|
194
|
-
};
|
|
195
|
-
if (headerFormat != null) {
|
|
196
|
-
for (const format in formatMap) {
|
|
197
|
-
if (headerFormat.includes(format)) {
|
|
198
|
-
return formatMap[format];
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
else if (queryFormat != null) {
|
|
203
|
-
return queryFormat;
|
|
204
|
-
}
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Map of format to specific handlers for that format.
|
|
209
|
-
* These format handlers should adjust the response headers as specified in https://specs.ipfs.tech/http-gateways/path-gateway/#response-headers
|
|
210
|
-
*/
|
|
211
|
-
formatHandlers = {
|
|
212
|
-
raw: async () => new Response('application/vnd.ipld.raw support is not implemented', { status: 501 }),
|
|
213
|
-
car: this.handleIPLDCar,
|
|
214
|
-
'ipns-record': this.handleIPNSRecord,
|
|
215
|
-
tar: async () => new Response('application/x-tar support is not implemented', { status: 501 }),
|
|
216
|
-
'dag-json': async () => new Response('application/vnd.ipld.dag-json support is not implemented', { status: 501 }),
|
|
217
|
-
'dag-cbor': async () => new Response('application/vnd.ipld.dag-cbor support is not implemented', { status: 501 }),
|
|
218
|
-
json: async () => new Response('application/json support is not implemented', { status: 501 }),
|
|
219
|
-
cbor: async () => new Response('application/cbor support is not implemented', { status: 501 })
|
|
220
|
-
};
|
|
221
302
|
codecHandlers = {
|
|
222
|
-
[dagJsonCode]: this.handleDagJson,
|
|
223
303
|
[dagPbCode]: this.handleDagPb,
|
|
304
|
+
[ipldDagJson.code]: this.handleJson,
|
|
224
305
|
[jsonCode]: this.handleJson,
|
|
225
|
-
[
|
|
226
|
-
[rawCode]: this.handleRaw
|
|
306
|
+
[ipldDagCbor.code]: this.handleDagCbor,
|
|
307
|
+
[rawCode]: this.handleRaw,
|
|
308
|
+
[identity.code]: this.handleRaw
|
|
227
309
|
};
|
|
228
310
|
async fetch(resource, opts) {
|
|
311
|
+
this.log('fetch %s', resource);
|
|
229
312
|
const options = convertOptions(opts);
|
|
230
|
-
|
|
231
|
-
|
|
313
|
+
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:start', { resource }));
|
|
314
|
+
// resolve the CID/path from the requested resource
|
|
315
|
+
const { path, query, cid } = await parseResource(resource, { ipns: this.ipns, logger: this.helia.logger }, options);
|
|
316
|
+
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:resolve', { cid, path }));
|
|
317
|
+
const requestHeaders = new Headers(options?.headers);
|
|
318
|
+
const incomingAcceptHeader = requestHeaders.get('accept');
|
|
319
|
+
if (incomingAcceptHeader != null) {
|
|
320
|
+
this.log('incoming accept header "%s"', incomingAcceptHeader);
|
|
321
|
+
}
|
|
322
|
+
const queryFormatMapping = queryFormatToAcceptHeader(query.format);
|
|
323
|
+
if (query.format != null) {
|
|
324
|
+
this.log('incoming query format "%s", mapped to %s', query.format, queryFormatMapping);
|
|
325
|
+
}
|
|
326
|
+
const acceptHeader = incomingAcceptHeader ?? queryFormatMapping;
|
|
327
|
+
const accept = selectOutputType(cid, acceptHeader);
|
|
328
|
+
this.log('output type %s', accept);
|
|
329
|
+
if (acceptHeader != null && accept == null) {
|
|
330
|
+
return notAcceptableResponse();
|
|
331
|
+
}
|
|
232
332
|
let response;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
if (response.status === 501) {
|
|
240
|
-
return response;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
333
|
+
let reqFormat;
|
|
334
|
+
const handlerArgs = { resource: resource.toString(), cid, path, accept, options };
|
|
335
|
+
if (accept === 'application/vnd.ipfs.ipns-record') {
|
|
336
|
+
// the user requested a raw IPNS record
|
|
337
|
+
reqFormat = 'ipns-record';
|
|
338
|
+
response = await this.handleIPNSRecord(handlerArgs);
|
|
243
339
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
340
|
+
else if (accept === 'application/vnd.ipld.car') {
|
|
341
|
+
// the user requested a CAR file
|
|
342
|
+
reqFormat = 'car';
|
|
343
|
+
query.download = true;
|
|
344
|
+
query.filename = query.filename ?? `${cid.toString()}.car`;
|
|
345
|
+
response = await this.handleCar(handlerArgs);
|
|
250
346
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
347
|
+
else if (accept === 'application/vnd.ipld.raw') {
|
|
348
|
+
// the user requested a raw block
|
|
349
|
+
reqFormat = 'raw';
|
|
350
|
+
query.download = true;
|
|
351
|
+
query.filename = query.filename ?? `${cid.toString()}.bin`;
|
|
352
|
+
response = await this.handleRaw(handlerArgs);
|
|
254
353
|
}
|
|
255
|
-
if (
|
|
354
|
+
else if (accept === 'application/x-tar') {
|
|
355
|
+
// the user requested a TAR file
|
|
356
|
+
reqFormat = 'tar';
|
|
357
|
+
query.download = true;
|
|
358
|
+
query.filename = query.filename ?? `${cid.toString()}.tar`;
|
|
359
|
+
response = await this.handleTar(handlerArgs);
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
// derive the handler from the CID type
|
|
256
363
|
const codecHandler = this.codecHandlers[cid.code];
|
|
257
|
-
if (codecHandler
|
|
258
|
-
|
|
364
|
+
if (codecHandler == null) {
|
|
365
|
+
return notSupportedResponse(`Support for codec with code ${cid.code} is not yet implemented. Please open an issue at https://github.com/ipfs/helia/issues/new`);
|
|
259
366
|
}
|
|
260
|
-
|
|
261
|
-
|
|
367
|
+
response = await codecHandler.call(this, handlerArgs);
|
|
368
|
+
}
|
|
369
|
+
response.headers.set('etag', getETag({ cid, reqFormat, weak: false }));
|
|
370
|
+
response.headers.set('cache-control', 'public, max-age=29030400, immutable');
|
|
371
|
+
// https://specs.ipfs.tech/http-gateways/path-gateway/#x-ipfs-path-response-header
|
|
372
|
+
response.headers.set('X-Ipfs-Path', resource.toString());
|
|
373
|
+
// set Content-Disposition header
|
|
374
|
+
let contentDisposition;
|
|
375
|
+
// force download if requested
|
|
376
|
+
if (query.download === true) {
|
|
377
|
+
contentDisposition = 'attachment';
|
|
378
|
+
}
|
|
379
|
+
// override filename if requested
|
|
380
|
+
if (query.filename != null) {
|
|
381
|
+
if (contentDisposition == null) {
|
|
382
|
+
contentDisposition = 'inline';
|
|
262
383
|
}
|
|
384
|
+
contentDisposition = `${contentDisposition}; ${getContentDispositionFilename(query.filename)}`;
|
|
263
385
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
response.headers.set('X-Ipfs-Path', resource.toString()); // https://specs.ipfs.tech/http-gateways/path-gateway/#x-ipfs-path-response-header
|
|
267
|
-
if (ipfsRoots != null) {
|
|
268
|
-
response.headers.set('X-Ipfs-Roots', ipfsRoots.map(cid => cid.toV1().toString()).join(',')); // https://specs.ipfs.tech/http-gateways/path-gateway/#x-ipfs-roots-response-header
|
|
386
|
+
if (contentDisposition != null) {
|
|
387
|
+
response.headers.set('Content-Disposition', contentDisposition);
|
|
269
388
|
}
|
|
270
|
-
|
|
389
|
+
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:end', { cid, path }));
|
|
271
390
|
return response;
|
|
272
391
|
}
|
|
273
392
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../../src/verified-fetch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../../src/verified-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"CIDDetail": "https://ipfs.github.io/helia-verified-fetch/interfaces/CIDDetail.html",
|
|
3
|
+
".:CIDDetail": "https://ipfs.github.io/helia-verified-fetch/interfaces/CIDDetail.html",
|
|
4
|
+
"CIDDetailError": "https://ipfs.github.io/helia-verified-fetch/interfaces/CIDDetailError.html",
|
|
5
|
+
".:CIDDetailError": "https://ipfs.github.io/helia-verified-fetch/interfaces/CIDDetailError.html",
|
|
6
|
+
"ContentTypeParser": "https://ipfs.github.io/helia-verified-fetch/interfaces/ContentTypeParser.html",
|
|
7
|
+
".:ContentTypeParser": "https://ipfs.github.io/helia-verified-fetch/interfaces/ContentTypeParser.html",
|
|
8
|
+
"CreateVerifiedFetchInit": "https://ipfs.github.io/helia-verified-fetch/interfaces/CreateVerifiedFetchInit.html",
|
|
9
|
+
".:CreateVerifiedFetchInit": "https://ipfs.github.io/helia-verified-fetch/interfaces/CreateVerifiedFetchInit.html",
|
|
10
|
+
"CreateVerifiedFetchOptions": "https://ipfs.github.io/helia-verified-fetch/interfaces/CreateVerifiedFetchOptions.html",
|
|
11
|
+
".:CreateVerifiedFetchOptions": "https://ipfs.github.io/helia-verified-fetch/interfaces/CreateVerifiedFetchOptions.html",
|
|
12
|
+
"ResourceDetail": "https://ipfs.github.io/helia-verified-fetch/interfaces/ResourceDetail.html",
|
|
13
|
+
".:ResourceDetail": "https://ipfs.github.io/helia-verified-fetch/interfaces/ResourceDetail.html",
|
|
14
|
+
"VerifiedFetch": "https://ipfs.github.io/helia-verified-fetch/interfaces/VerifiedFetch.html",
|
|
15
|
+
".:VerifiedFetch": "https://ipfs.github.io/helia-verified-fetch/interfaces/VerifiedFetch.html",
|
|
16
|
+
"VerifiedFetchInit": "https://ipfs.github.io/helia-verified-fetch/interfaces/VerifiedFetchInit.html",
|
|
17
|
+
".:VerifiedFetchInit": "https://ipfs.github.io/helia-verified-fetch/interfaces/VerifiedFetchInit.html",
|
|
18
|
+
"BubbledProgressEvents": "https://ipfs.github.io/helia-verified-fetch/types/BubbledProgressEvents.html",
|
|
19
|
+
".:BubbledProgressEvents": "https://ipfs.github.io/helia-verified-fetch/types/BubbledProgressEvents.html",
|
|
20
|
+
"Resource": "https://ipfs.github.io/helia-verified-fetch/types/Resource.html",
|
|
21
|
+
".:Resource": "https://ipfs.github.io/helia-verified-fetch/types/Resource.html",
|
|
22
|
+
"VerifiedFetchProgressEvents": "https://ipfs.github.io/helia-verified-fetch/types/VerifiedFetchProgressEvents.html",
|
|
23
|
+
".:VerifiedFetchProgressEvents": "https://ipfs.github.io/helia-verified-fetch/types/VerifiedFetchProgressEvents.html",
|
|
24
|
+
"createVerifiedFetch": "https://ipfs.github.io/helia-verified-fetch/functions/createVerifiedFetch.html",
|
|
25
|
+
".:createVerifiedFetch": "https://ipfs.github.io/helia-verified-fetch/functions/createVerifiedFetch.html",
|
|
26
|
+
"verifiedFetch": "https://ipfs.github.io/helia-verified-fetch/functions/verifiedFetch-1.html"
|
|
27
|
+
}
|