diff --git a/package-lock.json b/package-lock.json
index fe1c6bd8..bdcccc57 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,7 +24,7 @@
         "markdown-toc": "^1.2.0",
         "meta-marked": "^0.5.0",
         "moment": "^2.24.0",
-        "monaco-editor": "^0.20.0",
+        "monaco-editor": "^0.36.1",
         "monaco-editor-vue": "^1.0.10",
         "monaco-editor-webpack-plugin": "^1.9.0",
         "new-github-issue-url": "^0.2.1",
@@ -16670,56 +16670,90 @@
       "license": "MIT"
     },
     "node_modules/ipfs-http-client": {
-      "version": "47.0.1",
-      "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-47.0.1.tgz",
-      "integrity": "sha512-IAQf+uTLvXw5QFOzbyhu/5lH3rn7jEwwwdCGaNKVhoPI7yfyOV0wRse3hVWejjP1Id0P9mKuMKG8rhcY7pVAdQ==",
-      "license": "(Apache-2.0 OR MIT)",
+      "version": "46.1.2",
+      "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-46.1.2.tgz",
+      "integrity": "sha512-/cAavPHrJ8UqFVlYNWGEyGCU+yNrhDIdOHkB5VdUscCuw+sNCYaPROdSSJTpU83GlPA3IgOj13JGl/1N+xjCIA==",
+      "peer": true,
       "dependencies": {
         "abort-controller": "^3.0.0",
         "any-signal": "^1.1.0",
         "bignumber.js": "^9.0.0",
-        "cids": "^1.0.0",
+        "buffer": "^5.6.0",
+        "cids": "^0.8.3",
         "debug": "^4.1.0",
         "form-data": "^3.0.0",
-        "ipfs-core-utils": "^0.4.0",
+        "ipfs-core-utils": "^0.3.2",
         "ipfs-utils": "^3.0.0",
-        "ipld-block": "^0.10.0",
-        "ipld-dag-cbor": "^0.17.0",
-        "ipld-dag-pb": "^0.20.0",
-        "ipld-raw": "^6.0.0",
+        "ipld-block": "^0.9.2",
+        "ipld-dag-cbor": "^0.16.0",
+        "ipld-dag-pb": "^0.19.0",
+        "ipld-raw": "^5.0.0",
         "iso-url": "^0.4.7",
-        "it-last": "^1.0.2",
-        "it-map": "^1.0.2",
+        "it-last": "^1.0.1",
         "it-tar": "^1.2.2",
         "it-to-buffer": "^1.0.0",
         "it-to-stream": "^0.1.1",
         "merge-options": "^2.0.0",
-        "multiaddr": "^8.0.0",
-        "multiaddr-to-uri": "^6.0.0",
-        "multibase": "^3.0.0",
-        "multicodec": "^2.0.0",
-        "multihashes": "^3.0.1",
+        "multiaddr": "^7.4.3",
+        "multiaddr-to-uri": "^5.1.0",
+        "multibase": "^1.0.1",
+        "multicodec": "^1.0.0",
+        "multihashes": "^1.0.1",
         "nanoid": "^3.0.2",
         "node-fetch": "^2.6.0",
         "parse-duration": "^0.4.4",
-        "stream-to-it": "^0.2.1",
-        "uint8arrays": "^1.1.0"
+        "stream-to-it": "^0.2.1"
       },
       "engines": {
         "node": ">=10.3.0",
         "npm": ">=3.0.0"
       }
     },
+    "node_modules/ipfs-http-client/node_modules/blob-to-it": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-0.0.1.tgz",
+      "integrity": "sha512-gvOVIs0YUpKHAwvhoJcRs81LJrOb+kwOol0/NnF/JgD0a5i9SJ/Es/njJo3NgFzb+x/FDPh4cD4D1KnrBeUWuw==",
+      "peer": true,
+      "dependencies": {
+        "browser-readablestream-to-it": "^0.0.1"
+      }
+    },
+    "node_modules/ipfs-http-client/node_modules/browser-readablestream-to-it": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-0.0.1.tgz",
+      "integrity": "sha512-leRiI4bLRr7K8znNmQZ3frgL8A7aX4LI4g7444YEtT3alaxqem+XPGsJmOlFRRdRqjFpvf2wW4dXKcgBLxypVg==",
+      "peer": true
+    },
+    "node_modules/ipfs-http-client/node_modules/cids": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz",
+      "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.6.0",
+        "class-is": "^1.1.0",
+        "multibase": "^1.0.0",
+        "multicodec": "^1.0.1",
+        "multihashes": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=4.0.0",
+        "npm": ">=3.0.0"
+      }
+    },
     "node_modules/ipfs-http-client/node_modules/err-code": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
-      "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="
+      "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+      "peer": true
     },
     "node_modules/ipfs-http-client/node_modules/form-data": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
       "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
       "license": "MIT",
+      "peer": true,
       "dependencies": {
         "asynckit": "^0.4.0",
         "combined-stream": "^1.0.8",
@@ -16734,6 +16768,7 @@
       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
       "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
       "license": "MIT",
+      "peer": true,
       "dependencies": {
         "at-least-node": "^1.0.0",
         "graceful-fs": "^4.2.0",
@@ -16744,11 +16779,29 @@
         "node": ">=10"
       }
     },
