@helia/verified-fetch-interop 2.0.2 → 4.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/dist/src/abort-handling.spec.js +4 -10
- package/dist/src/abort-handling.spec.js.map +1 -1
- package/dist/src/json.spec.js.map +1 -1
- package/dist/src/unixfs-dir.spec.js +7 -7
- package/dist/src/unixfs-dir.spec.js.map +1 -1
- package/dist/src/websites.spec.js.map +1 -1
- package/package.json +3 -3
- package/src/abort-handling.spec.ts +4 -10
- package/src/json.spec.ts +2 -1
- package/src/unixfs-dir.spec.ts +7 -7
- package/src/websites.spec.ts +2 -1
|
@@ -18,16 +18,10 @@ describe('verified-fetch abort handling', () => {
|
|
|
18
18
|
await verifiedFetch?.stop();
|
|
19
19
|
});
|
|
20
20
|
it('should handle aborts properly', async function () {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}, 70);
|
|
26
|
-
const fetchPromise = verifiedFetch('ipfs://QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1 - Barrel - Part 1/1 - Barrel - Part 1 - alt.txt', {
|
|
27
|
-
signal: controller.signal
|
|
28
|
-
});
|
|
29
|
-
await expect(fetchPromise).to.eventually.be.rejected.with.property('name', 'AbortError');
|
|
30
|
-
clearTimeout(timeout);
|
|
21
|
+
const signal = AbortSignal.timeout(1);
|
|
22
|
+
await expect(verifiedFetch('ipfs://QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1 - Barrel - Part 1/1 - Barrel - Part 1 - alt.txt', {
|
|
23
|
+
signal
|
|
24
|
+
})).to.eventually.be.rejected.with.property('name', 'TimeoutError');
|
|
31
25
|
});
|
|
32
26
|
});
|
|
33
27
|
//# sourceMappingURL=abort-handling.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abort-handling.spec.js","sourceRoot":"","sources":["../../src/abort-handling.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAGnC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAI,aAA4B,CAAA;IAEhC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,EAAE,CAAC;YACxG,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAClF,CAAC;QAED,aAAa,GAAG,MAAM,mBAAmB,CAAC;YACxC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACpD,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACnD,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,aAAa,EAAE,IAAI,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK;QACvC,
|
|
1
|
+
{"version":3,"file":"abort-handling.spec.js","sourceRoot":"","sources":["../../src/abort-handling.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAGnC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAI,aAA4B,CAAA;IAEhC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,EAAE,CAAC;YACxG,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAClF,CAAC;QAED,aAAa,GAAG,MAAM,mBAAmB,CAAC;YACxC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACpD,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACnD,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,aAAa,EAAE,IAAI,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK;QACvC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAErC,MAAM,MAAM,CAAC,aAAa,CAAC,yGAAyG,EAAE;YACpI,MAAM;SACP,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.spec.js","sourceRoot":"","sources":["../../src/json.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"json.spec.js","sourceRoot":"","sources":["../../src/json.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-env mocha */
|
|
2
|
-
import { createVerifiedFetch } from '@helia/verified-fetch';
|
|
2
|
+
import { createVerifiedFetch, MEDIA_TYPE_DAG_PB } from '@helia/verified-fetch';
|
|
3
3
|
import { expect } from 'aegir/chai';
|
|
4
4
|
import { filetypemime } from 'magic-bytes.js';
|
|
5
5
|
describe('@helia/verified-fetch - unixfs directory', () => {
|
|
@@ -17,9 +17,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
17
17
|
});
|
|
18
18
|
describe('unixfs-dir-redirect', () => {
|
|
19
19
|
[
|
|
20
|
-
'
|
|
21
|
-
'ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q'
|
|
22
|
-
'http://example.com/ipfs/bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q'
|
|
20
|
+
'/ipfs/bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q',
|
|
21
|
+
'ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q'
|
|
23
22
|
].forEach((url) => {
|
|
24
23
|
it(`request to unixfs directory with ${url} should return a 301 with a trailing slash`, async () => {
|
|
25
24
|
const response = await verifiedFetch(url, {
|
|
@@ -29,20 +28,21 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
29
28
|
});
|
|
30
29
|
expect(response).to.be.ok();
|
|
31
30
|
expect(response.status).to.equal(301);
|
|
32
|
-
expect(response.headers.get('location')).to.equal(
|
|
31
|
+
expect(response.headers.get('location')).to.equal('ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q/');
|
|
33
32
|
});
|
|
34
33
|
});
|
|
35
34
|
});
|
|
36
35
|
// This tests the content of https://explore.ipld.io/#/explore/QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1%20-%20Barrel%20-%20Part%201
|
|
37
36
|
describe('XKCD Barrel Part 1', () => {
|
|
38
|
-
it('
|
|
37
|
+
it('should load the directory root', async () => {
|
|
39
38
|
// The spec says we should generate HTML with directory listings, but we don't do that yet, so expect a failure
|
|
40
39
|
const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR', {
|
|
41
40
|
allowLocal: true,
|
|
42
41
|
allowInsecure: true
|
|
43
42
|
});
|
|
44
43
|
expect(resp).to.be.ok();
|
|
45
|
-
expect(resp.status).to.equal(
|
|
44
|
+
expect(resp.status).to.equal(200);
|
|
45
|
+
expect(resp.headers.get('content-type')).to.equal(MEDIA_TYPE_DAG_PB);
|
|
46
46
|
});
|
|
47
47
|
it('can return a string for deep-linked unixfs data', async () => {
|
|
48
48
|
const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR/1 - Barrel - Part 1 - alt.txt', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unixfs-dir.spec.js","sourceRoot":"","sources":["../../src/unixfs-dir.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"unixfs-dir.spec.js","sourceRoot":"","sources":["../../src/unixfs-dir.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websites.spec.js","sourceRoot":"","sources":["../../src/websites.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"websites.spec.js","sourceRoot":"","sources":["../../src/websites.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/verified-fetch-interop",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Interop tests for @helia/verified-fetch",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia-verified-fetch/tree/main/packages/interop#readme",
|
|
@@ -145,12 +145,12 @@
|
|
|
145
145
|
},
|
|
146
146
|
"dependencies": {
|
|
147
147
|
"@helia/delegated-routing-v1-http-api-server": "^5.0.0",
|
|
148
|
-
"@helia/verified-fetch": "^
|
|
148
|
+
"@helia/verified-fetch": "^5.0.0",
|
|
149
149
|
"aegir": "^47.0.24",
|
|
150
150
|
"execa": "^9.5.3",
|
|
151
151
|
"glob": "^13.0.0",
|
|
152
152
|
"ipfsd-ctl": "^16.0.0",
|
|
153
|
-
"kubo": "^0.
|
|
153
|
+
"kubo": "^0.39.0",
|
|
154
154
|
"kubo-rpc-client": "^6.0.1",
|
|
155
155
|
"magic-bytes.js": "^1.12.1",
|
|
156
156
|
"multiformats": "^13.3.6",
|
|
@@ -24,16 +24,10 @@ describe('verified-fetch abort handling', () => {
|
|
|
24
24
|
})
|
|
25
25
|
|
|
26
26
|
it('should handle aborts properly', async function () {
|
|
27
|
-
|
|
28
|
-
const controller = new AbortController()
|
|
29
|
-
const timeout = setTimeout(() => {
|
|
30
|
-
controller.abort()
|
|
31
|
-
}, 70)
|
|
27
|
+
const signal = AbortSignal.timeout(1)
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
signal
|
|
35
|
-
})
|
|
36
|
-
await expect(fetchPromise).to.eventually.be.rejected.with.property('name', 'AbortError')
|
|
37
|
-
clearTimeout(timeout)
|
|
29
|
+
await expect(verifiedFetch('ipfs://QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1 - Barrel - Part 1/1 - Barrel - Part 1 - alt.txt', {
|
|
30
|
+
signal
|
|
31
|
+
})).to.eventually.be.rejected.with.property('name', 'TimeoutError')
|
|
38
32
|
})
|
|
39
33
|
})
|
package/src/json.spec.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import { createVerifiedFetch } from '@helia/verified-fetch'
|
|
3
3
|
import { expect } from 'aegir/chai'
|
|
4
4
|
import { CID } from 'multiformats/cid'
|
|
5
|
+
import type { VerifiedFetch } from '@helia/verified-fetch'
|
|
5
6
|
|
|
6
7
|
describe('@helia/verified-fetch - json', () => {
|
|
7
8
|
describe('unixfs - multi-block', () => {
|
|
8
|
-
let verifiedFetch:
|
|
9
|
+
let verifiedFetch: VerifiedFetch
|
|
9
10
|
|
|
10
11
|
before(async () => {
|
|
11
12
|
// As of 2024-01-18, https://cloudflare-ipfs.com/ipns/tokens.uniswap.org resolves to:
|
package/src/unixfs-dir.spec.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-env mocha */
|
|
2
|
-
import { createVerifiedFetch } from '@helia/verified-fetch'
|
|
2
|
+
import { createVerifiedFetch, MEDIA_TYPE_DAG_PB } from '@helia/verified-fetch'
|
|
3
3
|
import { expect } from 'aegir/chai'
|
|
4
4
|
import { filetypemime } from 'magic-bytes.js'
|
|
5
5
|
import type { VerifiedFetch } from '@helia/verified-fetch'
|
|
@@ -22,9 +22,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
22
22
|
|
|
23
23
|
describe('unixfs-dir-redirect', () => {
|
|
24
24
|
[
|
|
25
|
-
'
|
|
26
|
-
'ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q'
|
|
27
|
-
'http://example.com/ipfs/bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q'
|
|
25
|
+
'/ipfs/bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q',
|
|
26
|
+
'ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q'
|
|
28
27
|
].forEach((url: string) => {
|
|
29
28
|
it(`request to unixfs directory with ${url} should return a 301 with a trailing slash`, async () => {
|
|
30
29
|
const response = await verifiedFetch(url, {
|
|
@@ -34,21 +33,22 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
34
33
|
})
|
|
35
34
|
expect(response).to.be.ok()
|
|
36
35
|
expect(response.status).to.equal(301)
|
|
37
|
-
expect(response.headers.get('location')).to.equal(
|
|
36
|
+
expect(response.headers.get('location')).to.equal('ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q/')
|
|
38
37
|
})
|
|
39
38
|
})
|
|
40
39
|
})
|
|
41
40
|
|
|
42
41
|
// This tests the content of https://explore.ipld.io/#/explore/QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1%20-%20Barrel%20-%20Part%201
|
|
43
42
|
describe('XKCD Barrel Part 1', () => {
|
|
44
|
-
it('
|
|
43
|
+
it('should load the directory root', async () => {
|
|
45
44
|
// The spec says we should generate HTML with directory listings, but we don't do that yet, so expect a failure
|
|
46
45
|
const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR', {
|
|
47
46
|
allowLocal: true,
|
|
48
47
|
allowInsecure: true
|
|
49
48
|
})
|
|
50
49
|
expect(resp).to.be.ok()
|
|
51
|
-
expect(resp.status).to.equal(
|
|
50
|
+
expect(resp.status).to.equal(200)
|
|
51
|
+
expect(resp.headers.get('content-type')).to.equal(MEDIA_TYPE_DAG_PB)
|
|
52
52
|
})
|
|
53
53
|
|
|
54
54
|
it('can return a string for deep-linked unixfs data', async () => {
|
package/src/websites.spec.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/* eslint-env mocha */
|
|
2
2
|
import { createVerifiedFetch } from '@helia/verified-fetch'
|
|
3
3
|
import { expect } from 'aegir/chai'
|
|
4
|
+
import type { VerifiedFetch } from '@helia/verified-fetch'
|
|
4
5
|
|
|
5
6
|
describe('@helia/verified-fetch - websites', () => {
|
|
6
7
|
describe('helia-identify.on.fleek.co', () => {
|
|
7
|
-
let verifiedFetch:
|
|
8
|
+
let verifiedFetch: VerifiedFetch
|
|
8
9
|
|
|
9
10
|
before(async () => {
|
|
10
11
|
// 2024-01-22 CID for _dnslink.helia-identify.on.fleek.co
|