@helia/verified-fetch-interop 1.20.0 → 1.21.1

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.
Files changed (33) hide show
  1. package/dist/src/bin.js +0 -1
  2. package/dist/src/bin.js.map +1 -1
  3. package/dist/src/fixtures/create-kubo.d.ts +2 -2
  4. package/dist/src/fixtures/create-kubo.d.ts.map +1 -1
  5. package/dist/src/fixtures/create-kubo.js +9 -8
  6. package/dist/src/fixtures/create-kubo.js.map +1 -1
  7. package/dist/src/fixtures/load-fixtures.d.ts +6 -0
  8. package/dist/src/fixtures/load-fixtures.d.ts.map +1 -0
  9. package/dist/src/fixtures/load-fixtures.js +25 -0
  10. package/dist/src/fixtures/load-fixtures.js.map +1 -0
  11. package/dist/src/json.spec.js +2 -9
  12. package/dist/src/json.spec.js.map +1 -1
  13. package/dist/src/unixfs-dir.spec.js +7 -21
  14. package/dist/src/unixfs-dir.spec.js.map +1 -1
  15. package/dist/src/websites.spec.js +4 -16
  16. package/dist/src/websites.spec.js.map +1 -1
  17. package/package.json +6 -5
  18. package/src/bin.ts +0 -1
  19. package/src/fixtures/create-kubo.ts +9 -8
  20. package/src/fixtures/load-fixtures.ts +25 -0
  21. package/src/json.spec.ts +2 -10
  22. package/src/unixfs-dir.spec.ts +7 -26
  23. package/src/websites.spec.ts +4 -17
  24. package/dist/src/fixtures/create-kubo.browser.d.ts +0 -3
  25. package/dist/src/fixtures/create-kubo.browser.d.ts.map +0 -1
  26. package/dist/src/fixtures/create-kubo.browser.js +0 -30
  27. package/dist/src/fixtures/create-kubo.browser.js.map +0 -1
  28. package/dist/src/fixtures/load-fixture-data.d.ts +0 -3
  29. package/dist/src/fixtures/load-fixture-data.d.ts.map +0 -1
  30. package/dist/src/fixtures/load-fixture-data.js +0 -8
  31. package/dist/src/fixtures/load-fixture-data.js.map +0 -1
  32. package/src/fixtures/create-kubo.browser.ts +0 -30
  33. package/src/fixtures/load-fixture-data.ts +0 -9
package/dist/src/bin.js CHANGED
@@ -1,5 +1,4 @@
1
1
  #! /usr/bin/env node
2
- /* eslint-disable no-console */
3
2
  import { spawn } from 'node:child_process';
4
3
  import { dirname, resolve } from 'node:path';
5
4
  import { fileURLToPath } from 'node:url';
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":";AACA,+BAA+B;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,yDAAyD;AACzD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;IAC3C,GAAG;CACJ,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;IACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;AACzB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,yDAAyD;AACzD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;IAC3C,GAAG;CACJ,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;IACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;AACzB,CAAC,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
- import { type Controller } from 'ipfsd-ctl';
2
- export declare function createKuboNode(): Promise<Controller>;
1
+ import { type KuboNode } from 'ipfsd-ctl';
2
+ export declare function createKuboNode(repoPath?: undefined): Promise<KuboNode>;
3
3
  //# sourceMappingURL=create-kubo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-kubo.d.ts","sourceRoot":"","sources":["../../../src/fixtures/create-kubo.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAI7D,wBAAsB,cAAc,IAAK,OAAO,CAAC,UAAU,CAAC,CA0B3D"}