+    "node_modules/ipfs-http-client/node_modules/ipfs-core-utils": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.3.2.tgz",
+      "integrity": "sha512-4kn6qbhYsyn48HeH7qAKPG07CxwEr1EsgRccGQOUy/5OjcfqIjw4HnBwYmsRU6QuWsNR7nOAhwrVc6Y3glVvnQ==",
+      "peer": true,
+      "dependencies": {
+        "blob-to-it": "0.0.1",
+        "browser-readablestream-to-it": "0.0.1",
+        "buffer": "^5.6.0",
+        "cids": "^0.8.3",
+        "err-code": "^2.0.0",
+        "ipfs-utils": "^3.0.0",
+        "it-all": "^1.0.1",
+        "it-map": "^1.0.0",
+        "it-peekable": "0.0.1"
+      }
+    },
     "node_modules/ipfs-http-client/node_modules/ipfs-utils": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-3.0.0.tgz",
       "integrity": "sha512-qahDc+fghrM57sbySr2TeWjaVR/RH/YEB/hvdAjiTbjESeD87qZawrXwj+19Q2LtGmFGusKNLo5wExeuI5ZfDQ==",
       "license": "MIT",
+      "peer": true,
       "dependencies": {
         "abort-controller": "^3.0.0",
         "any-signal": "^1.1.0",
@@ -16764,11 +16817,97 @@
         "stream-to-it": "^0.2.0"
       }
     },
+    "node_modules/ipfs-http-client/node_modules/ipld-block": {
+      "version": "0.9.2",
+      "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.9.2.tgz",
+      "integrity": "sha512-/i99foB+QI8WhyZWu6ZVPFw2sP6kzZSnnjPNlxxrgaJeFX22w2z00nYWafY2YYYP4mZ9xkLZDSS/msli7XXyvw==",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.5.0",
+        "cids": "~0.8.0",
+        "class-is": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=6.0.0",
+        "npm": ">=3.0.0"
+      }
+    },
+    "node_modules/ipfs-http-client/node_modules/ipld-dag-cbor": {
+      "version": "0.16.0",
+      "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.16.0.tgz",
+      "integrity": "sha512-dnmR8Pgt1gGmEXWSf/V3dKDPveGnHsovvAAN7m/WHW5mXsBqYYOStt98K1RhCifbB7vY+IHmpdRhVka0g9DWFQ==",
+      "deprecated": "This module has been superseded by @ipld/dag-cbor and multiformats",
+      "peer": true,
+      "dependencies": {
+        "borc": "^2.1.2",
+        "buffer": "^5.6.0",
+        "cids": "~0.8.3",
+        "is-circular": "^1.0.2",
+        "multicodec": "^1.0.3",
+        "multihashing-async": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=6.0.0",
+        "npm": ">=3.0.0"
+      }
+    },
+    "node_modules/ipfs-http-client/node_modules/ipld-dag-pb": {
+      "version": "0.19.0",
+      "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.19.0.tgz",
+      "integrity": "sha512-qwuJM2Ev74HLKxgfmH7Qw/ob/Iwo4Te6ADZas8OqV2FCY+I4H+KJujLvaBs+By2g3h0aagv0ei3aUgqE8XzDfw==",
+      "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.6.0",
+        "cids": "~0.8.3",
+        "class-is": "^1.1.0",
+        "multicodec": "^1.0.3",
+        "multihashing-async": "^1.0.0",
+        "protons": "^1.2.1",
+        "stable": "^0.1.8"
+      },
+      "engines": {
+        "node": ">=6.0.0",
+        "npm": ">=3.0.0"
+      }
+    },
+    "node_modules/ipfs-http-client/node_modules/ipld-raw": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-5.0.0.tgz",
+      "integrity": "sha512-z1Fie224lTtQZbFg+wC5WDY692G3SIpO8vT86yCU83vqpIvasVuV3SzDSv7G36kRxP03PPZOkvKAOFrcjb7gpw==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "cids": "~0.8.0",
+        "multicodec": "^1.0.1",
+        "multihashing-async": "~0.8.1"
+      }
+    },
+    "node_modules/ipfs-http-client/node_modules/ipld-raw/node_modules/multihashing-async": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.8.2.tgz",
+      "integrity": "sha512-2lKa1autuCy8x7KIEj9aVNbAb3aIMRFYIwN7mq/zD4pxgNIVgGlm+f6GKY4880EOF2Y3GktHYssRy7TAJQ2DyQ==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "blakejs": "^1.1.0",
+        "buffer": "^5.4.3",
+        "err-code": "^2.0.0",
+        "js-sha3": "^0.8.0",
+        "multihashes": "^1.0.1",
+        "murmurhash3js-revisited": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=10.0.0",
+        "npm": ">=6.0.0"
+      }
+    },
     "node_modules/ipfs-http-client/node_modules/is-plain-obj": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
       "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
       "license": "MIT",
+      "peer": true,
       "engines": {
         "node": ">=8"
       }
@@ -16778,6 +16917,7 @@
       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
       "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
       "license": "MIT",
+      "peer": true,
       "dependencies": {
         "universalify": "^2.0.0"
       },
@@ -16790,6 +16930,7 @@
       "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz",
       "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==",
       "license": "MIT",
+      "peer": true,
       "dependencies": {
         "is-plain-obj": "^2.0.0"
       },
