A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

Closes #425

+51 -3371
-2
README.md
··· 28 28 #### User layer 29 29 30 30 - [Dropbox](https://www.dropbox.com/) 31 - - [Fission](https://fission.codes/) 32 - - [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) <small>(Browser)</small> 33 31 - [IPFS](https://ipfs.io/) <small>(using MFS)</small> 34 32 - [RemoteStorage](https://remotestorage.io/) 35 33
+42 -2608
package-lock.json
··· 9 9 "version": "3.5.0", 10 10 "license": "SEE LICENSE IN LICENSE", 11 11 "dependencies": { 12 - "@oddjs/odd": "^0.37.2", 13 12 "@tokenizer/http": "^0.6.2", 14 13 "elm-taskport": "^2.0.1", 15 14 "encoding-japanese": "^2.0.0", ··· 56 55 "postcss": "^8.4.34", 57 56 "postcss-custom-properties": "^13.3.4", 58 57 "postcss-import": "^16.0.0", 59 - "stream": "^0.0.2", 58 + "stream": "^0.0.3", 60 59 "tailwindcss": "^3.4.1", 61 60 "tailwindcss-animations": "^2.0.0", 62 61 "tailwindcss-interaction-variants": "^5.0.0", ··· 148 147 "os": [ 149 148 "win32" 150 149 ] 151 - }, 152 - "node_modules/@chainsafe/is-ip": { 153 - "version": "2.0.1", 154 - "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", 155 - "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" 156 - }, 157 - "node_modules/@chainsafe/netmask": { 158 - "version": "2.0.0", 159 - "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", 160 - "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", 161 - "dependencies": { 162 - "@chainsafe/is-ip": "^2.0.1" 163 - } 164 150 }, 165 151 "node_modules/@csstools/cascade-layer-name-parser": { 166 152 "version": "1.0.7", ··· 735 721 "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", 736 722 "dev": true 737 723 }, 738 - "node_modules/@ipld/dag-cbor": { 739 - "version": "8.0.1", 740 - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz", 741 - "integrity": "sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA==", 742 - "dependencies": { 743 - "cborg": "^1.6.0", 744 - "multiformats": "^11.0.0" 745 - }, 746 - "engines": { 747 - "node": ">=16.0.0", 748 - "npm": ">=7.0.0" 749 - } 750 - }, 751 - "node_modules/@ipld/dag-pb": { 752 - "version": "3.0.2", 753 - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-3.0.2.tgz", 754 - "integrity": "sha512-ge+llKU/CNc6rX5ZcUhCrPXJjKjN1DsolDOJ99zOsousGOhepoIgvT01iAP8s7QN9QFciOE+a1jHdccs+CyhBA==", 755 - "dependencies": { 756 - "multiformats": "^11.0.0" 757 - }, 758 - "engines": { 759 - "node": ">=16.0.0", 760 - "npm": ">=7.0.0" 761 - } 762 - }, 763 724 "node_modules/@isaacs/cliui": { 764 725 "version": "8.0.2", 765 726 "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", ··· 910 871 "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 911 872 "dev": true 912 873 }, 913 - "node_modules/@libp2p/interface-connection": { 914 - "version": "4.0.0", 915 - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", 916 - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", 917 - "dependencies": { 918 - "@libp2p/interface-peer-id": "^2.0.0", 919 - "@libp2p/interfaces": "^3.0.0", 920 - "@multiformats/multiaddr": "^12.0.0", 921 - "it-stream-types": "^1.0.4", 922 - "uint8arraylist": "^2.1.2" 923 - }, 924 - "engines": { 925 - "node": ">=16.0.0", 926 - "npm": ">=7.0.0" 927 - } 928 - }, 929 - "node_modules/@libp2p/interface-connection/node_modules/@libp2p/interface-peer-id": { 930 - "version": "2.0.1", 931 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 932 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 933 - "dependencies": { 934 - "multiformats": "^11.0.0" 935 - }, 936 - "engines": { 937 - "node": ">=16.0.0", 938 - "npm": ">=7.0.0" 939 - } 940 - }, 941 - "node_modules/@libp2p/interface-connection/node_modules/@multiformats/multiaddr": { 942 - "version": "12.1.2", 943 - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.2.tgz", 944 - "integrity": "sha512-EYYUEAddjWoyig5Dcu+JGq2JdpEpT2tW/K4sefdDWVSQW+rfnABfz1rx/KnrituB20jC8aPBcT62kISTZ3oL5A==", 945 - "dependencies": { 946 - "@chainsafe/is-ip": "^2.0.1", 947 - "@chainsafe/netmask": "^2.0.0", 948 - "@libp2p/interfaces": "^3.3.1", 949 - "dns-over-http-resolver": "^2.1.0", 950 - "multiformats": "^11.0.0", 951 - "uint8arrays": "^4.0.2", 952 - "varint": "^6.0.0" 953 - }, 954 - "engines": { 955 - "node": ">=16.0.0", 956 - "npm": ">=7.0.0" 957 - } 958 - }, 959 - "node_modules/@libp2p/interface-keychain": { 960 - "version": "1.0.8", 961 - "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-1.0.8.tgz", 962 - "integrity": "sha512-JqI7mMthIafP8cGhhsmIs/M0Ey+ivHLcpzqbVVzMFiFVi1dC03R7EHlalcaPn8yaLSvlmI0MqjC8lJYuvlFjfw==", 963 - "dependencies": { 964 - "multiformats": "^10.0.0" 965 - }, 966 - "engines": { 967 - "node": ">=16.0.0", 968 - "npm": ">=7.0.0" 969 - } 970 - }, 971 - "node_modules/@libp2p/interface-keychain/node_modules/multiformats": { 972 - "version": "10.0.3", 973 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 974 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 975 - "engines": { 976 - "node": ">=16.0.0", 977 - "npm": ">=7.0.0" 978 - } 979 - }, 980 - "node_modules/@libp2p/interface-keys": { 981 - "version": "1.0.7", 982 - "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.7.tgz", 983 - "integrity": "sha512-DRMPY9LfcnGJKrjaqIkY62U3fW2dya3VLy4x986ExtMrGn4kxIHeQ1IKk8/Vs9CJHTKmXEMID4of1Cjnw4aJpA==", 984 - "engines": { 985 - "node": ">=16.0.0", 986 - "npm": ">=7.0.0" 987 - } 988 - }, 989 - "node_modules/@libp2p/interface-peer-id": { 990 - "version": "1.1.2", 991 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", 992 - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", 993 - "dependencies": { 994 - "multiformats": "^10.0.0" 995 - }, 996 - "engines": { 997 - "node": ">=16.0.0", 998 - "npm": ">=7.0.0" 999 - } 1000 - }, 1001 - "node_modules/@libp2p/interface-peer-id/node_modules/multiformats": { 1002 - "version": "10.0.3", 1003 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 1004 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 1005 - "engines": { 1006 - "node": ">=16.0.0", 1007 - "npm": ">=7.0.0" 1008 - } 1009 - }, 1010 - "node_modules/@libp2p/interface-peer-info": { 1011 - "version": "1.0.9", 1012 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.9.tgz", 1013 - "integrity": "sha512-XewuwXMVYMcwaxhH9PFVfsFNEXi2OEe9TgkBwvZbbtwTI2Cz6zvKS1tT4f+ATCXjQbN840Nhe6ETPQ4TfhThOQ==", 1014 - "dependencies": { 1015 - "@libp2p/interface-peer-id": "^2.0.0", 1016 - "@multiformats/multiaddr": "^12.0.0" 1017 - }, 1018 - "engines": { 1019 - "node": ">=16.0.0", 1020 - "npm": ">=7.0.0" 1021 - } 1022 - }, 1023 - "node_modules/@libp2p/interface-peer-info/node_modules/@libp2p/interface-peer-id": { 1024 - "version": "2.0.1", 1025 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 1026 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 1027 - "dependencies": { 1028 - "multiformats": "^11.0.0" 1029 - }, 1030 - "engines": { 1031 - "node": ">=16.0.0", 1032 - "npm": ">=7.0.0" 1033 - } 1034 - }, 1035 - "node_modules/@libp2p/interface-peer-info/node_modules/@multiformats/multiaddr": { 1036 - "version": "12.1.2", 1037 - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.2.tgz", 1038 - "integrity": "sha512-EYYUEAddjWoyig5Dcu+JGq2JdpEpT2tW/K4sefdDWVSQW+rfnABfz1rx/KnrituB20jC8aPBcT62kISTZ3oL5A==", 1039 - "dependencies": { 1040 - "@chainsafe/is-ip": "^2.0.1", 1041 - "@chainsafe/netmask": "^2.0.0", 1042 - "@libp2p/interfaces": "^3.3.1", 1043 - "dns-over-http-resolver": "^2.1.0", 1044 - "multiformats": "^11.0.0", 1045 - "uint8arrays": "^4.0.2", 1046 - "varint": "^6.0.0" 1047 - }, 1048 - "engines": { 1049 - "node": ">=16.0.0", 1050 - "npm": ">=7.0.0" 1051 - } 1052 - }, 1053 - "node_modules/@libp2p/interface-pubsub": { 1054 - "version": "3.0.7", 1055 - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-3.0.7.tgz", 1056 - "integrity": "sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA==", 1057 - "dependencies": { 1058 - "@libp2p/interface-connection": "^4.0.0", 1059 - "@libp2p/interface-peer-id": "^2.0.0", 1060 - "@libp2p/interfaces": "^3.0.0", 1061 - "it-pushable": "^3.0.0", 1062 - "uint8arraylist": "^2.1.2" 1063 - }, 1064 - "engines": { 1065 - "node": ">=16.0.0", 1066 - "npm": ">=7.0.0" 1067 - } 1068 - }, 1069 - "node_modules/@libp2p/interface-pubsub/node_modules/@libp2p/interface-peer-id": { 1070 - "version": "2.0.1", 1071 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 1072 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 1073 - "dependencies": { 1074 - "multiformats": "^11.0.0" 1075 - }, 1076 - "engines": { 1077 - "node": ">=16.0.0", 1078 - "npm": ">=7.0.0" 1079 - } 1080 - }, 1081 - "node_modules/@libp2p/interfaces": { 1082 - "version": "3.3.1", 1083 - "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.3.1.tgz", 1084 - "integrity": "sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg==", 1085 - "engines": { 1086 - "node": ">=16.0.0", 1087 - "npm": ">=7.0.0" 1088 - } 1089 - }, 1090 - "node_modules/@libp2p/logger": { 1091 - "version": "2.0.7", 1092 - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.7.tgz", 1093 - "integrity": "sha512-Zp9C9lMNGfVFTMVc7NvxuxMvIE6gyxDapQc/TqZH02IuIDl1JpZyCgNILr0APd8wcUxwvwRXYNf3kQ0Lmz7tuQ==", 1094 - "dependencies": { 1095 - "@libp2p/interface-peer-id": "^2.0.0", 1096 - "debug": "^4.3.3", 1097 - "interface-datastore": "^8.0.0", 1098 - "multiformats": "^11.0.0" 1099 - }, 1100 - "engines": { 1101 - "node": ">=16.0.0", 1102 - "npm": ">=7.0.0" 1103 - } 1104 - }, 1105 - "node_modules/@libp2p/logger/node_modules/@libp2p/interface-peer-id": { 1106 - "version": "2.0.1", 1107 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 1108 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 1109 - "dependencies": { 1110 - "multiformats": "^11.0.0" 1111 - }, 1112 - "engines": { 1113 - "node": ">=16.0.0", 1114 - "npm": ">=7.0.0" 1115 - } 1116 - }, 1117 - "node_modules/@libp2p/logger/node_modules/interface-datastore": { 1118 - "version": "8.2.0", 1119 - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.0.tgz", 1120 - "integrity": "sha512-rDMAcpCGxWMubRk2YQuSEHl11bc0xcZeBZzfLvqhoZJdByUWeo7YDJUdgyRKgD6liGXVYirtDkFU9nyn9xl2hg==", 1121 - "dependencies": { 1122 - "interface-store": "^5.0.0", 1123 - "nanoid": "^4.0.0", 1124 - "uint8arrays": "^4.0.2" 1125 - }, 1126 - "engines": { 1127 - "node": ">=16.0.0", 1128 - "npm": ">=7.0.0" 1129 - } 1130 - }, 1131 - "node_modules/@libp2p/logger/node_modules/interface-store": { 1132 - "version": "5.1.0", 1133 - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.0.tgz", 1134 - "integrity": "sha512-mjUwX3XSoreoxCS3sXS3pSRsGnUjl9T06KBqt/T7AgE9Sgp4diH64ZyURJKnj2T5WmCvTbC0Dm+mwQV5hfLSBQ==", 1135 - "engines": { 1136 - "node": ">=16.0.0", 1137 - "npm": ">=7.0.0" 1138 - } 1139 - }, 1140 - "node_modules/@libp2p/logger/node_modules/nanoid": { 1141 - "version": "4.0.2", 1142 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", 1143 - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", 1144 - "funding": [ 1145 - { 1146 - "type": "github", 1147 - "url": "https://github.com/sponsors/ai" 1148 - } 1149 - ], 1150 - "bin": { 1151 - "nanoid": "bin/nanoid.js" 1152 - }, 1153 - "engines": { 1154 - "node": "^14 || ^16 || >=18" 1155 - } 1156 - }, 1157 - "node_modules/@libp2p/peer-id": { 1158 - "version": "1.1.18", 1159 - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.18.tgz", 1160 - "integrity": "sha512-Zh3gzbrQZKDMLpoJAJB8gdGtyYFSBKV0dU5vflQ18/7MJDJmjsgKO+sJTYi72yN5sWREs1eGKMhxLo+N1ust5w==", 1161 - "dependencies": { 1162 - "@libp2p/interface-peer-id": "^1.0.0", 1163 - "err-code": "^3.0.1", 1164 - "multiformats": "^10.0.0", 1165 - "uint8arrays": "^4.0.2" 1166 - }, 1167 - "engines": { 1168 - "node": ">=16.0.0", 1169 - "npm": ">=7.0.0" 1170 - } 1171 - }, 1172 - "node_modules/@libp2p/peer-id/node_modules/multiformats": { 1173 - "version": "10.0.3", 1174 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 1175 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 1176 - "engines": { 1177 - "node": ">=16.0.0", 1178 - "npm": ">=7.0.0" 1179 - } 1180 - }, 1181 - "node_modules/@multiformats/multiaddr": { 1182 - "version": "11.6.1", 1183 - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.6.1.tgz", 1184 - "integrity": "sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw==", 1185 - "dependencies": { 1186 - "@chainsafe/is-ip": "^2.0.1", 1187 - "dns-over-http-resolver": "^2.1.0", 1188 - "err-code": "^3.0.1", 1189 - "multiformats": "^11.0.0", 1190 - "uint8arrays": "^4.0.2", 1191 - "varint": "^6.0.0" 1192 - }, 1193 - "engines": { 1194 - "node": ">=16.0.0", 1195 - "npm": ">=7.0.0" 1196 - } 1197 - }, 1198 874 "node_modules/@nodelib/fs.scandir": { 1199 875 "version": "2.1.5", 1200 876 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", ··· 1230 906 "node": ">= 8" 1231 907 } 1232 908 }, 1233 - "node_modules/@oddjs/odd": { 1234 - "version": "0.37.2", 1235 - "resolved": "https://registry.npmjs.org/@oddjs/odd/-/odd-0.37.2.tgz", 1236 - "integrity": "sha512-ot5cpfHCfq8r9AXAxNACgmSSjLjEm1PJj2AOGrmOFiG0jYgD530h9pZc7G0keNIQJNk6YbZxCOddk0XfiwU01A==", 1237 - "dependencies": { 1238 - "@ipld/dag-cbor": "^8.0.0", 1239 - "@ipld/dag-pb": "^3.0.1", 1240 - "@libp2p/interface-keys": "^1.0.4", 1241 - "@libp2p/peer-id": "^1.1.17", 1242 - "@multiformats/multiaddr": "^11.1.0", 1243 - "blockstore-core": "^2.0.2", 1244 - "blockstore-datastore-adapter": "^4.0.0", 1245 - "datastore-core": "^8.0.2", 1246 - "datastore-level": "^9.0.4", 1247 - "events": "^3.3.0", 1248 - "fission-bloom-filters": "1.7.1", 1249 - "ipfs-core-types": "0.13.0", 1250 - "ipfs-repo": "^16.0.0", 1251 - "keystore-idb": "^0.15.5", 1252 - "localforage": "^1.10.0", 1253 - "multiformats": "^10.0.2", 1254 - "one-webcrypto": "^1.0.3", 1255 - "throttle-debounce": "^3.0.1", 1256 - "tweetnacl": "^1.0.3", 1257 - "uint8arrays": "^3.0.0", 1258 - "wnfs": "0.1.7" 1259 - }, 1260 - "engines": { 1261 - "node": ">=16" 1262 - } 1263 - }, 1264 - "node_modules/@oddjs/odd/node_modules/multiformats": { 1265 - "version": "10.0.3", 1266 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 1267 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 1268 - "engines": { 1269 - "node": ">=16.0.0", 1270 - "npm": ">=7.0.0" 1271 - } 1272 - }, 1273 - "node_modules/@oddjs/odd/node_modules/throttle-debounce": { 1274 - "version": "3.0.1", 1275 - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", 1276 - "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", 1277 - "engines": { 1278 - "node": ">=10" 1279 - } 1280 - }, 1281 - "node_modules/@oddjs/odd/node_modules/uint8arrays": { 1282 - "version": "3.1.1", 1283 - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", 1284 - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", 1285 - "dependencies": { 1286 - "multiformats": "^9.4.2" 1287 - } 1288 - }, 1289 - "node_modules/@oddjs/odd/node_modules/uint8arrays/node_modules/multiformats": { 1290 - "version": "9.9.0", 1291 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 1292 - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 1293 - }, 1294 909 "node_modules/@pkgjs/parseargs": { 1295 910 "version": "0.11.0", 1296 911 "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", ··· 1301 916 "node": ">=14" 1302 917 } 1303 918 }, 1304 - "node_modules/@protobufjs/aspromise": { 1305 - "version": "1.1.2", 1306 - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", 1307 - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" 1308 - }, 1309 - "node_modules/@protobufjs/base64": { 1310 - "version": "1.1.2", 1311 - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", 1312 - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 1313 - }, 1314 - "node_modules/@protobufjs/codegen": { 1315 - "version": "2.0.4", 1316 - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", 1317 - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 1318 - }, 1319 - "node_modules/@protobufjs/eventemitter": { 1320 - "version": "1.1.0", 1321 - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", 1322 - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" 1323 - }, 1324 - "node_modules/@protobufjs/fetch": { 1325 - "version": "1.1.0", 1326 - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", 1327 - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", 1328 - "dependencies": { 1329 - "@protobufjs/aspromise": "^1.1.1", 1330 - "@protobufjs/inquire": "^1.1.0" 1331 - } 1332 - }, 1333 - "node_modules/@protobufjs/float": { 1334 - "version": "1.0.2", 1335 - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", 1336 - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" 1337 - }, 1338 - "node_modules/@protobufjs/inquire": { 1339 - "version": "1.1.0", 1340 - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", 1341 - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" 1342 - }, 1343 - "node_modules/@protobufjs/path": { 1344 - "version": "1.1.2", 1345 - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", 1346 - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" 1347 - }, 1348 - "node_modules/@protobufjs/pool": { 1349 - "version": "1.1.0", 1350 - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", 1351 - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" 1352 - }, 1353 - "node_modules/@protobufjs/utf8": { 1354 - "version": "1.1.0", 1355 - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", 1356 - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" 1357 - }, 1358 919 "node_modules/@sindresorhus/is": { 1359 920 "version": "4.6.0", 1360 921 "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", ··· 1699 1260 "node_modules/@types/node": { 1700 1261 "version": "18.16.3", 1701 1262 "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", 1702 - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" 1263 + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", 1264 + "dev": true 1703 1265 }, 1704 1266 "node_modules/@types/responselike": { 1705 1267 "version": "1.0.0", ··· 1973 1535 "node": ">=6.5" 1974 1536 } 1975 1537 }, 1976 - "node_modules/abstract-level": { 1977 - "version": "1.0.3", 1978 - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", 1979 - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", 1980 - "dependencies": { 1981 - "buffer": "^6.0.3", 1982 - "catering": "^2.1.0", 1983 - "is-buffer": "^2.0.5", 1984 - "level-supports": "^4.0.0", 1985 - "level-transcoder": "^1.0.1", 1986 - "module-error": "^1.0.1", 1987 - "queue-microtask": "^1.2.3" 1988 - }, 1989 - "engines": { 1990 - "node": ">=12" 1991 - } 1992 - }, 1993 1538 "node_modules/accepts": { 1994 1539 "version": "1.3.8", 1995 1540 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", ··· 2307 1852 "node": ">= 6" 2308 1853 } 2309 1854 }, 2310 - "node_modules/blockstore-core": { 2311 - "version": "2.0.2", 2312 - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-2.0.2.tgz", 2313 - "integrity": "sha512-ALry3rBp2pTEi4F/usjCJGRluAKYFWI9Np7uE0pZHfDeScMJSj/fDkHEWvY80tPYu4kj03sLKRDGJlZH+V7VzQ==", 2314 - "dependencies": { 2315 - "err-code": "^3.0.1", 2316 - "interface-blockstore": "^3.0.0", 2317 - "interface-store": "^3.0.0", 2318 - "it-all": "^1.0.4", 2319 - "it-drain": "^1.0.4", 2320 - "it-filter": "^1.0.2", 2321 - "it-take": "^1.0.1", 2322 - "multiformats": "^10.0.0" 2323 - }, 2324 - "engines": { 2325 - "node": ">=16.0.0", 2326 - "npm": ">=7.0.0" 2327 - } 2328 - }, 2329 - "node_modules/blockstore-core/node_modules/multiformats": { 2330 - "version": "10.0.3", 2331 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 2332 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 2333 - "engines": { 2334 - "node": ">=16.0.0", 2335 - "npm": ">=7.0.0" 2336 - } 2337 - }, 2338 - "node_modules/blockstore-datastore-adapter": { 2339 - "version": "4.0.0", 2340 - "resolved": "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-4.0.0.tgz", 2341 - "integrity": "sha512-vzy2lgLb7PQ0qopuZk6B+syRULdUt9w/ffNl7EXcvGZLS5+VoUmh4Agdp1OVuoaMEfXoEqIvCaPXi/v3829vBg==", 2342 - "dependencies": { 2343 - "blockstore-core": "^2.0.0", 2344 - "err-code": "^3.0.1", 2345 - "interface-blockstore": "^3.0.0", 2346 - "interface-datastore": "^7.0.0", 2347 - "it-drain": "^2.0.0", 2348 - "it-pushable": "^3.1.0", 2349 - "multiformats": "^10.0.1" 2350 - }, 2351 - "engines": { 2352 - "node": ">=16.0.0", 2353 - "npm": ">=7.0.0" 2354 - } 2355 - }, 2356 - "node_modules/blockstore-datastore-adapter/node_modules/it-drain": { 2357 - "version": "2.0.1", 2358 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", 2359 - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==", 2360 - "engines": { 2361 - "node": ">=16.0.0", 2362 - "npm": ">=7.0.0" 2363 - } 2364 - }, 2365 - "node_modules/blockstore-datastore-adapter/node_modules/multiformats": { 2366 - "version": "10.0.3", 2367 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 2368 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 2369 - "engines": { 2370 - "node": ">=16.0.0", 2371 - "npm": ">=7.0.0" 2372 - } 2373 - }, 2374 1855 "node_modules/boxen": { 2375 1856 "version": "7.0.0", 2376 1857 "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", ··· 2508 1989 "node": ">=8" 2509 1990 } 2510 1991 }, 2511 - "node_modules/browser-level": { 2512 - "version": "1.0.1", 2513 - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", 2514 - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", 2515 - "dependencies": { 2516 - "abstract-level": "^1.0.2", 2517 - "catering": "^2.1.1", 2518 - "module-error": "^1.0.2", 2519 - "run-parallel-limit": "^1.1.0" 2520 - } 2521 - }, 2522 1992 "node_modules/browserslist": { 2523 1993 "version": "4.23.1", 2524 1994 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", ··· 2583 2053 "node": "*" 2584 2054 } 2585 2055 }, 2586 - "node_modules/busboy": { 2587 - "version": "1.6.0", 2588 - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 2589 - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 2590 - "dependencies": { 2591 - "streamsearch": "^1.1.0" 2592 - }, 2593 - "engines": { 2594 - "node": ">=10.16.0" 2595 - } 2596 - }, 2597 - "node_modules/bytes": { 2598 - "version": "3.1.2", 2599 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 2600 - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 2601 - "engines": { 2602 - "node": ">= 0.8" 2603 - } 2604 - }, 2605 2056 "node_modules/cacheable-lookup": { 2606 2057 "version": "5.0.4", 2607 2058 "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", ··· 2696 2147 } 2697 2148 ] 2698 2149 }, 2699 - "node_modules/catering": { 2700 - "version": "2.1.1", 2701 - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", 2702 - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", 2703 - "engines": { 2704 - "node": ">=6" 2705 - } 2706 - }, 2707 - "node_modules/cborg": { 2708 - "version": "1.10.1", 2709 - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.1.tgz", 2710 - "integrity": "sha512-et6Qm8MOUY2kCWa5GKk2MlBVoPjHv0hQBmlzI/Z7+5V3VJCeIkGehIB3vWknNsm2kOkAIs6wEKJFJo8luWQQ/w==", 2711 - "bin": { 2712 - "cborg": "cli.js" 2713 - } 2714 - }, 2715 2150 "node_modules/chalk": { 2716 2151 "version": "4.1.2", 2717 2152 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", ··· 2768 2203 "fsevents": "~2.3.2" 2769 2204 } 2770 2205 }, 2771 - "node_modules/classic-level": { 2772 - "version": "1.3.0", 2773 - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", 2774 - "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", 2775 - "hasInstallScript": true, 2776 - "dependencies": { 2777 - "abstract-level": "^1.0.2", 2778 - "catering": "^2.1.0", 2779 - "module-error": "^1.0.1", 2780 - "napi-macros": "^2.2.2", 2781 - "node-gyp-build": "^4.3.0" 2782 - }, 2783 - "engines": { 2784 - "node": ">=12" 2785 - } 2786 - }, 2787 2206 "node_modules/cli-boxes": { 2788 2207 "version": "3.0.0", 2789 2208 "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", ··· 2910 2329 "node": ">= 6" 2911 2330 } 2912 2331 }, 2332 + "node_modules/component-emitter": { 2333 + "version": "2.0.0", 2334 + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-2.0.0.tgz", 2335 + "integrity": "sha512-4m5s3Me2xxlVKG9PkZpQqHQR7bgpnN7joDMJ4yvVkVXngjoITG76IaZmzmywSeRTeTpc6N6r3H3+KyUurV8OYw==", 2336 + "dev": true, 2337 + "engines": { 2338 + "node": ">=18" 2339 + }, 2340 + "funding": { 2341 + "url": "https://github.com/sponsors/sindresorhus" 2342 + } 2343 + }, 2913 2344 "node_modules/compressible": { 2914 2345 "version": "2.0.18", 2915 2346 "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", ··· 3015 2446 "node": ">=4" 3016 2447 } 3017 2448 }, 3018 - "node_modules/cuint": { 3019 - "version": "0.2.2", 3020 - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", 3021 - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" 3022 - }, 3023 2449 "node_modules/data-uri-to-buffer": { 3024 2450 "version": "4.0.1", 3025 2451 "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", ··· 3029 2455 "node": ">= 12" 3030 2456 } 3031 2457 }, 3032 - "node_modules/datastore-core": { 3033 - "version": "8.0.4", 3034 - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.4.tgz", 3035 - "integrity": "sha512-oBA6a024NFXJOTu+w9nLAimfy4wCYUhdE/5XQGtdKt1BmCVtPYW10GORvVT3pdZBcse6k/mVcBl+hjkXIlm65A==", 3036 - "dependencies": { 3037 - "@libp2p/logger": "^2.0.0", 3038 - "err-code": "^3.0.1", 3039 - "interface-datastore": "^7.0.0", 3040 - "it-all": "^2.0.0", 3041 - "it-drain": "^2.0.0", 3042 - "it-filter": "^2.0.0", 3043 - "it-map": "^2.0.0", 3044 - "it-merge": "^2.0.0", 3045 - "it-pipe": "^2.0.3", 3046 - "it-pushable": "^3.0.0", 3047 - "it-take": "^2.0.0", 3048 - "uint8arrays": "^4.0.2" 3049 - }, 3050 - "engines": { 3051 - "node": ">=16.0.0", 3052 - "npm": ">=7.0.0" 3053 - } 3054 - }, 3055 - "node_modules/datastore-core/node_modules/it-all": { 3056 - "version": "2.0.1", 3057 - "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.1.tgz", 3058 - "integrity": "sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==", 3059 - "engines": { 3060 - "node": ">=16.0.0", 3061 - "npm": ">=7.0.0" 3062 - } 3063 - }, 3064 - "node_modules/datastore-core/node_modules/it-drain": { 3065 - "version": "2.0.1", 3066 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", 3067 - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==", 3068 - "engines": { 3069 - "node": ">=16.0.0", 3070 - "npm": ">=7.0.0" 3071 - } 3072 - }, 3073 - "node_modules/datastore-core/node_modules/it-filter": { 3074 - "version": "2.0.2", 3075 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", 3076 - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==", 3077 - "engines": { 3078 - "node": ">=16.0.0", 3079 - "npm": ">=7.0.0" 3080 - } 3081 - }, 3082 - "node_modules/datastore-core/node_modules/it-take": { 3083 - "version": "2.0.1", 3084 - "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.1.tgz", 3085 - "integrity": "sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA==", 3086 - "engines": { 3087 - "node": ">=16.0.0", 3088 - "npm": ">=7.0.0" 3089 - } 3090 - }, 3091 - "node_modules/datastore-level": { 3092 - "version": "9.0.4", 3093 - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-9.0.4.tgz", 3094 - "integrity": "sha512-HKf2tVVWywdidI+94z0B5NLx4J94wTLCT1tYXXxJ58MK/Y5rdX8WVRp9XmZaODS70uxpNC8/UrvWr0iTBZwkUA==", 3095 - "dependencies": { 3096 - "abstract-level": "^1.0.3", 3097 - "datastore-core": "^8.0.1", 3098 - "interface-datastore": "^7.0.0", 3099 - "it-filter": "^2.0.0", 3100 - "it-map": "^2.0.0", 3101 - "it-sort": "^2.0.0", 3102 - "it-take": "^2.0.0", 3103 - "level": "^8.0.0" 3104 - }, 3105 - "engines": { 3106 - "node": ">=16.0.0", 3107 - "npm": ">=7.0.0" 3108 - } 3109 - }, 3110 - "node_modules/datastore-level/node_modules/it-filter": { 3111 - "version": "2.0.2", 3112 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", 3113 - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==", 3114 - "engines": { 3115 - "node": ">=16.0.0", 3116 - "npm": ">=7.0.0" 3117 - } 3118 - }, 3119 - "node_modules/datastore-level/node_modules/it-take": { 3120 - "version": "2.0.1", 3121 - "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.1.tgz", 3122 - "integrity": "sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA==", 3123 - "engines": { 3124 - "node": ">=16.0.0", 3125 - "npm": ">=7.0.0" 3126 - } 3127 - }, 3128 2458 "node_modules/debug": { 3129 2459 "version": "4.3.4", 3130 2460 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", ··· 3259 2589 "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 3260 2590 "dev": true 3261 2591 }, 3262 - "node_modules/dns-over-http-resolver": { 3263 - "version": "2.1.1", 3264 - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz", 3265 - "integrity": "sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew==", 3266 - "dependencies": { 3267 - "debug": "^4.3.1", 3268 - "native-fetch": "^4.0.2", 3269 - "receptacle": "^1.3.2", 3270 - "undici": "^5.12.0" 3271 - }, 3272 - "engines": { 3273 - "node": ">=16.0.0", 3274 - "npm": ">=7.0.0" 3275 - } 3276 - }, 3277 2592 "node_modules/doctrine": { 3278 2593 "version": "3.0.0", 3279 2594 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", ··· 3448 2763 "elm-tooling": "index.js" 3449 2764 } 3450 2765 }, 3451 - "node_modules/emitter-component": { 3452 - "version": "1.1.1", 3453 - "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", 3454 - "integrity": "sha512-G+mpdiAySMuB7kesVRLuyvYRqDmshB7ReKEVuyBPkzQlmiDiLrt7hHHIy4Aff552bgknVN7B2/d3lzhGO5dvpQ==", 3455 - "dev": true 3456 - }, 3457 2766 "node_modules/emoji-regex": { 3458 2767 "version": "8.0.0", 3459 2768 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", ··· 3475 2784 "dependencies": { 3476 2785 "once": "^1.4.0" 3477 2786 } 3478 - }, 3479 - "node_modules/err-code": { 3480 - "version": "3.0.1", 3481 - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", 3482 - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" 3483 2787 }, 3484 2788 "node_modules/es-errors": { 3485 2789 "version": "1.3.0", ··· 3792 3096 "node": ">=6" 3793 3097 } 3794 3098 }, 3795 - "node_modules/eventemitter3": { 3796 - "version": "4.0.7", 3797 - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 3798 - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" 3799 - }, 3800 3099 "node_modules/events": { 3801 3100 "version": "3.3.0", 3802 3101 "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", ··· 4037 3336 }, 4038 3337 "engines": { 4039 3338 "node": ">=8" 4040 - } 4041 - }, 4042 - "node_modules/fission-bloom-filters": { 4043 - "version": "1.7.1", 4044 - "resolved": "https://registry.npmjs.org/fission-bloom-filters/-/fission-bloom-filters-1.7.1.tgz", 4045 - "integrity": "sha512-AAVWxwqgSDK+/3Tn2kx+a9j/ND/pyVNVZgn/rL5pfQaX7w0qfP81PlLCNKhM4XKOhcg1kFXNcoWkQKg3MyyULw==", 4046 - "dependencies": { 4047 - "buffer": "^6.0.3", 4048 - "is-buffer": "^2.0.4", 4049 - "lodash": "^4.17.15", 4050 - "lodash.eq": "^4.0.0", 4051 - "lodash.indexof": "^4.0.5", 4052 - "reflect-metadata": "^0.1.13", 4053 - "seedrandom": "^3.0.5", 4054 - "xxhashjs": "^0.2.2" 4055 3339 } 4056 3340 }, 4057 3341 "node_modules/flat-cache": { ··· 4073 3357 "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 4074 3358 "dev": true 4075 3359 }, 4076 - "node_modules/fnv1a": { 4077 - "version": "1.1.1", 4078 - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.1.1.tgz", 4079 - "integrity": "sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag==" 4080 - }, 4081 3360 "node_modules/folder-hash": { 4082 3361 "version": "3.3.3", 4083 3362 "resolved": "https://registry.npmjs.org/folder-hash/-/folder-hash-3.3.3.tgz", ··· 4381 3660 "node_modules/graceful-fs": { 4382 3661 "version": "4.2.11", 4383 3662 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 4384 - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 3663 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 3664 + "dev": true 4385 3665 }, 4386 3666 "node_modules/graphemer": { 4387 3667 "version": "1.4.0", ··· 4599 3879 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 4600 3880 "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 4601 3881 }, 4602 - "node_modules/interface-blockstore": { 4603 - "version": "3.0.2", 4604 - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-3.0.2.tgz", 4605 - "integrity": "sha512-lJXCyu3CwidOvNjkJARwCmoxl/HNX/mrfMxtyq5e/pVZA1SrlTj5lvb4LBYbfoynzewGUPcUU4DEUaXoLKliHQ==", 4606 - "dependencies": { 4607 - "interface-store": "^3.0.0", 4608 - "multiformats": "^10.0.0" 4609 - }, 4610 - "engines": { 4611 - "node": ">=16.0.0", 4612 - "npm": ">=7.0.0" 4613 - } 4614 - }, 4615 - "node_modules/interface-blockstore/node_modules/multiformats": { 4616 - "version": "10.0.3", 4617 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 4618 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 4619 - "engines": { 4620 - "node": ">=16.0.0", 4621 - "npm": ">=7.0.0" 4622 - } 4623 - }, 4624 - "node_modules/interface-datastore": { 4625 - "version": "7.0.4", 4626 - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.4.tgz", 4627 - "integrity": "sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==", 4628 - "dependencies": { 4629 - "interface-store": "^3.0.0", 4630 - "nanoid": "^4.0.0", 4631 - "uint8arrays": "^4.0.2" 4632 - }, 4633 - "engines": { 4634 - "node": ">=16.0.0", 4635 - "npm": ">=7.0.0" 4636 - } 4637 - }, 4638 - "node_modules/interface-datastore/node_modules/nanoid": { 4639 - "version": "4.0.2", 4640 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", 4641 - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", 4642 - "funding": [ 4643 - { 4644 - "type": "github", 4645 - "url": "https://github.com/sponsors/ai" 4646 - } 4647 - ], 4648 - "bin": { 4649 - "nanoid": "bin/nanoid.js" 4650 - }, 4651 - "engines": { 4652 - "node": "^14 || ^16 || >=18" 4653 - } 4654 - }, 4655 - "node_modules/interface-store": { 4656 - "version": "3.0.4", 4657 - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.4.tgz", 4658 - "integrity": "sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==", 4659 - "engines": { 4660 - "node": ">=16.0.0", 4661 - "npm": ">=7.0.0" 4662 - } 4663 - }, 4664 - "node_modules/ipfs-core-types": { 4665 - "version": "0.13.0", 4666 - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.13.0.tgz", 4667 - "integrity": "sha512-IIKS9v2D5KIqReZMbyuCStI4FRyIbRA9nD3fji1KgKJPiic1N3iGe2jL4hy4Y3FQ30VbheWJ9jAROwMyvqxYNA==", 4668 - "dependencies": { 4669 - "@ipld/dag-pb": "^3.0.0", 4670 - "@libp2p/interface-keychain": "^1.0.3", 4671 - "@libp2p/interface-peer-id": "^1.0.4", 4672 - "@libp2p/interface-peer-info": "^1.0.2", 4673 - "@libp2p/interface-pubsub": "^3.0.0", 4674 - "@multiformats/multiaddr": "^11.0.0", 4675 - "@types/node": "^18.0.0", 4676 - "interface-datastore": "^7.0.0", 4677 - "ipfs-unixfs": "^8.0.0", 4678 - "multiformats": "^10.0.0" 4679 - }, 4680 - "engines": { 4681 - "node": ">=16.0.0", 4682 - "npm": ">=7.0.0" 4683 - } 4684 - }, 4685 - "node_modules/ipfs-core-types/node_modules/multiformats": { 4686 - "version": "10.0.3", 4687 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 4688 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 4689 - "engines": { 4690 - "node": ">=16.0.0", 4691 - "npm": ">=7.0.0" 4692 - } 4693 - }, 4694 - "node_modules/ipfs-repo": { 4695 - "version": "16.0.0", 4696 - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-16.0.0.tgz", 4697 - "integrity": "sha512-CYlHO3MK1CNfuCkRyLxXB9pKj2nx4yomH92DilhwDW+Et4rQ/8279RgmEh5nFNf7BgvIvYPE+3hVErGbVytS5Q==", 4698 - "dependencies": { 4699 - "@ipld/dag-pb": "^3.0.0", 4700 - "bytes": "^3.1.0", 4701 - "cborg": "^1.3.4", 4702 - "datastore-core": "^8.0.1", 4703 - "debug": "^4.1.0", 4704 - "err-code": "^3.0.1", 4705 - "interface-blockstore": "^3.0.0", 4706 - "interface-datastore": "^7.0.0", 4707 - "ipfs-repo-migrations": "^14.0.0", 4708 - "it-drain": "^2.0.0", 4709 - "it-filter": "^2.0.0", 4710 - "it-first": "^2.0.0", 4711 - "it-map": "^2.0.0", 4712 - "it-merge": "^2.0.0", 4713 - "it-parallel-batch": "^2.0.0", 4714 - "it-pipe": "^2.0.4", 4715 - "it-pushable": "^3.1.0", 4716 - "just-safe-get": "^4.1.1", 4717 - "just-safe-set": "^4.1.1", 4718 - "merge-options": "^3.0.4", 4719 - "mortice": "^3.0.0", 4720 - "multiformats": "^10.0.1", 4721 - "p-queue": "^7.3.0", 4722 - "proper-lockfile": "^4.0.0", 4723 - "quick-lru": "^6.1.1", 4724 - "sort-keys": "^5.0.0", 4725 - "uint8arrays": "^4.0.2" 4726 - }, 4727 - "engines": { 4728 - "node": ">=16.0.0", 4729 - "npm": ">=7.0.0" 4730 - } 4731 - }, 4732 - "node_modules/ipfs-repo-migrations": { 4733 - "version": "14.0.1", 4734 - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-14.0.1.tgz", 4735 - "integrity": "sha512-wE22g05hzxegCWMhNj7deagCLsKPcNf8KmK1QN4WMob0kuZ4kDxCg7fusM68tGrOnhE+Ll/AVHseFlzmoU/ZbQ==", 4736 - "dependencies": { 4737 - "@ipld/dag-pb": "^3.0.0", 4738 - "@multiformats/multiaddr": "^11.0.0", 4739 - "cborg": "^1.3.4", 4740 - "datastore-core": "^8.0.1", 4741 - "debug": "^4.1.0", 4742 - "fnv1a": "^1.0.1", 4743 - "interface-blockstore": "^3.0.0", 4744 - "interface-datastore": "^7.0.0", 4745 - "it-length": "^2.0.0", 4746 - "multiformats": "^10.0.1", 4747 - "protobufjs": "^7.0.0", 4748 - "uint8arrays": "^4.0.2", 4749 - "varint": "^6.0.0" 4750 - }, 4751 - "engines": { 4752 - "node": ">=16.0.0", 4753 - "npm": ">=7.0.0" 4754 - } 4755 - }, 4756 - "node_modules/ipfs-repo-migrations/node_modules/multiformats": { 4757 - "version": "10.0.3", 4758 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 4759 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 4760 - "engines": { 4761 - "node": ">=16.0.0", 4762 - "npm": ">=7.0.0" 4763 - } 4764 - }, 4765 - "node_modules/ipfs-repo/node_modules/it-drain": { 4766 - "version": "2.0.1", 4767 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", 4768 - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==", 4769 - "engines": { 4770 - "node": ">=16.0.0", 4771 - "npm": ">=7.0.0" 4772 - } 4773 - }, 4774 - "node_modules/ipfs-repo/node_modules/it-filter": { 4775 - "version": "2.0.2", 4776 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", 4777 - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==", 4778 - "engines": { 4779 - "node": ">=16.0.0", 4780 - "npm": ">=7.0.0" 4781 - } 4782 - }, 4783 - "node_modules/ipfs-repo/node_modules/multiformats": { 4784 - "version": "10.0.3", 4785 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 4786 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", 4787 - "engines": { 4788 - "node": ">=16.0.0", 4789 - "npm": ">=7.0.0" 4790 - } 4791 - }, 4792 - "node_modules/ipfs-repo/node_modules/quick-lru": { 4793 - "version": "6.1.1", 4794 - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", 4795 - "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==", 4796 - "engines": { 4797 - "node": ">=12" 4798 - }, 4799 - "funding": { 4800 - "url": "https://github.com/sponsors/sindresorhus" 4801 - } 4802 - }, 4803 - "node_modules/ipfs-unixfs": { 4804 - "version": "8.0.0", 4805 - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-8.0.0.tgz", 4806 - "integrity": "sha512-PAHtfyjiFs2PZBbeft5QRyXpVOvZ2zsGqID+zVRla7fjC1zRTqJkrGY9h6dF03ldGv/mSmFlNZh479qPC6aZKg==", 4807 - "dependencies": { 4808 - "err-code": "^3.0.1", 4809 - "protobufjs": "^7.0.0" 4810 - }, 4811 - "engines": { 4812 - "node": ">=16.0.0", 4813 - "npm": ">=7.0.0" 4814 - } 4815 - }, 4816 3882 "node_modules/is-arguments": { 4817 3883 "version": "1.1.1", 4818 3884 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", ··· 4839 3905 }, 4840 3906 "engines": { 4841 3907 "node": ">=8" 4842 - } 4843 - }, 4844 - "node_modules/is-buffer": { 4845 - "version": "2.0.5", 4846 - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", 4847 - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", 4848 - "funding": [ 4849 - { 4850 - "type": "github", 4851 - "url": "https://github.com/sponsors/feross" 4852 - }, 4853 - { 4854 - "type": "patreon", 4855 - "url": "https://www.patreon.com/feross" 4856 - }, 4857 - { 4858 - "type": "consulting", 4859 - "url": "https://feross.org/support" 4860 - } 4861 - ], 4862 - "engines": { 4863 - "node": ">=4" 4864 3908 } 4865 3909 }, 4866 3910 "node_modules/is-callable": { ··· 4988 4032 "node": ">=8" 4989 4033 } 4990 4034 }, 4991 - "node_modules/is-plain-obj": { 4992 - "version": "2.1.0", 4993 - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 4994 - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", 4995 - "engines": { 4996 - "node": ">=8" 4997 - } 4998 - }, 4999 4035 "node_modules/is-port-reachable": { 5000 4036 "version": "4.0.0", 5001 4037 "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", ··· 5070 4106 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 5071 4107 "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 5072 4108 }, 5073 - "node_modules/it-all": { 5074 - "version": "1.0.6", 5075 - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", 5076 - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" 5077 - }, 5078 - "node_modules/it-batch": { 5079 - "version": "2.0.1", 5080 - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-2.0.1.tgz", 5081 - "integrity": "sha512-2gWFuPzamh9Dh3pW+OKjc7UwJ41W4Eu2AinVAfXDMfrC5gXfm3b1TF+1UzsygBUgKBugnxnGP+/fFRyn+9y1mQ==", 5082 - "engines": { 5083 - "node": ">=16.0.0", 5084 - "npm": ">=7.0.0" 5085 - } 5086 - }, 5087 - "node_modules/it-drain": { 5088 - "version": "1.0.5", 5089 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", 5090 - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" 5091 - }, 5092 - "node_modules/it-filter": { 5093 - "version": "1.0.3", 5094 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", 5095 - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" 5096 - }, 5097 - "node_modules/it-first": { 5098 - "version": "2.0.1", 5099 - "resolved": "https://registry.npmjs.org/it-first/-/it-first-2.0.1.tgz", 5100 - "integrity": "sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw==", 5101 - "engines": { 5102 - "node": ">=16.0.0", 5103 - "npm": ">=7.0.0" 5104 - } 5105 - }, 5106 - "node_modules/it-length": { 5107 - "version": "2.0.1", 5108 - "resolved": "https://registry.npmjs.org/it-length/-/it-length-2.0.1.tgz", 5109 - "integrity": "sha512-BynaPOK4UwcQX2Z+kqsQygXUNW9NZswfTnscfP7MLhFvVhRYbYJv8XH+09/Qwf8ktk65QdsGoVnDmQUCUGCyvg==", 5110 - "engines": { 5111 - "node": ">=16.0.0", 5112 - "npm": ">=7.0.0" 5113 - } 5114 - }, 5115 - "node_modules/it-map": { 5116 - "version": "2.0.1", 5117 - "resolved": "https://registry.npmjs.org/it-map/-/it-map-2.0.1.tgz", 5118 - "integrity": "sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ==", 5119 - "engines": { 5120 - "node": ">=16.0.0", 5121 - "npm": ">=7.0.0" 5122 - } 5123 - }, 5124 - "node_modules/it-merge": { 5125 - "version": "2.0.1", 5126 - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-2.0.1.tgz", 5127 - "integrity": "sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw==", 5128 - "dependencies": { 5129 - "it-pushable": "^3.1.0" 5130 - }, 5131 - "engines": { 5132 - "node": ">=16.0.0", 5133 - "npm": ">=7.0.0" 5134 - } 5135 - }, 5136 - "node_modules/it-parallel-batch": { 5137 - "version": "2.0.1", 5138 - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-2.0.1.tgz", 5139 - "integrity": "sha512-tXh567/JfDGJ90Zi//H9HkL7kY27ARp0jf2vu2jUI6PUVBWfsoT+gC4eT41/b4+wkJXSGgT8ZHnivAOlMfcNjA==", 5140 - "dependencies": { 5141 - "it-batch": "^2.0.0" 5142 - }, 5143 - "engines": { 5144 - "node": ">=16.0.0", 5145 - "npm": ">=7.0.0" 5146 - } 5147 - }, 5148 - "node_modules/it-pipe": { 5149 - "version": "2.0.5", 5150 - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.5.tgz", 5151 - "integrity": "sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw==", 5152 - "dependencies": { 5153 - "it-merge": "^2.0.0", 5154 - "it-pushable": "^3.1.0", 5155 - "it-stream-types": "^1.0.3" 5156 - }, 5157 - "engines": { 5158 - "node": ">=16.0.0", 5159 - "npm": ">=7.0.0" 5160 - } 5161 - }, 5162 - "node_modules/it-pushable": { 5163 - "version": "3.1.3", 5164 - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.3.tgz", 5165 - "integrity": "sha512-f50iQ85HISS6DaWCyrqf9QJ6G/kQtKIMf9xZkgZgyOvxEQDfn8OfYcLXXquCqgoLboxQtAW1ZFZyFIAsLHDtJw==", 5166 - "engines": { 5167 - "node": ">=16.0.0", 5168 - "npm": ">=7.0.0" 5169 - } 5170 - }, 5171 - "node_modules/it-sort": { 5172 - "version": "2.0.1", 5173 - "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-2.0.1.tgz", 5174 - "integrity": "sha512-9f4jKOTHfxc/FJpg/wwuQ+j+88i+sfNGKsu2HukAKymm71/XDnBFtOAOzaimko3YIhmn/ERwnfEKrsYLykxw9A==", 5175 - "dependencies": { 5176 - "it-all": "^2.0.0" 5177 - }, 5178 - "engines": { 5179 - "node": ">=16.0.0", 5180 - "npm": ">=7.0.0" 5181 - } 5182 - }, 5183 - "node_modules/it-sort/node_modules/it-all": { 5184 - "version": "2.0.1", 5185 - "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.1.tgz", 5186 - "integrity": "sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==", 5187 - "engines": { 5188 - "node": ">=16.0.0", 5189 - "npm": ">=7.0.0" 5190 - } 5191 - }, 5192 - "node_modules/it-stream-types": { 5193 - "version": "1.0.5", 5194 - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.5.tgz", 5195 - "integrity": "sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==", 5196 - "engines": { 5197 - "node": ">=16.0.0", 5198 - "npm": ">=7.0.0" 5199 - } 5200 - }, 5201 - "node_modules/it-take": { 5202 - "version": "1.0.2", 5203 - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", 5204 - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" 5205 - }, 5206 4109 "node_modules/jackspeak": { 5207 4110 "version": "2.2.1", 5208 4111 "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", ··· 5346 4249 "url": "https://opencollective.com/node-fetch" 5347 4250 } 5348 4251 }, 5349 - "node_modules/just-safe-get": { 5350 - "version": "4.2.0", 5351 - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-4.2.0.tgz", 5352 - "integrity": "sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA==" 5353 - }, 5354 - "node_modules/just-safe-set": { 5355 - "version": "4.2.1", 5356 - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-4.2.1.tgz", 5357 - "integrity": "sha512-La5CP41Ycv52+E4g7w1sRV8XXk7Sp8a/TwWQAYQKn6RsQz1FD4Z/rDRRmqV3wJznS1MDF3YxK7BCudX1J8FxLg==" 5358 - }, 5359 - "node_modules/keystore-idb": { 5360 - "version": "0.15.5", 5361 - "resolved": "https://registry.npmjs.org/keystore-idb/-/keystore-idb-0.15.5.tgz", 5362 - "integrity": "sha512-7bcUAnY5iD0+N75odQVTCs8mhXBW+yLt9/HH8+VUrl44FGllpAhu7q3/w9QpNMHxLQv3OXs1fsA042CAviN79Q==", 5363 - "dependencies": { 5364 - "localforage": "^1.10.0", 5365 - "one-webcrypto": "^1.0.3", 5366 - "uint8arrays": "^3.0.0" 5367 - }, 5368 - "engines": { 5369 - "node": ">=10.21.0" 5370 - } 5371 - }, 5372 - "node_modules/keystore-idb/node_modules/multiformats": { 5373 - "version": "9.9.0", 5374 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 5375 - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 5376 - }, 5377 - "node_modules/keystore-idb/node_modules/uint8arrays": { 5378 - "version": "3.1.1", 5379 - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", 5380 - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", 5381 - "dependencies": { 5382 - "multiformats": "^9.4.2" 5383 - } 5384 - }, 5385 4252 "node_modules/keyv": { 5386 4253 "version": "4.5.2", 5387 4254 "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", ··· 5400 4267 "node": ">=6" 5401 4268 } 5402 4269 }, 5403 - "node_modules/level": { 5404 - "version": "8.0.0", 5405 - "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", 5406 - "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", 5407 - "dependencies": { 5408 - "browser-level": "^1.0.1", 5409 - "classic-level": "^1.2.0" 5410 - }, 5411 - "engines": { 5412 - "node": ">=12" 5413 - }, 5414 - "funding": { 5415 - "type": "opencollective", 5416 - "url": "https://opencollective.com/level" 5417 - } 5418 - }, 5419 - "node_modules/level-supports": { 5420 - "version": "4.0.1", 5421 - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", 5422 - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", 5423 - "engines": { 5424 - "node": ">=12" 5425 - } 5426 - }, 5427 - "node_modules/level-transcoder": { 5428 - "version": "1.0.1", 5429 - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", 5430 - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", 5431 - "dependencies": { 5432 - "buffer": "^6.0.3", 5433 - "module-error": "^1.0.1" 5434 - }, 5435 - "engines": { 5436 - "node": ">=12" 5437 - } 5438 - }, 5439 4270 "node_modules/levn": { 5440 4271 "version": "0.4.1", 5441 4272 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", ··· 5522 4353 "node_modules/lodash": { 5523 4354 "version": "4.17.21", 5524 4355 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 5525 - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 5526 - }, 5527 - "node_modules/lodash.eq": { 5528 - "version": "4.0.0", 5529 - "resolved": "https://registry.npmjs.org/lodash.eq/-/lodash.eq-4.0.0.tgz", 5530 - "integrity": "sha512-vbrJpXL6kQNG6TkInxX12DZRfuYVllSxhwYqjYB78g2zF3UI15nFO/0AgmZnZRnaQ38sZtjCiVjGr2rnKt4v0g==" 5531 - }, 5532 - "node_modules/lodash.indexof": { 5533 - "version": "4.0.5", 5534 - "resolved": "https://registry.npmjs.org/lodash.indexof/-/lodash.indexof-4.0.5.tgz", 5535 - "integrity": "sha512-t9wLWMQsawdVmf6/IcAgVGqAJkNzYVcn4BHYZKTPW//l7N5Oq7Bq138BaVk19agcsPZePcidSgTTw4NqS1nUAw==" 4356 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 4357 + "dev": true 5536 4358 }, 5537 4359 "node_modules/lodash.merge": { 5538 4360 "version": "4.6.2", ··· 5555 4377 "funding": { 5556 4378 "url": "https://github.com/sponsors/sindresorhus" 5557 4379 } 5558 - }, 5559 - "node_modules/long": { 5560 - "version": "5.2.3", 5561 - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", 5562 - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" 5563 4380 }, 5564 4381 "node_modules/lowercase-keys": { 5565 4382 "version": "2.0.0", ··· 5609 4426 "node": ">=18.0.0" 5610 4427 } 5611 4428 }, 5612 - "node_modules/merge-options": { 5613 - "version": "3.0.4", 5614 - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", 5615 - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", 5616 - "dependencies": { 5617 - "is-plain-obj": "^2.1.0" 5618 - }, 5619 - "engines": { 5620 - "node": ">=10" 5621 - } 5622 - }, 5623 4429 "node_modules/merge-stream": { 5624 4430 "version": "2.0.0", 5625 4431 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", ··· 5711 4517 "node": ">=16 || 14 >=14.17" 5712 4518 } 5713 4519 }, 5714 - "node_modules/module-error": { 5715 - "version": "1.0.2", 5716 - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", 5717 - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", 5718 - "engines": { 5719 - "node": ">=10" 5720 - } 5721 - }, 5722 - "node_modules/mortice": { 5723 - "version": "3.0.1", 5724 - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", 5725 - "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", 5726 - "dependencies": { 5727 - "nanoid": "^4.0.0", 5728 - "observable-webworkers": "^2.0.1", 5729 - "p-queue": "^7.2.0", 5730 - "p-timeout": "^6.0.0" 5731 - }, 5732 - "engines": { 5733 - "node": ">=16.0.0", 5734 - "npm": ">=7.0.0" 5735 - } 5736 - }, 5737 - "node_modules/mortice/node_modules/nanoid": { 5738 - "version": "4.0.2", 5739 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", 5740 - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", 5741 - "funding": [ 5742 - { 5743 - "type": "github", 5744 - "url": "https://github.com/sponsors/ai" 5745 - } 5746 - ], 5747 - "bin": { 5748 - "nanoid": "bin/nanoid.js" 5749 - }, 5750 - "engines": { 5751 - "node": "^14 || ^16 || >=18" 5752 - } 5753 - }, 5754 4520 "node_modules/ms": { 5755 4521 "version": "2.1.2", 5756 4522 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 5757 4523 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 5758 - }, 5759 - "node_modules/multiformats": { 5760 - "version": "11.0.2", 5761 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", 5762 - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", 5763 - "engines": { 5764 - "node": ">=16.0.0", 5765 - "npm": ">=7.0.0" 5766 - } 5767 4524 }, 5768 4525 "node_modules/music-metadata": { 5769 4526 "version": "8.3.0", ··· 5843 4600 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 5844 4601 } 5845 4602 }, 5846 - "node_modules/napi-macros": { 5847 - "version": "2.2.2", 5848 - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", 5849 - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==" 5850 - }, 5851 - "node_modules/native-fetch": { 5852 - "version": "4.0.2", 5853 - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", 5854 - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", 5855 - "peerDependencies": { 5856 - "undici": "*" 5857 - } 5858 - }, 5859 4603 "node_modules/natural-compare": { 5860 4604 "version": "1.4.0", 5861 4605 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", ··· 5906 4650 "encoding": { 5907 4651 "optional": true 5908 4652 } 5909 - } 5910 - }, 5911 - "node_modules/node-gyp-build": { 5912 - "version": "4.6.0", 5913 - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", 5914 - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", 5915 - "bin": { 5916 - "node-gyp-build": "bin.js", 5917 - "node-gyp-build-optional": "optional.js", 5918 - "node-gyp-build-test": "build-test.js" 5919 4653 } 5920 4654 }, 5921 4655 "node_modules/node-releases": { ··· 6026 4760 "url": "https://github.com/sponsors/ljharb" 6027 4761 } 6028 4762 }, 6029 - "node_modules/observable-webworkers": { 6030 - "version": "2.0.1", 6031 - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", 6032 - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", 6033 - "engines": { 6034 - "node": ">=16.0.0", 6035 - "npm": ">=7.0.0" 6036 - } 6037 - }, 6038 4763 "node_modules/on-headers": { 6039 4764 "version": "1.0.2", 6040 4765 "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", ··· 6051 4776 "dependencies": { 6052 4777 "wrappy": "1" 6053 4778 } 6054 - }, 6055 - "node_modules/one-webcrypto": { 6056 - "version": "1.0.3", 6057 - "resolved": "https://registry.npmjs.org/one-webcrypto/-/one-webcrypto-1.0.3.tgz", 6058 - "integrity": "sha512-fu9ywBVBPx0gS9K0etIROTiCkvI5S1TDjFsYFb3rC1ewFxeOqsbzq7aIMBHsYfrTHBcGXJaONXXjTl8B01cW1Q==" 6059 4779 }, 6060 4780 "node_modules/onetime": { 6061 4781 "version": "5.1.2", ··· 6153 4873 "node": ">=8" 6154 4874 } 6155 4875 }, 6156 - "node_modules/p-queue": { 6157 - "version": "7.3.4", 6158 - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.4.tgz", 6159 - "integrity": "sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==", 6160 - "dependencies": { 6161 - "eventemitter3": "^4.0.7", 6162 - "p-timeout": "^5.0.2" 6163 - }, 6164 - "engines": { 6165 - "node": ">=12" 6166 - }, 6167 - "funding": { 6168 - "url": "https://github.com/sponsors/sindresorhus" 6169 - } 6170 - }, 6171 - "node_modules/p-queue/node_modules/p-timeout": { 6172 - "version": "5.1.0", 6173 - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", 6174 - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", 6175 - "engines": { 6176 - "node": ">=12" 6177 - }, 6178 - "funding": { 6179 - "url": "https://github.com/sponsors/sindresorhus" 6180 - } 6181 - }, 6182 - "node_modules/p-timeout": { 6183 - "version": "6.1.1", 6184 - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.1.tgz", 6185 - "integrity": "sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==", 6186 - "engines": { 6187 - "node": ">=14.16" 6188 - }, 6189 - "funding": { 6190 - "url": "https://github.com/sponsors/sindresorhus" 6191 - } 6192 - }, 6193 4876 "node_modules/p-try": { 6194 4877 "version": "2.2.0", 6195 4878 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", ··· 6540 5223 "node": ">= 6" 6541 5224 } 6542 5225 }, 6543 - "node_modules/proper-lockfile": { 6544 - "version": "4.1.2", 6545 - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", 6546 - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", 6547 - "dependencies": { 6548 - "graceful-fs": "^4.2.4", 6549 - "retry": "^0.12.0", 6550 - "signal-exit": "^3.0.2" 6551 - } 6552 - }, 6553 - "node_modules/protobufjs": { 6554 - "version": "7.2.3", 6555 - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", 6556 - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", 6557 - "hasInstallScript": true, 6558 - "dependencies": { 6559 - "@protobufjs/aspromise": "^1.1.2", 6560 - "@protobufjs/base64": "^1.1.2", 6561 - "@protobufjs/codegen": "^2.0.4", 6562 - "@protobufjs/eventemitter": "^1.1.0", 6563 - "@protobufjs/fetch": "^1.1.0", 6564 - "@protobufjs/float": "^1.0.2", 6565 - "@protobufjs/inquire": "^1.1.0", 6566 - "@protobufjs/path": "^1.1.2", 6567 - "@protobufjs/pool": "^1.1.0", 6568 - "@protobufjs/utf8": "^1.1.0", 6569 - "@types/node": ">=13.7.0", 6570 - "long": "^5.0.0" 6571 - }, 6572 - "engines": { 6573 - "node": ">=12.0.0" 6574 - } 6575 - }, 6576 5226 "node_modules/pump": { 6577 5227 "version": "3.0.0", 6578 5228 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", ··· 6595 5245 "version": "1.2.3", 6596 5246 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 6597 5247 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 5248 + "dev": true, 6598 5249 "funding": [ 6599 5250 { 6600 5251 "type": "github", ··· 6716 5367 "node": ">=8.10.0" 6717 5368 } 6718 5369 }, 6719 - "node_modules/receptacle": { 6720 - "version": "1.3.2", 6721 - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", 6722 - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", 6723 - "dependencies": { 6724 - "ms": "^2.1.1" 6725 - } 6726 - }, 6727 - "node_modules/reflect-metadata": { 6728 - "version": "0.1.13", 6729 - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 6730 - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" 6731 - }, 6732 5370 "node_modules/registry-auth-token": { 6733 5371 "version": "3.3.2", 6734 5372 "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", ··· 6843 5481 "node": ">=8" 6844 5482 } 6845 5483 }, 6846 - "node_modules/retry": { 6847 - "version": "0.12.0", 6848 - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", 6849 - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", 6850 - "engines": { 6851 - "node": ">= 4" 6852 - } 6853 - }, 6854 5484 "node_modules/reusify": { 6855 5485 "version": "1.0.4", 6856 5486 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", ··· 6899 5529 "queue-microtask": "^1.2.2" 6900 5530 } 6901 5531 }, 6902 - "node_modules/run-parallel-limit": { 6903 - "version": "1.1.0", 6904 - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", 6905 - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", 6906 - "funding": [ 6907 - { 6908 - "type": "github", 6909 - "url": "https://github.com/sponsors/feross" 6910 - }, 6911 - { 6912 - "type": "patreon", 6913 - "url": "https://www.patreon.com/feross" 6914 - }, 6915 - { 6916 - "type": "consulting", 6917 - "url": "https://feross.org/support" 6918 - } 6919 - ], 6920 - "dependencies": { 6921 - "queue-microtask": "^1.2.2" 6922 - } 6923 - }, 6924 5532 "node_modules/safe-buffer": { 6925 5533 "version": "5.2.1", 6926 5534 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ··· 6939 5547 "url": "https://feross.org/support" 6940 5548 } 6941 5549 ] 6942 - }, 6943 - "node_modules/seedrandom": { 6944 - "version": "3.0.5", 6945 - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", 6946 - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" 6947 5550 }, 6948 5551 "node_modules/semver": { 6949 5552 "version": "7.5.4", ··· 7118 5721 "node": ">=8" 7119 5722 } 7120 5723 }, 7121 - "node_modules/sort-keys": { 7122 - "version": "5.0.0", 7123 - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.0.0.tgz", 7124 - "integrity": "sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==", 7125 - "dependencies": { 7126 - "is-plain-obj": "^4.0.0" 7127 - }, 7128 - "engines": { 7129 - "node": ">=12" 7130 - }, 7131 - "funding": { 7132 - "url": "https://github.com/sponsors/sindresorhus" 7133 - } 7134 - }, 7135 - "node_modules/sort-keys/node_modules/is-plain-obj": { 7136 - "version": "4.1.0", 7137 - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", 7138 - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", 7139 - "engines": { 7140 - "node": ">=12" 7141 - }, 7142 - "funding": { 7143 - "url": "https://github.com/sponsors/sindresorhus" 7144 - } 7145 - }, 7146 5724 "node_modules/source-map-js": { 7147 5725 "version": "1.0.2", 7148 5726 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", ··· 7153 5731 } 7154 5732 }, 7155 5733 "node_modules/stream": { 7156 - "version": "0.0.2", 7157 - "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", 7158 - "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", 5734 + "version": "0.0.3", 5735 + "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.3.tgz", 5736 + "integrity": "sha512-aMsbn7VKrl4A2T7QAQQbzgN7NVc70vgF5INQrBXqn4dCXN1zy3L9HGgLO5s7PExmdrzTJ8uR/27aviW8or8/+A==", 7159 5737 "dev": true, 7160 5738 "dependencies": { 7161 - "emitter-component": "^1.1.1" 7162 - } 7163 - }, 7164 - "node_modules/streamsearch": { 7165 - "version": "1.1.0", 7166 - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 7167 - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 7168 - "engines": { 7169 - "node": ">=10.0.0" 5739 + "component-emitter": "^2.0.0" 7170 5740 } 7171 5741 }, 7172 5742 "node_modules/string_decoder": { ··· 7556 6126 "node": ">= 0.8.0" 7557 6127 } 7558 6128 }, 7559 - "node_modules/tweetnacl": { 7560 - "version": "1.0.3", 7561 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 7562 - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" 7563 - }, 7564 6129 "node_modules/type-check": { 7565 6130 "version": "0.4.0", 7566 6131 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", ··· 7599 6164 "node": ">=14.17" 7600 6165 } 7601 6166 }, 7602 - "node_modules/uint8arraylist": { 7603 - "version": "2.4.3", 7604 - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", 7605 - "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", 7606 - "dependencies": { 7607 - "uint8arrays": "^4.0.2" 7608 - }, 7609 - "engines": { 7610 - "node": ">=16.0.0", 7611 - "npm": ">=7.0.0" 7612 - } 7613 - }, 7614 6167 "node_modules/uint8arrays": { 7615 6168 "version": "4.0.10", 7616 6169 "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", ··· 7626 6179 "engines": { 7627 6180 "node": ">=16.0.0", 7628 6181 "npm": ">=7.0.0" 7629 - } 7630 - }, 7631 - "node_modules/undici": { 7632 - "version": "5.22.0", 7633 - "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.0.tgz", 7634 - "integrity": "sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==", 7635 - "dependencies": { 7636 - "busboy": "^1.6.0" 7637 - }, 7638 - "engines": { 7639 - "node": ">=14.0" 7640 6182 } 7641 6183 }, 7642 6184 "node_modules/universalify": { ··· 7712 6254 "version": "1.0.2", 7713 6255 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 7714 6256 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 7715 - }, 7716 - "node_modules/varint": { 7717 - "version": "6.0.0", 7718 - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", 7719 - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" 7720 6257 }, 7721 6258 "node_modules/vary": { 7722 6259 "version": "1.1.2", ··· 7860 6397 "url": "https://github.com/chalk/strip-ansi?sponsor=1" 7861 6398 } 7862 6399 }, 7863 - "node_modules/wnfs": { 7864 - "version": "0.1.7", 7865 - "resolved": "https://registry.npmjs.org/wnfs/-/wnfs-0.1.7.tgz", 7866 - "integrity": "sha512-WTadILZSNX7Ti+jy1QgqGtWp0pLHvPAG+ERsNWge2DuR8P8x+U/CM9QjYqJb7wqBkbSoboZgeBspetybIzNQgw==" 7867 - }, 7868 6400 "node_modules/wrap-ansi": { 7869 6401 "version": "6.2.0", 7870 6402 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", ··· 7921 6453 "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", 7922 6454 "engines": { 7923 6455 "node": ">= 6" 7924 - } 7925 - }, 7926 - "node_modules/xxhashjs": { 7927 - "version": "0.2.2", 7928 - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", 7929 - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", 7930 - "dependencies": { 7931 - "cuint": "^0.2.2" 7932 6456 } 7933 6457 }, 7934 6458 "node_modules/y18n": { ··· 8050 6574 "dev": true, 8051 6575 "optional": true 8052 6576 }, 8053 - "@chainsafe/is-ip": { 8054 - "version": "2.0.1", 8055 - "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", 8056 - "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" 8057 - }, 8058 - "@chainsafe/netmask": { 8059 - "version": "2.0.0", 8060 - "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", 8061 - "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", 8062 - "requires": { 8063 - "@chainsafe/is-ip": "^2.0.1" 8064 - } 8065 - }, 8066 6577 "@csstools/cascade-layer-name-parser": { 8067 6578 "version": "1.0.7", 8068 6579 "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.7.tgz", ··· 8333 6844 "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", 8334 6845 "dev": true 8335 6846 }, 8336 - "@ipld/dag-cbor": { 8337 - "version": "8.0.1", 8338 - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz", 8339 - "integrity": "sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA==", 8340 - "requires": { 8341 - "cborg": "^1.6.0", 8342 - "multiformats": "^11.0.0" 8343 - } 8344 - }, 8345 - "@ipld/dag-pb": { 8346 - "version": "3.0.2", 8347 - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-3.0.2.tgz", 8348 - "integrity": "sha512-ge+llKU/CNc6rX5ZcUhCrPXJjKjN1DsolDOJ99zOsousGOhepoIgvT01iAP8s7QN9QFciOE+a1jHdccs+CyhBA==", 8349 - "requires": { 8350 - "multiformats": "^11.0.0" 8351 - } 8352 - }, 8353 6847 "@isaacs/cliui": { 8354 6848 "version": "8.0.2", 8355 6849 "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", ··· 8462 6956 } 8463 6957 } 8464 6958 }, 8465 - "@libp2p/interface-connection": { 8466 - "version": "4.0.0", 8467 - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", 8468 - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", 8469 - "requires": { 8470 - "@libp2p/interface-peer-id": "^2.0.0", 8471 - "@libp2p/interfaces": "^3.0.0", 8472 - "@multiformats/multiaddr": "^12.0.0", 8473 - "it-stream-types": "^1.0.4", 8474 - "uint8arraylist": "^2.1.2" 8475 - }, 8476 - "dependencies": { 8477 - "@libp2p/interface-peer-id": { 8478 - "version": "2.0.1", 8479 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 8480 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 8481 - "requires": { 8482 - "multiformats": "^11.0.0" 8483 - } 8484 - }, 8485 - "@multiformats/multiaddr": { 8486 - "version": "12.1.2", 8487 - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.2.tgz", 8488 - "integrity": "sha512-EYYUEAddjWoyig5Dcu+JGq2JdpEpT2tW/K4sefdDWVSQW+rfnABfz1rx/KnrituB20jC8aPBcT62kISTZ3oL5A==", 8489 - "requires": { 8490 - "@chainsafe/is-ip": "^2.0.1", 8491 - "@chainsafe/netmask": "^2.0.0", 8492 - "@libp2p/interfaces": "^3.3.1", 8493 - "dns-over-http-resolver": "^2.1.0", 8494 - "multiformats": "^11.0.0", 8495 - "uint8arrays": "^4.0.2", 8496 - "varint": "^6.0.0" 8497 - } 8498 - } 8499 - } 8500 - }, 8501 - "@libp2p/interface-keychain": { 8502 - "version": "1.0.8", 8503 - "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-1.0.8.tgz", 8504 - "integrity": "sha512-JqI7mMthIafP8cGhhsmIs/M0Ey+ivHLcpzqbVVzMFiFVi1dC03R7EHlalcaPn8yaLSvlmI0MqjC8lJYuvlFjfw==", 8505 - "requires": { 8506 - "multiformats": "^10.0.0" 8507 - }, 8508 - "dependencies": { 8509 - "multiformats": { 8510 - "version": "10.0.3", 8511 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 8512 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 8513 - } 8514 - } 8515 - }, 8516 - "@libp2p/interface-keys": { 8517 - "version": "1.0.7", 8518 - "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.7.tgz", 8519 - "integrity": "sha512-DRMPY9LfcnGJKrjaqIkY62U3fW2dya3VLy4x986ExtMrGn4kxIHeQ1IKk8/Vs9CJHTKmXEMID4of1Cjnw4aJpA==" 8520 - }, 8521 - "@libp2p/interface-peer-id": { 8522 - "version": "1.1.2", 8523 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", 8524 - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", 8525 - "requires": { 8526 - "multiformats": "^10.0.0" 8527 - }, 8528 - "dependencies": { 8529 - "multiformats": { 8530 - "version": "10.0.3", 8531 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 8532 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 8533 - } 8534 - } 8535 - }, 8536 - "@libp2p/interface-peer-info": { 8537 - "version": "1.0.9", 8538 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.9.tgz", 8539 - "integrity": "sha512-XewuwXMVYMcwaxhH9PFVfsFNEXi2OEe9TgkBwvZbbtwTI2Cz6zvKS1tT4f+ATCXjQbN840Nhe6ETPQ4TfhThOQ==", 8540 - "requires": { 8541 - "@libp2p/interface-peer-id": "^2.0.0", 8542 - "@multiformats/multiaddr": "^12.0.0" 8543 - }, 8544 - "dependencies": { 8545 - "@libp2p/interface-peer-id": { 8546 - "version": "2.0.1", 8547 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 8548 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 8549 - "requires": { 8550 - "multiformats": "^11.0.0" 8551 - } 8552 - }, 8553 - "@multiformats/multiaddr": { 8554 - "version": "12.1.2", 8555 - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.2.tgz", 8556 - "integrity": "sha512-EYYUEAddjWoyig5Dcu+JGq2JdpEpT2tW/K4sefdDWVSQW+rfnABfz1rx/KnrituB20jC8aPBcT62kISTZ3oL5A==", 8557 - "requires": { 8558 - "@chainsafe/is-ip": "^2.0.1", 8559 - "@chainsafe/netmask": "^2.0.0", 8560 - "@libp2p/interfaces": "^3.3.1", 8561 - "dns-over-http-resolver": "^2.1.0", 8562 - "multiformats": "^11.0.0", 8563 - "uint8arrays": "^4.0.2", 8564 - "varint": "^6.0.0" 8565 - } 8566 - } 8567 - } 8568 - }, 8569 - "@libp2p/interface-pubsub": { 8570 - "version": "3.0.7", 8571 - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-3.0.7.tgz", 8572 - "integrity": "sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA==", 8573 - "requires": { 8574 - "@libp2p/interface-connection": "^4.0.0", 8575 - "@libp2p/interface-peer-id": "^2.0.0", 8576 - "@libp2p/interfaces": "^3.0.0", 8577 - "it-pushable": "^3.0.0", 8578 - "uint8arraylist": "^2.1.2" 8579 - }, 8580 - "dependencies": { 8581 - "@libp2p/interface-peer-id": { 8582 - "version": "2.0.1", 8583 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 8584 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 8585 - "requires": { 8586 - "multiformats": "^11.0.0" 8587 - } 8588 - } 8589 - } 8590 - }, 8591 - "@libp2p/interfaces": { 8592 - "version": "3.3.1", 8593 - "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.3.1.tgz", 8594 - "integrity": "sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg==" 8595 - }, 8596 - "@libp2p/logger": { 8597 - "version": "2.0.7", 8598 - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.7.tgz", 8599 - "integrity": "sha512-Zp9C9lMNGfVFTMVc7NvxuxMvIE6gyxDapQc/TqZH02IuIDl1JpZyCgNILr0APd8wcUxwvwRXYNf3kQ0Lmz7tuQ==", 8600 - "requires": { 8601 - "@libp2p/interface-peer-id": "^2.0.0", 8602 - "debug": "^4.3.3", 8603 - "interface-datastore": "^8.0.0", 8604 - "multiformats": "^11.0.0" 8605 - }, 8606 - "dependencies": { 8607 - "@libp2p/interface-peer-id": { 8608 - "version": "2.0.1", 8609 - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", 8610 - "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", 8611 - "requires": { 8612 - "multiformats": "^11.0.0" 8613 - } 8614 - }, 8615 - "interface-datastore": { 8616 - "version": "8.2.0", 8617 - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.0.tgz", 8618 - "integrity": "sha512-rDMAcpCGxWMubRk2YQuSEHl11bc0xcZeBZzfLvqhoZJdByUWeo7YDJUdgyRKgD6liGXVYirtDkFU9nyn9xl2hg==", 8619 - "requires": { 8620 - "interface-store": "^5.0.0", 8621 - "nanoid": "^4.0.0", 8622 - "uint8arrays": "^4.0.2" 8623 - } 8624 - }, 8625 - "interface-store": { 8626 - "version": "5.1.0", 8627 - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.0.tgz", 8628 - "integrity": "sha512-mjUwX3XSoreoxCS3sXS3pSRsGnUjl9T06KBqt/T7AgE9Sgp4diH64ZyURJKnj2T5WmCvTbC0Dm+mwQV5hfLSBQ==" 8629 - }, 8630 - "nanoid": { 8631 - "version": "4.0.2", 8632 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", 8633 - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" 8634 - } 8635 - } 8636 - }, 8637 - "@libp2p/peer-id": { 8638 - "version": "1.1.18", 8639 - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.18.tgz", 8640 - "integrity": "sha512-Zh3gzbrQZKDMLpoJAJB8gdGtyYFSBKV0dU5vflQ18/7MJDJmjsgKO+sJTYi72yN5sWREs1eGKMhxLo+N1ust5w==", 8641 - "requires": { 8642 - "@libp2p/interface-peer-id": "^1.0.0", 8643 - "err-code": "^3.0.1", 8644 - "multiformats": "^10.0.0", 8645 - "uint8arrays": "^4.0.2" 8646 - }, 8647 - "dependencies": { 8648 - "multiformats": { 8649 - "version": "10.0.3", 8650 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 8651 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 8652 - } 8653 - } 8654 - }, 8655 - "@multiformats/multiaddr": { 8656 - "version": "11.6.1", 8657 - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.6.1.tgz", 8658 - "integrity": "sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw==", 8659 - "requires": { 8660 - "@chainsafe/is-ip": "^2.0.1", 8661 - "dns-over-http-resolver": "^2.1.0", 8662 - "err-code": "^3.0.1", 8663 - "multiformats": "^11.0.0", 8664 - "uint8arrays": "^4.0.2", 8665 - "varint": "^6.0.0" 8666 - } 8667 - }, 8668 6959 "@nodelib/fs.scandir": { 8669 6960 "version": "2.1.5", 8670 6961 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", ··· 8691 6982 "fastq": "^1.6.0" 8692 6983 } 8693 6984 }, 8694 - "@oddjs/odd": { 8695 - "version": "0.37.2", 8696 - "resolved": "https://registry.npmjs.org/@oddjs/odd/-/odd-0.37.2.tgz", 8697 - "integrity": "sha512-ot5cpfHCfq8r9AXAxNACgmSSjLjEm1PJj2AOGrmOFiG0jYgD530h9pZc7G0keNIQJNk6YbZxCOddk0XfiwU01A==", 8698 - "requires": { 8699 - "@ipld/dag-cbor": "^8.0.0", 8700 - "@ipld/dag-pb": "^3.0.1", 8701 - "@libp2p/interface-keys": "^1.0.4", 8702 - "@libp2p/peer-id": "^1.1.17", 8703 - "@multiformats/multiaddr": "^11.1.0", 8704 - "blockstore-core": "^2.0.2", 8705 - "blockstore-datastore-adapter": "^4.0.0", 8706 - "datastore-core": "^8.0.2", 8707 - "datastore-level": "^9.0.4", 8708 - "events": "^3.3.0", 8709 - "fission-bloom-filters": "1.7.1", 8710 - "ipfs-core-types": "0.13.0", 8711 - "ipfs-repo": "^16.0.0", 8712 - "keystore-idb": "^0.15.5", 8713 - "localforage": "^1.10.0", 8714 - "multiformats": "^10.0.2", 8715 - "one-webcrypto": "^1.0.3", 8716 - "throttle-debounce": "^3.0.1", 8717 - "tweetnacl": "^1.0.3", 8718 - "uint8arrays": "^3.0.0", 8719 - "wnfs": "0.1.7" 8720 - }, 8721 - "dependencies": { 8722 - "multiformats": { 8723 - "version": "10.0.3", 8724 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 8725 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 8726 - }, 8727 - "throttle-debounce": { 8728 - "version": "3.0.1", 8729 - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", 8730 - "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==" 8731 - }, 8732 - "uint8arrays": { 8733 - "version": "3.1.1", 8734 - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", 8735 - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", 8736 - "requires": { 8737 - "multiformats": "^9.4.2" 8738 - }, 8739 - "dependencies": { 8740 - "multiformats": { 8741 - "version": "9.9.0", 8742 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 8743 - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 8744 - } 8745 - } 8746 - } 8747 - } 8748 - }, 8749 6985 "@pkgjs/parseargs": { 8750 6986 "version": "0.11.0", 8751 6987 "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", ··· 8753 6989 "dev": true, 8754 6990 "optional": true 8755 6991 }, 8756 - "@protobufjs/aspromise": { 8757 - "version": "1.1.2", 8758 - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", 8759 - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" 8760 - }, 8761 - "@protobufjs/base64": { 8762 - "version": "1.1.2", 8763 - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", 8764 - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 8765 - }, 8766 - "@protobufjs/codegen": { 8767 - "version": "2.0.4", 8768 - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", 8769 - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 8770 - }, 8771 - "@protobufjs/eventemitter": { 8772 - "version": "1.1.0", 8773 - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", 8774 - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" 8775 - }, 8776 - "@protobufjs/fetch": { 8777 - "version": "1.1.0", 8778 - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", 8779 - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", 8780 - "requires": { 8781 - "@protobufjs/aspromise": "^1.1.1", 8782 - "@protobufjs/inquire": "^1.1.0" 8783 - } 8784 - }, 8785 - "@protobufjs/float": { 8786 - "version": "1.0.2", 8787 - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", 8788 - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" 8789 - }, 8790 - "@protobufjs/inquire": { 8791 - "version": "1.1.0", 8792 - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", 8793 - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" 8794 - }, 8795 - "@protobufjs/path": { 8796 - "version": "1.1.2", 8797 - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", 8798 - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" 8799 - }, 8800 - "@protobufjs/pool": { 8801 - "version": "1.1.0", 8802 - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", 8803 - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" 8804 - }, 8805 - "@protobufjs/utf8": { 8806 - "version": "1.1.0", 8807 - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", 8808 - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" 8809 - }, 8810 6992 "@sindresorhus/is": { 8811 6993 "version": "4.6.0", 8812 6994 "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", ··· 9022 7204 "@types/node": { 9023 7205 "version": "18.16.3", 9024 7206 "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", 9025 - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" 7207 + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", 7208 + "dev": true 9026 7209 }, 9027 7210 "@types/responselike": { 9028 7211 "version": "1.0.0", ··· 9200 7383 "event-target-shim": "^5.0.0" 9201 7384 } 9202 7385 }, 9203 - "abstract-level": { 9204 - "version": "1.0.3", 9205 - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", 9206 - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", 9207 - "requires": { 9208 - "buffer": "^6.0.3", 9209 - "catering": "^2.1.0", 9210 - "is-buffer": "^2.0.5", 9211 - "level-supports": "^4.0.0", 9212 - "level-transcoder": "^1.0.1", 9213 - "module-error": "^1.0.1", 9214 - "queue-microtask": "^1.2.3" 9215 - } 9216 - }, 9217 7386 "accepts": { 9218 7387 "version": "1.3.8", 9219 7388 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", ··· 9413 7582 } 9414 7583 } 9415 7584 }, 9416 - "blockstore-core": { 9417 - "version": "2.0.2", 9418 - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-2.0.2.tgz", 9419 - "integrity": "sha512-ALry3rBp2pTEi4F/usjCJGRluAKYFWI9Np7uE0pZHfDeScMJSj/fDkHEWvY80tPYu4kj03sLKRDGJlZH+V7VzQ==", 9420 - "requires": { 9421 - "err-code": "^3.0.1", 9422 - "interface-blockstore": "^3.0.0", 9423 - "interface-store": "^3.0.0", 9424 - "it-all": "^1.0.4", 9425 - "it-drain": "^1.0.4", 9426 - "it-filter": "^1.0.2", 9427 - "it-take": "^1.0.1", 9428 - "multiformats": "^10.0.0" 9429 - }, 9430 - "dependencies": { 9431 - "multiformats": { 9432 - "version": "10.0.3", 9433 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 9434 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 9435 - } 9436 - } 9437 - }, 9438 - "blockstore-datastore-adapter": { 9439 - "version": "4.0.0", 9440 - "resolved": "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-4.0.0.tgz", 9441 - "integrity": "sha512-vzy2lgLb7PQ0qopuZk6B+syRULdUt9w/ffNl7EXcvGZLS5+VoUmh4Agdp1OVuoaMEfXoEqIvCaPXi/v3829vBg==", 9442 - "requires": { 9443 - "blockstore-core": "^2.0.0", 9444 - "err-code": "^3.0.1", 9445 - "interface-blockstore": "^3.0.0", 9446 - "interface-datastore": "^7.0.0", 9447 - "it-drain": "^2.0.0", 9448 - "it-pushable": "^3.1.0", 9449 - "multiformats": "^10.0.1" 9450 - }, 9451 - "dependencies": { 9452 - "it-drain": { 9453 - "version": "2.0.1", 9454 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", 9455 - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==" 9456 - }, 9457 - "multiformats": { 9458 - "version": "10.0.3", 9459 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 9460 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 9461 - } 9462 - } 9463 - }, 9464 7585 "boxen": { 9465 7586 "version": "7.0.0", 9466 7587 "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", ··· 9549 7670 "fill-range": "^7.0.1" 9550 7671 } 9551 7672 }, 9552 - "browser-level": { 9553 - "version": "1.0.1", 9554 - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", 9555 - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", 9556 - "requires": { 9557 - "abstract-level": "^1.0.2", 9558 - "catering": "^2.1.1", 9559 - "module-error": "^1.0.2", 9560 - "run-parallel-limit": "^1.1.0" 9561 - } 9562 - }, 9563 7673 "browserslist": { 9564 7674 "version": "4.23.1", 9565 7675 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", ··· 9587 7697 "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 9588 7698 "dev": true 9589 7699 }, 9590 - "busboy": { 9591 - "version": "1.6.0", 9592 - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 9593 - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 9594 - "requires": { 9595 - "streamsearch": "^1.1.0" 9596 - } 9597 - }, 9598 - "bytes": { 9599 - "version": "3.1.2", 9600 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 9601 - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 9602 - }, 9603 7700 "cacheable-lookup": { 9604 7701 "version": "5.0.4", 9605 7702 "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", ··· 9656 7753 "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", 9657 7754 "dev": true 9658 7755 }, 9659 - "catering": { 9660 - "version": "2.1.1", 9661 - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", 9662 - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==" 9663 - }, 9664 - "cborg": { 9665 - "version": "1.10.1", 9666 - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.1.tgz", 9667 - "integrity": "sha512-et6Qm8MOUY2kCWa5GKk2MlBVoPjHv0hQBmlzI/Z7+5V3VJCeIkGehIB3vWknNsm2kOkAIs6wEKJFJo8luWQQ/w==" 9668 - }, 9669 7756 "chalk": { 9670 7757 "version": "4.1.2", 9671 7758 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", ··· 9699 7786 "readdirp": "~3.6.0" 9700 7787 } 9701 7788 }, 9702 - "classic-level": { 9703 - "version": "1.3.0", 9704 - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", 9705 - "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", 9706 - "requires": { 9707 - "abstract-level": "^1.0.2", 9708 - "catering": "^2.1.0", 9709 - "module-error": "^1.0.1", 9710 - "napi-macros": "^2.2.2", 9711 - "node-gyp-build": "^4.3.0" 9712 - } 9713 - }, 9714 7789 "cli-boxes": { 9715 7790 "version": "3.0.0", 9716 7791 "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", ··· 9797 7872 "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 9798 7873 "dev": true 9799 7874 }, 7875 + "component-emitter": { 7876 + "version": "2.0.0", 7877 + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-2.0.0.tgz", 7878 + "integrity": "sha512-4m5s3Me2xxlVKG9PkZpQqHQR7bgpnN7joDMJ4yvVkVXngjoITG76IaZmzmywSeRTeTpc6N6r3H3+KyUurV8OYw==", 7879 + "dev": true 7880 + }, 9800 7881 "compressible": { 9801 7882 "version": "2.0.18", 9802 7883 "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", ··· 9879 7960 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 9880 7961 "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 9881 7962 "dev": true 9882 - }, 9883 - "cuint": { 9884 - "version": "0.2.2", 9885 - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", 9886 - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" 9887 7963 }, 9888 7964 "data-uri-to-buffer": { 9889 7965 "version": "4.0.1", ··· 9891 7967 "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", 9892 7968 "dev": true 9893 7969 }, 9894 - "datastore-core": { 9895 - "version": "8.0.4", 9896 - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.4.tgz", 9897 - "integrity": "sha512-oBA6a024NFXJOTu+w9nLAimfy4wCYUhdE/5XQGtdKt1BmCVtPYW10GORvVT3pdZBcse6k/mVcBl+hjkXIlm65A==", 9898 - "requires": { 9899 - "@libp2p/logger": "^2.0.0", 9900 - "err-code": "^3.0.1", 9901 - "interface-datastore": "^7.0.0", 9902 - "it-all": "^2.0.0", 9903 - "it-drain": "^2.0.0", 9904 - "it-filter": "^2.0.0", 9905 - "it-map": "^2.0.0", 9906 - "it-merge": "^2.0.0", 9907 - "it-pipe": "^2.0.3", 9908 - "it-pushable": "^3.0.0", 9909 - "it-take": "^2.0.0", 9910 - "uint8arrays": "^4.0.2" 9911 - }, 9912 - "dependencies": { 9913 - "it-all": { 9914 - "version": "2.0.1", 9915 - "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.1.tgz", 9916 - "integrity": "sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==" 9917 - }, 9918 - "it-drain": { 9919 - "version": "2.0.1", 9920 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", 9921 - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==" 9922 - }, 9923 - "it-filter": { 9924 - "version": "2.0.2", 9925 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", 9926 - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==" 9927 - }, 9928 - "it-take": { 9929 - "version": "2.0.1", 9930 - "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.1.tgz", 9931 - "integrity": "sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA==" 9932 - } 9933 - } 9934 - }, 9935 - "datastore-level": { 9936 - "version": "9.0.4", 9937 - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-9.0.4.tgz", 9938 - "integrity": "sha512-HKf2tVVWywdidI+94z0B5NLx4J94wTLCT1tYXXxJ58MK/Y5rdX8WVRp9XmZaODS70uxpNC8/UrvWr0iTBZwkUA==", 9939 - "requires": { 9940 - "abstract-level": "^1.0.3", 9941 - "datastore-core": "^8.0.1", 9942 - "interface-datastore": "^7.0.0", 9943 - "it-filter": "^2.0.0", 9944 - "it-map": "^2.0.0", 9945 - "it-sort": "^2.0.0", 9946 - "it-take": "^2.0.0", 9947 - "level": "^8.0.0" 9948 - }, 9949 - "dependencies": { 9950 - "it-filter": { 9951 - "version": "2.0.2", 9952 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", 9953 - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==" 9954 - }, 9955 - "it-take": { 9956 - "version": "2.0.1", 9957 - "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.1.tgz", 9958 - "integrity": "sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA==" 9959 - } 9960 - } 9961 - }, 9962 7970 "debug": { 9963 7971 "version": "4.3.4", 9964 7972 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", ··· 10053 8061 "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 10054 8062 "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 10055 8063 "dev": true 10056 - }, 10057 - "dns-over-http-resolver": { 10058 - "version": "2.1.1", 10059 - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz", 10060 - "integrity": "sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew==", 10061 - "requires": { 10062 - "debug": "^4.3.1", 10063 - "native-fetch": "^4.0.2", 10064 - "receptacle": "^1.3.2", 10065 - "undici": "^5.12.0" 10066 - } 10067 8064 }, 10068 8065 "doctrine": { 10069 8066 "version": "3.0.0", ··· 10193 8190 "integrity": "sha512-quRE5LGJyrkPBoJ3MvFQ5RGgf80J0L0d3NkduStvXh4TmZuMXNC3Z/l2ZRoq2UTUaNWeYfO1Zx5wns1AvsTrnw==", 10194 8191 "dev": true 10195 8192 }, 10196 - "emitter-component": { 10197 - "version": "1.1.1", 10198 - "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", 10199 - "integrity": "sha512-G+mpdiAySMuB7kesVRLuyvYRqDmshB7ReKEVuyBPkzQlmiDiLrt7hHHIy4Aff552bgknVN7B2/d3lzhGO5dvpQ==", 10200 - "dev": true 10201 - }, 10202 8193 "emoji-regex": { 10203 8194 "version": "8.0.0", 10204 8195 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", ··· 10217 8208 "requires": { 10218 8209 "once": "^1.4.0" 10219 8210 } 10220 - }, 10221 - "err-code": { 10222 - "version": "3.0.1", 10223 - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", 10224 - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" 10225 8211 }, 10226 8212 "es-errors": { 10227 8213 "version": "1.3.0", ··· 10438 8424 "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 10439 8425 "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 10440 8426 }, 10441 - "eventemitter3": { 10442 - "version": "4.0.7", 10443 - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 10444 - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" 10445 - }, 10446 8427 "events": { 10447 8428 "version": "3.3.0", 10448 8429 "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", ··· 10620 8601 "path-exists": "^4.0.0" 10621 8602 } 10622 8603 }, 10623 - "fission-bloom-filters": { 10624 - "version": "1.7.1", 10625 - "resolved": "https://registry.npmjs.org/fission-bloom-filters/-/fission-bloom-filters-1.7.1.tgz", 10626 - "integrity": "sha512-AAVWxwqgSDK+/3Tn2kx+a9j/ND/pyVNVZgn/rL5pfQaX7w0qfP81PlLCNKhM4XKOhcg1kFXNcoWkQKg3MyyULw==", 10627 - "requires": { 10628 - "buffer": "^6.0.3", 10629 - "is-buffer": "^2.0.4", 10630 - "lodash": "^4.17.15", 10631 - "lodash.eq": "^4.0.0", 10632 - "lodash.indexof": "^4.0.5", 10633 - "reflect-metadata": "^0.1.13", 10634 - "seedrandom": "^3.0.5", 10635 - "xxhashjs": "^0.2.2" 10636 - } 10637 - }, 10638 8604 "flat-cache": { 10639 8605 "version": "3.0.4", 10640 8606 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", ··· 10650 8616 "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 10651 8617 "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 10652 8618 "dev": true 10653 - }, 10654 - "fnv1a": { 10655 - "version": "1.1.1", 10656 - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.1.1.tgz", 10657 - "integrity": "sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag==" 10658 8619 }, 10659 8620 "folder-hash": { 10660 8621 "version": "3.3.3", ··· 10860 8821 "graceful-fs": { 10861 8822 "version": "4.2.11", 10862 8823 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 10863 - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 8824 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 8825 + "dev": true 10864 8826 }, 10865 8827 "graphemer": { 10866 8828 "version": "1.4.0", ··· 11013 8975 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 11014 8976 "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 11015 8977 }, 11016 - "interface-blockstore": { 11017 - "version": "3.0.2", 11018 - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-3.0.2.tgz", 11019 - "integrity": "sha512-lJXCyu3CwidOvNjkJARwCmoxl/HNX/mrfMxtyq5e/pVZA1SrlTj5lvb4LBYbfoynzewGUPcUU4DEUaXoLKliHQ==", 11020 - "requires": { 11021 - "interface-store": "^3.0.0", 11022 - "multiformats": "^10.0.0" 11023 - }, 11024 - "dependencies": { 11025 - "multiformats": { 11026 - "version": "10.0.3", 11027 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 11028 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 11029 - } 11030 - } 11031 - }, 11032 - "interface-datastore": { 11033 - "version": "7.0.4", 11034 - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.4.tgz", 11035 - "integrity": "sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==", 11036 - "requires": { 11037 - "interface-store": "^3.0.0", 11038 - "nanoid": "^4.0.0", 11039 - "uint8arrays": "^4.0.2" 11040 - }, 11041 - "dependencies": { 11042 - "nanoid": { 11043 - "version": "4.0.2", 11044 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", 11045 - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" 11046 - } 11047 - } 11048 - }, 11049 - "interface-store": { 11050 - "version": "3.0.4", 11051 - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.4.tgz", 11052 - "integrity": "sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==" 11053 - }, 11054 - "ipfs-core-types": { 11055 - "version": "0.13.0", 11056 - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.13.0.tgz", 11057 - "integrity": "sha512-IIKS9v2D5KIqReZMbyuCStI4FRyIbRA9nD3fji1KgKJPiic1N3iGe2jL4hy4Y3FQ30VbheWJ9jAROwMyvqxYNA==", 11058 - "requires": { 11059 - "@ipld/dag-pb": "^3.0.0", 11060 - "@libp2p/interface-keychain": "^1.0.3", 11061 - "@libp2p/interface-peer-id": "^1.0.4", 11062 - "@libp2p/interface-peer-info": "^1.0.2", 11063 - "@libp2p/interface-pubsub": "^3.0.0", 11064 - "@multiformats/multiaddr": "^11.0.0", 11065 - "@types/node": "^18.0.0", 11066 - "interface-datastore": "^7.0.0", 11067 - "ipfs-unixfs": "^8.0.0", 11068 - "multiformats": "^10.0.0" 11069 - }, 11070 - "dependencies": { 11071 - "multiformats": { 11072 - "version": "10.0.3", 11073 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 11074 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 11075 - } 11076 - } 11077 - }, 11078 - "ipfs-repo": { 11079 - "version": "16.0.0", 11080 - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-16.0.0.tgz", 11081 - "integrity": "sha512-CYlHO3MK1CNfuCkRyLxXB9pKj2nx4yomH92DilhwDW+Et4rQ/8279RgmEh5nFNf7BgvIvYPE+3hVErGbVytS5Q==", 11082 - "requires": { 11083 - "@ipld/dag-pb": "^3.0.0", 11084 - "bytes": "^3.1.0", 11085 - "cborg": "^1.3.4", 11086 - "datastore-core": "^8.0.1", 11087 - "debug": "^4.1.0", 11088 - "err-code": "^3.0.1", 11089 - "interface-blockstore": "^3.0.0", 11090 - "interface-datastore": "^7.0.0", 11091 - "ipfs-repo-migrations": "^14.0.0", 11092 - "it-drain": "^2.0.0", 11093 - "it-filter": "^2.0.0", 11094 - "it-first": "^2.0.0", 11095 - "it-map": "^2.0.0", 11096 - "it-merge": "^2.0.0", 11097 - "it-parallel-batch": "^2.0.0", 11098 - "it-pipe": "^2.0.4", 11099 - "it-pushable": "^3.1.0", 11100 - "just-safe-get": "^4.1.1", 11101 - "just-safe-set": "^4.1.1", 11102 - "merge-options": "^3.0.4", 11103 - "mortice": "^3.0.0", 11104 - "multiformats": "^10.0.1", 11105 - "p-queue": "^7.3.0", 11106 - "proper-lockfile": "^4.0.0", 11107 - "quick-lru": "^6.1.1", 11108 - "sort-keys": "^5.0.0", 11109 - "uint8arrays": "^4.0.2" 11110 - }, 11111 - "dependencies": { 11112 - "it-drain": { 11113 - "version": "2.0.1", 11114 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", 11115 - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==" 11116 - }, 11117 - "it-filter": { 11118 - "version": "2.0.2", 11119 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", 11120 - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==" 11121 - }, 11122 - "multiformats": { 11123 - "version": "10.0.3", 11124 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 11125 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 11126 - }, 11127 - "quick-lru": { 11128 - "version": "6.1.1", 11129 - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", 11130 - "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==" 11131 - } 11132 - } 11133 - }, 11134 - "ipfs-repo-migrations": { 11135 - "version": "14.0.1", 11136 - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-14.0.1.tgz", 11137 - "integrity": "sha512-wE22g05hzxegCWMhNj7deagCLsKPcNf8KmK1QN4WMob0kuZ4kDxCg7fusM68tGrOnhE+Ll/AVHseFlzmoU/ZbQ==", 11138 - "requires": { 11139 - "@ipld/dag-pb": "^3.0.0", 11140 - "@multiformats/multiaddr": "^11.0.0", 11141 - "cborg": "^1.3.4", 11142 - "datastore-core": "^8.0.1", 11143 - "debug": "^4.1.0", 11144 - "fnv1a": "^1.0.1", 11145 - "interface-blockstore": "^3.0.0", 11146 - "interface-datastore": "^7.0.0", 11147 - "it-length": "^2.0.0", 11148 - "multiformats": "^10.0.1", 11149 - "protobufjs": "^7.0.0", 11150 - "uint8arrays": "^4.0.2", 11151 - "varint": "^6.0.0" 11152 - }, 11153 - "dependencies": { 11154 - "multiformats": { 11155 - "version": "10.0.3", 11156 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", 11157 - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==" 11158 - } 11159 - } 11160 - }, 11161 - "ipfs-unixfs": { 11162 - "version": "8.0.0", 11163 - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-8.0.0.tgz", 11164 - "integrity": "sha512-PAHtfyjiFs2PZBbeft5QRyXpVOvZ2zsGqID+zVRla7fjC1zRTqJkrGY9h6dF03ldGv/mSmFlNZh479qPC6aZKg==", 11165 - "requires": { 11166 - "err-code": "^3.0.1", 11167 - "protobufjs": "^7.0.0" 11168 - } 11169 - }, 11170 8978 "is-arguments": { 11171 8979 "version": "1.1.1", 11172 8980 "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", ··· 11185 8993 "requires": { 11186 8994 "binary-extensions": "^2.0.0" 11187 8995 } 11188 - }, 11189 - "is-buffer": { 11190 - "version": "2.0.5", 11191 - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", 11192 - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" 11193 8996 }, 11194 8997 "is-callable": { 11195 8998 "version": "1.2.7", ··· 11268 9071 "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 11269 9072 "dev": true 11270 9073 }, 11271 - "is-plain-obj": { 11272 - "version": "2.1.0", 11273 - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 11274 - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" 11275 - }, 11276 9074 "is-port-reachable": { 11277 9075 "version": "4.0.0", 11278 9076 "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", ··· 11320 9118 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 11321 9119 "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 11322 9120 }, 11323 - "it-all": { 11324 - "version": "1.0.6", 11325 - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", 11326 - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" 11327 - }, 11328 - "it-batch": { 11329 - "version": "2.0.1", 11330 - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-2.0.1.tgz", 11331 - "integrity": "sha512-2gWFuPzamh9Dh3pW+OKjc7UwJ41W4Eu2AinVAfXDMfrC5gXfm3b1TF+1UzsygBUgKBugnxnGP+/fFRyn+9y1mQ==" 11332 - }, 11333 - "it-drain": { 11334 - "version": "1.0.5", 11335 - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", 11336 - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" 11337 - }, 11338 - "it-filter": { 11339 - "version": "1.0.3", 11340 - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", 11341 - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" 11342 - }, 11343 - "it-first": { 11344 - "version": "2.0.1", 11345 - "resolved": "https://registry.npmjs.org/it-first/-/it-first-2.0.1.tgz", 11346 - "integrity": "sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw==" 11347 - }, 11348 - "it-length": { 11349 - "version": "2.0.1", 11350 - "resolved": "https://registry.npmjs.org/it-length/-/it-length-2.0.1.tgz", 11351 - "integrity": "sha512-BynaPOK4UwcQX2Z+kqsQygXUNW9NZswfTnscfP7MLhFvVhRYbYJv8XH+09/Qwf8ktk65QdsGoVnDmQUCUGCyvg==" 11352 - }, 11353 - "it-map": { 11354 - "version": "2.0.1", 11355 - "resolved": "https://registry.npmjs.org/it-map/-/it-map-2.0.1.tgz", 11356 - "integrity": "sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ==" 11357 - }, 11358 - "it-merge": { 11359 - "version": "2.0.1", 11360 - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-2.0.1.tgz", 11361 - "integrity": "sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw==", 11362 - "requires": { 11363 - "it-pushable": "^3.1.0" 11364 - } 11365 - }, 11366 - "it-parallel-batch": { 11367 - "version": "2.0.1", 11368 - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-2.0.1.tgz", 11369 - "integrity": "sha512-tXh567/JfDGJ90Zi//H9HkL7kY27ARp0jf2vu2jUI6PUVBWfsoT+gC4eT41/b4+wkJXSGgT8ZHnivAOlMfcNjA==", 11370 - "requires": { 11371 - "it-batch": "^2.0.0" 11372 - } 11373 - }, 11374 - "it-pipe": { 11375 - "version": "2.0.5", 11376 - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.5.tgz", 11377 - "integrity": "sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw==", 11378 - "requires": { 11379 - "it-merge": "^2.0.0", 11380 - "it-pushable": "^3.1.0", 11381 - "it-stream-types": "^1.0.3" 11382 - } 11383 - }, 11384 - "it-pushable": { 11385 - "version": "3.1.3", 11386 - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.3.tgz", 11387 - "integrity": "sha512-f50iQ85HISS6DaWCyrqf9QJ6G/kQtKIMf9xZkgZgyOvxEQDfn8OfYcLXXquCqgoLboxQtAW1ZFZyFIAsLHDtJw==" 11388 - }, 11389 - "it-sort": { 11390 - "version": "2.0.1", 11391 - "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-2.0.1.tgz", 11392 - "integrity": "sha512-9f4jKOTHfxc/FJpg/wwuQ+j+88i+sfNGKsu2HukAKymm71/XDnBFtOAOzaimko3YIhmn/ERwnfEKrsYLykxw9A==", 11393 - "requires": { 11394 - "it-all": "^2.0.0" 11395 - }, 11396 - "dependencies": { 11397 - "it-all": { 11398 - "version": "2.0.1", 11399 - "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.1.tgz", 11400 - "integrity": "sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==" 11401 - } 11402 - } 11403 - }, 11404 - "it-stream-types": { 11405 - "version": "1.0.5", 11406 - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.5.tgz", 11407 - "integrity": "sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==" 11408 - }, 11409 - "it-take": { 11410 - "version": "1.0.2", 11411 - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", 11412 - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" 11413 - }, 11414 9121 "jackspeak": { 11415 9122 "version": "2.2.1", 11416 9123 "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", ··· 11527 9234 } 11528 9235 } 11529 9236 }, 11530 - "just-safe-get": { 11531 - "version": "4.2.0", 11532 - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-4.2.0.tgz", 11533 - "integrity": "sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA==" 11534 - }, 11535 - "just-safe-set": { 11536 - "version": "4.2.1", 11537 - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-4.2.1.tgz", 11538 - "integrity": "sha512-La5CP41Ycv52+E4g7w1sRV8XXk7Sp8a/TwWQAYQKn6RsQz1FD4Z/rDRRmqV3wJznS1MDF3YxK7BCudX1J8FxLg==" 11539 - }, 11540 - "keystore-idb": { 11541 - "version": "0.15.5", 11542 - "resolved": "https://registry.npmjs.org/keystore-idb/-/keystore-idb-0.15.5.tgz", 11543 - "integrity": "sha512-7bcUAnY5iD0+N75odQVTCs8mhXBW+yLt9/HH8+VUrl44FGllpAhu7q3/w9QpNMHxLQv3OXs1fsA042CAviN79Q==", 11544 - "requires": { 11545 - "localforage": "^1.10.0", 11546 - "one-webcrypto": "^1.0.3", 11547 - "uint8arrays": "^3.0.0" 11548 - }, 11549 - "dependencies": { 11550 - "multiformats": { 11551 - "version": "9.9.0", 11552 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 11553 - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 11554 - }, 11555 - "uint8arrays": { 11556 - "version": "3.1.1", 11557 - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", 11558 - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", 11559 - "requires": { 11560 - "multiformats": "^9.4.2" 11561 - } 11562 - } 11563 - } 11564 - }, 11565 9237 "keyv": { 11566 9238 "version": "4.5.2", 11567 9239 "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", ··· 11577 9249 "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", 11578 9250 "dev": true 11579 9251 }, 11580 - "level": { 11581 - "version": "8.0.0", 11582 - "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", 11583 - "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", 11584 - "requires": { 11585 - "browser-level": "^1.0.1", 11586 - "classic-level": "^1.2.0" 11587 - } 11588 - }, 11589 - "level-supports": { 11590 - "version": "4.0.1", 11591 - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", 11592 - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==" 11593 - }, 11594 - "level-transcoder": { 11595 - "version": "1.0.1", 11596 - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", 11597 - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", 11598 - "requires": { 11599 - "buffer": "^6.0.3", 11600 - "module-error": "^1.0.1" 11601 - } 11602 - }, 11603 9252 "levn": { 11604 9253 "version": "0.4.1", 11605 9254 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", ··· 11665 9314 "lodash": { 11666 9315 "version": "4.17.21", 11667 9316 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 11668 - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 11669 - }, 11670 - "lodash.eq": { 11671 - "version": "4.0.0", 11672 - "resolved": "https://registry.npmjs.org/lodash.eq/-/lodash.eq-4.0.0.tgz", 11673 - "integrity": "sha512-vbrJpXL6kQNG6TkInxX12DZRfuYVllSxhwYqjYB78g2zF3UI15nFO/0AgmZnZRnaQ38sZtjCiVjGr2rnKt4v0g==" 11674 - }, 11675 - "lodash.indexof": { 11676 - "version": "4.0.5", 11677 - "resolved": "https://registry.npmjs.org/lodash.indexof/-/lodash.indexof-4.0.5.tgz", 11678 - "integrity": "sha512-t9wLWMQsawdVmf6/IcAgVGqAJkNzYVcn4BHYZKTPW//l7N5Oq7Bq138BaVk19agcsPZePcidSgTTw4NqS1nUAw==" 9317 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 9318 + "dev": true 11679 9319 }, 11680 9320 "lodash.merge": { 11681 9321 "version": "4.6.2", ··· 11693 9333 "is-unicode-supported": "^0.1.0" 11694 9334 } 11695 9335 }, 11696 - "long": { 11697 - "version": "5.2.3", 11698 - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", 11699 - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" 11700 - }, 11701 9336 "lowercase-keys": { 11702 9337 "version": "2.0.0", 11703 9338 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", ··· 11731 9366 "yargs": "^17.7.2" 11732 9367 } 11733 9368 }, 11734 - "merge-options": { 11735 - "version": "3.0.4", 11736 - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", 11737 - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", 11738 - "requires": { 11739 - "is-plain-obj": "^2.1.0" 11740 - } 11741 - }, 11742 9369 "merge-stream": { 11743 9370 "version": "2.0.0", 11744 9371 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", ··· 11803 9430 "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", 11804 9431 "dev": true 11805 9432 }, 11806 - "module-error": { 11807 - "version": "1.0.2", 11808 - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", 11809 - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==" 11810 - }, 11811 - "mortice": { 11812 - "version": "3.0.1", 11813 - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", 11814 - "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", 11815 - "requires": { 11816 - "nanoid": "^4.0.0", 11817 - "observable-webworkers": "^2.0.1", 11818 - "p-queue": "^7.2.0", 11819 - "p-timeout": "^6.0.0" 11820 - }, 11821 - "dependencies": { 11822 - "nanoid": { 11823 - "version": "4.0.2", 11824 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", 11825 - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" 11826 - } 11827 - } 11828 - }, 11829 9433 "ms": { 11830 9434 "version": "2.1.2", 11831 9435 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 11832 9436 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 11833 - }, 11834 - "multiformats": { 11835 - "version": "11.0.2", 11836 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", 11837 - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" 11838 9437 }, 11839 9438 "music-metadata": { 11840 9439 "version": "8.3.0", ··· 11883 9482 "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 11884 9483 "dev": true 11885 9484 }, 11886 - "napi-macros": { 11887 - "version": "2.2.2", 11888 - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", 11889 - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==" 11890 - }, 11891 - "native-fetch": { 11892 - "version": "4.0.2", 11893 - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", 11894 - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", 11895 - "requires": {} 11896 - }, 11897 9485 "natural-compare": { 11898 9486 "version": "1.4.0", 11899 9487 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", ··· 11919 9507 "whatwg-url": "^5.0.0" 11920 9508 } 11921 9509 }, 11922 - "node-gyp-build": { 11923 - "version": "4.6.0", 11924 - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", 11925 - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" 11926 - }, 11927 9510 "node-releases": { 11928 9511 "version": "2.0.14", 11929 9512 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", ··· 11995 9578 "has-symbols": "^1.0.3", 11996 9579 "object-keys": "^1.1.1" 11997 9580 } 11998 - }, 11999 - "observable-webworkers": { 12000 - "version": "2.0.1", 12001 - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", 12002 - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==" 12003 9581 }, 12004 9582 "on-headers": { 12005 9583 "version": "1.0.2", ··· 12015 9593 "wrappy": "1" 12016 9594 } 12017 9595 }, 12018 - "one-webcrypto": { 12019 - "version": "1.0.3", 12020 - "resolved": "https://registry.npmjs.org/one-webcrypto/-/one-webcrypto-1.0.3.tgz", 12021 - "integrity": "sha512-fu9ywBVBPx0gS9K0etIROTiCkvI5S1TDjFsYFb3rC1ewFxeOqsbzq7aIMBHsYfrTHBcGXJaONXXjTl8B01cW1Q==" 12022 - }, 12023 9596 "onetime": { 12024 9597 "version": "5.1.2", 12025 9598 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", ··· 12090 9663 "requires": { 12091 9664 "p-limit": "^2.2.0" 12092 9665 } 12093 - }, 12094 - "p-queue": { 12095 - "version": "7.3.4", 12096 - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.4.tgz", 12097 - "integrity": "sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==", 12098 - "requires": { 12099 - "eventemitter3": "^4.0.7", 12100 - "p-timeout": "^5.0.2" 12101 - }, 12102 - "dependencies": { 12103 - "p-timeout": { 12104 - "version": "5.1.0", 12105 - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", 12106 - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==" 12107 - } 12108 - } 12109 - }, 12110 - "p-timeout": { 12111 - "version": "6.1.1", 12112 - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.1.tgz", 12113 - "integrity": "sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==" 12114 9666 }, 12115 9667 "p-try": { 12116 9668 "version": "2.2.0", ··· 12328 9880 "sisteransi": "^1.0.5" 12329 9881 } 12330 9882 }, 12331 - "proper-lockfile": { 12332 - "version": "4.1.2", 12333 - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", 12334 - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", 12335 - "requires": { 12336 - "graceful-fs": "^4.2.4", 12337 - "retry": "^0.12.0", 12338 - "signal-exit": "^3.0.2" 12339 - } 12340 - }, 12341 - "protobufjs": { 12342 - "version": "7.2.3", 12343 - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", 12344 - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", 12345 - "requires": { 12346 - "@protobufjs/aspromise": "^1.1.2", 12347 - "@protobufjs/base64": "^1.1.2", 12348 - "@protobufjs/codegen": "^2.0.4", 12349 - "@protobufjs/eventemitter": "^1.1.0", 12350 - "@protobufjs/fetch": "^1.1.0", 12351 - "@protobufjs/float": "^1.0.2", 12352 - "@protobufjs/inquire": "^1.1.0", 12353 - "@protobufjs/path": "^1.1.2", 12354 - "@protobufjs/pool": "^1.1.0", 12355 - "@protobufjs/utf8": "^1.1.0", 12356 - "@types/node": ">=13.7.0", 12357 - "long": "^5.0.0" 12358 - } 12359 - }, 12360 9883 "pump": { 12361 9884 "version": "3.0.0", 12362 9885 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", ··· 12375 9898 "queue-microtask": { 12376 9899 "version": "1.2.3", 12377 9900 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 12378 - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 9901 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 9902 + "dev": true 12379 9903 }, 12380 9904 "quick-lru": { 12381 9905 "version": "5.1.1", ··· 12456 9980 "picomatch": "^2.2.1" 12457 9981 } 12458 9982 }, 12459 - "receptacle": { 12460 - "version": "1.3.2", 12461 - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", 12462 - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", 12463 - "requires": { 12464 - "ms": "^2.1.1" 12465 - } 12466 - }, 12467 - "reflect-metadata": { 12468 - "version": "0.1.13", 12469 - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 12470 - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" 12471 - }, 12472 9983 "registry-auth-token": { 12473 9984 "version": "3.3.2", 12474 9985 "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", ··· 12559 10070 "signal-exit": "^3.0.2" 12560 10071 } 12561 10072 }, 12562 - "retry": { 12563 - "version": "0.12.0", 12564 - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", 12565 - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" 12566 - }, 12567 10073 "reusify": { 12568 10074 "version": "1.0.4", 12569 10075 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", ··· 12588 10094 "queue-microtask": "^1.2.2" 12589 10095 } 12590 10096 }, 12591 - "run-parallel-limit": { 12592 - "version": "1.1.0", 12593 - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", 12594 - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", 12595 - "requires": { 12596 - "queue-microtask": "^1.2.2" 12597 - } 12598 - }, 12599 10097 "safe-buffer": { 12600 10098 "version": "5.2.1", 12601 10099 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 12602 10100 "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 12603 - }, 12604 - "seedrandom": { 12605 - "version": "3.0.5", 12606 - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", 12607 - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" 12608 10101 }, 12609 10102 "semver": { 12610 10103 "version": "7.5.4", ··· 12740 10233 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 12741 10234 "dev": true 12742 10235 }, 12743 - "sort-keys": { 12744 - "version": "5.0.0", 12745 - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.0.0.tgz", 12746 - "integrity": "sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==", 12747 - "requires": { 12748 - "is-plain-obj": "^4.0.0" 12749 - }, 12750 - "dependencies": { 12751 - "is-plain-obj": { 12752 - "version": "4.1.0", 12753 - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", 12754 - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" 12755 - } 12756 - } 12757 - }, 12758 10236 "source-map-js": { 12759 10237 "version": "1.0.2", 12760 10238 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", ··· 12762 10240 "dev": true 12763 10241 }, 12764 10242 "stream": { 12765 - "version": "0.0.2", 12766 - "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", 12767 - "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", 10243 + "version": "0.0.3", 10244 + "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.3.tgz", 10245 + "integrity": "sha512-aMsbn7VKrl4A2T7QAQQbzgN7NVc70vgF5INQrBXqn4dCXN1zy3L9HGgLO5s7PExmdrzTJ8uR/27aviW8or8/+A==", 12768 10246 "dev": true, 12769 10247 "requires": { 12770 - "emitter-component": "^1.1.1" 10248 + "component-emitter": "^2.0.0" 12771 10249 } 12772 10250 }, 12773 - "streamsearch": { 12774 - "version": "1.1.0", 12775 - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 12776 - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" 12777 - }, 12778 10251 "string_decoder": { 12779 10252 "version": "1.3.0", 12780 10253 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", ··· 13063 10536 "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", 13064 10537 "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==" 13065 10538 }, 13066 - "tweetnacl": { 13067 - "version": "1.0.3", 13068 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 13069 - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" 13070 - }, 13071 10539 "type-check": { 13072 10540 "version": "0.4.0", 13073 10541 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", ··· 13090 10558 "dev": true, 13091 10559 "peer": true 13092 10560 }, 13093 - "uint8arraylist": { 13094 - "version": "2.4.3", 13095 - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", 13096 - "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", 13097 - "requires": { 13098 - "uint8arrays": "^4.0.2" 13099 - } 13100 - }, 13101 10561 "uint8arrays": { 13102 10562 "version": "4.0.10", 13103 10563 "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", ··· 13113 10573 } 13114 10574 } 13115 10575 }, 13116 - "undici": { 13117 - "version": "5.22.0", 13118 - "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.0.tgz", 13119 - "integrity": "sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==", 13120 - "requires": { 13121 - "busboy": "^1.6.0" 13122 - } 13123 - }, 13124 10576 "universalify": { 13125 10577 "version": "2.0.0", 13126 10578 "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", ··· 13171 10623 "version": "1.0.2", 13172 10624 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 13173 10625 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 13174 - }, 13175 - "varint": { 13176 - "version": "6.0.0", 13177 - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", 13178 - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" 13179 10626 }, 13180 10627 "vary": { 13181 10628 "version": "1.1.2", ··· 13279 10726 } 13280 10727 } 13281 10728 }, 13282 - "wnfs": { 13283 - "version": "0.1.7", 13284 - "resolved": "https://registry.npmjs.org/wnfs/-/wnfs-0.1.7.tgz", 13285 - "integrity": "sha512-WTadILZSNX7Ti+jy1QgqGtWp0pLHvPAG+ERsNWge2DuR8P8x+U/CM9QjYqJb7wqBkbSoboZgeBspetybIzNQgw==" 13286 - }, 13287 10729 "wrap-ansi": { 13288 10730 "version": "6.2.0", 13289 10731 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", ··· 13322 10764 "version": "0.2.1", 13323 10765 "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", 13324 10766 "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==" 13325 - }, 13326 - "xxhashjs": { 13327 - "version": "0.2.2", 13328 - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", 13329 - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", 13330 - "requires": { 13331 - "cuint": "^0.2.2" 13332 - } 13333 10767 }, 13334 10768 "y18n": { 13335 10769 "version": "5.0.8",
-1
package.json
··· 40 40 "tiny-parse-argv": "^2.4.0" 41 41 }, 42 42 "dependencies": { 43 - "@oddjs/odd": "^0.37.2", 44 43 "@tokenizer/http": "^0.6.2", 45 44 "elm-taskport": "^2.0.1", 46 45 "encoding-japanese": "^2.0.0",
-6
src/Core/Brain/Ports.elm
··· 37 37 -- 📣 ░░ USER LAYER SERVICES 38 38 39 39 40 - port deconstructFission : () -> Cmd msg 41 - 42 - 43 40 port deconstructRemoteStorage : () -> Cmd msg 44 - 45 - 46 - port handlePendingFissionAuthorisation : () -> Cmd msg 47 41 48 42 49 43 port provideArtworkTrackUrls : Json.Value -> Cmd msg
-35
src/Core/Brain/User/Hypaethral.elm
··· 27 27 |> Task.mapError TaskPort.errorToStringCustom 28 28 29 29 30 - retrieveFission : HypaethralBit -> Task String (Maybe Json.Decode.Value) 31 - retrieveFission bit = 32 - let 33 - includePublicData = 34 - bit == Playlists 35 - in 36 - [ ( "fileName", fileName bit ) 37 - , ( "includePublicData", Json.Encode.bool includePublicData ) 38 - ] 39 - |> TaskPort.call 40 - { function = "fromFission" 41 - , valueDecoder = Json.Decode.maybe Json.Decode.value 42 - , argsEncoder = Json.Encode.object 43 - } 44 - |> Task.mapError TaskPort.errorToStringCustom 45 - 46 - 47 30 retrieveIpfs : String -> HypaethralBit -> Task String (Maybe Json.Decode.Value) 48 31 retrieveIpfs apiOrigin bit = 49 32 [ ( "fileName", fileName bit ) ··· 92 75 ] 93 76 |> TaskPort.call 94 77 { function = "toDropbox" 95 - , valueDecoder = TaskPort.ignoreValue 96 - , argsEncoder = Json.Encode.object 97 - } 98 - |> Task.mapError TaskPort.errorToStringCustom 99 - 100 - 101 - saveFission : HypaethralBit -> Json.Decode.Value -> Task String () 102 - saveFission bit data = 103 - let 104 - savePublicData = 105 - bit == Playlists 106 - in 107 - [ ( "fileName", fileName bit ) 108 - , ( "data", data ) 109 - , ( "savePublicData", Json.Encode.bool savePublicData ) 110 - ] 111 - |> TaskPort.call 112 - { function = "toFission" 113 78 , valueDecoder = TaskPort.ignoreValue 114 79 , argsEncoder = Json.Encode.object 115 80 }
-27
src/Core/Brain/User/State.elm
··· 36 36 initialCommand : Url -> Cmd Brain.Msg 37 37 initialCommand uiUrl = 38 38 case Url.action uiUrl of 39 - [ "authenticate", "fission" ] -> 40 - Cmd.batch 41 - [ loadEnclosedData 42 - , loadLocalHypaethralData 43 - { initialUrl = uiUrl 44 - , methodTask = Task.succeed Nothing 45 - } 46 - ] 47 - 48 39 _ -> 49 40 Cmd.batch 50 41 [ loadEnclosedData ··· 216 207 |> sendHypaethralDataToUI hypaethralJson hypaethralData 217 208 |> andThen 218 209 (case Url.action initialUrl of 219 - [ "authenticate", "fission" ] -> 220 - Common.nudgeUI Alien.CollectFissionCapabilities 221 - 222 210 _ -> 223 211 sync { initialTask = Nothing } 224 212 ) ··· 318 306 , save = Hypaethral.saveDropbox accessToken 319 307 } 320 308 321 - Just (Fission _) -> 322 - attemptSync 323 - { retrieve = Hypaethral.retrieveFission 324 - , save = Hypaethral.saveFission 325 - } 326 - 327 309 Just (Ipfs { apiOrigin }) -> 328 310 attemptSync 329 311 { retrieve = Hypaethral.retrieveIpfs apiOrigin ··· 351 333 , case model.userSyncMethod of 352 334 Just (Dropbox _) -> 353 335 Cmd.none 354 - 355 - Just (Fission _) -> 356 - Ports.deconstructFission () 357 336 358 337 Just (Ipfs _) -> 359 338 Cmd.none ··· 432 411 Dropbox { accessToken } -> 433 412 save (Hypaethral.saveDropbox accessToken) 434 413 435 - Fission _ -> 436 - save Hypaethral.saveFission 437 - 438 414 Ipfs { apiOrigin } -> 439 415 save (Hypaethral.saveIpfs apiOrigin) 440 416 ··· 514 490 515 491 else 516 492 save (Hypaethral.saveDropbox accessToken) 517 - 518 - Just (Fission _) -> 519 - save Hypaethral.saveFission 520 493 521 494 Just (Ipfs { apiOrigin }) -> 522 495 save (Hypaethral.saveIpfs apiOrigin)
-3
src/Core/Themes/Sunrise/Settings/Data.elm
··· 28 28 Just (Dropbox d) -> 29 29 [ changePassphrase (Dropbox d) ] 30 30 31 - Just (Fission _) -> 32 - [] 33 - 34 31 Just (Ipfs i) -> 35 32 [ changePassphrase (Ipfs i) ] 36 33
+3 -19
src/Core/Themes/Sunrise/Settings/Sync.elm
··· 12 12 import UI.Page as Page 13 13 import UI.Settings.Page exposing (Page(..)) 14 14 import UI.Svg.Elements 15 - import UI.Syncing.Common exposing (startDropbox, startFission, startIpfs, startRemoteStorage) 15 + import UI.Syncing.Common exposing (startDropbox, startIpfs, startRemoteStorage) 16 16 import UI.Syncing.Types as Syncing 17 17 import UI.Types exposing (Msg(..)) 18 - import User.Layer exposing (Method(..), dropboxMethod, fissionMethod, ipfsMethod, methodName, remoteStorageMethod) 18 + import User.Layer exposing (Method(..), dropboxMethod, ipfsMethod, methodName, remoteStorageMethod) 19 19 20 20 21 21 ··· 33 33 Just (Dropbox d) -> 34 34 [ changePassphrase (Dropbox d) ] 35 35 36 - Just (Fission _) -> 37 - [] 38 - 39 36 Just (Ipfs i) -> 40 37 [ changePassphrase (Ipfs i) ] 41 38 ··· 79 76 |> List.singleton 80 77 , textHref = Nothing 81 78 } 82 - [ [ fissionMethod 83 - , dropboxMethod 79 + [ [ dropboxMethod 84 80 , remoteStorageMethod 85 81 , ipfsMethod 86 82 ] ··· 104 100 Dropbox _ -> 105 101 Just (\_ -> OpenUrlOnNewPage "https://dropbox.com") 106 102 107 - Fission _ -> 108 - Just (\_ -> OpenUrlOnNewPage "https://odd.dev") 109 - 110 103 RemoteStorage _ -> 111 104 Just (\_ -> OpenUrlOnNewPage "https://remotestorage.io") 112 105 ··· 124 117 ( Just (Dropbox _), Dropbox _ ) -> 125 118 True 126 119 127 - ( Just (Fission _), Fission _ ) -> 128 - True 129 - 130 120 ( Just (RemoteStorage _), RemoteStorage _ ) -> 131 121 True 132 122 ··· 144 134 Dropbox _ -> 145 135 label UI.Svg.Elements.dropboxLogo 146 136 147 - Fission _ -> 148 - label UI.Svg.Elements.oddLogo 149 - 150 137 RemoteStorage _ -> 151 138 label UI.Svg.Elements.remoteStorageLogo 152 139 ··· 173 160 case method of 174 161 Dropbox _ -> 175 162 Just startDropbox 176 - 177 - Fission _ -> 178 - Just startFission 179 163 180 164 RemoteStorage _ -> 181 165 Just startRemoteStorage
-4
src/Core/UI.elm
··· 635 635 ----------------------------------------- 636 636 -- 📭 Other 637 637 ----------------------------------------- 638 - , Ports.collectedFissionCapabilities (\_ -> SyncingMsg <| Syncing.ActivateSync <| User.Fission {}) 639 638 , Ports.installedNewServiceWorker (\_ -> InstalledServiceWorker) 640 639 , Ports.installingNewServiceWorker (\_ -> InstallingServiceWorker) 641 640 , Ports.refreshedAccessToken (Alien.broadcast Alien.RefreshedAccessToken >> RedirectToBrain) ··· 667 666 case tag of 668 667 Alien.AddTracks -> 669 668 TracksMsg (Tracks.Add data) 670 - 671 - Alien.CollectFissionCapabilities -> 672 - SyncingMsg Syncing.CollectFissionCapabilities 673 669 674 670 Alien.FinishedProcessingSource -> 675 671 SourcesMsg (Sources.FinishedProcessingSource data)
-9
src/Core/UI/Ports.elm
··· 16 16 port adjustEqualizerSetting : { knob : String, value : Float } -> Cmd msg 17 17 18 18 19 - port authenticateWithFission : () -> Cmd msg 20 - 21 - 22 - port collectFissionCapabilities : () -> Cmd msg 23 - 24 - 25 19 port copyToClipboard : String -> Cmd msg 26 20 27 21 ··· 108 102 109 103 110 104 port audioTimeUpdated : (Audio.TimeUpdatedEvent -> msg) -> Sub msg 111 - 112 - 113 - port collectedFissionCapabilities : (() -> msg) -> Sub msg 114 105 115 106 116 107 port downloadTracksFinished : (() -> msg) -> Sub msg
+1 -53
src/Core/UI/Svg/Elements.elm
··· 1 - module UI.Svg.Elements exposing (dropboxLogo, ipfsLogo, loading, loadingWithSize, oddLogo, remoteStorageLogo, webnativeLogo) 1 + module UI.Svg.Elements exposing (dropboxLogo, ipfsLogo, loading, loadingWithSize, remoteStorageLogo) 2 2 3 3 import Svg exposing (..) 4 4 import Svg.Attributes exposing (..) ··· 68 68 ] 69 69 70 70 71 - oddLogo : Int -> Svg Never 72 - oddLogo size = 73 - svg 74 - [ height (String.fromInt size) 75 - , viewBox "0 0 53 27" 76 - , width (String.fromInt size) 77 - ] 78 - [ Svg.path 79 - [ fill "currentColor" 80 - , d "M52.5 13.854c0 6.627-5.373 12-12 12s-12-5.373-12-12c0-6.628 5.373-12 12-12s12 5.372 12 12Z" 81 - ] 82 - [] 83 - , Svg.path 84 - [ fill "currentColor" 85 - , stroke "#fff" 86 - , d "M26.5 26.354c6.904 0 12.5-5.597 12.5-12.5 0-6.904-5.596-12.5-12.5-12.5S14 6.95 14 13.854c0 6.903 5.596 12.5 12.5 12.5Z" 87 - ] 88 - [] 89 - , Svg.path 90 - [ fill "#fff" 91 - , stroke "#fff" 92 - , d "M12.745 26.354c6.757 0 12.214-5.608 12.214-12.5 0-6.893-5.457-12.5-12.214-12.5C5.988 1.354.53 6.96.53 13.854c0 6.892 5.458 12.5 12.215 12.5Z" 93 - ] 94 - [] 95 - , Svg.path 96 - [ clipRule "evenodd" 97 - , fill "currentColor" 98 - , fillRule "evenodd" 99 - , d "M12.745 21.597c4.174 0 7.559-3.467 7.559-7.744 0-4.276-3.385-7.743-7.56-7.743-4.174 0-7.558 3.467-7.558 7.744 0 4.276 3.384 7.743 7.559 7.743Zm0 4.256c6.47 0 11.714-5.372 11.714-12 0-6.627-5.245-12-11.714-12-6.47 0-11.715 5.373-11.715 12 0 6.628 5.245 12 11.715 12Z" 100 - ] 101 - [] 102 - ] 103 - 104 - 105 71 remoteStorageLogo : Int -> Svg Never 106 72 remoteStorageLogo size = 107 73 svg ··· 116 82 ] 117 83 [ polygon 118 84 [ points "370,754 0,542 0,640 185,747 370,853 554,747 739,640 739,525 739,525 739,476 739,427 739,378 653,427 370,589 86,427 86,427 86,361 185,418 370,524 554,418 653,361 739,311 739,213 739,213 554,107 370,0 185,107 58,180 144,230 228,181 370,100 511,181 652,263 370,425 87,263 87,263 0,213 0,213 0,311 0,378 0,427 0,476 86,525 185,582 370,689 554,582 653,525 653,590 653,592" 119 - , fill "currentColor" 120 - ] 121 - [] 122 - ] 123 - 124 - 125 - webnativeLogo : Int -> Svg Never 126 - webnativeLogo size = 127 - svg 128 - [ fill "none" 129 - , height (String.fromInt size) 130 - , viewBox "0 0 250 250" 131 - , width (String.fromInt size) 132 - ] 133 - [ Svg.path 134 - [ fillRule "evenodd" 135 - , clipRule "evenodd" 136 - , d "M33.3333 0C10.1347 0 0 9.99249 0 33.3333V216.667C0 239.091 10.4172 250 33.3333 250H216.667C239.765 250 250 239.51 250 216.667V125V33.3333C250 10.3955 239.574 0 216.667 0H33.3333ZM57.3911 164.984L68.5617 51.2427C69.5933 40.7383 61.393 31.631 50.9031 31.631C38.1496 31.631 28.537 45.3231 32.0648 58.3591C36.7876 75.8111 41.3556 98.9561 41.6476 123.919C41.8176 138.455 40.3539 152.52 38.1506 165.262C35.9358 178.071 39.4107 191.433 46.7165 201.576C54.005 211.695 64.908 218.369 77.4832 218.369H83.9689C99.8795 218.369 112.778 205.39 112.778 189.38V177.288C112.778 170.016 107.529 163.82 100.393 162.669L91.5656 161.246C87.9339 160.66 84.5681 163.29 84.2316 166.975L84.1788 167.554C83.5427 174.522 77.7345 179.854 70.7805 179.854C62.8267 179.854 56.6089 172.949 57.3911 164.984ZM112.778 128.877V81.8168C112.778 75.371 117.97 70.1457 124.376 70.1457C130.782 70.1457 135.975 75.371 135.975 81.8168V183.356C135.975 202.693 151.553 218.369 170.77 218.369H172.247C197.218 218.369 215.844 191.62 211.259 165.803C208.974 152.93 207.384 138.689 207.384 123.965C207.384 98.3245 212.206 74.6027 217.157 56.9885C220.619 44.6718 211.535 31.631 199.501 31.631C189.81 31.631 182.175 39.9419 182.936 49.6632L191.972 165.139C192.593 173.072 186.363 179.854 178.454 179.854C171.446 179.854 165.592 174.48 164.951 167.458L155.103 59.5792C153.657 43.7467 140.46 31.631 124.66 31.631C108.793 31.631 95.5628 43.8469 94.202 59.755L87.6689 127.792C87.0977 134.468 91.798 140.436 98.3885 141.401C105.976 142.513 112.778 136.592 112.778 128.877Z" 137 85 , fill "currentColor" 138 86 ] 139 87 []
+1 -6
src/Core/UI/Syncing/Common.elm
··· 6 6 import UI.Svg.Elements 7 7 import UI.Syncing.Types exposing (..) 8 8 import UI.Types exposing (Msg(..)) 9 - import User.Layer exposing (Method, dropboxMethod, fissionMethod, remoteStorageMethod) 9 + import User.Layer exposing (Method, dropboxMethod, remoteStorageMethod) 10 10 11 11 12 12 ··· 16 16 startDropbox : Msg 17 17 startDropbox = 18 18 SyncingMsg (TriggerExternalAuth dropboxMethod "") 19 - 20 - 21 - startFission : Msg 22 - startFission = 23 - SyncingMsg (TriggerExternalAuth fissionMethod "") 24 19 25 20 26 21 startIpfs : Msg
+2 -8
src/Core/UI/Syncing/ContextMenu.elm
··· 4 4 import Coordinates exposing (Coordinates) 5 5 import Svg 6 6 import UI.Svg.Elements 7 - import UI.Syncing.Common exposing (startDropbox, startFission, startIpfs, startRemoteStorage) 7 + import UI.Syncing.Common exposing (startDropbox, startIpfs, startRemoteStorage) 8 8 import UI.Types exposing (Msg) 9 - import User.Layer exposing (dropboxMethod, fissionMethod, ipfsMethod, methodName, remoteStorageMethod) 9 + import User.Layer exposing (dropboxMethod, ipfsMethod, methodName, remoteStorageMethod) 10 10 11 11 12 12 ··· 17 17 syncDataMenu = 18 18 ContextMenu 19 19 [ Item 20 - { icon = \_ _ -> Svg.map never (UI.Svg.Elements.webnativeLogo 16) 21 - , label = methodName fissionMethod 22 - , msg = startFission 23 - , active = False 24 - } 25 - , Item 26 20 { icon = \_ _ -> Svg.map never (UI.Svg.Elements.dropboxLogo 16) 27 21 , label = methodName dropboxMethod 28 22 , msg = startDropbox
-14
src/Core/UI/Syncing/State.elm
··· 133 133 BootFailure a -> 134 134 bootFailure a 135 135 136 - CollectFissionCapabilities -> 137 - collectFissionCapabilities 138 - 139 136 ExchangeDropboxAuthCode a -> 140 137 exchangeDropboxAuthCode a 141 138 ··· 260 257 |> andThen Backdrop.setDefault 261 258 262 259 263 - collectFissionCapabilities : Manager 264 - collectFissionCapabilities model = 265 - return model (Ports.collectFissionCapabilities ()) 266 - 267 - 268 260 externalAuth : Method -> String -> Manager 269 261 externalAuth method string model = 270 262 case method of ··· 278 270 |> String.append "https://www.dropbox.com/oauth2/authorize" 279 271 |> Nav.load 280 272 |> return model 281 - 282 - Fission _ -> 283 - "Just a moment, loading necessary components ..." 284 - |> Notifications.stickyCasual 285 - |> Common.showNotificationWithModel model 286 - |> Return.command (Ports.authenticateWithFission ()) 287 273 288 274 RemoteStorage _ -> 289 275 string
-1
src/Core/UI/Syncing/Types.elm
··· 42 42 | ActivateSync Method 43 43 | ActivateSyncWithPassphrase Method String 44 44 | BootFailure String 45 - | CollectFissionCapabilities 46 45 | ExchangeDropboxAuthCode (Result Http.Error Dropbox.Tokens) 47 46 | GotSyncMethod Json.Value 48 47 | RemoteStorageWebfinger RemoteStorage.Attributes (Result Http.Error String)
+1 -136
src/Javascript/Brain/user.ts
··· 12 12 13 13 import * as crypto from "../crypto" 14 14 15 - import { APP_INFO, ODD_CONFIG } from "../common" 16 15 import { decryptIfNeeded, encryptIfPossible, SECRET_KEY_LOCATION } from "./common" 17 - import { parseJsonIfNeeded, removeCache, toCache } from "./common" 16 + import { parseJsonIfNeeded, toCache } from "./common" 18 17 19 18 20 19 const ports: Record<string, any> = {} ··· 66 65 }, 67 66 body: await encryptIfPossible(json) 68 67 }) 69 - } 70 - 71 - 72 - 73 - // Fission 74 - // ------- 75 - 76 - let odd, session 77 - 78 - 79 - taskPorts.fromFission = async ({ fileName, includePublicData }) => { 80 - await constructFission() 81 - 82 - // Private data 83 - const privatePath = odd.path.appData(APP_INFO, odd.path.file(fileName)) 84 - const privateData = await session.fs.exists(privatePath) 85 - ? session.fs.read(privatePath) 86 - .then(bytes => new TextDecoder().decode(bytes)) 87 - .then(parseJsonIfNeeded) 88 - : null 89 - 90 - // If public data and working with arrays 91 - if (includePublicData && Array.isArray(privateData)) { 92 - const publicPath = { 93 - file: privatePath.file.map((a: string, idx: number) => { 94 - return idx === 0 95 - ? "public" 96 - : a 97 - }) 98 - } 99 - 100 - const publicData = await session.fs.exists(publicPath) 101 - ? session.fs.read(publicPath) 102 - .then(bytes => new TextDecoder().decode(bytes)) 103 - .then(parseJsonIfNeeded) 104 - : null 105 - 106 - return publicData 107 - ? [ ...privateData, ...publicData ] 108 - : privateData 109 - 110 - // Otherwise 111 - } else { 112 - return privateData 113 - 114 - } 115 - } 116 - 117 - 118 - taskPorts.toFission = async ({ data, fileName, savePublicData }) => { 119 - await constructFission() 120 - 121 - // Data identifying 122 - const privatePath = odd.path.appData(APP_INFO, odd.path.file(fileName)) 123 - const isDataObject = typeof data === "object" && !!data.data 124 - 125 - if (!isDataObject) { 126 - await session.fs.write( 127 - privatePath, 128 - new TextEncoder().encode(JSON.stringify(data)) 129 - ) 130 - 131 - await session.fs.publish() 132 - 133 - return 134 - } 135 - 136 - // Group data 137 - const [ privateData, publicData ] = Array.isArray(data.data) && savePublicData 138 - ? data.data.reduce( 139 - ([ priv, pub ], item) => { 140 - return item.public 141 - ? [ priv, [ ...pub, item ] ] 142 - : [ [ ...priv, item ], pub ] 143 - }, 144 - [ [], [] ] 145 - ) 146 - : [ data.data, null ] 147 - 148 - // Private data 149 - await session.fs.write( 150 - privatePath, 151 - new TextEncoder().encode(JSON.stringify({ ...data, data: privateData })) 152 - ) 153 - 154 - // Public data 155 - if (publicData) { 156 - const publicPath = { 157 - file: privatePath.file.map((a: string, idx: number) => { 158 - return idx === 0 159 - ? "public" 160 - : a 161 - }) 162 - } 163 - 164 - await session.fs.write( 165 - publicPath, 166 - new TextEncoder().encode(JSON.stringify({ ...data, data: publicData })) 167 - ) 168 - } 169 - 170 - // Publish 171 - await session.fs.publish() 172 - } 173 - 174 - 175 - async function constructFission() { 176 - if (odd) return Promise.resolve() 177 - 178 - odd = await import("@oddjs/odd") 179 - 180 - const program = await odd.program({ 181 - ...ODD_CONFIG, 182 - fileSystem: { loadImmediately: false } 183 - }) 184 - 185 - session = program.session 186 - 187 - if (!session) { 188 - await removeCache("SYNC_METHOD") 189 - window.location.reload() 190 - throw new Error("Failed to load ODD SDK session") 191 - } 192 - 193 - session.fs = await program.fileSystem.load(session.username) 194 - if (!session.fs) throw new Error("Did not load ODD SDK file system") 195 - } 196 - 197 - 198 - ports.deconstructFission = _app => _ => { 199 - if (!session) return 200 - session.destroy() 201 - session = undefined 202 - odd = undefined 203 68 } 204 69 205 70
-321
src/Javascript/Odd/components/capabilities.ts
··· 1 - import * as Uint8arrays from "uint8arrays" 2 - 3 - import * as Base64 from "@oddjs/odd/common/base64" 4 - import * as Capabilities from "@oddjs/odd/capabilities" 5 - import * as Crypto from "@oddjs/odd/components/crypto/implementation" 6 - import * as Depot from "@oddjs/odd/components/depot/implementation" 7 - import * as DID from "@oddjs/odd/did/index" 8 - import * as Fission from "@oddjs/odd/common/fission" 9 - import * as Path from "@oddjs/odd/path/index" 10 - import * as TypeChecks from "@oddjs/odd/common/type-checks" 11 - import * as Ucan from "@oddjs/odd/ucan/index" 12 - 13 - import { Implementation, RequestOptions } from "@oddjs/odd/components/capabilities/implementation" 14 - import { Maybe } from "@oddjs/odd/common/types" 15 - import { VERSION } from "@oddjs/odd/common/version" 16 - 17 - 18 - // 🧩 19 - 20 - 21 - export type Dependencies = { 22 - crypto: Crypto.Implementation 23 - depot: Depot.Implementation 24 - } 25 - 26 - 27 - 28 - // 🛠 29 - 30 - 31 - export async function collect( 32 - endpoints: Fission.Endpoints, 33 - dependencies: Dependencies 34 - ): Promise<Maybe<Capabilities.Capabilities>> { 35 - const url = new URL(self.location.href) 36 - const username = url.searchParams.get("username") ?? "" 37 - if (!username) return null 38 - 39 - const info = await retry( 40 - () => getClassifiedViaPostMessage(endpoints, dependencies.crypto), 41 - { 42 - tries: 20, 43 - timeout: 60000, 44 - timeoutMessage: "Trying to retrieve UCAN(s) and readKey(s) from the auth lobby timed out after 60 seconds." 45 - } 46 - ) 47 - 48 - const secrets = await translateClassifiedInfo(dependencies, info) 49 - 50 - if (!secrets) { 51 - throw new Error("Failed to retrieve secrets from lobby url parameters") 52 - } 53 - 54 - url.searchParams.delete("authorised") 55 - url.searchParams.delete("cancelled") 56 - url.searchParams.delete("newUser") 57 - url.searchParams.delete("username") 58 - 59 - history.replaceState(null, document.title, url.toString()) 60 - 61 - return { ...secrets, username } 62 - } 63 - 64 - 65 - /** 66 - * Redirects to a lobby. 67 - * 68 - * NOTE: Only works on the main thread, as it uses `window.location`. 69 - */ 70 - export async function request( 71 - endpoints: Fission.Endpoints, 72 - dependencies: Dependencies, 73 - options: RequestOptions = {} 74 - ): Promise<void> { 75 - const { permissions } = options 76 - 77 - const app = permissions?.app 78 - const fs = permissions?.fs 79 - const platform = permissions?.platform 80 - const raw = permissions?.raw 81 - const sharing = permissions?.sharing 82 - 83 - const exchangeDid = await DID.exchange(dependencies.crypto) 84 - const writeDid = await DID.write(dependencies.crypto) 85 - const sharedRepo = false 86 - const redirectTo = options.returnUrl || window.location.href 87 - 88 - // Compile params 89 - const params = [ 90 - ["didExchange", exchangeDid], 91 - ["didWrite", writeDid], 92 - ["redirectTo", redirectTo], 93 - ["sdk", VERSION.toString()], 94 - ["sharedRepo", sharedRepo ? "t" : "f"], 95 - ["sharing", sharing ? "t" : "f"] 96 - 97 - ].concat( 98 - app ? [["appFolder", `${app.creator}/${app.name}`]] : [], 99 - fs?.private ? fs.private.map(p => ["privatePath", Path.toPosix(p, { absolute: true })]) : [], 100 - fs?.public ? fs.public.map(p => ["publicPath", Path.toPosix(p, { absolute: true })]) : [], 101 - raw ? [["raw", Base64.urlEncode(JSON.stringify(raw))]] : [], 102 - options.extraParams ? Object.entries(options.extraParams) : [] 103 - 104 - ).concat((() => { 105 - const apps = platform?.apps 106 - 107 - switch (typeof apps) { 108 - case "string": return [["app", apps]] 109 - case "object": return apps.map(a => ["app", a]) 110 - default: return [] 111 - } 112 - 113 - })()) 114 - 115 - // And, go! 116 - window.location.href = endpoints.lobby + "?" + 117 - params 118 - .map(([k, v]) => encodeURIComponent(k) + "=" + encodeURIComponent(v)) 119 - .join("&") 120 - } 121 - 122 - 123 - 124 - // COLLECTION HELPERS 125 - 126 - 127 - type LobbyClassifiedInfo = { 128 - sessionKey: string 129 - secrets: string 130 - iv: string 131 - } 132 - 133 - type LobbySecrets = { 134 - fs: Record<string, { key: string; bareNameFilter: string }> 135 - ucans: string[] 136 - } 137 - 138 - async function getClassifiedViaPostMessage( 139 - endpoints: Fission.Endpoints, 140 - crypto: Crypto.Implementation 141 - ): Promise<LobbyClassifiedInfo> { 142 - const didExchange = await DID.exchange(crypto) 143 - const iframe: HTMLIFrameElement = await new Promise(resolve => { 144 - const iframe = document.createElement("iframe") 145 - iframe.id = "odd-secret-exchange" 146 - iframe.style.width = "0" 147 - iframe.style.height = "0" 148 - iframe.style.border = "none" 149 - iframe.style.display = "none" 150 - document.body.appendChild(iframe) 151 - 152 - iframe.onload = () => { 153 - resolve(iframe) 154 - } 155 - 156 - iframe.src = `${endpoints.lobby}/exchange.html` 157 - }) 158 - 159 - return new Promise((resolve, reject) => { 160 - function stop() { 161 - globalThis.removeEventListener("message", listen) 162 - document.body.removeChild(iframe) 163 - reject() 164 - } 165 - 166 - function listen(event: MessageEvent<string>) { 167 - if (new URL(event.origin).host !== new URL(endpoints.lobby).host) return stop() 168 - if (event.data == null) return stop() 169 - 170 - let classifiedInfo 171 - 172 - try { 173 - classifiedInfo = JSON.parse(event.data) 174 - } catch { 175 - stop() 176 - } 177 - 178 - if (!isLobbyClassifiedInfo(classifiedInfo)) stop() 179 - globalThis.removeEventListener("message", listen) 180 - 181 - try { 182 - document.body.removeChild(iframe) 183 - } catch { 184 - resolve(classifiedInfo) 185 - } 186 - } 187 - 188 - globalThis.addEventListener("message", listen) 189 - 190 - if (iframe.contentWindow == null) { 191 - throw new Error("Can't import UCANs & readKey(s): No access to its contentWindow") 192 - } 193 - 194 - const message = { 195 - webnative: "exchange-secrets", 196 - didExchange 197 - } 198 - 199 - iframe.contentWindow.postMessage(message, iframe.src) 200 - }) 201 - } 202 - 203 - function isLobbyClassifiedInfo(obj: unknown): obj is LobbyClassifiedInfo { 204 - return TypeChecks.isObject(obj) 205 - && TypeChecks.isString(obj.sessionKey) 206 - && TypeChecks.isString(obj.secrets) 207 - && TypeChecks.isString(obj.iv) 208 - } 209 - 210 - function isLobbySecrets(obj: unknown): obj is LobbySecrets { 211 - return TypeChecks.isObject(obj) 212 - && TypeChecks.isObject(obj.fs) 213 - && Object.values(obj.fs).every(a => TypeChecks.hasProp(a, "key") && TypeChecks.hasProp(a, "bareNameFilter")) 214 - && Array.isArray(obj.ucans) 215 - && obj.ucans.every(a => TypeChecks.isString(a)) 216 - } 217 - 218 - async function translateClassifiedInfo( 219 - { crypto }: Dependencies, 220 - classifiedInfo: LobbyClassifiedInfo 221 - ): Promise<{ fileSystemSecrets: Capabilities.FileSystemSecret[]; ucans: Ucan.Ucan[] }> { 222 - // Extract session key 223 - const rawSessionKey = await crypto.keystore.decrypt( 224 - Uint8arrays.fromString(classifiedInfo.sessionKey, "base64pad") 225 - ) 226 - 227 - // The encrypted session key and read keys can be encoded in both UTF-16 and UTF-8. 228 - // This is because keystore-idb uses UTF-16 by default, and that's what the ODD SDK used before. 229 - // --- 230 - // This easy way of detection works because the decrypted session key is encoded in base 64. 231 - // That means it'll only ever use the first byte to encode it, and if it were UTF-16 it would 232 - // split up the two bytes. Hence we check for the second byte here. 233 - const isUtf16 = rawSessionKey[1] === 0 234 - 235 - const sessionKey = isUtf16 236 - ? Uint8arrays.fromString( 237 - new TextDecoder("utf-16").decode(rawSessionKey), 238 - "base64pad" 239 - ) 240 - : rawSessionKey 241 - 242 - // Decrypt secrets 243 - const secretsStr = await crypto.aes.decrypt( 244 - Uint8arrays.fromString(classifiedInfo.secrets, "base64pad"), 245 - sessionKey, 246 - Crypto.SymmAlg.AES_GCM, 247 - Uint8arrays.fromString(classifiedInfo.iv, "base64pad") 248 - ) 249 - 250 - const secrets: unknown = JSON.parse( 251 - Uint8arrays.toString(secretsStr, "utf8") 252 - ) 253 - 254 - if (!isLobbySecrets(secrets)) throw new Error("Invalid secrets received") 255 - 256 - const fileSystemSecrets: Capabilities.FileSystemSecret[] = 257 - isLobbySecrets(secrets) 258 - ? Object 259 - .entries(secrets.fs) 260 - .map(([posixPath, { bareNameFilter, key }]) => { 261 - return { 262 - bareNameFilter: bareNameFilter, 263 - path: Path.fromPosix(posixPath), 264 - readKey: Uint8arrays.fromString(key, "base64pad") 265 - } 266 - }) 267 - : [] 268 - 269 - const ucans: Ucan.Ucan[] = secrets.ucans.map( 270 - (u: string) => Ucan.decode(u) 271 - ) 272 - 273 - return { 274 - fileSystemSecrets, 275 - ucans, 276 - } 277 - } 278 - 279 - 280 - 281 - // HELPERS 282 - 283 - 284 - async function retry<T>( 285 - action: () => Promise<T>, 286 - options: { tries: number; timeout: number; timeoutMessage: string } 287 - ): Promise<T> { 288 - return new Promise((resolve, reject) => { 289 - if (options.tries > 0) { 290 - const unoMas = () => { 291 - retry(action, { ...options, tries: options.tries - 1 }) 292 - } 293 - 294 - const timeoutId = setTimeout(unoMas, options.timeout) 295 - 296 - action() 297 - .then(resolve, unoMas) 298 - .finally(() => clearTimeout(timeoutId)) 299 - 300 - } else { 301 - reject(new Error(options.timeoutMessage)) 302 - 303 - } 304 - }) 305 - } 306 - 307 - 308 - 309 - // 🛳 310 - 311 - 312 - export function implementation( 313 - dependencies: Dependencies 314 - ): Implementation { 315 - const endpoints = Fission.PRODUCTION 316 - 317 - return { 318 - collect: () => collect(endpoints, dependencies), 319 - request: (...args) => request(endpoints, dependencies, ...args) 320 - } 321 - }
-2
src/Javascript/UI/index.ts
··· 16 16 import * as Misc from "./misc" 17 17 import * as ServiceWorker from "./service-worker" 18 18 import * as Tracks from "./tracks" 19 - import * as UserLayer from "./user-layer" 20 19 21 20 22 21 ··· 54 53 Backdrop.init(app) 55 54 Misc.init(app) 56 55 Tracks.init(app) 57 - UserLayer.init(app) 58 56 }) 59 57 .catch( 60 58 Errors.failure
-76
src/Javascript/UI/user-layer.ts
··· 1 - import type { Program as OddProgram } from "@oddjs/odd" 2 - import type { App } from "./elm/types.js" 3 - 4 - import { ODD_CONFIG } from "../common" 5 - 6 - 7 - // 🏔️ 8 - 9 - 10 - let app: App 11 - let odd 12 - 13 - 14 - 15 - // 🚀 16 - 17 - 18 - export function init(a: App) { 19 - app = a 20 - 21 - app.ports.authenticateWithFission.subscribe(async () => { 22 - const program = await oddProgram() 23 - await program.capabilities.request({ 24 - returnUrl: location.origin + "?action=authenticate/fission" 25 - }) 26 - }) 27 - 28 - app.ports.collectFissionCapabilities.subscribe(() => { 29 - // The ODD SDK should collect the capabilities for us, 30 - // if everything is valid, we'll receive a session. 31 - oddProgram().then( 32 - () => { 33 - history.replaceState({}, "", location.origin) 34 - app.ports.collectedFissionCapabilities.send(null) 35 - } 36 - ).catch( 37 - err => console.error(err) 38 - ) 39 - }) 40 - } 41 - 42 - 43 - 44 - // Fission ~ ODD 45 - // ------------- 46 - 47 - 48 - async function oddProgram(): Promise<OddProgram> { 49 - try { 50 - await loadOdd() 51 - } catch (err) { 52 - console.trace(err) 53 - throw new Error("Failed to load the ODD SDK") 54 - } 55 - 56 - const capComponent = await import("../Odd/components/capabilities.js") 57 - 58 - const crypto = await odd.defaultCryptoComponent(ODD_CONFIG) 59 - const storage = await odd.defaultStorageComponent(ODD_CONFIG) 60 - const depot = await odd.defaultDepotComponent({ storage }, ODD_CONFIG) 61 - 62 - return odd.program({ 63 - ...ODD_CONFIG, 64 - capabilities: capComponent.implementation({ 65 - crypto, 66 - depot 67 - }), 68 - fileSystem: { loadImmediately: false } 69 - }) 70 - } 71 - 72 - 73 - async function loadOdd() { 74 - if (odd) return 75 - odd = await import("@oddjs/odd") 76 - }
-17
src/Javascript/common.ts
··· 6 6 import * as localforage from "localforage" 7 7 8 8 9 - export const APP_INFO = { 10 - creator: "icidasset", 11 - name: "Diffuse" 12 - } 13 - 14 - 15 - export const ODD_CONFIG = { 16 - namespace: APP_INFO, 17 - permissions: { 18 - app: APP_INFO, 19 - fs: { public: [ { directory: [ "Apps", APP_INFO.creator, APP_INFO.name ] } ] } 20 - }, 21 - debug: true, 22 - } 23 - 24 - 25 - 26 9 // 🌳 27 10 28 11
-2
src/Library/Alien.elm
··· 57 57 -- to UI 58 58 ----------------------------------------- 59 59 | AddTracks 60 - | CollectFissionCapabilities 61 60 | FinishedProcessingSource 62 61 | FinishedProcessingSources 63 62 | FinishedSyncing ··· 112 111 -- To UI 113 112 ----------------------------------------- 114 113 , ( "ADD_TRACKS", AddTracks ) 115 - , ( "COLLECT_FISSION_CAPABILITIES", CollectFissionCapabilities ) 116 114 , ( "FINISHED_PROCESSING_SOURCE", FinishedProcessingSource ) 117 115 , ( "FINISHED_PROCESSING_SOURCES", FinishedProcessingSources ) 118 116 , ( "GOT_CACHED_COVER", GotCachedCover )
-18
src/Library/User/Layer.elm
··· 43 43 44 44 type Method 45 45 = Dropbox { accessToken : String, expiresAt : Int, refreshToken : String } 46 - | Fission {} 47 46 | Ipfs { apiOrigin : String } 48 47 | RemoteStorage { userAddress : String, token : String } 49 48 ··· 51 50 dropboxMethod : Method 52 51 dropboxMethod = 53 52 Dropbox { accessToken = "", expiresAt = 0, refreshToken = "" } 54 - 55 - 56 - fissionMethod : Method 57 - fissionMethod = 58 - Fission {} 59 53 60 54 61 55 ipfsMethod : Method ··· 151 145 Dropbox _ -> 152 146 "Dropbox" 153 147 154 - Fission _ -> 155 - "Fission" 156 - 157 148 Ipfs _ -> 158 149 "IPFS (using MFS)" 159 150 ··· 172 163 , refreshToken = r 173 164 } 174 165 ) 175 - 176 - [ "FISSION" ] -> 177 - Just (Fission {}) 178 166 179 167 [ "IPFS", a ] -> 180 168 Just (Ipfs { apiOrigin = a }) ··· 198 186 , refreshToken 199 187 ] 200 188 201 - Fission _ -> 202 - "FISSION" 203 - 204 189 Ipfs { apiOrigin } -> 205 190 String.join 206 191 methodSeparator ··· 227 212 case method of 228 213 Dropbox _ -> 229 214 False 230 - 231 - Fission _ -> 232 - True 233 215 234 216 Ipfs _ -> 235 217 False
+1 -3
src/Static/About/Index.md
··· 27 27 28 28 ### User layer 29 29 30 - This layer will use a single service on which to store your data. Your data being your settings, favourites, playlists, etc. You can choose between these services: 30 + This (optional) layer will use a single service on which to store your data externally. Your data being your settings, favourites, playlists, etc. You can choose between these services: 31 31 32 32 - [Dropbox](https://www.dropbox.com/) 33 - - [Fission](https://fission.codes/) 34 - - [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) <small>(Browser)</small> 35 33 - [IPFS](https://ipfs.io/) <small>(using MFS)</small> 36 34 - [RemoteStorage](https://remotestorage.io/) 37 35