From b39886be78a1536afbca27e6beab52bd2d7d86cd Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Mon, 16 May 2022 11:37:50 +0100 Subject: [PATCH] feat: support dag-json (#319) --- package-lock.json | 44 ++++++++++++++++++++++++++++++++++++++++++ package.json | 2 ++ src/bundles/explore.js | 6 ++++++ 3 files changed, 52 insertions(+) diff --git a/package-lock.json b/package-lock.json index 854ba308..44a51b6d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,10 @@ "dependencies": { "@babel/cli": "^7.13.14", "@ipld/car": "^4.1.0", + "@ipld/dag-json": "^8.0.9", "@loadable/component": "^5.14.1", "@tableflip/react-inspector": "^2.3.0", + "blockcodec-to-ipld-format": "^2.0.0", "cytoscape": "^3.18.1", "cytoscape-dagre": "^2.3.2", "filesize": "^6.1.0", @@ -5106,6 +5108,15 @@ "multiformats": "^9.5.4" } }, + "node_modules/@ipld/dag-json": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.9.tgz", + "integrity": "sha512-NNKHmgHxc2zOEaB8qOUpAb2UK1vcEE/rBeh018Da/RzXE7N8GwiTJLRZ3Fe/G4fsiis67G0sagRz/YNQcANRsQ==", + "dependencies": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -12805,6 +12816,18 @@ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" }, + "node_modules/blockcodec-to-ipld-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/blockcodec-to-ipld-format/-/blockcodec-to-ipld-format-2.0.0.tgz", + "integrity": "sha512-SmgltjEW9LEG7dBR7uCK86UqCsboQq62RjVCLfgREEN09n6pn0agNMOLQ7BiGuQs2hyA8GRTFpEEcSuTtYl9xg==", + "dependencies": { + "cids": "^1.1.6", + "interface-ipld-format": "^1.0.0", + "multiformats": "^9.4.3", + "multihashes": "^4.0.2", + "multihashing-async": "^2.1.2" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -47214,6 +47237,15 @@ "multiformats": "^9.5.4" } }, + "@ipld/dag-json": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.9.tgz", + "integrity": "sha512-NNKHmgHxc2zOEaB8qOUpAb2UK1vcEE/rBeh018Da/RzXE7N8GwiTJLRZ3Fe/G4fsiis67G0sagRz/YNQcANRsQ==", + "requires": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -53339,6 +53371,18 @@ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" }, + "blockcodec-to-ipld-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/blockcodec-to-ipld-format/-/blockcodec-to-ipld-format-2.0.0.tgz", + "integrity": "sha512-SmgltjEW9LEG7dBR7uCK86UqCsboQq62RjVCLfgREEN09n6pn0agNMOLQ7BiGuQs2hyA8GRTFpEEcSuTtYl9xg==", + "requires": { + "cids": "^1.1.6", + "interface-ipld-format": "^1.0.0", + "multiformats": "^9.4.3", + "multihashes": "^4.0.2", + "multihashing-async": "^2.1.2" + } + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", diff --git a/package.json b/package.json index 7ac2d3fb..ef68839b 100644 --- a/package.json +++ b/package.json @@ -116,8 +116,10 @@ "dependencies": { "@babel/cli": "^7.13.14", "@ipld/car": "^4.1.0", + "@ipld/dag-json": "^8.0.9", "@loadable/component": "^5.14.1", "@tableflip/react-inspector": "^2.3.0", + "blockcodec-to-ipld-format": "^2.0.0", "cytoscape": "^3.18.1", "cytoscape-dagre": "^2.3.2", "filesize": "^6.1.0", diff --git a/src/bundles/explore.js b/src/bundles/explore.js index bc81ad5c..83ca15e0 100644 --- a/src/bundles/explore.js +++ b/src/bundles/explore.js @@ -3,6 +3,7 @@ import resolveIpldPath from '../lib/resolve-ipld-path' import parseIpldPath from '../lib/parse-ipld-path' import { CID } from 'multiformats/cid' import Cid from 'cids' +import { convert } from 'blockcodec-to-ipld-format' // Find all the nodes and path boundaries traversed along a given path const makeBundle = () => { @@ -194,6 +195,11 @@ async function getIpld () { // ipldEthereum is an Object, each key points to a ipld format impl const ipldEthereum = formats.pop() formats.push(...Object.values(ipldEthereum)) + + // ipldJson uses the new format, use the conversion tool + const ipldJson = await import(/* webpackChunkName: "ipld" */ '@ipld/dag-json') + formats.push(convert(ipldJson)) + return { ipld, formats } }