@@ -16797,65 +16938,111 @@
         "node": ">=8"
       }
     },
-    "node_modules/ipfs-http-client/node_modules/multiaddr-to-uri": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz",
-      "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==",
-      "license": "MIT",
+    "node_modules/ipfs-http-client/node_modules/multiaddr": {
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz",
+      "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==",
+      "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr",
+      "peer": true,
       "dependencies": {
-        "multiaddr": "^8.0.0"
+        "buffer": "^5.5.0",
+        "cids": "~0.8.0",
+        "class-is": "^1.1.0",
+        "is-ip": "^3.1.0",
+        "multibase": "^0.7.0",
+        "varint": "^5.0.0"
       }
     },
-    "node_modules/ipfs-http-client/node_modules/multihashes": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz",
-      "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==",
-      "license": "MIT",
+    "node_modules/ipfs-http-client/node_modules/multiaddr/node_modules/multibase": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+      "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
       "dependencies": {
-        "multibase": "^3.1.0",
-        "uint8arrays": "^2.0.5",
-        "varint": "^6.0.0"
+        "base-x": "^3.0.8",
+        "buffer": "^5.5.0"
+      }
+    },
+    "node_modules/ipfs-http-client/node_modules/multibase": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz",
+      "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "base-x": "^3.0.8",
+        "buffer": "^5.5.0"
       },
       "engines": {
         "node": ">=10.0.0",
         "npm": ">=6.0.0"
       }
     },
-    "node_modules/ipfs-http-client/node_modules/multihashes/node_modules/uint8arrays": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.3.tgz",
-      "integrity": "sha512-2h2Z2OIqzrhHmZTv9ViJVyZZreFkHRHeihh7SxLVY/nLUVJhU4ey/u74tWsgMR6hhMSO2g5rhKmdLQIg3lKiUQ==",
-      "license": "MIT",
+    "node_modules/ipfs-http-client/node_modules/multicodec": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+      "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
       "dependencies": {
-        "multibase": "^4.0.1",
-        "web-encoding": "^1.1.0"
+        "buffer": "^5.6.0",
+        "varint": "^5.0.0"
       }
     },
-    "node_modules/ipfs-http-client/node_modules/multihashes/node_modules/uint8arrays/node_modules/multibase": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.2.tgz",
-      "integrity": "sha512-l0XMK4O5I9cCfxC0/UMDX/UxlIlrqkjEZQNG+ZUUrsGhnXWgFXgatYOQSONiR/lQGfBO463UyZkh3SiQBpjRIQ==",
-      "license": "MIT",
+    "node_modules/ipfs-http-client/node_modules/multihashes": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz",
+      "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==",
+      "peer": true,
       "dependencies": {
-        "@multiformats/base-x": "^4.0.1",
-        "web-encoding": "^1.1.0"
+        "buffer": "^5.6.0",
+        "multibase": "^1.0.1",
+        "varint": "^5.0.0"
       },
       "engines": {
-        "node": ">=12.0.0",
+        "node": ">=10.0.0",
         "npm": ">=6.0.0"
       }
     },
-    "node_modules/ipfs-http-client/node_modules/multihashes/node_modules/varint": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
-      "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
-      "license": "MIT"
+    "node_modules/ipfs-http-client/node_modules/multihashing-async": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-1.0.0.tgz",
+      "integrity": "sha512-gRtHjJuULvo2dd9ybIsF+aUEamraAwet/ib3YapWdaP7QWkI8JtN/6EZBhdoqlzSVU7POrC3/rp13Or7zY7x1A==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "blakejs": "^1.1.0",
+        "buffer": "^5.4.3",
+        "err-code": "^2.0.0",
+        "js-sha3": "^0.8.0",
+        "multihashes": "^1.0.1",
+        "murmurhash3js-revisited": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=10.0.0",
+        "npm": ">=6.0.0"
+      }
+    },
+    "node_modules/ipfs-http-client/node_modules/protons": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/protons/-/protons-1.2.1.tgz",
+      "integrity": "sha512-2oqDyc/SN+tNcJf8XxrXhYL7sQn2/OMl8mSdD7NVGsWjMEmAbks4eDVnCyf0vAoRbBWyWTEXWk4D8XfuKVl3zg==",
+      "deprecated": "This module is no longer maintained",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.5.0",
+        "protocol-buffers-schema": "^3.3.1",
+        "signed-varint": "^2.0.1",
+        "varint": "^5.0.0"
+      }
     },
     "node_modules/ipfs-http-client/node_modules/universalify": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
       "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
       "license": "MIT",
+      "peer": true,
       "engines": {
         "node": ">= 10.0.0"
       }
@@ -18193,6 +18380,19 @@
         "url": "https://github.com/sindresorhus/execa?sponsor=1"
       }
     },
+    "node_modules/ipfs/node_modules/form-data": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+      "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+      "dependencies": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "mime-types": "^2.1.12"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/ipfs/node_modules/fs-extra": {
       "version": "9.1.0",
       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -18243,6 +18443,46 @@
       ],
       "license": "BSD-3-Clause"
     },
