@helia/verified-fetch 0.0.0-9b1ddf8 → 0.0.0-a04e041
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 +238 -6
- package/dist/index.min.js +4 -4
- package/dist/src/index.d.ts +222 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +219 -4
- 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/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 +4 -0
- package/dist/src/utils/responses.d.ts.map +1 -0
- package/dist/src/utils/responses.js +21 -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 +147 -0
- package/dist/src/utils/select-output-type.js.map +1 -0
- package/dist/src/verified-fetch.d.ts +17 -25
- package/dist/src/verified-fetch.d.ts.map +1 -1
- package/dist/src/verified-fetch.js +225 -142
- package/dist/src/verified-fetch.js.map +1 -1
- package/package.json +27 -15
- package/src/index.ts +223 -4
- 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/parse-url-string.ts +17 -2
- package/src/utils/responses.ts +22 -0
- package/src/utils/select-output-type.ts +166 -0
- package/src/verified-fetch.ts +258 -152
|
@@ -1,17 +1,22 @@
|
|
|
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 toBrowserReadableStream from 'it-to-browser-readablestream';
|
|
10
9
|
import { code as jsonCode } from 'multiformats/codecs/json';
|
|
11
|
-
import {
|
|
10
|
+
import { code as rawCode } from 'multiformats/codecs/raw';
|
|
11
|
+
import { identity } from 'multiformats/hashes/identity';
|
|
12
12
|
import { CustomProgressEvent } from 'progress-events';
|
|
13
|
+
import { dagCborToSafeJSON } from './utils/dag-cbor-to-safe-json.js';
|
|
14
|
+
import { getContentDispositionFilename } from './utils/get-content-disposition-filename.js';
|
|
15
|
+
import { getETag } from './utils/get-e-tag.js';
|
|
13
16
|
import { getStreamFromAsyncIterable } from './utils/get-stream-from-async-iterable.js';
|
|
14
17
|
import { parseResource } from './utils/parse-resource.js';
|
|
18
|
+
import { notAcceptableResponse, notSupportedResponse, okResponse } from './utils/responses.js';
|
|
19
|
+
import { selectOutputType, queryFormatToAcceptHeader } from './utils/select-output-type.js';
|
|
15
20
|
import { walkPath } from './utils/walk-path.js';
|
|
16
21
|
function convertOptions(options) {
|
|
17
22
|
if (options == null) {
|
|
@@ -26,17 +31,42 @@ function convertOptions(options) {
|
|
|
26
31
|
signal
|
|
27
32
|
};
|
|
28
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* These are Accept header values that will cause content type sniffing to be
|
|
36
|
+
* skipped and set to these values.
|
|
37
|
+
*/
|
|
38
|
+
const RAW_HEADERS = [
|
|
39
|
+
'application/vnd.ipld.raw',
|
|
40
|
+
'application/octet-stream'
|
|
41
|
+
];
|
|
42
|
+
/**
|
|
43
|
+
* if the user has specified an `Accept` header, and it's in our list of
|
|
44
|
+
* allowable "raw" format headers, use that instead of detecting the content
|
|
45
|
+
* type. This avoids the user from receiving something different when they
|
|
46
|
+
* signal that they want to `Accept` a specific mime type.
|
|
47
|
+
*/
|
|
48
|
+
function getOverridenRawContentType(headers) {
|
|
49
|
+
const acceptHeader = new Headers(headers).get('accept') ?? '';
|
|
50
|
+
// e.g. "Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8"
|
|
51
|
+
const acceptHeaders = acceptHeader.split(',')
|
|
52
|
+
.map(s => s.split(';')[0])
|
|
53
|
+
.map(s => s.trim());
|
|
54
|
+
for (const mimeType of acceptHeaders) {
|
|
55
|
+
if (mimeType === '*/*') {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (RAW_HEADERS.includes(mimeType ?? '')) {
|
|
59
|
+
return mimeType;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
29
63
|
export class VerifiedFetch {
|
|
30
64
|
helia;
|
|
31
65
|
ipns;
|
|
32
66
|
unixfs;
|
|
33
|
-
dagJson;
|
|
34
|
-
dagCbor;
|
|
35
|
-
json;
|
|
36
|
-
pathWalker;
|
|
37
67
|
log;
|
|
38
68
|
contentTypeParser;
|
|
39
|
-
constructor({ helia, ipns, unixfs
|
|
69
|
+
constructor({ helia, ipns, unixfs }, init) {
|
|
40
70
|
this.helia = helia;
|
|
41
71
|
this.log = helia.logger.forComponent('helia:verified-fetch');
|
|
42
72
|
this.ipns = ipns ?? heliaIpns(helia, {
|
|
@@ -46,63 +76,114 @@ export class VerifiedFetch {
|
|
|
46
76
|
]
|
|
47
77
|
});
|
|
48
78
|
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
79
|
this.contentTypeParser = init?.contentTypeParser;
|
|
54
80
|
this.log.trace('created VerifiedFetch instance');
|
|
55
81
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Accepts an `ipns://...` URL as a string and returns a `Response` containing
|
|
84
|
+
* a raw IPNS record.
|
|
85
|
+
*/
|
|
86
|
+
async handleIPNSRecord(resource, opts) {
|
|
87
|
+
return notSupportedResponse('vnd.ipfs.ipns-record support is not implemented');
|
|
61
88
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Accepts a `CID` and returns a `Response` with a body stream that is a CAR
|
|
91
|
+
* of the `DAG` referenced by the `CID`.
|
|
92
|
+
*/
|
|
93
|
+
async handleCar({ cid, options }) {
|
|
94
|
+
const c = car(this.helia);
|
|
95
|
+
const stream = toBrowserReadableStream(c.stream(cid, options));
|
|
96
|
+
const response = okResponse(stream);
|
|
97
|
+
response.headers.set('content-type', 'application/vnd.ipld.car; version=1');
|
|
66
98
|
return response;
|
|
67
99
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
response.headers.set('content-type', 'application/json');
|
|
78
|
-
return response;
|
|
100
|
+
/**
|
|
101
|
+
* Accepts a UnixFS `CID` and returns a `.tar` file containing the file or
|
|
102
|
+
* directory structure referenced by the `CID`.
|
|
103
|
+
*/
|
|
104
|
+
async handleTar({ cid, path, options }) {
|
|
105
|
+
if (cid.code !== dagPbCode) {
|
|
106
|
+
return notAcceptableResponse('only dag-pb CIDs can be returned in TAR files');
|
|
107
|
+
}
|
|
108
|
+
return notSupportedResponse('application/tar support is not implemented');
|
|
79
109
|
}
|
|
80
|
-
async handleJson({ cid, path, options }) {
|
|
110
|
+
async handleJson({ cid, path, accept, options }) {
|
|
81
111
|
this.log.trace('fetching %c/%s', cid, path);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
112
|
+
const block = await this.helia.blockstore.get(cid, options);
|
|
113
|
+
let body;
|
|
114
|
+
if (accept === 'application/vnd.ipld.dag-cbor' || accept === 'application/cbor') {
|
|
115
|
+
try {
|
|
116
|
+
// if vnd.ipld.dag-cbor has been specified, convert to the format - note
|
|
117
|
+
// that this supports more data types than regular JSON, the content-type
|
|
118
|
+
// response header is set so the user knows to process it differently
|
|
119
|
+
const obj = ipldDagJson.decode(block);
|
|
120
|
+
body = ipldDagCbor.encode(obj);
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
this.log.error('could not transform %c to application/vnd.ipld.dag-cbor', err);
|
|
124
|
+
return notAcceptableResponse();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// skip decoding
|
|
129
|
+
body = block;
|
|
130
|
+
}
|
|
131
|
+
const response = okResponse(body);
|
|
132
|
+
response.headers.set('content-type', accept ?? 'application/json');
|
|
90
133
|
return response;
|
|
91
134
|
}
|
|
92
|
-
async handleDagCbor({ cid, path, options }) {
|
|
135
|
+
async handleDagCbor({ cid, path, accept, options }) {
|
|
93
136
|
this.log.trace('fetching %c/%s', cid, path);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
137
|
+
const block = await this.helia.blockstore.get(cid, options);
|
|
138
|
+
let body;
|
|
139
|
+
if (accept === 'application/octet-stream' || accept === 'application/vnd.ipld.dag-cbor' || accept === 'application/cbor') {
|
|
140
|
+
// skip decoding
|
|
141
|
+
body = block;
|
|
142
|
+
}
|
|
143
|
+
else if (accept === 'application/vnd.ipld.dag-json') {
|
|
144
|
+
try {
|
|
145
|
+
// if vnd.ipld.dag-json has been specified, convert to the format - note
|
|
146
|
+
// that this supports more data types than regular JSON, the content-type
|
|
147
|
+
// response header is set so the user knows to process it differently
|
|
148
|
+
const obj = ipldDagCbor.decode(block);
|
|
149
|
+
body = ipldDagJson.encode(obj);
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
this.log.error('could not transform %c to application/vnd.ipld.dag-json', err);
|
|
153
|
+
return notAcceptableResponse();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
try {
|
|
158
|
+
body = dagCborToSafeJSON(block);
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
if (accept === 'application/json') {
|
|
162
|
+
this.log('could not decode DAG-CBOR as JSON-safe, but the client sent "Accept: application/json"', err);
|
|
163
|
+
return notAcceptableResponse();
|
|
164
|
+
}
|
|
165
|
+
this.log('could not decode DAG-CBOR as JSON-safe, falling back to `application/octet-stream`', err);
|
|
166
|
+
body = block;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const response = okResponse(body);
|
|
170
|
+
if (accept == null) {
|
|
171
|
+
accept = body instanceof Uint8Array ? 'application/octet-stream' : 'application/json';
|
|
172
|
+
}
|
|
173
|
+
response.headers.set('content-type', accept);
|
|
102
174
|
return response;
|
|
103
175
|
}
|
|
104
|
-
async handleDagPb({ cid, path, options
|
|
105
|
-
|
|
176
|
+
async handleDagPb({ cid, path, options }) {
|
|
177
|
+
let terminalElement;
|
|
178
|
+
let ipfsRoots;
|
|
179
|
+
try {
|
|
180
|
+
const pathDetails = await walkPath(this.helia.blockstore, `${cid.toString()}/${path}`, options);
|
|
181
|
+
ipfsRoots = pathDetails.ipfsRoots;
|
|
182
|
+
terminalElement = pathDetails.terminalElement;
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
this.log.error('Error walking path %s', path, err);
|
|
186
|
+
}
|
|
106
187
|
let resolvedCID = terminalElement?.cid ?? cid;
|
|
107
188
|
let stat;
|
|
108
189
|
if (terminalElement?.type === 'directory') {
|
|
@@ -110,7 +191,6 @@ export class VerifiedFetch {
|
|
|
110
191
|
const rootFilePath = 'index.html';
|
|
111
192
|
try {
|
|
112
193
|
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, path: rootFilePath }));
|
|
114
194
|
stat = await this.unixfs.stat(dirCid, {
|
|
115
195
|
path: rootFilePath,
|
|
116
196
|
signal: options?.signal,
|
|
@@ -123,33 +203,40 @@ export class VerifiedFetch {
|
|
|
123
203
|
}
|
|
124
204
|
catch (err) {
|
|
125
205
|
this.log('error loading path %c/%s', dirCid, rootFilePath, err);
|
|
126
|
-
return
|
|
206
|
+
return notSupportedResponse('Unable to find index.html for directory at given path. Support for directories with implicit root is not implemented');
|
|
127
207
|
}
|
|
128
208
|
finally {
|
|
129
209
|
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:end', { cid: dirCid, path: rootFilePath }));
|
|
130
210
|
}
|
|
131
211
|
}
|
|
132
|
-
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:start', { cid: resolvedCID, path: '' }));
|
|
133
212
|
const asyncIter = this.unixfs.cat(resolvedCID, {
|
|
134
213
|
signal: options?.signal,
|
|
135
214
|
onProgress: options?.onProgress
|
|
136
215
|
});
|
|
137
|
-
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:end', { cid: resolvedCID, path: '' }));
|
|
138
216
|
this.log('got async iterator for %c/%s', cid, path);
|
|
139
217
|
const { stream, firstChunk } = await getStreamFromAsyncIterable(asyncIter, path ?? '', this.helia.logger, {
|
|
140
218
|
onProgress: options?.onProgress
|
|
141
219
|
});
|
|
142
|
-
const response =
|
|
220
|
+
const response = okResponse(stream);
|
|
143
221
|
await this.setContentType(firstChunk, path, response);
|
|
222
|
+
if (ipfsRoots != null) {
|
|
223
|
+
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
|
|
224
|
+
}
|
|
144
225
|
return response;
|
|
145
226
|
}
|
|
146
227
|
async handleRaw({ cid, path, options }) {
|
|
147
|
-
this.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
228
|
+
const result = await this.helia.blockstore.get(cid, options);
|
|
229
|
+
const response = okResponse(result);
|
|
230
|
+
// if the user has specified an `Accept` header that corresponds to a raw
|
|
231
|
+
// type, honour that header, so for example they don't request
|
|
232
|
+
// `application/vnd.ipld.raw` but get `application/octet-stream`
|
|
233
|
+
const overriddenContentType = getOverridenRawContentType(options?.headers);
|
|
234
|
+
if (overriddenContentType != null) {
|
|
235
|
+
response.headers.set('content-type', overriddenContentType);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
await this.setContentType(result, path, response);
|
|
239
|
+
}
|
|
153
240
|
return response;
|
|
154
241
|
}
|
|
155
242
|
async setContentType(bytes, path, response) {
|
|
@@ -176,98 +263,94 @@ export class VerifiedFetch {
|
|
|
176
263
|
response.headers.set('content-type', contentType);
|
|
177
264
|
}
|
|
178
265
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* @see https://specs.ipfs.tech/http-gateways/path-gateway/#format-request-query-parameter
|
|
182
|
-
* @default 'raw'
|
|
183
|
-
*/
|
|
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
|
|
266
|
+
* If the user has not specified an Accept header or format query string arg,
|
|
267
|
+
* use the CID codec to choose an appropriate handler for the block data.
|
|
210
268
|
*/
|
|
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
269
|
codecHandlers = {
|
|
222
|
-
[dagJsonCode]: this.handleDagJson,
|
|
223
270
|
[dagPbCode]: this.handleDagPb,
|
|
271
|
+
[ipldDagJson.code]: this.handleJson,
|
|
224
272
|
[jsonCode]: this.handleJson,
|
|
225
|
-
[
|
|
226
|
-
[rawCode]: this.handleRaw
|
|
273
|
+
[ipldDagCbor.code]: this.handleDagCbor,
|
|
274
|
+
[rawCode]: this.handleRaw,
|
|
275
|
+
[identity.code]: this.handleRaw
|
|
227
276
|
};
|
|
228
277
|
async fetch(resource, opts) {
|
|
278
|
+
this.log('fetch %s', resource);
|
|
229
279
|
const options = convertOptions(opts);
|
|
230
|
-
|
|
231
|
-
|
|
280
|
+
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:start', { resource }));
|
|
281
|
+
// resolve the CID/path from the requested resource
|
|
282
|
+
const { path, query, cid } = await parseResource(resource, { ipns: this.ipns, logger: this.helia.logger }, options);
|
|
283
|
+
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:resolve', { cid, path }));
|
|
284
|
+
const requestHeaders = new Headers(options?.headers);
|
|
285
|
+
const incomingAcceptHeader = requestHeaders.get('accept');
|
|
286
|
+
if (incomingAcceptHeader != null) {
|
|
287
|
+
this.log('incoming accept header "%s"', incomingAcceptHeader);
|
|
288
|
+
}
|
|
289
|
+
const queryFormatMapping = queryFormatToAcceptHeader(query.format);
|
|
290
|
+
if (query.format != null) {
|
|
291
|
+
this.log('incoming query format "%s", mapped to %s', query.format, queryFormatMapping);
|
|
292
|
+
}
|
|
293
|
+
const acceptHeader = incomingAcceptHeader ?? queryFormatMapping;
|
|
294
|
+
const accept = selectOutputType(cid, acceptHeader);
|
|
295
|
+
this.log('output type %s', accept);
|
|
296
|
+
if (acceptHeader != null && accept == null) {
|
|
297
|
+
return notAcceptableResponse();
|
|
298
|
+
}
|
|
232
299
|
let response;
|
|
233
|
-
|
|
234
|
-
if (
|
|
235
|
-
//
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
response = await formatHandler.call(this, { cid, path, options });
|
|
239
|
-
if (response.status === 501) {
|
|
240
|
-
return response;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
300
|
+
let reqFormat;
|
|
301
|
+
if (accept === 'application/vnd.ipfs.ipns-record') {
|
|
302
|
+
// the user requested a raw IPNS record
|
|
303
|
+
reqFormat = 'ipns-record';
|
|
304
|
+
response = await this.handleIPNSRecord(resource.toString(), options);
|
|
243
305
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
306
|
+
else if (accept === 'application/vnd.ipld.car') {
|
|
307
|
+
// the user requested a CAR file
|
|
308
|
+
reqFormat = 'car';
|
|
309
|
+
query.download = true;
|
|
310
|
+
query.filename = query.filename ?? `${cid.toString()}.car`;
|
|
311
|
+
response = await this.handleCar({ cid, path, options });
|
|
250
312
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
313
|
+
else if (accept === 'application/vnd.ipld.raw') {
|
|
314
|
+
// the user requested a raw block
|
|
315
|
+
reqFormat = 'raw';
|
|
316
|
+
query.download = true;
|
|
317
|
+
query.filename = query.filename ?? `${cid.toString()}.bin`;
|
|
318
|
+
response = await this.handleRaw({ cid, path, options });
|
|
319
|
+
}
|
|
320
|
+
else if (accept === 'application/x-tar') {
|
|
321
|
+
// the user requested a TAR file
|
|
322
|
+
reqFormat = 'tar';
|
|
323
|
+
response = await this.handleTar({ cid, path, options });
|
|
254
324
|
}
|
|
255
|
-
|
|
325
|
+
else {
|
|
326
|
+
// derive the handler from the CID type
|
|
256
327
|
const codecHandler = this.codecHandlers[cid.code];
|
|
257
|
-
if (codecHandler
|
|
258
|
-
|
|
328
|
+
if (codecHandler == null) {
|
|
329
|
+
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
330
|
}
|
|
260
|
-
|
|
261
|
-
|
|
331
|
+
response = await codecHandler.call(this, { cid, path, accept, options });
|
|
332
|
+
}
|
|
333
|
+
response.headers.set('etag', getETag({ cid, reqFormat, weak: false }));
|
|
334
|
+
response.headers.set('cache-control', 'public, max-age=29030400, immutable');
|
|
335
|
+
// https://specs.ipfs.tech/http-gateways/path-gateway/#x-ipfs-path-response-header
|
|
336
|
+
response.headers.set('X-Ipfs-Path', resource.toString());
|
|
337
|
+
// set Content-Disposition header
|
|
338
|
+
let contentDisposition;
|
|
339
|
+
// force download if requested
|
|
340
|
+
if (query.download === true) {
|
|
341
|
+
contentDisposition = 'attachment';
|
|
342
|
+
}
|
|
343
|
+
// override filename if requested
|
|
344
|
+
if (query.filename != null) {
|
|
345
|
+
if (contentDisposition == null) {
|
|
346
|
+
contentDisposition = 'inline';
|
|
262
347
|
}
|
|
348
|
+
contentDisposition = `${contentDisposition}; ${getContentDispositionFilename(query.filename)}`;
|
|
263
349
|
}
|
|
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
|
|
350
|
+
if (contentDisposition != null) {
|
|
351
|
+
response.headers.set('Content-Disposition', contentDisposition);
|
|
269
352
|
}
|
|
270
|
-
|
|
353
|
+
options?.onProgress?.(new CustomProgressEvent('verified-fetch:request:end', { cid, path }));
|
|
271
354
|
return response;
|
|
272
355
|
}
|
|
273
356
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../../src/verified-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAgB,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAgB,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAa,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAa,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,MAAM,IAAI,WAAW,EAAgD,MAAM,eAAe,CAAA;AACnG,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAA;AAmClE,SAAS,cAAc,CAAE,OAA8B;IACrD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,MAA+B,CAAA;IACnC,IAAI,OAAO,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,GAAG,SAAS,CAAA;IACpB,CAAC;IACD,OAAO;QACL,GAAG,OAAO;QACV,MAAM;KACP,CAAA;AACH,CAAC;AAED,MAAM,OAAO,aAAa;IACP,KAAK,CAAO;IACZ,IAAI,CAAM;IACV,MAAM,CAAa;IACnB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,IAAI,CAAM;IACV,UAAU,CAAc;IACxB,GAAG,CAAQ;IACX,iBAAiB,CAA+B;IAEjE,YAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAA2B,EAAE,IAAwB;QACzH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;YACnC,SAAS,EAAE;gBACT,gBAAgB,CAAC,8CAA8C,CAAC;gBAChE,gBAAgB,CAAC,4BAA4B,CAAC;aAC/C;SACF,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,QAAQ,CAAA;QACxC,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,iBAAiB,CAAA;QAChD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAClD,CAAC;IAED,8BAA8B;IACtB,KAAK,CAAC,gBAAgB,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAA2B;QAC7E,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,iDAAiD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACjG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA,CAAC,iGAAiG;QAC3J,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,sBAAsB;IACd,KAAK,CAAC,aAAa,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAA2B;QAC1E,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,yCAAyC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACzF,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA,CAAC,iGAAiG;QAC3J,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAA2B;QAC1E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3C,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,8BAA8B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACzC,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,UAAU,EAAE,OAAO,EAAE,UAAU;SAChC,CAAC,CAAA;QACF,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,4BAA4B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACtG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACtE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;QACxD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAA2B;QACvE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3C,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,8BAA8B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxG,MAAM,MAAM,GAAqB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACxD,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,UAAU,EAAE,OAAO,EAAE,UAAU;SAChC,CAAC,CAAA;QACF,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,4BAA4B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACtG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACtE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;QACxD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAA2B;QAC1E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3C,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,8BAA8B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAa,GAAG,EAAE;YACrD,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,UAAU,EAAE,OAAO,EAAE,UAAU;SAChC,CAAC,CAAA;QACF,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,4BAA4B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACtG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACtD,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QACjD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAA2B;QACzF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,WAAW,GAAG,eAAe,EAAE,GAAG,IAAI,GAAG,CAAA;QAC7C,IAAI,IAAiB,CAAA;QACrB,IAAI,eAAe,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAA;YAElC,MAAM,YAAY,GAAG,YAAY,CAAA;YACjC,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;gBAC7E,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,8BAA8B,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;gBAC9H,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;oBACpC,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,OAAO,EAAE,MAAM;oBACvB,UAAU,EAAE,OAAO,EAAE,UAAU;iBAChC,CAAC,CAAA;gBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBACtF,IAAI,GAAG,YAAY,CAAA;gBACnB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAA;gBACtB,yBAAyB;YAC3B,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;gBAC/D,OAAO,IAAI,QAAQ,CAAC,sHAAsH,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC9J,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,4BAA4B,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;YAC9H,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,8BAA8B,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QACzH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE;YAC7C,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,UAAU,EAAE,OAAO,EAAE,UAAU;SAChC,CAAC,CAAA;QACF,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,4BAA4B,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QACvH,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAEnD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,0BAA0B,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACxG,UAAU,EAAE,OAAO,EAAE,UAAU;SAChC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACtD,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAErD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,SAAS,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAA2B;QACtE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3C,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,8BAA8B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnD,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAY,4BAA4B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACtG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9D,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QACjD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAE,KAAiB,EAAE,IAAY,EAAE,QAAkB;QAC/E,IAAI,WAAW,GAAG,0BAA0B,CAAA;QAE5C,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAA;gBAC5C,QAAQ,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;gBAEtD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAA;oBAE3B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,WAAW,GAAG,MAAM,CAAA;oBACtB,CAAC;gBACH,CAAC;qBAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBAC1B,WAAW,GAAG,MAAM,CAAA;gBACtB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;IACnD,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAE,EAAE,YAAY,EAAE,WAAW,EAA+D;QAC3G,MAAM,SAAS,GAA2B;YACxC,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,KAAK;YAC1B,+BAA+B,EAAE,UAAU;YAC3C,+BAA+B,EAAE,UAAU;YAC3C,kBAAkB,EAAE,MAAM;YAC1B,kBAAkB,EAAE,MAAM;YAC1B,sBAAsB,EAAE,aAAa;SACtC,CAAA;QAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YAC/B,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACc,cAAc,GAAyC;QACtE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,qDAAqD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACrG,GAAG,EAAE,IAAI,CAAC,aAAa;QACvB,aAAa,EAAE,IAAI,CAAC,gBAAgB;QACpC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,8CAA8C,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC9F,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,0DAA0D,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACjH,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,0DAA0D,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACjH,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,6CAA6C,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC9F,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,6CAA6C,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KAC/F,CAAA;IAEgB,aAAa,GAAyC;QACrE,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa;QACjC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW;QAC7B,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU;QAC3B,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa;QACjC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAA;IAED,KAAK,CAAC,KAAK,CAAE,QAAkB,EAAE,IAA2B;QAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;QACvH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACpB,IAAI,QAA8B,CAAA;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;QAE/H,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,qFAAqF;YACrF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAEjD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC1B,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEjE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO,QAAQ,CAAA;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,eAAwC,CAAA;QAC5C,IAAI,SAA4B,CAAA;QAEhC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAA;YACtG,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;YACjC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAA;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;YAClD,wFAAwF;QAC1F,CAAC;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEjD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;gBACzB,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;YACnF,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,QAAQ,CAAC,+BAA+B,GAAG,CAAC,IAAI,2FAA2F,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1K,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAC,2EAA2E;QACxH,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,qCAAqC,CAAC,CAAA;QAC3E,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAC,kFAAkF;QAE3I,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA,CAAC,mFAAmF;QACjL,CAAC;QACD,iJAAiJ;QAEjJ,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;CACF;AAED,SAAS,SAAS,CAAM,CAAO;IAC7B,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,CAAA;AACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"verified-fetch.js","sourceRoot":"","sources":["../../src/verified-fetch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/verified-fetch",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-a04e041",
|
|
4
4
|
"description": "A fetch-like API for obtaining verified & trustless IPFS content on the web.",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/verified-fetch#readme",
|
|
@@ -141,33 +141,45 @@
|
|
|
141
141
|
"release": "aegir release"
|
|
142
142
|
},
|
|
143
143
|
"dependencies": {
|
|
144
|
-
"@helia/
|
|
145
|
-
"@helia/
|
|
146
|
-
"@helia/
|
|
147
|
-
"@helia/
|
|
148
|
-
"@helia/
|
|
149
|
-
"@helia/
|
|
150
|
-
"@helia/
|
|
151
|
-
"@
|
|
152
|
-
"@
|
|
153
|
-
"@ipld/dag-
|
|
154
|
-
"@ipld/dag-json": "^10.1.7",
|
|
155
|
-
"@ipld/dag-pb": "^4.0.8",
|
|
144
|
+
"@helia/car": "3.0.0-a04e041",
|
|
145
|
+
"@helia/block-brokers": "2.0.1-a04e041",
|
|
146
|
+
"@helia/http": "1.0.1-a04e041",
|
|
147
|
+
"@helia/interface": "4.0.0-a04e041",
|
|
148
|
+
"@helia/ipns": "6.0.0-a04e041",
|
|
149
|
+
"@helia/routers": "1.0.0-a04e041",
|
|
150
|
+
"@helia/unixfs": "3.0.0-a04e041",
|
|
151
|
+
"@ipld/dag-cbor": "^9.2.0",
|
|
152
|
+
"@ipld/dag-json": "^10.2.0",
|
|
153
|
+
"@ipld/dag-pb": "^4.1.0",
|
|
156
154
|
"@libp2p/interface": "^1.1.2",
|
|
157
155
|
"@libp2p/peer-id": "^4.0.5",
|
|
156
|
+
"cborg": "^4.0.9",
|
|
158
157
|
"hashlru": "^2.3.0",
|
|
159
158
|
"ipfs-unixfs-exporter": "^13.5.0",
|
|
160
|
-
"
|
|
159
|
+
"it-to-browser-readablestream": "^2.0.6",
|
|
160
|
+
"multiformats": "^13.1.0",
|
|
161
161
|
"progress-events": "^1.0.0"
|
|
162
162
|
},
|
|
163
163
|
"devDependencies": {
|
|
164
|
+
"@helia/car": "3.0.0-a04e041",
|
|
165
|
+
"@helia/dag-cbor": "3.0.0-a04e041",
|
|
166
|
+
"@helia/dag-json": "3.0.0-a04e041",
|
|
167
|
+
"@helia/json": "3.0.0-a04e041",
|
|
168
|
+
"@helia/utils": "0.0.1-a04e041",
|
|
169
|
+
"@ipld/car": "^5.2.6",
|
|
164
170
|
"@libp2p/logger": "^4.0.5",
|
|
165
171
|
"@libp2p/peer-id-factory": "^4.0.5",
|
|
166
172
|
"@sgtpooki/file-type": "^1.0.1",
|
|
167
173
|
"@types/sinon": "^17.0.3",
|
|
168
174
|
"aegir": "^42.2.2",
|
|
169
|
-
"
|
|
175
|
+
"blockstore-core": "^4.4.0",
|
|
176
|
+
"datastore-core": "^9.2.8",
|
|
177
|
+
"helia": "4.0.1-a04e041",
|
|
178
|
+
"ipns": "^9.0.0",
|
|
179
|
+
"it-last": "^3.0.4",
|
|
180
|
+
"it-to-buffer": "^4.0.5",
|
|
170
181
|
"magic-bytes.js": "^1.8.0",
|
|
182
|
+
"p-defer": "^4.0.0",
|
|
171
183
|
"sinon": "^17.0.1",
|
|
172
184
|
"sinon-ts": "^2.0.0",
|
|
173
185
|
"uint8arrays": "^5.0.1"
|