1
+ {"version":3,"file":"create-kubo.d.ts","sourceRoot":"","sources":["../../../src/fixtures/create-kubo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAA;AAIrD,wBAAsB,cAAc,CAAE,QAAQ,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4B7E"}
@@ -1,13 +1,14 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment,@typescript-eslint/prefer-ts-expect-error */
2
- import { createController } from 'ipfsd-ctl';
1
+ import { createNode } from 'ipfsd-ctl';
3
2
  import { path as kuboPath } from 'kubo';
4
- import * as kuboRpcClient from 'kubo-rpc-client';
5
- export async function createKuboNode() {
6
- return createController({
7
- kuboRpcModule: kuboRpcClient,
8
- ipfsBin: kuboPath(),
3
+ import { create } from 'kubo-rpc-client';
4
+ export async function createKuboNode(repoPath = undefined) {
5
+ return createNode({
6
+ type: 'kubo',
7
+ rpc: create,
8
+ bin: kuboPath(),
9
9
  test: true,
10
- ipfsOptions: {
10
+ repo: repoPath,
11
+ init: {
11
12
  config: {
12
13
  Addresses: {
13
14
  Swarm: [
@@ -1 +1 @@
1
- {"version":3,"file":"create-kubo.js","sourceRoot":"","sources":["../../../src/fixtures/create-kubo.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,WAAW,CAAA;AAC7D,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,gBAAgB,CAAC;QACtB,aAAa,EAAE,aAAa;QAC5B,OAAO,EAAE,QAAQ,EAAE;QACnB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,uBAAuB;wBACvB,0BAA0B;qBAC3B;oBACD,OAAO,EAAE,yBAAyB;iBACnC;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,IAAI;oBACb,gBAAgB,EAAE,IAAI;oBACtB,WAAW,EAAE;wBACX,6BAA6B,EAAE,CAAC,GAAG,CAAC;wBACpC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;qBAClE;iBACF;aACF;SACF;QACD,IAAI,EAAE,CAAC,4BAA4B,EAAE,yBAAyB,CAAC;KAChE,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"create-kubo.js","sourceRoot":"","sources":["../../../src/fixtures/create-kubo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,QAAQ,GAAG,SAAS;IACxD,OAAO,UAAU,CAAC;QAChB,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,QAAQ,EAAE;QACf,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,uBAAuB;wBACvB,0BAA0B;qBAC3B;oBACD,OAAO,EAAE,yBAAyB;iBACnC;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,IAAI;oBACb,gBAAgB,EAAE,IAAI;oBACtB,WAAW,EAAE;wBACX,6BAA6B,EAAE,CAAC,GAAG,CAAC;wBACpC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;qBAClE;iBACF;aACF;SACF;QACD,IAAI,EAAE,CAAC,4BAA4B,EAAE,yBAAyB,CAAC;KAChE,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Only callable from node (intended to be consumed by .aegir.js)
3
+ * but the fixtures loaded by this function are also used by browser tests.
4
+ */
5
+ export declare function loadFixtures(IPFS_PATH?: undefined): Promise<void>;
6
+ //# sourceMappingURL=load-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-fixtures.d.ts","sourceRoot":"","sources":["../../../src/fixtures/load-fixtures.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,YAAY,CAAE,SAAS,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBxE"}
@@ -0,0 +1,25 @@
1
+ import { $ } from 'execa';
2
+ import fg from 'fast-glob';
3
+ import { path as kuboPath } from 'kubo';
4
+ /**
5
+ * Only callable from node (intended to be consumed by .aegir.js)
6
+ * but the fixtures loaded by this function are also used by browser tests.
7
+ */
8
+ export async function loadFixtures(IPFS_PATH = undefined) {
9
+ const kuboBinary = process.env.KUBO_BINARY ?? kuboPath();
10
+ /**
11
+ * fast-glob does not like windows paths, see https://github.com/mrmlnc/fast-glob/issues/237
12
+ * fast-glob performs search from process.cwd() by default, which will be:
13
+ * 1. the root of the monorepo when running tests in CI
14
+ * 2. the package root when running tests in the package directory
15
+ */
16
+ let globRoot = process.cwd().replace(/\\/g, '/');
17
+ if (!globRoot.includes('packages/interop')) {
18
+ // we only want car files from the interop package
19
+ globRoot = [...globRoot.split('/'), 'packages/interop'].join('/');
20
+ }
21
+ for (const carFile of await fg.glob('src/fixtures/data/*.car', { cwd: globRoot })) {
22
+ await $({ env: { IPFS_PATH } }) `${kuboBinary} dag import --pin-roots=false --offline ${carFile}`;
23
+ }
24
+ }
25
+ //# sourceMappingURL=load-fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-fixtures.js","sourceRoot":"","sources":["../../../src/fixtures/load-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,WAAW,CAAA;AAC1B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAA;AAEvC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,SAAS,GAAG,SAAS;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAA;IACxD;;;;;OAKG;IACH,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,kDAAkD;QAClD,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnE,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAClF,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA,GAAG,UAAU,2CAA2C,OAAO,EAAE,CAAA;IAClG,CAAC;AACH,CAAC"}
@@ -2,27 +2,20 @@
2
2
  import { createVerifiedFetch } from '@helia/verified-fetch';
3
3
  import { expect } from 'aegir/chai';
4
4
  import { CID } from 'multiformats/cid';
5
- import { createKuboNode } from './fixtures/create-kubo.js';
6
- import { loadFixtureDataCar } from './fixtures/load-fixture-data.js';
7
5
  describe('@helia/verified-fetch - json', () => {
8
6
  describe('unixfs - multiblock', () => {
9
- let controller;
10
7
  let verifiedFetch;
11
8
  before(async () => {
12
- controller = await createKuboNode();
13
- await controller.start();
14
9
  // As of 2024-01-18, https://cloudflare-ipfs.com/ipns/tokens.uniswap.org resolves to:
15
10
  // root: QmQJ8fxavY54CUsxMSx9aE9Rdcmvhx8awJK2jzJp4iAqCr
16
11
  // child1: QmNik5N4ryNwzzXYq5hCYKGcRjAf9QtigxtiJh9o8aXXbG // partial JSON
17
12
  // child2: QmWNBJX6fZyNTLWNYBHxAHpBctCP43R2zeqV2G8uavqFZn // partial JSON
18
- await loadFixtureDataCar(controller, 'QmQJ8fxavY54CUsxMSx9aE9Rdcmvhx8awJK2jzJp4iAqCr-tokens.uniswap.org-2024-01-18.car');
19
13
  verifiedFetch = await createVerifiedFetch({
20
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
21
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
14
+ gateways: ['http://127.0.0.1:8180'],
15
+ routers: []
22
16
  });
23
17
  });
24
18
  after(async () => {
25
- await controller.stop();
26
19
  await verifiedFetch.stop();
27
20
  });
28
21
  it('handles UnixFS-chunked JSON file', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"json.spec.js","sourceRoot":"","sources":["../../src/json.spec.ts"],"names":[],"mappings":"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"}
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;AAEtC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,aAA8D,CAAA;QAElE,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,qFAAqF;YACrF,uDAAuD;YACvD,yEAAyE;YACzE,yEAAyE;YACzE,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBACxC,QAAQ,EAAE,CAAC,uBAAuB,CAAC;gBACnC,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAA;YAC7F,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YACjC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACtE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAC/E,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7F,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAA;YAC1G,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;YAClF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -2,27 +2,19 @@
2
2
  import { createVerifiedFetch } from '@helia/verified-fetch';
3
3
  import { expect } from 'aegir/chai';
4
4
  import { filetypemime } from 'magic-bytes.js';
5
- import { createKuboNode } from './fixtures/create-kubo.js';
6
- import { loadFixtureDataCar } from './fixtures/load-fixture-data.js';
7
5
  describe('@helia/verified-fetch - unixfs directory', () => {
8
- let controller;
9
6
  let verifiedFetch;
10
7
  before(async () => {
11
- controller = await createKuboNode();
12
- await controller.start();
13
8
  verifiedFetch = await createVerifiedFetch({
14
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
15
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
9
+ gateways: ['http://127.0.0.1:8180'],
10
+ routers: []
16
11
  });
12
+ verifiedFetch = await createVerifiedFetch();
17
13
  });
18
14
  after(async () => {
19
- await controller.stop();
20
15
  await verifiedFetch.stop();
21
16
  });
22
17
  describe('unixfs-dir-redirect', () => {
23
- before(async () => {
24
- await loadFixtureDataCar(controller, 'gateway-conformance-fixtures.car');
25
- });
26
18
  [
27
19
  'https://example.com/ipfs/bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q',
28
20
  'ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q',
@@ -36,11 +28,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
36
28
  });
37
29
  });
38
30
  });
31
+ // This tests the content of https://explore.ipld.io/#/explore/QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1%20-%20Barrel%20-%20Part%201
39
32
  describe('XKCD Barrel Part 1', () => {
40
- before(async () => {
41
- // This is the content of https://explore.ipld.io/#/explore/QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1%20-%20Barrel%20-%20Part%201
42
- await loadFixtureDataCar(controller, 'QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR-xkcd-Barrel-part-1.car');
43
- });
44
33
  it('fails to load when passed the root', async () => {
45
34
  // The spec says we should generate HTML with directory listings, but we don't do that yet, so expect a failure
46
35
  const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR');
@@ -65,8 +54,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
65
54
  before(async () => {
66
55
  await verifiedFetch.stop();
67
56
  verifiedFetch = await createVerifiedFetch({
68
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
69
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
57
+ gateways: ['http://127.0.0.1:8180'],
58
+ routers: []
70
59
  }, {
71
60
  contentTypeParser: (bytes) => {
72
61
  return filetypemime(bytes)?.[0];
@@ -79,11 +68,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
79
68
  expect(resp.headers.get('content-type')).to.equal('image/jpeg');
80
69
  });
81
70
  });
71
+ // from https://github.com/ipfs/gateway-conformance/blob/193833b91f2e9b17daf45c84afaeeae61d9d7c7e/fixtures/trustless_gateway_car/single-layer-hamt-with-multi-block-files.car
82
72
  describe('HAMT-sharded directory', () => {
83
- before(async () => {
84
- // from https://github.com/ipfs/gateway-conformance/blob/193833b91f2e9b17daf45c84afaeeae61d9d7c7e/fixtures/trustless_gateway_car/single-layer-hamt-with-multi-block-files.car
85
- await loadFixtureDataCar(controller, 'bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i-single-layer-hamt-with-multi-block-files.car');
86
- });
87
73
  it('loads path /ipfs/bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt', async () => {
88
74
  const resp = await verifiedFetch('ipfs://bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt');
89
75
  expect(resp).to.be.ok();
@@ -1 +1 @@
1
- {"version":3,"file":"unixfs-dir.spec.js","sourceRoot":"","sources":["../../src/unixfs-dir.spec.ts"],"names":[],"mappings":"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"}
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;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,IAAI,aAA4B,CAAA;IAEhC,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,aAAa,GAAG,MAAM,mBAAmB,CAAC;YACxC,QAAQ,EAAE,CAAC,uBAAuB,CAAC;YACnC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAA;QACF,aAAa,GAAG,MAAM,mBAAmB,EAAE,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC;YACE,sFAAsF;YACtF,oEAAoE;YACpE,qFAAqF;SACtF,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YACxB,EAAE,CAAC,oCAAoC,GAAG,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBACjG,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;gBAC3B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;YAC9D,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,2IAA2I;IAC3I,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,+GAA+G;YAC/G,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,uDAAuD,CAAC,CAAA;YACzF,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,iDAAiD;QACrF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,qFAAqF,CAAC,CAAA;YACvH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,+EAA+E,CAAC,CAAA;YACjH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YACjC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;YAC1B,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBACxC,QAAQ,EAAE,CAAC,uBAAuB,CAAC;gBACnC,OAAO,EAAE,EAAE;aACZ,EAAE;gBACD,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC3B,OAAO,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACjC,CAAC;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,+EAA+E,CAAC,CAAA;YACjH,+DAA+D;YAC/D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,6KAA6K;IAC7K,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,4EAA4E,CAAC,CAAA;YAC9G,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC9B,kGAAkG;YAClG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;;icAEqa,CAAC,CAAA;QAC9b,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,24 +1,17 @@
1
1
  /* eslint-env mocha */
2
2
  import { createVerifiedFetch } from '@helia/verified-fetch';
3
3
  import { expect } from 'aegir/chai';
4
- import { createKuboNode } from './fixtures/create-kubo.js';
5
- import { loadFixtureDataCar } from './fixtures/load-fixture-data.js';
6
4
  describe('@helia/verified-fetch - websites', () => {
7
5
  describe('helia-identify.on.fleek.co', () => {
8
- let controller;
9
6
  let verifiedFetch;
10
7
  before(async () => {
11
- controller = await createKuboNode();
12
- await controller.start();
13
8
  // 2024-01-22 CID for _dnslink.helia-identify.on.fleek.co
14
- await loadFixtureDataCar(controller, 'QmbxpRxwKXxnJQjnPqm1kzDJSJ8YgkLxH23mcZURwPHjGv-helia-identify-website.car');
15
9
  verifiedFetch = await createVerifiedFetch({
16
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
17
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
10
+ gateways: ['http://127.0.0.1:8180'],
11
+ routers: []
18
12
  });
19
13
  });
20
14
  after(async () => {
21
- await controller.stop();
22
15
  await verifiedFetch.stop();
23
16
  });
24
17
  it('loads index.html when passed helia-identify.on.fleek.co root CID', async () => {
@@ -48,19 +41,14 @@ describe('@helia/verified-fetch - websites', () => {
48
41
  * ```
49
42
  */
50
43
  describe('fake blog.libp2p.io', () => {
51
- let controller;
52
44
  let verifiedFetch;
53
45
  before(async () => {
54
- controller = await createKuboNode();
55
- await controller.start();
56
- await loadFixtureDataCar(controller, 'QmeiDMLtPUS3RT2xAcUwsNyZz169wPke2q7im9vZpVLSYw-fake-blog.libp2p.io.car');
57
46
  verifiedFetch = await createVerifiedFetch({
58
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
59
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
47
+ gateways: ['http://127.0.0.1:8180'],
48
+ routers: []
60
49
  });
61
50
  });
62
51
  after(async () => {
63
- await controller.stop();
64
52
  await verifiedFetch.stop();
65
53
  });
66
54
  it('loads index.html when passed fake-blog.libp2p.io root CID', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"websites.spec.js","sourceRoot":"","sources":["../../src/websites.spec.ts"],"names":[],"mappings":"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"}
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;AAEnC,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,IAAI,aAA8D,CAAA;QAElE,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,yDAAyD;YACzD,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBACxC,QAAQ,EAAE,CAAC,uBAAuB,CAAC;gBACnC,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,uDAAuD,CAAC,CAAA;YACzF,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,kEAAkE,CAAC,CAAA;YACpG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,aAA8D,CAAA;QAElE,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBACxC,QAAQ,EAAE,CAAC,uBAAuB,CAAC;gBACnC,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,uDAAuD,CAAC,CAAA;YACzF,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;YACvB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAA;YACxE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/verified-fetch-interop",
3
- "version": "1.20.0",
3
+ "version": "1.21.1",
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",
@@ -57,12 +57,13 @@
57
57
  "test:electron-main": "aegir test -t electron-main"
58
58
  },
59
59
  "dependencies": {
60
- "@helia/verified-fetch": "1.3.13",
60
+ "@helia/verified-fetch": "1.3.14",
61
61
  "aegir": "^42.2.5",
62
- "ipfsd-ctl": "^13.0.0",
63
- "it-drain": "^3.0.5",
62
+ "execa": "^8.0.1",
63
+ "fast-glob": "^3.3.2",
64
+ "ipfsd-ctl": "^14.1.0",
64
65
  "kubo": "^0.27.0",
65
- "kubo-rpc-client": "^3.0.4",
66
+ "kubo-rpc-client": "^4.1.1",
66
67
  "magic-bytes.js": "^1.10.0",
67
68
  "multiformats": "^13.1.0"
68
69
  },
package/src/bin.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  #! /usr/bin/env node
2
- /* eslint-disable no-console */
3
2
 
4
3
  import { spawn } from 'node:child_process'
5
4
  import { dirname, resolve } from 'node:path'
@@ -1,14 +1,15 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment,@typescript-eslint/prefer-ts-expect-error */
2
- import { createController, type Controller } from 'ipfsd-ctl'
1
+ import { createNode, type KuboNode } from 'ipfsd-ctl'
3
2
  import { path as kuboPath } from 'kubo'
4
- import * as kuboRpcClient from 'kubo-rpc-client'
3
+ import { create } from 'kubo-rpc-client'
5
4
 
6
- export async function createKuboNode (): Promise<Controller> {
7
- return createController({
8
- kuboRpcModule: kuboRpcClient,
9
- ipfsBin: kuboPath(),
5
+ export async function createKuboNode (repoPath = undefined): Promise<KuboNode> {
6
+ return createNode({
7
+ type: 'kubo',
8
+ rpc: create,
9
+ bin: kuboPath(),
10
10
  test: true,
11
- ipfsOptions: {
11
+ repo: repoPath,
12
+ init: {
12
13
  config: {
13
14
  Addresses: {
14
15
  Swarm: [
@@ -0,0 +1,25 @@
1
+ import { $ } from 'execa'
2
+ import fg from 'fast-glob'
3
+ import { path as kuboPath } from 'kubo'
4
+
5
+ /**
6
+ * Only callable from node (intended to be consumed by .aegir.js)
7
+ * but the fixtures loaded by this function are also used by browser tests.
8
+ */
9
+ export async function loadFixtures (IPFS_PATH = undefined): Promise<void> {
10
+ const kuboBinary = process.env.KUBO_BINARY ?? kuboPath()
11
+ /**
12
+ * fast-glob does not like windows paths, see https://github.com/mrmlnc/fast-glob/issues/237
13
+ * fast-glob performs search from process.cwd() by default, which will be:
14
+ * 1. the root of the monorepo when running tests in CI
15
+ * 2. the package root when running tests in the package directory
16
+ */
17
+ let globRoot = process.cwd().replace(/\\/g, '/')
18
+ if (!globRoot.includes('packages/interop')) {
19
+ // we only want car files from the interop package
20
+ globRoot = [...globRoot.split('/'), 'packages/interop'].join('/')
21
+ }
22
+ for (const carFile of await fg.glob('src/fixtures/data/*.car', { cwd: globRoot })) {
23
+ await $({ env: { IPFS_PATH } })`${kuboBinary} dag import --pin-roots=false --offline ${carFile}`
24
+ }
25
+ }
package/src/json.spec.ts CHANGED
@@ -2,31 +2,23 @@
2
2
  import { createVerifiedFetch } from '@helia/verified-fetch'
3
3
  import { expect } from 'aegir/chai'
4
4
  import { CID } from 'multiformats/cid'
5
- import { createKuboNode } from './fixtures/create-kubo.js'
6
- import { loadFixtureDataCar } from './fixtures/load-fixture-data.js'
7
- import type { Controller } from 'ipfsd-ctl'
8
5
 
9
6
  describe('@helia/verified-fetch - json', () => {
10
7
  describe('unixfs - multiblock', () => {
11
- let controller: Controller<'go'>
12
8
  let verifiedFetch: Awaited<ReturnType<typeof createVerifiedFetch>>
13
9
 
14
10
  before(async () => {
15
- controller = await createKuboNode()
16
- await controller.start()
17
11
  // As of 2024-01-18, https://cloudflare-ipfs.com/ipns/tokens.uniswap.org resolves to:
18
12
  // root: QmQJ8fxavY54CUsxMSx9aE9Rdcmvhx8awJK2jzJp4iAqCr
19
13
  // child1: QmNik5N4ryNwzzXYq5hCYKGcRjAf9QtigxtiJh9o8aXXbG // partial JSON
20
14
  // child2: QmWNBJX6fZyNTLWNYBHxAHpBctCP43R2zeqV2G8uavqFZn // partial JSON
21
- await loadFixtureDataCar(controller, 'QmQJ8fxavY54CUsxMSx9aE9Rdcmvhx8awJK2jzJp4iAqCr-tokens.uniswap.org-2024-01-18.car')
22
15
  verifiedFetch = await createVerifiedFetch({
23
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
24
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
16
+ gateways: ['http://127.0.0.1:8180'],
17
+ routers: []
25
18
  })
26
19
  })
27
20
 
28
21
  after(async () => {
29
- await controller.stop()
30
22
  await verifiedFetch.stop()
31
23
  })
32
24
 
@@ -2,35 +2,24 @@
2
2
  import { createVerifiedFetch } from '@helia/verified-fetch'
3
3
  import { expect } from 'aegir/chai'
4
4
  import { filetypemime } from 'magic-bytes.js'
5
- import { createKuboNode } from './fixtures/create-kubo.js'
6
- import { loadFixtureDataCar } from './fixtures/load-fixture-data.js'
7
5
  import type { VerifiedFetch } from '@helia/verified-fetch'
8
- import type { Controller } from 'ipfsd-ctl'
9
6
 
10
7
  describe('@helia/verified-fetch - unixfs directory', () => {
11
- let controller: Controller
12
8
  let verifiedFetch: VerifiedFetch
13
9
 
14
10
  before(async () => {
15
- controller = await createKuboNode()
16
- await controller.start()
17
-
18
11
  verifiedFetch = await createVerifiedFetch({
19
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
20
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
12
+ gateways: ['http://127.0.0.1:8180'],
13
+ routers: []
21
14
  })
15
+ verifiedFetch = await createVerifiedFetch()
22
16
  })
23
17
 
24
18
  after(async () => {
25
- await controller.stop()
26
19
  await verifiedFetch.stop()
27
20
  })
28
21
 
29
22
  describe('unixfs-dir-redirect', () => {
30
- before(async () => {
31
- await loadFixtureDataCar(controller, 'gateway-conformance-fixtures.car')
32
- });
33
-
34
23
  [
35
24
  'https://example.com/ipfs/bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q',
36
25
  'ipfs://bafybeifq2rzpqnqrsdupncmkmhs3ckxxjhuvdcbvydkgvch3ms24k5lo7q',
@@ -45,12 +34,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
45
34
  })
46
35
  })
47
36
 
37
+ // This tests the content of https://explore.ipld.io/#/explore/QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1%20-%20Barrel%20-%20Part%201
48
38
  describe('XKCD Barrel Part 1', () => {
49
- before(async () => {
50
- // This is the content of https://explore.ipld.io/#/explore/QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm/1%20-%20Barrel%20-%20Part%201
51
- await loadFixtureDataCar(controller, 'QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR-xkcd-Barrel-part-1.car')
52
- })
53
-
54
39
  it('fails to load when passed the root', async () => {
55
40
  // The spec says we should generate HTML with directory listings, but we don't do that yet, so expect a failure
56
41
  const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR')
@@ -78,8 +63,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
78
63
  before(async () => {
79
64
  await verifiedFetch.stop()
80
65
  verifiedFetch = await createVerifiedFetch({
81
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
82
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
66
+ gateways: ['http://127.0.0.1:8180'],
67
+ routers: []
83
68
  }, {
84
69
  contentTypeParser: (bytes) => {
85
70
  return filetypemime(bytes)?.[0]
@@ -94,12 +79,8 @@ describe('@helia/verified-fetch - unixfs directory', () => {
94
79
  })
95
80
  })
96
81
 
82
+ // from https://github.com/ipfs/gateway-conformance/blob/193833b91f2e9b17daf45c84afaeeae61d9d7c7e/fixtures/trustless_gateway_car/single-layer-hamt-with-multi-block-files.car
97
83
  describe('HAMT-sharded directory', () => {
98
- before(async () => {
99
- // from https://github.com/ipfs/gateway-conformance/blob/193833b91f2e9b17daf45c84afaeeae61d9d7c7e/fixtures/trustless_gateway_car/single-layer-hamt-with-multi-block-files.car
100
- await loadFixtureDataCar(controller, 'bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i-single-layer-hamt-with-multi-block-files.car')
101
- })
102
-
103
84
  it('loads path /ipfs/bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt', async () => {
104
85
  const resp = await verifiedFetch('ipfs://bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt')
105
86
  expect(resp).to.be.ok()
@@ -1,28 +1,20 @@
1
1
  /* eslint-env mocha */
2
2
  import { createVerifiedFetch } from '@helia/verified-fetch'
3
3
  import { expect } from 'aegir/chai'
4
- import { createKuboNode } from './fixtures/create-kubo.js'
5
- import { loadFixtureDataCar } from './fixtures/load-fixture-data.js'
6
- import type { Controller } from 'ipfsd-ctl'
7
4
 
8
5
  describe('@helia/verified-fetch - websites', () => {
9
6
  describe('helia-identify.on.fleek.co', () => {
10
- let controller: Controller<'go'>
11
7
  let verifiedFetch: Awaited<ReturnType<typeof createVerifiedFetch>>
12
8
 
13
9
  before(async () => {
14
- controller = await createKuboNode()
15
- await controller.start()
16
10
  // 2024-01-22 CID for _dnslink.helia-identify.on.fleek.co
17
- await loadFixtureDataCar(controller, 'QmbxpRxwKXxnJQjnPqm1kzDJSJ8YgkLxH23mcZURwPHjGv-helia-identify-website.car')
18
11
  verifiedFetch = await createVerifiedFetch({
19
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
20
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
12
+ gateways: ['http://127.0.0.1:8180'],
13
+ routers: []
21
14
  })
22
15
  })
23
16
 
24
17
  after(async () => {
25
- await controller.stop()
26
18
  await verifiedFetch.stop()
27
19
  })
28
20
 
@@ -55,21 +47,16 @@ describe('@helia/verified-fetch - websites', () => {
55
47
  * ```
56
48
  */
57
49
  describe('fake blog.libp2p.io', () => {
58
- let controller: Controller<'go'>
59
50
  let verifiedFetch: Awaited<ReturnType<typeof createVerifiedFetch>>
60
51
 
61
52
  before(async () => {
62
- controller = await createKuboNode()
63
- await controller.start()
64
- await loadFixtureDataCar(controller, 'QmeiDMLtPUS3RT2xAcUwsNyZz169wPke2q7im9vZpVLSYw-fake-blog.libp2p.io.car')
65
53
  verifiedFetch = await createVerifiedFetch({
66
- gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
67
- routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
54
+ gateways: ['http://127.0.0.1:8180'],
55
+ routers: []
68
56
  })
69
57
  })
70
58
 
71
59
  after(async () => {
72
- await controller.stop()
73
60
  await verifiedFetch.stop()
74
61
  })
75
62
 
@@ -1,3 +0,0 @@
1
- import { type Controller } from 'ipfsd-ctl';
2
- export declare function createKuboNode(): Promise<Controller>;
3
- //# sourceMappingURL=create-kubo.browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-kubo.browser.d.ts","sourceRoot":"","sources":["../../../src/fixtures/create-kubo.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,WAAW,CAAA;AAG7D,wBAAsB,cAAc,IAAK,OAAO,CAAC,UAAU,CAAC,CA0B3D"}
@@ -1,30 +0,0 @@
1
- import { createController } from 'ipfsd-ctl';
2
- import * as kuboRpcClient from 'kubo-rpc-client';
3
- export async function createKuboNode() {
4
- return createController({
5
- kuboRpcModule: kuboRpcClient,
6
- test: true,
7
- endpoint: process.env.IPFSD_SERVER,
8
- ipfsOptions: {
9
- config: {
10
- Addresses: {
11
- Swarm: [
12
- '/ip4/0.0.0.0/tcp/0',
13
- '/ip4/0.0.0.0/tcp/0/ws'
14
- ],
15
- Gateway: '/ip4/127.0.0.1/tcp/8180'
16
- },
17
- Gateway: {
18
- NoFetch: true,
19
- ExposeRoutingAPI: true,
20
- HTTPHeaders: {
21
- 'Access-Control-Allow-Origin': ['*'],
22
- 'Access-Control-Allow-Methods': ['GET', 'POST', 'PUT', 'OPTIONS']
23
- }
24
- }
25
- }
26
- },
27
- args: ['--enable-pubsub-experiment', '--enable-namesys-pubsub']
28
- });
29
- }
30
- //# sourceMappingURL=create-kubo.browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-kubo.browser.js","sourceRoot":"","sources":["../../../src/fixtures/create-kubo.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC7D,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,gBAAgB,CAAC;QACtB,aAAa,EAAE,aAAa;QAC5B,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QAClC,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,oBAAoB;wBACpB,uBAAuB;qBACxB;oBACD,OAAO,EAAE,yBAAyB;iBACnC;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,IAAI;oBACb,gBAAgB,EAAE,IAAI;oBACtB,WAAW,EAAE;wBACX,6BAA6B,EAAE,CAAC,GAAG,CAAC;wBACpC,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;qBAClE;iBACF;aACF;SACF;QACD,IAAI,EAAE,CAAC,4BAA4B,EAAE,yBAAyB,CAAC;KAChE,CAAC,CAAA;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Controller } from 'ipfsd-ctl';
2
- export declare function loadFixtureDataCar(controller: Controller, path: string): Promise<void>;
3
- //# sourceMappingURL=load-fixture-data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-fixture-data.d.ts","sourceRoot":"","sources":["../../../src/fixtures/load-fixture-data.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,wBAAsB,kBAAkB,CAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7F"}
@@ -1,8 +0,0 @@
1
- import loadFixture from 'aegir/fixtures';
2
- import drain from 'it-drain';
3
- export async function loadFixtureDataCar(controller, path) {
4
- const fixtureData = `src/fixtures/data/${path}`;
5
- const buf = loadFixture(fixtureData);
6
- await drain(controller.api.dag.import([buf]));
7
- }
8
- //# sourceMappingURL=load-fixture-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-fixture-data.js","sourceRoot":"","sources":["../../../src/fixtures/load-fixture-data.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,MAAM,UAAU,CAAA;AAG5B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAE,UAAsB,EAAE,IAAY;IAC5E,MAAM,WAAW,GAAG,qBAAqB,IAAI,EAAE,CAAA;IAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IACpC,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAC"}
@@ -1,30 +0,0 @@
1
- import { type Controller, createController } from 'ipfsd-ctl'
2
- import * as kuboRpcClient from 'kubo-rpc-client'
3
-
4
- export async function createKuboNode (): Promise<Controller> {
5
- return createController({
6
- kuboRpcModule: kuboRpcClient,
7
- test: true,
8
- endpoint: process.env.IPFSD_SERVER,
9
- ipfsOptions: {
10
- config: {
11
- Addresses: {
12
- Swarm: [
13
- '/ip4/0.0.0.0/tcp/0',
14
- '/ip4/0.0.0.0/tcp/0/ws'
15
- ],
16
- Gateway: '/ip4/127.0.0.1/tcp/8180'
17
- },
18
- Gateway: {
19
- NoFetch: true,
20
- ExposeRoutingAPI: true,
21
- HTTPHeaders: {
22
- 'Access-Control-Allow-Origin': ['*'],
23
- 'Access-Control-Allow-Methods': ['GET', 'POST', 'PUT', 'OPTIONS']
24
- }
25
- }
26
- }
27
- },
28
- args: ['--enable-pubsub-experiment', '--enable-namesys-pubsub']
29
- })
30
- }
@@ -1,9 +0,0 @@
1
- import loadFixture from 'aegir/fixtures'
2
- import drain from 'it-drain'
3
- import type { Controller } from 'ipfsd-ctl'
4
-
5
- export async function loadFixtureDataCar (controller: Controller, path: string): Promise<void> {
6
- const fixtureData = `src/fixtures/data/${path}`
7
- const buf = loadFixture(fixtureData)
8
- await drain(controller.api.dag.import([buf]))
9
- }