+    "node_modules/ipfs/node_modules/ipfs-http-client": {
+      "version": "47.0.1",
+      "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-47.0.1.tgz",
+      "integrity": "sha512-IAQf+uTLvXw5QFOzbyhu/5lH3rn7jEwwwdCGaNKVhoPI7yfyOV0wRse3hVWejjP1Id0P9mKuMKG8rhcY7pVAdQ==",
+      "dependencies": {
+        "abort-controller": "^3.0.0",
+        "any-signal": "^1.1.0",
+        "bignumber.js": "^9.0.0",
+        "cids": "^1.0.0",
+        "debug": "^4.1.0",
+        "form-data": "^3.0.0",
+        "ipfs-core-utils": "^0.4.0",
+        "ipfs-utils": "^3.0.0",
+        "ipld-block": "^0.10.0",
+        "ipld-dag-cbor": "^0.17.0",
+        "ipld-dag-pb": "^0.20.0",
+        "ipld-raw": "^6.0.0",
+        "iso-url": "^0.4.7",
+        "it-last": "^1.0.2",
+        "it-map": "^1.0.2",
+        "it-tar": "^1.2.2",
+        "it-to-buffer": "^1.0.0",
+        "it-to-stream": "^0.1.1",
+        "merge-options": "^2.0.0",
+        "multiaddr": "^8.0.0",
+        "multiaddr-to-uri": "^6.0.0",
+        "multibase": "^3.0.0",
+        "multicodec": "^2.0.0",
+        "multihashes": "^3.0.1",
+        "nanoid": "^3.0.2",
+        "node-fetch": "^2.6.0",
+        "parse-duration": "^0.4.4",
+        "stream-to-it": "^0.2.1",
+        "uint8arrays": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=10.3.0",
+        "npm": ">=3.0.0"
+      }
+    },
     "node_modules/ipfs/node_modules/ipfs-utils": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-3.0.0.tgz",
@@ -18656,6 +18896,33 @@
         "multiaddr": "^8.0.0"
       }
     },
+    "node_modules/ipfs/node_modules/multihashes": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz",
+      "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==",
+      "dependencies": {
+        "multibase": "^3.1.0",
+        "uint8arrays": "^2.0.5",
+        "varint": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10.0.0",
+        "npm": ">=6.0.0"
+      }
+    },
+    "node_modules/ipfs/node_modules/multihashes/node_modules/uint8arrays": {
+      "version": "2.1.10",
+      "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz",
+      "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==",
+      "dependencies": {
+        "multiformats": "^9.4.2"
+      }
+    },
+    "node_modules/ipfs/node_modules/multihashes/node_modules/varint": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+      "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
+    },
     "node_modules/ipfs/node_modules/native-abort-controller": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz",
@@ -19365,6 +19632,11 @@
         "nanoid": "^3.0.2"
       }
     },
+    "node_modules/ipns/node_modules/interface-datastore/node_modules/err-code": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+      "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
+    },
     "node_modules/ipns/node_modules/ipfs-utils": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.1.tgz",
@@ -24167,6 +24439,11 @@
         "nanoid": "^3.0.2"
       }
     },
+    "node_modules/libp2p-kad-dht/node_modules/interface-datastore/node_modules/err-code": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+      "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
+    },
     "node_modules/libp2p-kad-dht/node_modules/ipfs-utils": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.1.tgz",
@@ -26789,10 +27066,9 @@
       }
     },
     "node_modules/monaco-editor": {
-      "version": "0.20.0",
-      "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.20.0.tgz",
-      "integrity": "sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ==",
-      "license": "MIT"
+      "version": "0.36.1",
+      "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.36.1.tgz",
+      "integrity": "sha512-/CaclMHKQ3A6rnzBzOADfwdSJ25BFoFT0Emxsc4zYVyav5SkK9iA6lEtIeuN/oRYbwPgviJT+t3l+sjFa28jYg=="
     },
     "node_modules/monaco-editor-vue": {
       "version": "1.0.10",
@@ -26953,6 +27229,116 @@
         "varint": "^5.0.0"
       }
     },
+    "node_modules/multiaddr-to-uri": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-5.1.0.tgz",
+      "integrity": "sha512-rIlMLkw3yk3RJmf2hxYYzeqPXz4Vx7C4M/hg7BVWhmksDW0rDVNMEyoVb0H1A+sh3deHOh5EAFK87XcW+mFimA==",
+      "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr-to-uri",
+      "peer": true,
+      "dependencies": {
+        "multiaddr": "^7.2.1"
+      }
+    },
+    "node_modules/multiaddr-to-uri/node_modules/cids": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz",
+      "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.6.0",
+        "class-is": "^1.1.0",
+        "multibase": "^1.0.0",
+        "multicodec": "^1.0.1",
+        "multihashes": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=4.0.0",
+        "npm": ">=3.0.0"
+      }
+    },
+    "node_modules/multiaddr-to-uri/node_modules/cids/node_modules/multibase": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz",
+      "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "base-x": "^3.0.8",
+        "buffer": "^5.5.0"
+      },
+      "engines": {
+        "node": ">=10.0.0",
+        "npm": ">=6.0.0"
+      }
+    },
+    "node_modules/multiaddr-to-uri/node_modules/multiaddr": {
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz",
+      "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==",
+      "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.5.0",
+        "cids": "~0.8.0",
+        "class-is": "^1.1.0",
+        "is-ip": "^3.1.0",
+        "multibase": "^0.7.0",
+        "varint": "^5.0.0"
+      }
+    },
+    "node_modules/multiaddr-to-uri/node_modules/multibase": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+      "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "base-x": "^3.0.8",
+        "buffer": "^5.5.0"
+      }
+    },
+    "node_modules/multiaddr-to-uri/node_modules/multicodec": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+      "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.6.0",
+        "varint": "^5.0.0"
+      }
+    },
+    "node_modules/multiaddr-to-uri/node_modules/multihashes": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz",
+      "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==",
+      "peer": true,
+      "dependencies": {
+        "buffer": "^5.6.0",
+        "multibase": "^1.0.1",
+        "varint": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10.0.0",
+        "npm": ">=6.0.0"
+      }
+    },
+    "node_modules/multiaddr-to-uri/node_modules/multihashes/node_modules/multibase": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz",
+      "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==",
+      "deprecated": "This module has been superseded by the multiformats module",
+      "peer": true,
+      "dependencies": {
+        "base-x": "^3.0.8",
+        "buffer": "^5.5.0"
+      },
+      "engines": {
+        "node": ">=10.0.0",
+        "npm": ">=6.0.0"
+      }
+    },
     "node_modules/multiaddr/node_modules/err-code": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
