diff --git a/Justfile b/Justfile index dd562d1..bfdc0b6 100644 --- a/Justfile +++ b/Justfile @@ -28,10 +28,6 @@ workbox_config := "workbox.config.cjs" rm {{dist_dir}}/index.html mv {{dist_dir}}/index.applied.html {{dist_dir}}/index.html - {{node_bin}}/mustache config/{{config}}.json {{dist_dir}}/ipfs.html > {{dist_dir}}/ipfs.applied.html - rm {{dist_dir}}/ipfs.html - mv {{dist_dir}}/ipfs.applied.html {{dist_dir}}/ipfs.html - @clean: rm -rf {{dist_dir}} @@ -58,8 +54,6 @@ workbox_config := "workbox.config.cjs" mkdir -p {{dist_dir}}/reset/ cp {{src_dir}}/Static/Html/Main.html {{dist_dir}}/index.html - cp {{src_dir}}/Static/Html/Ipfs.html {{dist_dir}}/ipfs.html - cp {{src_dir}}/Static/Html/Ipfs/v2.html {{dist_dir}}/ipfs/v2.html cp {{src_dir}}/Static/Html/Exchange.html {{dist_dir}}/exchange.html cp {{src_dir}}/Static/Html/Reset.html {{dist_dir}}/reset/index.html @@ -89,8 +83,6 @@ insert-variables: echo "🦕 Downloading dependencies" npm install - just download-web-module ipfs.min.js https://unpkg.com/ipfs@0.62.3/index.min.js - @js: echo "📄 Copying JS files" @@ -103,12 +95,6 @@ insert-variables: --outfile={{dist_dir}}/index.min.js \ {{src_dir}}/Javascript/main.ts - {{node_bin}}/esbuild \ - --bundle \ - --define:API_ENDPOINT="$(jq .API_ENDPOINT config/{{config}}.json)" \ - --outfile={{dist_dir}}/worker.min.js \ - {{src_dir}}/Javascript/worker.js - {{node_bin}}/esbuild \ --bundle \ --format=esm \ diff --git a/config/default.json b/config/default.json index 3f4b6c7..e23b3e4 100644 --- a/config/default.json +++ b/config/default.json @@ -1,5 +1,4 @@ { "API_ENDPOINT": "https://runfission.net", - "DATA_ROOT_DOMAIN": "fissionuser.net", - "IPFS_WORKER_V1": "https://ipfs.runfission.net/ipfs/bafybeiecza5pwo2z5upmben75t7u6hpghpsiurzysp2wyegybxsvg5b4mi" + "DATA_ROOT_DOMAIN": "fissionuser.net" } diff --git a/config/local.json b/config/local.json index 6096cd5..2a50742 100644 --- a/config/local.json +++ b/config/local.json @@ -1,5 +1,4 @@ { "API_ENDPOINT": "http://runfission.test:1337", - "DATA_ROOT_DOMAIN": "fissionuser.test", - "IPFS_WORKER_V1": "https://ipfs.runfission.net/ipfs/bafybeiecza5pwo2z5upmben75t7u6hpghpsiurzysp2wyegybxsvg5b4mi" + "DATA_ROOT_DOMAIN": "fissionuser.test" } diff --git a/config/production.json b/config/production.json index 18b01b7..2dafe83 100644 --- a/config/production.json +++ b/config/production.json @@ -1,5 +1,4 @@ { "API_ENDPOINT": "https://runfission.com", - "DATA_ROOT_DOMAIN": "fission.name", - "IPFS_WORKER_V1": "https://ipfs.runfission.com/ipfs/bafybeie2kcmehpw37roa2jy4dbckahmrrkkgzubcbztxowffx5xehr6stm" + "DATA_ROOT_DOMAIN": "fission.name" } diff --git a/package-lock.json b/package-lock.json index ec79210..95dbfb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,8 +7,6 @@ "dependencies": { "@fission-suite/kit": "2.1.0", "@oddjs/odd": "^0.37.2", - "ipfs-message-port-protocol": "^0.11.3", - "ipfs-message-port-server": "^0.11.3", "localforage": "^1.9.0", "uint8arrays": "^3.0.0" }, @@ -1791,14 +1789,6 @@ "postcss": "^8.1.3" } }, - "node_modules/@ipld/dag-pb": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.18.tgz", - "integrity": "sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==", - "dependencies": { - "multiformats": "^9.5.4" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -2189,60 +2179,6 @@ "resolved": "../ts-odd", "link": true }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -2373,11 +2309,6 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, "node_modules/@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -2386,7 +2317,8 @@ "node_modules/@types/node": { "version": "18.11.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "dev": true }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -3887,19 +3819,11 @@ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "peer": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -4074,16 +3998,6 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, - "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, "node_modules/dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -4533,11 +4447,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "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/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -5209,29 +5118,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "peer": true, - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -5329,18 +5215,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "peer": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/fraction.js": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", @@ -5947,21 +5821,6 @@ "node": ">=8" } }, - "node_modules/interface-datastore": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", - "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", - "dependencies": { - "interface-store": "^2.0.2", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" - }, "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -5985,67 +5844,6 @@ "node": ">=4" } }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ipfs-core-types": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.10.3.tgz", - "integrity": "sha512-GNid2lRBjR5qgScCglgk7w9Hk3TZAwPHQXxOLQx72wgyc0jF2U5NXRoKW0GRvX8NPbHmsrFszForIqxd23I1Gw==", - "dependencies": { - "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.0.2", - "ipfs-unixfs": "^6.0.3", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" - } - }, - "node_modules/ipfs-message-port-protocol": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ipfs-message-port-protocol/-/ipfs-message-port-protocol-0.11.3.tgz", - "integrity": "sha512-LRZRlbeTdD2RXPyIjpuLV2ewrMSFwewBgm0s0lzpwtm0RNMXXKE8KBZu/fDZSkx7Cx/tL4nJJCfeyy1nowIDdg==", - "dependencies": { - "ipfs-core-types": "^0.10.3", - "multiformats": "^9.5.1" - }, - "engines": { - "node": ">=15.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-message-port-server": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ipfs-message-port-server/-/ipfs-message-port-server-0.11.3.tgz", - "integrity": "sha512-jRdRLZRaM+jXpTxpzKlkr9tzwFxFNkXiHg+Cx0byZzk2pdcwbNtbv9L1jG5M6iN/4UktrOl5QUqPA/TSzZmE0A==", - "dependencies": { - "ipfs-core-types": "^0.10.3", - "ipfs-message-port-protocol": "^0.11.3", - "it-all": "^1.0.4", - "multiformats": "^9.5.1" - }, - "engines": { - "node": ">=15.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ipfs-unixfs": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", - "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", - "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", @@ -6227,17 +6025,6 @@ "node": ">=8" } }, - "node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -6482,11 +6269,6 @@ "is-stream": "^1.0.1" } }, - "node_modules/it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" - }, "node_modules/iterall": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz", @@ -6970,11 +6752,6 @@ "node": ">=8" } }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -7248,20 +7025,8 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multiaddr": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", - "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", - "dependencies": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/multiformats": { "version": "9.9.0", @@ -7287,6 +7052,7 @@ "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -7294,39 +7060,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "peerDependencies": { - "node-fetch": "*" - } - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "peer": true, - "engines": { - "node": ">=10.5.0" - } - }, "node_modules/node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -7336,24 +7075,6 @@ "lodash": "^4.17.21" } }, - "node_modules/node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", - "peer": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, "node_modules/node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", @@ -9234,31 +8955,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -9577,14 +9273,6 @@ "node": ">=8.10.0" } }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/redent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", @@ -11741,11 +11429,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "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/vendors": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", @@ -11771,15 +11454,6 @@ "defaults": "^1.0.3" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "peer": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -13828,14 +13502,6 @@ "purgecss": "^3.1.0-alpha.0" } }, - "@ipld/dag-pb": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.18.tgz", - "integrity": "sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==", - "requires": { - "multiformats": "^9.5.4" - } - }, "@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -14198,60 +13864,6 @@ "wnfs": "0.1.7" } }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -14352,11 +13964,6 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, "@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -14365,7 +13972,8 @@ "@types/node": { "version": "18.11.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "dev": true }, "@types/normalize-package-data": { "version": "2.4.1", @@ -15499,16 +15107,11 @@ } } }, - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "peer": true - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -15629,16 +15232,6 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, - "dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "requires": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -16000,11 +15593,6 @@ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -16427,16 +16015,6 @@ "reusify": "^1.0.4" } }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "peer": true, - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -16514,15 +16092,6 @@ "path-exists": "^4.0.0" } }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "peer": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, "fraction.js": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", @@ -16962,21 +16531,6 @@ } } }, - "interface-datastore": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", - "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", - "requires": { - "interface-store": "^2.0.2", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" - }, "internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -16994,52 +16548,6 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" - }, - "ipfs-core-types": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.10.3.tgz", - "integrity": "sha512-GNid2lRBjR5qgScCglgk7w9Hk3TZAwPHQXxOLQx72wgyc0jF2U5NXRoKW0GRvX8NPbHmsrFszForIqxd23I1Gw==", - "requires": { - "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.0.2", - "ipfs-unixfs": "^6.0.3", - "multiaddr": "^10.0.0", - "multiformats": "^9.5.1" - } - }, - "ipfs-message-port-protocol": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ipfs-message-port-protocol/-/ipfs-message-port-protocol-0.11.3.tgz", - "integrity": "sha512-LRZRlbeTdD2RXPyIjpuLV2ewrMSFwewBgm0s0lzpwtm0RNMXXKE8KBZu/fDZSkx7Cx/tL4nJJCfeyy1nowIDdg==", - "requires": { - "ipfs-core-types": "^0.10.3", - "multiformats": "^9.5.1" - } - }, - "ipfs-message-port-server": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ipfs-message-port-server/-/ipfs-message-port-server-0.11.3.tgz", - "integrity": "sha512-jRdRLZRaM+jXpTxpzKlkr9tzwFxFNkXiHg+Cx0byZzk2pdcwbNtbv9L1jG5M6iN/4UktrOl5QUqPA/TSzZmE0A==", - "requires": { - "ipfs-core-types": "^0.10.3", - "ipfs-message-port-protocol": "^0.11.3", - "it-all": "^1.0.4", - "multiformats": "^9.5.1" - } - }, - "ipfs-unixfs": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", - "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", - "requires": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - } - }, "is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", @@ -17167,14 +16675,6 @@ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "requires": { - "ip-regex": "^4.0.0" - } - }, "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -17352,11 +16852,6 @@ } } }, - "it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" - }, "iterall": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz", @@ -17733,11 +17228,6 @@ } } }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -17937,20 +17427,8 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multiaddr": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", - "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", - "requires": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "multiformats": { "version": "9.9.0", @@ -17972,13 +17450,8 @@ "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "requires": {} + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true }, "nice-try": { "version": "1.0.5", @@ -17986,12 +17459,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "peer": true - }, "node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -18001,17 +17468,6 @@ "lodash": "^4.17.21" } }, - "node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", - "peer": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, "node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", @@ -19447,26 +18903,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -19710,14 +19146,6 @@ "picomatch": "^2.2.1" } }, - "receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "requires": { - "ms": "^2.1.1" - } - }, "redent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", @@ -21403,11 +20831,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, "vendors": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", @@ -21429,12 +20852,6 @@ "defaults": "^1.0.3" } }, - "web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "peer": true - }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index afdd593..5c19a2a 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,6 @@ "dependencies": { "@oddjs/odd": "^0.37.2", "@fission-suite/kit": "2.1.0", - "ipfs-message-port-protocol": "^0.11.3", - "ipfs-message-port-server": "^0.11.3", "localforage": "^1.9.0", "uint8arrays": "^3.0.0" }, diff --git a/src/Javascript/odd.ts b/src/Javascript/odd.ts index bb21197..92a18b9 100644 --- a/src/Javascript/odd.ts +++ b/src/Javascript/odd.ts @@ -79,7 +79,7 @@ export async function program(): Promise { } // Remaining - const capabilities = Webnative.defaultCapabilitiesComponent({ crypto, depot }) + const capabilities = Webnative.defaultCapabilitiesComponent({ crypto }) const reference = await FissionReference.implementation(ENDPOINTS, { crypto, manners, storage }) const auth = FissionAuthWithWnfs.implementation(ENDPOINTS, { crypto, reference, storage }) diff --git a/src/Javascript/worker.js b/src/Javascript/worker.js deleted file mode 100644 index 53c1005..0000000 --- a/src/Javascript/worker.js +++ /dev/null @@ -1,448 +0,0 @@ -/* - -(づ ̄ ³ ̄)づ - -IPFS (Shared) Worker. -Pretty much copied from an example on https://github.com/ipfs/js-ipfs - -NOTE: DEPRECATED! Just lives here for backwards compatibility. - -*/ - -import localforage from "localforage" -import { Server, IPFSService } from "ipfs-message-port-server" - - -self.apiEndpoint = API_ENDPOINT - - -// Global state -let peers = Promise.resolve([]) -const latestPeerTimeoutIds = {} -const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) - - -/** 🎛️ Connection interval knobs - * - * KEEP_ALIVE_INTERVAL: Interval to keep the connection alive when online - * BACKOFF_INIT: Starting intervals for fibonacci backoff used when establishing a connection - * KEEP_TRYING_INTERVAL: Interval to keep trying the connection when offline - */ - -const KEEP_ALIVE_INTERVAL = - 1 * 60 * 1000 // 1 minute - -const BACKOFF_INIT = { - retryNumber: 0, - lastBackoff: 0, - currentBackoff: 1000 -} - -const KEEP_TRYING_INTERVAL = - 5 * 60 * 1000 // 5 minutes - - - -/** 🎛️ IPFS Options - */ - -const OPTIONS = { - config: { - Addresses: { - Delegates: [] - }, - Bootstrap: [], - Discovery: { - webRTCStar: { enabled: false } - } - }, - preload: { - enabled: false - }, - libp2p: { - config: { - peerDiscovery: { autoDial: false } - } - }, - init: { - algorithm: isSafari ? "RSA" : undefined - } -} - - -importScripts("web_modules/ipfs.min.js") - - -const main = async (port) => { - const IPFS = self.Ipfs - self.initiated = true - - // Start listening to all the incoming connections (browsing contexts that - // which run new SharedWorker...) - // Note: It is important to start listening before we do any await to ensure - // that connections aren't missed while awaiting. - const connections = listen(self, "connect") - - // Fetch the list of peers - peers = await localforage.getItem("ipfsPeers") - - if (peers) { - peers = peers.split(",") - - fetchPeers().then(list => - localforage.setItem("ipfsPeers", list.join(",")) - ) - - } else { - peers = await fetchPeers() - localforage.setItem("ipfsPeers", peers.join(",")) - - } - - if (peers.length === 0) { - throw new Error("💥 Couldn't start IPFS node, peer list is empty") - } - - // Start an IPFS node & create server that will expose it's API to all clients - // over message channel. - const ipfs = await IPFS.create(OPTIONS) - const service = new IPFSService(ipfs) - const server = new Server(service) - - self.ipfs = ipfs - self.service = service - self.server = server - - peers.forEach(peer => { - latestPeerTimeoutIds[peer] = null - tryConnecting(peer) - }) - - console.log("🚀 Started IPFS node") - - // Monitor bitswap and peer connections automatically if on localhost and staging environment - if ([ "localhost", "auth.runfission.net" ].includes(self.location.hostname)) { - monitorBitswap() - monitorPeers() - } - - // Connect every queued and future connection to the server. - if (port) { - server.connect(port) - return - } - - for await (const event of connections) { - const p = event.ports && event.ports[0] - if (p) server.connect(p) - } -} - - -// Try connecting when browser comes online -self.addEventListener("online", () => { - peers - .filter(peer => - !peer.includes("/localhost/") && - !peer.includes("/127.0.0.1/") && - !peer.includes("/0.0.0.0/") - ) - .forEach(peer => { - tryConnecting(peer) - }) -}) - - -// PEERS -// ----- - -function fetchPeers() { - const peersUrl = `${self.apiEndpoint}/ipfs/peers` - - return fetch(peersUrl) - .then(r => r.json()) - .then(r => r.filter(p => p.includes("/wss/"))) - .catch(e => { throw new Error("💥 Couldn't start IPFS node, failed to fetch peer list") }) -} - - -// CONNECTIONS -// ----------- - -async function keepAlive(peer, backoff, status) { - let timeoutId = null; - - if (backoff.currentBackoff < KEEP_TRYING_INTERVAL) { - - // Start race between reconnect and ping - timeoutId = setTimeout(() => reconnect(peer, backoff, status), backoff.currentBackoff) - } else { - - // Disregard backoff, but keep trying - timeoutId = setTimeout(() => reconnect(peer, backoff, status), KEEP_TRYING_INTERVAL) - } - - // Track the latest reconnect attempt - latestPeerTimeoutIds[peer] = timeoutId - - self.ipfs.libp2p.ping(peer).then(latency => { - const updatedStatus = { connected: true, lastConnectedAt: Date.now(), latency } - report(peer, updatedStatus) - - // Cancel reconnect because ping won - clearTimeout(timeoutId) - - // Keep alive after the latest ping-reconnect race, ignore the rest - if (timeoutId === latestPeerTimeoutIds[peer]) { - setTimeout(() => keepAlive(peer, BACKOFF_INIT, updatedStatus), KEEP_ALIVE_INTERVAL) - } - }).catch(() => { }) -} - - -async function reconnect(peer, backoff, status) { - const updatedStatus = { ...status, connected: false, latency: null } - report(peer, updatedStatus) - - try { - await self.ipfs.swarm.disconnect(peer) - await self.ipfs.swarm.connect(peer) - } catch { - // No action needed, we will retry - } - - if (backoff.currentBackoff < KEEP_TRYING_INTERVAL) { - const nextBackoff = { - retryNumber: backoff.retryNumber + 1, - lastBackoff: backoff.currentBackoff, - currentBackoff: backoff.lastBackoff + backoff.currentBackoff - } - - keepAlive(peer, nextBackoff, updatedStatus) - } else { - keepAlive(peer, backoff, updatedStatus) - } -} - - -async function tryConnecting(peer) { - self - .ipfs.libp2p.ping(peer) - .then(latency => { - - return ipfs.swarm - .connect(peer, 1 * 1000) - .then(() => { - console.log(`🪐 Connected to ${peer}`) - - const status = { connected: true, lastConnectedAt: Date.now(), latency } - report(peer, status) - - // Ensure permanent connection to Fission gateway - // TODO: This is a temporary solution while we wait for - // https://github.com/libp2p/js-libp2p/issues/744 - // (see "Keep alive" bit) - setTimeout(() => keepAlive(peer, BACKOFF_INIT, status), KEEP_ALIVE_INTERVAL) - }) - }) - .catch(() => { - console.log(`🪓 Could not connect to ${peer}`) - - const status = { connected: false, lastConnectedAt: 0, latency: null } - report(peer, status) - - keepAlive(peer, BACKOFF_INIT, status) - }) -} - - -self.reconnect = reconnect - - -// REPORTING -// --------- - -let peerConnections = [] -let monitoringPeers = false - -function report(peer, status) { - peerConnections = peerConnections - .filter(connection => connection.peer !== peer) - .concat({ peer, ...status }) - - const offline = peerConnections.every(connection => !connection.connected) - const lastConnectedAt = peerConnections.reduce((newest, connection) => - newest >= connection.lastConnectedAt ? newest : connection.lastConnectedAt, - 0 - ) - - const activeConnections = peerConnections.filter(connection => connection.latency !== null) - const averageLatency = activeConnections.length > 0 - ? peerConnections.reduce((sum, connection) => sum + connection.latency, 0) / activeConnections.length - : null - - if (monitoringPeers) { - console.table(peerConnections) - console.log("offline", offline) - console.log("last connected at", lastConnectedAt === 0 ? null : lastConnectedAt) - console.log("average latency", averageLatency) - } -} - - -async function monitorPeers() { - monitoringPeers = true - console.log("📡 Monitoring IPFS peers") -} - - -function stopMonitoringPeers() { - monitoringPeers = false -} - - -self.monitorPeers = monitorPeers -self.stopMonitoringPeers = stopMonitoringPeers - - -// 🔮 - - -let monitor - - -async function asyncIteratorToArray(it) { - const chunks = [] - - for await (const chunk of it) { - chunks.push(chunk) - } - - return chunks -} - - -async function monitorBitswap(verbose) { - const cids = {} - const seen = [] - - verbose = verbose === undefined ? false : true - - console.log("🕵️‍♀️ Monitoring IPFS bitswap requests") - await stopMonitoringBitswap() - - monitor = setInterval(async () => { - const peerList = await Promise.resolve(peers) - - peerList.map(async peer => { - const peerId = peer.split("/").reverse()[0] - const wantList = await ipfs.bitswap.wantlistForPeer(peerId, { timeout: 120 * 1000 }) - - wantList.forEach(async cid => { - const c = cid.toString() - const s = peerId + "-" + c - - if (!seen.includes(s)) { - const seenCid = !!cids[c] - const emoji = seenCid ? "📡" : "🔮" - const msg = `${emoji} Peer ${peerId} requested CID ${c}` - - cids[c] = (cids[c] || 0) + 1 - - if (seenCid) { - if (verbose) console.log(msg + ` (#${cids[c]})`) - return - } else { - console.log(msg) - } - - const start = performance.now() - seen.push(s) - - const dag = await ipfs.dag.get(cid) - const end = performance.now() - const diff = end - start - const loaded = `loaded locally in ${diff.toFixed(2)} ms` - - if (dag.value.Links) { - console.log(`🧱 ${c} is a 👉 DAG structure (${loaded})`) - ;(console.table || console.log)( - dag.value.Links.map(l => { - return { name: l.Name, cid: l.Hash.toString() } - }) - ) - - } else { - console.log(`📦 ${c} is 👉 Data (${loaded})`) - console.log(dag.value) - - } - } - }) - }) - }, 20) -} - - -async function stopMonitoringBitswap() { - if (monitor) clearInterval(monitor) -} - - -self.monitorBitswap = monitorBitswap -self.stopMonitoringBitswap = stopMonitoringBitswap - - - -// 🚀 - - -/** - * Creates an AsyncIterable for all the events on the given `target` for - * the given event `type`. It is like `target.addEventListener(type, listener, options)` - * but instead of passing listener you get `AsyncIterable` instead. - * @param {EventTarget} target - * @param {string} type - * @param {AddEventListenerOptions} options - */ -const listen = function (target, type, options) { - const events = [] - let resume - let ready = new Promise(resolve => (resume = resolve)) - - const write = event => { - events.push(event) - resume() - } - - const read = async () => { - await ready - ready = new Promise(resolve => (resume = resolve)) - return events.splice(0) - } - - const reader = async function * () { - try { - while (true) { - yield * await read() - } - } finally { - target.removeEventListener(type, write, options) - } - } - - target.addEventListener(type, write, options) - return reader() -} - - -self.addEventListener("message", setup) - - -function setup(event) { - if (!self.initiated) main(event.ports && event.ports[0]) - self.removeEventListener("message", setup) -} - - -if (typeof SharedWorkerGlobalScope === "function") main() diff --git a/src/Static/Html/Ipfs.html b/src/Static/Html/Ipfs.html deleted file mode 100644 index fb83f39..0000000 --- a/src/Static/Html/Ipfs.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Fission Lobby IPFS Worker - - - - - - diff --git a/src/Static/Html/Ipfs/v2.html b/src/Static/Html/Ipfs/v2.html deleted file mode 100644 index ef3d70e..0000000 --- a/src/Static/Html/Ipfs/v2.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - Fission Lobby IPFS Worker - - - - - - - - - -