@@ -27006,6 +27392,11 @@
       "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
       "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
     },
+    "node_modules/multiformats": {
+      "version": "9.9.0",
+      "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
+      "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
+    },
     "node_modules/multihashes": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
@@ -51686,6 +52077,16 @@
             "strip-final-newline": "^2.0.0"
           }
         },
+        "form-data": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+          "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+          "requires": {
+            "asynckit": "^0.4.0",
+            "combined-stream": "^1.0.8",
+            "mime-types": "^2.1.12"
+          }
+        },
         "fs-extra": {
           "version": "9.1.0",
           "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -51710,6 +52111,42 @@
           "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
           "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
         },
+        "ipfs-http-client": {
+          "version": "47.0.1",
+          "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-47.0.1.tgz",
+          "integrity": "sha512-IAQf+uTLvXw5QFOzbyhu/5lH3rn7jEwwwdCGaNKVhoPI7yfyOV0wRse3hVWejjP1Id0P9mKuMKG8rhcY7pVAdQ==",
+          "requires": {
+            "abort-controller": "^3.0.0",
+            "any-signal": "^1.1.0",
+            "bignumber.js": "^9.0.0",
+            "cids": "^1.0.0",
+            "debug": "^4.1.0",
+            "form-data": "^3.0.0",
+            "ipfs-core-utils": "^0.4.0",
+            "ipfs-utils": "^3.0.0",
+            "ipld-block": "^0.10.0",
+            "ipld-dag-cbor": "^0.17.0",
+            "ipld-dag-pb": "^0.20.0",
+            "ipld-raw": "^6.0.0",
+            "iso-url": "^0.4.7",
+            "it-last": "^1.0.2",
+            "it-map": "^1.0.2",
+            "it-tar": "^1.2.2",
+            "it-to-buffer": "^1.0.0",
+            "it-to-stream": "^0.1.1",
+            "merge-options": "^2.0.0",
+            "multiaddr": "^8.0.0",
+            "multiaddr-to-uri": "^6.0.0",
+            "multibase": "^3.0.0",
+            "multicodec": "^2.0.0",
+            "multihashes": "^3.0.1",
+            "nanoid": "^3.0.2",
+            "node-fetch": "^2.6.0",
+            "parse-duration": "^0.4.4",
+            "stream-to-it": "^0.2.1",
+            "uint8arrays": "^1.1.0"
+          }
+        },
         "ipfs-utils": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-3.0.0.tgz",
@@ -52021,6 +52458,31 @@
             "multiaddr": "^8.0.0"
           }
         },
+        "multihashes": {
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz",
+          "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==",
+          "requires": {
+            "multibase": "^3.1.0",
+            "uint8arrays": "^2.0.5",
+            "varint": "^6.0.0"
+          },
+          "dependencies": {
+            "uint8arrays": {
+              "version": "2.1.10",
+              "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz",
+              "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==",
+              "requires": {
+                "multiformats": "^9.4.2"
+              }
+            },
+            "varint": {
+              "version": "6.0.0",
+              "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+              "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
+            }
+          }
+        },
         "native-abort-controller": {
           "version": "1.0.3",
           "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz",
@@ -52215,50 +52677,80 @@
       "integrity": "sha512-3VEXi2XIT31FxKCyT0Qy68JiP1kVqeAOkXQz6mpggVpFgoUiiZt5YJy9jEb+RswTTh7sfszfk1iE8RJMAmfItw=="
     },
     "ipfs-http-client": {
-      "version": "47.0.1",
-      "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-47.0.1.tgz",
-      "integrity": "sha512-IAQf+uTLvXw5QFOzbyhu/5lH3rn7jEwwwdCGaNKVhoPI7yfyOV0wRse3hVWejjP1Id0P9mKuMKG8rhcY7pVAdQ==",
+      "version": "46.1.2",
+      "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-46.1.2.tgz",
+      "integrity": "sha512-/cAavPHrJ8UqFVlYNWGEyGCU+yNrhDIdOHkB5VdUscCuw+sNCYaPROdSSJTpU83GlPA3IgOj13JGl/1N+xjCIA==",
+      "peer": true,
       "requires": {
         "abort-controller": "^3.0.0",
         "any-signal": "^1.1.0",
         "bignumber.js": "^9.0.0",
-        "cids": "^1.0.0",
+        "buffer": "^5.6.0",
+        "cids": "^0.8.3",
         "debug": "^4.1.0",
         "form-data": "^3.0.0",
-        "ipfs-core-utils": "^0.4.0",
+        "ipfs-core-utils": "^0.3.2",
         "ipfs-utils": "^3.0.0",
-        "ipld-block": "^0.10.0",
-        "ipld-dag-cbor": "^0.17.0",
-        "ipld-dag-pb": "^0.20.0",
-        "ipld-raw": "^6.0.0",
+        "ipld-block": "^0.9.2",
+        "ipld-dag-cbor": "^0.16.0",
+        "ipld-dag-pb": "^0.19.0",
+        "ipld-raw": "^5.0.0",
         "iso-url": "^0.4.7",
-        "it-last": "^1.0.2",
-        "it-map": "^1.0.2",
+        "it-last": "^1.0.1",
         "it-tar": "^1.2.2",
         "it-to-buffer": "^1.0.0",
         "it-to-stream": "^0.1.1",
         "merge-options": "^2.0.0",
-        "multiaddr": "^8.0.0",
-        "multiaddr-to-uri": "^6.0.0",
-        "multibase": "^3.0.0",
-        "multicodec": "^2.0.0",
-        "multihashes": "^3.0.1",
+        "multiaddr": "^7.4.3",
+        "multiaddr-to-uri": "^5.1.0",
+        "multibase": "^1.0.1",
+        "multicodec": "^1.0.0",
+        "multihashes": "^1.0.1",
         "nanoid": "^3.0.2",
         "node-fetch": "^2.6.0",
         "parse-duration": "^0.4.4",
-        "stream-to-it": "^0.2.1",
-        "uint8arrays": "^1.1.0"
+        "stream-to-it": "^0.2.1"
       },
       "dependencies": {
+        "blob-to-it": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-0.0.1.tgz",
+          "integrity": "sha512-gvOVIs0YUpKHAwvhoJcRs81LJrOb+kwOol0/NnF/JgD0a5i9SJ/Es/njJo3NgFzb+x/FDPh4cD4D1KnrBeUWuw==",
+          "peer": true,
+          "requires": {
+            "browser-readablestream-to-it": "^0.0.1"
+          }
+        },
+        "browser-readablestream-to-it": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-0.0.1.tgz",
+          "integrity": "sha512-leRiI4bLRr7K8znNmQZ3frgL8A7aX4LI4g7444YEtT3alaxqem+XPGsJmOlFRRdRqjFpvf2wW4dXKcgBLxypVg==",
+          "peer": true
+        },
+        "cids": {
+          "version": "0.8.3",
+          "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz",
+          "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.6.0",
+            "class-is": "^1.1.0",
+            "multibase": "^1.0.0",
+            "multicodec": "^1.0.1",
+            "multihashes": "^1.0.1"
+          }
+        },
         "err-code": {
           "version": "2.0.3",
           "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
-          "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="
+          "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+          "peer": true
         },
         "form-data": {
           "version": "3.0.1",
           "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
           "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+          "peer": true,
           "requires": {
             "asynckit": "^0.4.0",
             "combined-stream": "^1.0.8",
@@ -52269,6 +52761,7 @@
           "version": "9.1.0",
           "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
           "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+          "peer": true,
           "requires": {
             "at-least-node": "^1.0.0",
             "graceful-fs": "^4.2.0",
@@ -52276,10 +52769,28 @@
             "universalify": "^2.0.0"
           }
         },
+        "ipfs-core-utils": {
+          "version": "0.3.2",
+          "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.3.2.tgz",
+          "integrity": "sha512-4kn6qbhYsyn48HeH7qAKPG07CxwEr1EsgRccGQOUy/5OjcfqIjw4HnBwYmsRU6QuWsNR7nOAhwrVc6Y3glVvnQ==",
+          "peer": true,
+          "requires": {
+            "blob-to-it": "0.0.1",
+            "browser-readablestream-to-it": "0.0.1",
+            "buffer": "^5.6.0",
+            "cids": "^0.8.3",
+            "err-code": "^2.0.0",
+            "ipfs-utils": "^3.0.0",
+            "it-all": "^1.0.1",
+            "it-map": "^1.0.0",
+            "it-peekable": "0.0.1"
+          }
+        },
         "ipfs-utils": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-3.0.0.tgz",
           "integrity": "sha512-qahDc+fghrM57sbySr2TeWjaVR/RH/YEB/hvdAjiTbjESeD87qZawrXwj+19Q2LtGmFGusKNLo5wExeuI5ZfDQ==",
+          "peer": true,
           "requires": {
             "abort-controller": "^3.0.0",
             "any-signal": "^1.1.0",
@@ -52295,15 +52806,84 @@
             "stream-to-it": "^0.2.0"
           }
         },
+        "ipld-block": {
+          "version": "0.9.2",
+          "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.9.2.tgz",
+          "integrity": "sha512-/i99foB+QI8WhyZWu6ZVPFw2sP6kzZSnnjPNlxxrgaJeFX22w2z00nYWafY2YYYP4mZ9xkLZDSS/msli7XXyvw==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.5.0",
+            "cids": "~0.8.0",
+            "class-is": "^1.1.0"
+          }
+        },
+        "ipld-dag-cbor": {
+          "version": "0.16.0",
+          "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.16.0.tgz",
+          "integrity": "sha512-dnmR8Pgt1gGmEXWSf/V3dKDPveGnHsovvAAN7m/WHW5mXsBqYYOStt98K1RhCifbB7vY+IHmpdRhVka0g9DWFQ==",
+          "peer": true,
+          "requires": {
+            "borc": "^2.1.2",
+            "buffer": "^5.6.0",
+            "cids": "~0.8.3",
+            "is-circular": "^1.0.2",
+            "multicodec": "^1.0.3",
+            "multihashing-async": "^1.0.0"
+          }
+        },
+        "ipld-dag-pb": {
+          "version": "0.19.0",
+          "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.19.0.tgz",
+          "integrity": "sha512-qwuJM2Ev74HLKxgfmH7Qw/ob/Iwo4Te6ADZas8OqV2FCY+I4H+KJujLvaBs+By2g3h0aagv0ei3aUgqE8XzDfw==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.6.0",
+            "cids": "~0.8.3",
+            "class-is": "^1.1.0",
+            "multicodec": "^1.0.3",
+            "multihashing-async": "^1.0.0",
+            "protons": "^1.2.1",
+            "stable": "^0.1.8"
+          }
+        },
+        "ipld-raw": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-5.0.0.tgz",
+          "integrity": "sha512-z1Fie224lTtQZbFg+wC5WDY692G3SIpO8vT86yCU83vqpIvasVuV3SzDSv7G36kRxP03PPZOkvKAOFrcjb7gpw==",
+          "peer": true,
+          "requires": {
+            "cids": "~0.8.0",
+            "multicodec": "^1.0.1",
+            "multihashing-async": "~0.8.1"
+          },
+          "dependencies": {
+            "multihashing-async": {
+              "version": "0.8.2",
+              "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.8.2.tgz",
+              "integrity": "sha512-2lKa1autuCy8x7KIEj9aVNbAb3aIMRFYIwN7mq/zD4pxgNIVgGlm+f6GKY4880EOF2Y3GktHYssRy7TAJQ2DyQ==",
+              "peer": true,
+              "requires": {
+                "blakejs": "^1.1.0",
+                "buffer": "^5.4.3",
+                "err-code": "^2.0.0",
+                "js-sha3": "^0.8.0",
+                "multihashes": "^1.0.1",
+                "murmurhash3js-revisited": "^3.0.0"
+              }
+            }
+          }
+        },
         "is-plain-obj": {
           "version": "2.1.0",
           "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
-          "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+          "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+          "peer": true
         },
         "jsonfile": {
           "version": "6.1.0",
           "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
           "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+          "peer": true,
           "requires": {
             "graceful-fs": "^4.1.6",
             "universalify": "^2.0.0"
@@ -52313,59 +52893,99 @@
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz",
           "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==",
+          "peer": true,
           "requires": {
             "is-plain-obj": "^2.0.0"
           }
         },
-        "multiaddr-to-uri": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz",
-          "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==",
-          "requires": {
-            "multiaddr": "^8.0.0"
-          }
-        },
-        "multihashes": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz",
-          "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==",
+        "multiaddr": {
+          "version": "7.5.0",
+          "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz",
+          "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==",
+          "peer": true,
           "requires": {
-            "multibase": "^3.1.0",
-            "uint8arrays": "^2.0.5",
-            "varint": "^6.0.0"
+            "buffer": "^5.5.0",
+            "cids": "~0.8.0",
+            "class-is": "^1.1.0",
+            "is-ip": "^3.1.0",
+            "multibase": "^0.7.0",
+            "varint": "^5.0.0"
           },
           "dependencies": {
-            "uint8arrays": {
-              "version": "2.1.3",
-              "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.3.tgz",
-              "integrity": "sha512-2h2Z2OIqzrhHmZTv9ViJVyZZreFkHRHeihh7SxLVY/nLUVJhU4ey/u74tWsgMR6hhMSO2g5rhKmdLQIg3lKiUQ==",
+            "multibase": {
+              "version": "0.7.0",
+              "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+              "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
+              "peer": true,
               "requires": {
-                "multibase": "^4.0.1",
-                "web-encoding": "^1.1.0"
-              },
-              "dependencies": {
-                "multibase": {
-                  "version": "4.0.2",
-                  "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.2.tgz",
-                  "integrity": "sha512-l0XMK4O5I9cCfxC0/UMDX/UxlIlrqkjEZQNG+ZUUrsGhnXWgFXgatYOQSONiR/lQGfBO463UyZkh3SiQBpjRIQ==",
-                  "requires": {
-                    "@multiformats/base-x": "^4.0.1",
-                    "web-encoding": "^1.1.0"
-                  }
-                }
+                "base-x": "^3.0.8",
+                "buffer": "^5.5.0"
               }
-            },
-            "varint": {
-              "version": "6.0.0",
-              "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
-              "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
             }
           }
         },
+        "multibase": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz",
+          "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==",
+          "peer": true,
+          "requires": {
+            "base-x": "^3.0.8",
+            "buffer": "^5.5.0"
+          }
+        },
+        "multicodec": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+          "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.6.0",
+            "varint": "^5.0.0"
+          }
+        },
+        "multihashes": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz",
+          "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.6.0",
+            "multibase": "^1.0.1",
+            "varint": "^5.0.0"
+          }
+        },
+        "multihashing-async": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-1.0.0.tgz",
+          "integrity": "sha512-gRtHjJuULvo2dd9ybIsF+aUEamraAwet/ib3YapWdaP7QWkI8JtN/6EZBhdoqlzSVU7POrC3/rp13Or7zY7x1A==",
+          "peer": true,
+          "requires": {
+            "blakejs": "^1.1.0",
+            "buffer": "^5.4.3",
+            "err-code": "^2.0.0",
+            "js-sha3": "^0.8.0",
+            "multihashes": "^1.0.1",
+            "murmurhash3js-revisited": "^3.0.0"
+          }
+        },
+        "protons": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/protons/-/protons-1.2.1.tgz",
+          "integrity": "sha512-2oqDyc/SN+tNcJf8XxrXhYL7sQn2/OMl8mSdD7NVGsWjMEmAbks4eDVnCyf0vAoRbBWyWTEXWk4D8XfuKVl3zg==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.5.0",
+            "protocol-buffers-schema": "^3.3.1",
+            "signed-varint": "^2.0.1",
+            "varint": "^5.0.0"
+          }
+        },
         "universalify": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
-          "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+          "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+          "peer": true
         }
       }
     },
@@ -53461,6 +54081,13 @@
             "it-all": "^1.0.2",
             "it-drain": "^1.0.1",
             "nanoid": "^3.0.2"
+          },
+          "dependencies": {
+            "err-code": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+              "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
+            }
           }
         },
         "ipfs-utils": {
@@ -57156,6 +57783,13 @@
             "it-all": "^1.0.2",
             "it-drain": "^1.0.1",
             "nanoid": "^3.0.2"
+          },
+          "dependencies": {
+            "err-code": {
+              "version": "3.0.1",
+              "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+              "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
+            }
           }
         },
         "ipfs-utils": {
@@ -59092,9 +59726,9 @@
       "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw=="
     },
     "monaco-editor": {
-      "version": "0.20.0",
-      "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.20.0.tgz",
-      "integrity": "sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ=="
+      "version": "0.36.1",
+      "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.36.1.tgz",
+      "integrity": "sha512-/CaclMHKQ3A6rnzBzOADfwdSJ25BFoFT0Emxsc4zYVyav5SkK9iA6lEtIeuN/oRYbwPgviJT+t3l+sjFa28jYg=="
     },
     "monaco-editor-vue": {
       "version": "1.0.10",
@@ -59234,6 +59868,99 @@
         }
       }
     },
+    "multiaddr-to-uri": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-5.1.0.tgz",
+      "integrity": "sha512-rIlMLkw3yk3RJmf2hxYYzeqPXz4Vx7C4M/hg7BVWhmksDW0rDVNMEyoVb0H1A+sh3deHOh5EAFK87XcW+mFimA==",
+      "peer": true,
+      "requires": {
+        "multiaddr": "^7.2.1"
+      },
+      "dependencies": {
+        "cids": {
+          "version": "0.8.3",
+          "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz",
+          "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.6.0",
+            "class-is": "^1.1.0",
+            "multibase": "^1.0.0",
+            "multicodec": "^1.0.1",
+            "multihashes": "^1.0.1"
+          },
+          "dependencies": {
+            "multibase": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz",
+              "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==",
+              "peer": true,
+              "requires": {
+                "base-x": "^3.0.8",
+                "buffer": "^5.5.0"
+              }
+            }
+          }
+        },
+        "multiaddr": {
+          "version": "7.5.0",
+          "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz",
+          "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.5.0",
+            "cids": "~0.8.0",
+            "class-is": "^1.1.0",
+            "is-ip": "^3.1.0",
+            "multibase": "^0.7.0",
+            "varint": "^5.0.0"
+          }
+        },
+        "multibase": {
+          "version": "0.7.0",
+          "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+          "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
+          "peer": true,
+          "requires": {
+            "base-x": "^3.0.8",
+            "buffer": "^5.5.0"
+          }
+        },
+        "multicodec": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+          "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.6.0",
+            "varint": "^5.0.0"
+          }
+        },
+        "multihashes": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz",
+          "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==",
+          "peer": true,
+          "requires": {
+            "buffer": "^5.6.0",
+            "multibase": "^1.0.1",
+            "varint": "^5.0.0"
+          },
+          "dependencies": {
+            "multibase": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz",
+              "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==",
+              "peer": true,
+              "requires": {
+                "base-x": "^3.0.8",
+                "buffer": "^5.5.0"
+              }
+            }
+          }
+        }
+      }
+    },
     "multibase": {
       "version": "3.1.2",
       "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
@@ -59275,6 +60002,11 @@
         }
       }
     },
+    "multiformats": {
+      "version": "9.9.0",
+      "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
+      "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
+    },
     "multihashes": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
diff --git a/package.json b/package.json
index 0db6c399..48a5a76e 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
     "markdown-toc": "^1.2.0",
     "meta-marked": "^0.5.0",
     "moment": "^2.24.0",
-    "monaco-editor": "^0.20.0",
+    "monaco-editor": "^0.36.1",
     "monaco-editor-vue": "^1.0.10",
     "monaco-editor-webpack-plugin": "^1.9.0",
     "new-github-issue-url": "^0.2.1",