diff --git a/config/env/common.js b/config/env/common.js index 26dde16..85f241c 100644 --- a/config/env/common.js +++ b/config/env/common.js @@ -131,6 +131,7 @@ export default { // IPFS Ports ipfsTcpPort: process.env.IPFS_TCP_PORT ? process.env.IPFS_TCP_PORT : 4001, ipfsWsPort: process.env.IPFS_WS_PORT ? process.env.IPFS_WS_PORT : 4003, + ipfsWebRtcPort: process.env.IPFS_WEB_RTC_PORT ? process.env.IPFS_WEB_RTC_PORT : 4005, // Settings for production, using external go-ipfs node. isProduction: process.env.SVC_ENV === 'prod' ? true : false, diff --git a/package-lock.json b/package-lock.json index 4d3197d..d570cc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,14 +13,15 @@ "@chainsafe/libp2p-noise": "16.0.1", "@chainsafe/libp2p-yamux": "7.0.1", "@helia/unixfs": "4.0.2", - "@libp2p/bootstrap": "11.0.22", - "@libp2p/circuit-relay-v2": "3.1.12", - "@libp2p/identify": "3.0.18", + "@libp2p/bootstrap": "11.0.23", + "@libp2p/circuit-relay-v2": "3.1.13", + "@libp2p/config": "1.1.0", + "@libp2p/identify": "3.0.19", "@libp2p/keychain": "5.0.14", "@libp2p/logger": "5.1.8", "@libp2p/ping": "2.0.18", - "@libp2p/tcp": "10.0.19", - "@libp2p/webrtc": "5.1.0", + "@libp2p/tcp": "10.0.20", + "@libp2p/webrtc": "5.1.1", "@libp2p/websockets": "9.1.5", "@multiformats/multiaddr": "12.3.5", "axios": "0.27.2", @@ -44,7 +45,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", - "libp2p": "2.6.2", + "libp2p": "2.6.3", "line-reader": "0.4.0", "minimal-slp-wallet": "5.13.2", "mongoose": "5.13.14", @@ -3471,16 +3472,16 @@ } }, "node_modules/@libp2p/autonat": { - "version": "2.0.19", - "resolved": "http://94.130.170.209:4873/@libp2p%2fautonat/-/autonat-2.0.19.tgz", - "integrity": "sha512-FcCVheGZpBhgiCwVZrGekrHlH2IEMgt4ottZ9cpLVE4RoEEkTXaDV4qjDBkCDf32QrqmnrVDamff5B7TGSa2jA==", + "version": "2.0.21", + "resolved": "http://94.130.170.209:4873/@libp2p%2fautonat/-/autonat-2.0.21.tgz", + "integrity": "sha512-xxI3gTlqkvJ+qHBpT/OIi72E1Ls0QaD28ritzmZ2ejkhv05qCuu34hpyf/qCrXGfAZXiKifxGpZHL4I9bSk6Pw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", - "@libp2p/peer-collections": "^6.0.17", - "@libp2p/peer-id": "^5.0.12", - "@libp2p/utils": "^6.5.1", + "@libp2p/interface": "^2.6.0", + "@libp2p/interface-internal": "^2.3.2", + "@libp2p/peer-collections": "^6.0.18", + "@libp2p/peer-id": "^5.0.13", + "@libp2p/utils": "^6.5.2", "@multiformats/multiaddr": "^12.3.3", "any-signal": "^4.1.1", "it-protobuf-stream": "^1.1.5", @@ -3490,27 +3491,27 @@ } }, "node_modules/@libp2p/bootstrap": { - "version": "11.0.22", - "resolved": "http://94.130.170.209:4873/@libp2p%2fbootstrap/-/bootstrap-11.0.22.tgz", - "integrity": "sha512-UVRNA51AlY75lg21mwuOTNuc/+VrMwG/eNkvp3B51F6H2WnazYIvWaww9GABaVBGJvx8+N9zq1gzccwuKwpr8A==", + "version": "11.0.23", + "resolved": "http://94.130.170.209:4873/@libp2p%2fbootstrap/-/bootstrap-11.0.23.tgz", + "integrity": "sha512-2HqwyAoCy6rliVM9n1YF3vsIKxo2Hyb1Dd/p9I33mVxMIQ17oS3aMG3CC2BxYHFSa3M173oxPcUrEff+j1jxxw==", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", + "@libp2p/interface-internal": "^2.3.1", "@libp2p/peer-id": "^5.0.12", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.3.3" } }, "node_modules/@libp2p/circuit-relay-v2": { - "version": "3.1.12", - "resolved": "http://94.130.170.209:4873/@libp2p%2fcircuit-relay-v2/-/circuit-relay-v2-3.1.12.tgz", - "integrity": "sha512-r6AHjiDPzlrSnC+x1uSE6JK0V8OCX8ScRjNj+kcrKzSMxb3ScXcXYb6BGQhAL42Xk0cpwf8kM603aR+SXnCjQw==", + "version": "3.1.13", + "resolved": "http://94.130.170.209:4873/@libp2p%2fcircuit-relay-v2/-/circuit-relay-v2-3.1.13.tgz", + "integrity": "sha512-/8kp+7gllRjx9aXoHkR5xhTwywSzjetTEO8Pda+6g8stkt9Ntgix+G85+ZYK75l0r+C9SykZqnIfzeeTBehOoA==", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^5.0.11", "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", + "@libp2p/interface-internal": "^2.3.1", "@libp2p/peer-collections": "^6.0.17", "@libp2p/peer-id": "^5.0.12", "@libp2p/peer-record": "^8.0.17", @@ -3530,25 +3531,55 @@ } }, "node_modules/@libp2p/config": { - "version": "1.0.3", - "resolved": "http://94.130.170.209:4873/@libp2p%2fconfig/-/config-1.0.3.tgz", - "integrity": "sha512-4NPB7C1rDq0/Ifv1b/NXBSl1FcP1qB0nphIdTKLit4G8+51Cc1+JW7e/dyVcKOF+nh9KpxrWQUX5Y+DNYcWxPQ==", + "version": "1.1.0", + "resolved": "http://94.130.170.209:4873/@libp2p%2fconfig/-/config-1.1.0.tgz", + "integrity": "sha512-dowkLTEPvfvjgA0DrAMJFNM8MaLU7lOgWV2TWK4zUYPU4+JJYBF3arDoD/zSYj2agt5ABERk39F3puMK0sxv4A==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", - "@libp2p/keychain": "^5.0.14", - "@libp2p/logger": "^5.1.8", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@libp2p/keychain": "^5.1.0", + "@libp2p/logger": "^5.1.9", "interface-datastore": "^8.3.1" } }, - "node_modules/@libp2p/crypto": { - "version": "5.0.11", - "resolved": "http://94.130.170.209:4873/@libp2p%2fcrypto/-/crypto-5.0.11.tgz", - "integrity": "sha512-1//iAZAO6XKFPwKqX7xCNJFwIgSyLOTE7wVS0gFaD7jWXeYmD78cojFq5QC1jRl04iTJe4COTTNHen/cpqurwA==", + "node_modules/@libp2p/config/node_modules/@libp2p/keychain": { + "version": "5.1.0", + "resolved": "http://94.130.170.209:4873/@libp2p%2fkeychain/-/keychain-5.1.0.tgz", + "integrity": "sha512-yDZIR6ep7SmZkfWzmM48a8kUr4HLzCOfZyRyIhVdBt6+F5qARXMkx+GWzAkQO0Pxsud+Ukk8yl3m3llfceIwOw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@noble/hashes": "^1.6.1", + "asn1js": "^3.0.5", + "interface-datastore": "^8.3.1", + "merge-options": "^3.0.4", + "multiformats": "^13.3.1", + "sanitize-filename": "^1.6.3", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/config/node_modules/@libp2p/logger": { + "version": "5.1.9", + "resolved": "http://94.130.170.209:4873/@libp2p%2flogger/-/logger-5.1.9.tgz", + "integrity": "sha512-PQbCTSSaJ2sRjV8vbewpS2promeDjEQqCjxWUTvY5RuTOKu5iUApG1JcmjfJ4Y+n9qpuVnE2G6ol9AIyco/EOQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.6.0", + "@multiformats/multiaddr": "^12.3.3", + "interface-datastore": "^8.3.1", + "multiformats": "^13.3.1", + "weald": "^1.0.4" + } + }, + "node_modules/@libp2p/crypto": { + "version": "5.0.12", + "resolved": "http://94.130.170.209:4873/@libp2p%2fcrypto/-/crypto-5.0.12.tgz", + "integrity": "sha512-6x6KdaeVW7uehK4c9zu03Ln70Yvy7LWdBZWi8NQeXymoXYCZOm/jPYb+yfRg3p75W7AVMSPjyxLgpWKFYhP8LQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.6.0", "@noble/curves": "^1.7.0", "@noble/hashes": "^1.6.1", "asn1js": "^3.0.5", @@ -3559,14 +3590,14 @@ } }, "node_modules/@libp2p/dcutr": { - "version": "2.0.18", - "resolved": "http://94.130.170.209:4873/@libp2p%2fdcutr/-/dcutr-2.0.18.tgz", - "integrity": "sha512-GIfqRmaZ+hCgAj9kNY7E3aCOfo25n0rrF+vWSYnSip1eWcmvzrke0B42uiImXpWPvUNvYnBZChKfJRLnf5zerw==", + "version": "2.0.20", + "resolved": "http://94.130.170.209:4873/@libp2p%2fdcutr/-/dcutr-2.0.20.tgz", + "integrity": "sha512-nVHdUNmXiSJn1LaauxE67QaOnnUiIvyKb0uSondkZvaBYsIgjVYrCmicNe4dSoYppL9Q1IvY6pDnDKeejNyVKg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", - "@libp2p/utils": "^6.5.1", + "@libp2p/interface": "^2.6.0", + "@libp2p/interface-internal": "^2.3.2", + "@libp2p/utils": "^6.5.2", "@multiformats/multiaddr": "^12.3.3", "@multiformats/multiaddr-matcher": "^1.6.0", "delay": "^6.0.0", @@ -3595,14 +3626,14 @@ } }, "node_modules/@libp2p/identify": { - "version": "3.0.18", - "resolved": "http://94.130.170.209:4873/@libp2p%2fidentify/-/identify-3.0.18.tgz", - "integrity": "sha512-79y20YnFOCOB8UqKp9S+xeN5dEz1XsPISv892BUgrumtWAv2y+HFO3ioB+0qHuE4EO+ToBx+mbMgPLFQkPd63A==", + "version": "3.0.19", + "resolved": "http://94.130.170.209:4873/@libp2p%2fidentify/-/identify-3.0.19.tgz", + "integrity": "sha512-D7IrK8KIfytWHnRsKDR49Jym5+m30cmQZhhxIhSe2+V/GYnigWjZXTrGvLOYJRk/xREkdQfZEqQxa8FutevYjw==", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^5.0.11", "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", + "@libp2p/interface-internal": "^2.3.1", "@libp2p/peer-id": "^5.0.12", "@libp2p/peer-record": "^8.0.17", "@libp2p/utils": "^6.5.1", @@ -3617,9 +3648,9 @@ } }, "node_modules/@libp2p/interface": { - "version": "2.5.0", - "resolved": "http://94.130.170.209:4873/@libp2p%2finterface/-/interface-2.5.0.tgz", - "integrity": "sha512-XKUHsDMbMVwEGgYYj1uB5XCnlFeF21SgyynKbc4sqfVCEJdjxF7ILYX0dm6tjBGjVThubjUd2b82RwOqeds3Kg==", + "version": "2.6.0", + "resolved": "http://94.130.170.209:4873/@libp2p%2finterface/-/interface-2.6.0.tgz", + "integrity": "sha512-JVWjSSWL+hCjwp2vRFOTTCtyQwlB7pi9vA0r8oE9ZDIbadlMvA6fBfQlTK1uDIv0SMwQ77aHJcn7Nc9ixzIO2g==", "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/multiaddr": "^12.3.3", @@ -3631,37 +3662,37 @@ } }, "node_modules/@libp2p/interface-internal": { - "version": "2.3.0", - "resolved": "http://94.130.170.209:4873/@libp2p%2finterface-internal/-/interface-internal-2.3.0.tgz", - "integrity": "sha512-3D2cKBMXiSHv5VKX8unD3W+GL1K9EDt6nLxNl4/aU2t1IE8jwZ5ovx/9hIhKZFOJ+c3fgkp1OdH44i4w/Wc/1w==", + "version": "2.3.2", + "resolved": "http://94.130.170.209:4873/@libp2p%2finterface-internal/-/interface-internal-2.3.2.tgz", + "integrity": "sha512-AXKYK3MU08thJCy4zRCU81RWuXJ6hR0VS0VDani2eWsv3pQ09X0R2s8+Cl0zpwa+blMaWWSKOGioWfmsnTAwvg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", - "@libp2p/peer-collections": "^6.0.17", + "@libp2p/interface": "^2.6.0", + "@libp2p/peer-collections": "^6.0.18", "@multiformats/multiaddr": "^12.3.3", "progress-events": "^1.0.1" } }, "node_modules/@libp2p/kad-dht": { - "version": "14.2.5", - "resolved": "http://94.130.170.209:4873/@libp2p%2fkad-dht/-/kad-dht-14.2.5.tgz", - "integrity": "sha512-Gb9OlVjOJsYF/PQYfdlE1l6QtAXdAg+1VdomasVEYjdJEcY8Acvh2vJZakIdtCasFT0m7rUyFY6O0RXH1IN59g==", + "version": "14.2.7", + "resolved": "http://94.130.170.209:4873/@libp2p%2fkad-dht/-/kad-dht-14.2.7.tgz", + "integrity": "sha512-3CJeh6byqe1t9uidFWD5DgNBvRSLgBC8mS2dcEptFruS1Q9QPlgRLjUZ8w0g0AItebScvE3M4osetaf1gaqEYg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", - "@libp2p/peer-collections": "^6.0.17", - "@libp2p/peer-id": "^5.0.12", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@libp2p/interface-internal": "^2.3.2", + "@libp2p/peer-collections": "^6.0.18", + "@libp2p/peer-id": "^5.0.13", "@libp2p/record": "^4.0.4", - "@libp2p/utils": "^6.5.1", + "@libp2p/utils": "^6.5.2", "@multiformats/multiaddr": "^12.3.3", "any-signal": "^4.1.1", "interface-datastore": "^8.3.1", "it-all": "^3.0.6", "it-drain": "^3.0.7", "it-length": "^3.0.6", - "it-length-prefixed": "^9.1.0", + "it-length-prefixed": "^10.0.1", "it-map": "^3.1.1", "it-merge": "^3.0.5", "it-parallel": "^3.0.8", @@ -3680,6 +3711,23 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/kad-dht/node_modules/it-length-prefixed": { + "version": "10.0.1", + "resolved": "http://94.130.170.209:4873/it-length-prefixed/-/it-length-prefixed-10.0.1.tgz", + "integrity": "sha512-BhyluvGps26u9a7eQIpOI1YN7mFgi8lFwmiPi07whewbBARKAG9LE09Odc8s1Wtbt2MB6rNUrl7j9vvfXTJwdQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@libp2p/keychain": { "version": "5.0.14", "resolved": "http://94.130.170.209:4873/@libp2p%2fkeychain/-/keychain-5.0.14.tgz", @@ -3711,15 +3759,15 @@ } }, "node_modules/@libp2p/mdns": { - "version": "11.0.22", - "resolved": "http://94.130.170.209:4873/@libp2p%2fmdns/-/mdns-11.0.22.tgz", - "integrity": "sha512-v4Y4f/ryRWF8CylyzZZjJd6vbkqp2rwUDfkFG613KZMGKs/YpXgB/QV3JYbDEo7NF0IFfQzD0qHy/A0JxOVQKw==", + "version": "11.0.24", + "resolved": "http://94.130.170.209:4873/@libp2p%2fmdns/-/mdns-11.0.24.tgz", + "integrity": "sha512-RZRNHQJDlPT0TSswJvUGDJ7BWXBFh6Ii5hfMuXu4g2c38cLSyjpyvq3Ov8A8FBupW+w58nUfxn/b5spMHOXwlQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", - "@libp2p/peer-id": "^5.0.12", - "@libp2p/utils": "^6.5.1", + "@libp2p/interface": "^2.6.0", + "@libp2p/interface-internal": "^2.3.2", + "@libp2p/peer-id": "^5.0.13", + "@libp2p/utils": "^6.5.2", "@multiformats/multiaddr": "^12.3.3", "@types/multicast-dns": "^7.2.4", "dns-packet": "^5.6.1", @@ -3727,13 +3775,13 @@ } }, "node_modules/@libp2p/mplex": { - "version": "11.0.22", - "resolved": "http://94.130.170.209:4873/@libp2p%2fmplex/-/mplex-11.0.22.tgz", - "integrity": "sha512-zeutwWiZYYLnH3gvRtthpT4rVwrkjz8qc1c2/ii2moDyUuc3xMc2rSDaInkpsb6JBCF2KthVFgxv6W8hLnIwYQ==", + "version": "11.0.24", + "resolved": "http://94.130.170.209:4873/@libp2p%2fmplex/-/mplex-11.0.24.tgz", + "integrity": "sha512-tEA1DcMa9bfKv6ByPtcO3NbH6zw/E0PeeZDp7D9pvHC45ws53A6646rNAS+2HjGCeQ/KgD8K/+MN1bFb9qUtcg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", - "@libp2p/utils": "^6.5.1", + "@libp2p/interface": "^2.6.0", + "@libp2p/utils": "^6.5.2", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.2", @@ -3743,13 +3791,13 @@ } }, "node_modules/@libp2p/multistream-select": { - "version": "6.0.13", - "resolved": "http://94.130.170.209:4873/@libp2p%2fmultistream-select/-/multistream-select-6.0.13.tgz", - "integrity": "sha512-4PK1KxMCrlfjhTT4UP3kqioj9b93U3ZulDdCVad1wae3buis6ecby4JA61of5nWZdh45xVTW0kTLnFHA4Pqmzw==", + "version": "6.0.15", + "resolved": "http://94.130.170.209:4873/@libp2p%2fmultistream-select/-/multistream-select-6.0.15.tgz", + "integrity": "sha512-cQocM+GrK2T5Rda2aOCP7JzQNeONQW6yuI3+UVNxqVjFggKgx1ZpxXzGYDKSmmewa4B0R0hb1rUT6JL9QHAeLQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", - "it-length-prefixed": "^9.1.0", + "@libp2p/interface": "^2.6.0", + "it-length-prefixed": "^10.0.1", "it-length-prefixed-stream": "^1.2.0", "it-stream-types": "^2.0.2", "p-defer": "^4.0.1", @@ -3759,40 +3807,57 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/peer-collections": { - "version": "6.0.17", - "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-collections/-/peer-collections-6.0.17.tgz", - "integrity": "sha512-ww+4rXe0iL2vMafq0N58tabUNHlfozzJEVIxXMN15L0VZnvUK5TryOM6AnGpUj+nvoToGBuB1ZYalI+17nJmMg==", + "node_modules/@libp2p/multistream-select/node_modules/it-length-prefixed": { + "version": "10.0.1", + "resolved": "http://94.130.170.209:4873/it-length-prefixed/-/it-length-prefixed-10.0.1.tgz", + "integrity": "sha512-BhyluvGps26u9a7eQIpOI1YN7mFgi8lFwmiPi07whewbBARKAG9LE09Odc8s1Wtbt2MB6rNUrl7j9vvfXTJwdQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.5.0", - "@libp2p/peer-id": "^5.0.12", - "@libp2p/utils": "^6.5.1", + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-collections": { + "version": "6.0.18", + "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-collections/-/peer-collections-6.0.18.tgz", + "integrity": "sha512-pDQQFdPEbsj3K5GPmrme7D1TMg4/rng2itnyDNKzLWlq2Lt9LVBkevAhf0KAAahBcoQEJOhHH1X8+Eo+EC/GcQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.6.0", + "@libp2p/peer-id": "^5.0.13", + "@libp2p/utils": "^6.5.2", "multiformats": "^13.3.1" } }, "node_modules/@libp2p/peer-id": { - "version": "5.0.12", - "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-id/-/peer-id-5.0.12.tgz", - "integrity": "sha512-SovviVLG+vBwYZVIiJ+NN/f29jXczPVzoDGp9bMLBQoDPqGAB8IQ71BZLba25CUF+llJlXZRNzYwjZiJ0Y2DuA==", + "version": "5.0.13", + "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-id/-/peer-id-5.0.13.tgz", + "integrity": "sha512-II+TJ1k97ALmCdMqz95R7lTlGUUu7jIxzlYoYDTZiQ1tZ7JuSGhC5CxUuyJABdv6L6t71stpo+o11Hd62zUHeA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", "multiformats": "^13.3.1", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-record": { - "version": "8.0.17", - "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-record/-/peer-record-8.0.17.tgz", - "integrity": "sha512-n1ZMuLo1a4TnUGQHwkBScuBLDW6JI/eQnF9JdKZX4lZnufGC6e98qoBbyTQU7k61/e+WNjukBCWkMcJpD5dugA==", + "version": "8.0.18", + "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-record/-/peer-record-8.0.18.tgz", + "integrity": "sha512-24cSta2jDZ5bAHwLObzHixWma6xoG77JWhTztolKoA6Wx7EqL8VfuSJw/2AoKe8RKxked9Zr0T/zN0xZAuqXag==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", - "@libp2p/peer-id": "^5.0.12", - "@libp2p/utils": "^6.5.1", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@libp2p/peer-id": "^5.0.13", + "@libp2p/utils": "^6.5.2", "@multiformats/multiaddr": "^12.3.3", "multiformats": "^13.3.1", "protons-runtime": "^5.5.0", @@ -3802,15 +3867,15 @@ } }, "node_modules/@libp2p/peer-store": { - "version": "11.0.17", - "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-store/-/peer-store-11.0.17.tgz", - "integrity": "sha512-E7rG8FsvV3uNbGHuhNvUDecIjK88n0CGHGom8pDAXWVHy4RR12xOFXZrf8nq6NRbP9T+nzE5XOwXLo2t+p2PYA==", + "version": "11.0.18", + "resolved": "http://94.130.170.209:4873/@libp2p%2fpeer-store/-/peer-store-11.0.18.tgz", + "integrity": "sha512-ZuVBTz78pNDTqV7CXY1g+3O5Q23Mb23yaFeqiPAUCfx+RUjFt+aQxLkKmAxTCBjQFDd4vxmlNPbxxBXCTohH8g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", - "@libp2p/peer-id": "^5.0.12", - "@libp2p/peer-record": "^8.0.17", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@libp2p/peer-id": "^5.0.13", + "@libp2p/peer-record": "^8.0.18", "@multiformats/multiaddr": "^12.3.3", "interface-datastore": "^8.3.1", "it-all": "^3.0.6", @@ -3836,18 +3901,18 @@ } }, "node_modules/@libp2p/pubsub": { - "version": "10.0.18", - "resolved": "http://94.130.170.209:4873/@libp2p%2fpubsub/-/pubsub-10.0.18.tgz", - "integrity": "sha512-Qgy752RUsOZPGAvKdeLPUa2CDdpo9ArFowNTHgTIOTQ06DSncYOueeUgeZXIauQuETK5GHUY4oY6Nc82voyH6w==", + "version": "10.1.1", + "resolved": "http://94.130.170.209:4873/@libp2p%2fpubsub/-/pubsub-10.1.1.tgz", + "integrity": "sha512-RBE4tDE2+H091oylrfxZdOCP40aid2UWsSEpQ/NIVLpwhMto1ESNJQkzHZcCwyCN9pcuDrD9KoGDxlNw94bsGQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", - "@libp2p/peer-collections": "^6.0.17", - "@libp2p/peer-id": "^5.0.12", - "@libp2p/utils": "^6.5.1", - "it-length-prefixed": "^9.1.0", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@libp2p/interface-internal": "^2.3.2", + "@libp2p/peer-collections": "^6.0.18", + "@libp2p/peer-id": "^5.0.13", + "@libp2p/utils": "^6.5.2", + "it-length-prefixed": "^10.0.1", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "multiformats": "^13.3.1", @@ -3856,6 +3921,23 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/pubsub/node_modules/it-length-prefixed": { + "version": "10.0.1", + "resolved": "http://94.130.170.209:4873/it-length-prefixed/-/it-length-prefixed-10.0.1.tgz", + "integrity": "sha512-BhyluvGps26u9a7eQIpOI1YN7mFgi8lFwmiPi07whewbBARKAG9LE09Odc8s1Wtbt2MB6rNUrl7j9vvfXTJwdQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@libp2p/record": { "version": "4.0.4", "resolved": "http://94.130.170.209:4873/@libp2p%2frecord/-/record-4.0.4.tgz", @@ -3868,9 +3950,9 @@ } }, "node_modules/@libp2p/tcp": { - "version": "10.0.19", - "resolved": "http://94.130.170.209:4873/@libp2p%2ftcp/-/tcp-10.0.19.tgz", - "integrity": "sha512-7AVNzOQIMo5VZt2gtB4A5GR7MTUCT86MQ28LFP+3vZInF3IXGO5QOvfQHwwbIcwTL7dDoMnwDLnVZ1NzAXmVUw==", + "version": "10.0.20", + "resolved": "http://94.130.170.209:4873/@libp2p%2ftcp/-/tcp-10.0.20.tgz", + "integrity": "sha512-vXwh0a4+CAAXiCb/BPZzb/VtfP1IWvQROGQa9LfqAx6fVh8f1sXoG+v+GvwgnSpOVQVpFoOpeMRbi7sShhIWUA==", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^2.5.0", @@ -3886,14 +3968,14 @@ } }, "node_modules/@libp2p/tls": { - "version": "2.0.15", - "resolved": "http://94.130.170.209:4873/@libp2p%2ftls/-/tls-2.0.15.tgz", - "integrity": "sha512-hq7Cria5IRFO3ZNKtbDeHZpKJaO8yB27JgPadYWsR3SmR+pPw8t/tANNWtplU1NB3wFkJt+AMquGNU/U/iRUsA==", + "version": "2.0.16", + "resolved": "http://94.130.170.209:4873/@libp2p%2ftls/-/tls-2.0.16.tgz", + "integrity": "sha512-+jElBMtKTYqUCfnSKzupKe0Eqh4UnoCVEfHtidjleWL/9zOPf+Xb0ufRGUDh5QbkmPUumVNSWXTBnEo4WtsaBg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", - "@libp2p/peer-id": "^5.0.12", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@libp2p/peer-id": "^5.0.13", "@peculiar/asn1-schema": "^2.3.13", "@peculiar/asn1-x509": "^2.3.13", "@peculiar/webcrypto": "^1.5.0", @@ -3907,16 +3989,16 @@ } }, "node_modules/@libp2p/upnp-nat": { - "version": "3.1.2", - "resolved": "http://94.130.170.209:4873/@libp2p%2fupnp-nat/-/upnp-nat-3.1.2.tgz", - "integrity": "sha512-83tAzF7hl9hbRN6hQnVzVj6FCt0QHuNTeMKB+njxUw72CmAnhyWrUZ8L2VsdKDSbJT7LtEx56o3qcNX0n9dsUA==", + "version": "3.1.4", + "resolved": "http://94.130.170.209:4873/@libp2p%2fupnp-nat/-/upnp-nat-3.1.4.tgz", + "integrity": "sha512-yM9GXxxWZfIdLy6hSE3PK+GsA+zEb9bJs4aExphMk/EKS/2fjPCGLdaKa+O1+SNvJZF4hQYjB5ysNSynIJzy8A==", "license": "Apache-2.0 OR MIT", "dependencies": { "@achingbrain/nat-port-mapper": "^4.0.0", "@chainsafe/is-ip": "^2.0.2", - "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", - "@libp2p/utils": "^6.5.1", + "@libp2p/interface": "^2.6.0", + "@libp2p/interface-internal": "^2.3.2", + "@libp2p/utils": "^6.5.2", "@multiformats/multiaddr": "^12.3.3", "@multiformats/multiaddr-matcher": "^1.6.0", "p-defer": "^4.0.1", @@ -3924,16 +4006,16 @@ } }, "node_modules/@libp2p/utils": { - "version": "6.5.1", - "resolved": "http://94.130.170.209:4873/@libp2p%2futils/-/utils-6.5.1.tgz", - "integrity": "sha512-2LMLzel5HrvGjh/4W3PMPhsgSDs574vNiFWC6WNB5AsBROrfC0QMoMJjzXoUSPei/PJS9kYaxZOXwmkU3mWzLw==", + "version": "6.5.2", + "resolved": "http://94.130.170.209:4873/@libp2p%2futils/-/utils-6.5.2.tgz", + "integrity": "sha512-hMGjhyW9KttOWkVZ9BxQh6eWPlIUP53GG2x8Oq1KtsdVYAPokenWHi4qVzCNh3X6kL9G1fqmBjbhpAwdQmx/DA==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.2", "@chainsafe/netmask": "^2.0.0", - "@libp2p/crypto": "^5.0.11", - "@libp2p/interface": "^2.5.0", - "@libp2p/logger": "^5.1.8", + "@libp2p/crypto": "^5.0.12", + "@libp2p/interface": "^2.6.0", + "@libp2p/logger": "^5.1.9", "@multiformats/multiaddr": "^12.3.3", "@sindresorhus/fnv1a": "^3.1.0", "any-signal": "^4.1.1", @@ -3952,17 +4034,30 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/utils/node_modules/@libp2p/logger": { + "version": "5.1.9", + "resolved": "http://94.130.170.209:4873/@libp2p%2flogger/-/logger-5.1.9.tgz", + "integrity": "sha512-PQbCTSSaJ2sRjV8vbewpS2promeDjEQqCjxWUTvY5RuTOKu5iUApG1JcmjfJ4Y+n9qpuVnE2G6ol9AIyco/EOQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.6.0", + "@multiformats/multiaddr": "^12.3.3", + "interface-datastore": "^8.3.1", + "multiformats": "^13.3.1", + "weald": "^1.0.4" + } + }, "node_modules/@libp2p/webrtc": { - "version": "5.1.0", - "resolved": "http://94.130.170.209:4873/@libp2p%2fwebrtc/-/webrtc-5.1.0.tgz", - "integrity": "sha512-lOtx8DrrGm25Zg7xbRTHlMGl6CcwLgWBPDIgELmpmQwdKDaz0xUjYJLhxAEmINI6e0WlshL/8DagZkvC6iOMpQ==", + "version": "5.1.1", + "resolved": "http://94.130.170.209:4873/@libp2p%2fwebrtc/-/webrtc-5.1.1.tgz", + "integrity": "sha512-ng9kOWLwriHGP7GL3bzQ8qWTjki05TaFx/WqWx3xCHpjwdb+Pld7BmPti/PvSrG8HQ8UPA83tSuvllm+CH4H9Q==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.2", "@chainsafe/libp2p-noise": "^16.0.0", "@ipshipyard/node-datachannel": "^0.26.4", "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", + "@libp2p/interface-internal": "^2.3.1", "@libp2p/peer-id": "^5.0.12", "@libp2p/utils": "^6.5.1", "@multiformats/multiaddr": "^12.3.3", @@ -3972,13 +4067,12 @@ "any-signal": "^4.1.1", "detect-browser": "^5.3.0", "get-port": "^7.1.0", - "it-length-prefixed": "^9.1.0", + "it-length-prefixed": "^10.0.1", "it-protobuf-stream": "^1.1.5", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.2", "multiformats": "^13.3.1", "p-defer": "^4.0.1", - "p-event": "^6.0.1", "p-timeout": "^6.1.3", "p-wait-for": "^5.0.2", "progress-events": "^1.0.1", @@ -3986,12 +4080,28 @@ "race-event": "^1.3.0", "race-signal": "^1.1.0", "react-native-webrtc": "^124.0.4", - "stun": "^2.1.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/webrtc/node_modules/it-length-prefixed": { + "version": "10.0.1", + "resolved": "http://94.130.170.209:4873/it-length-prefixed/-/it-length-prefixed-10.0.1.tgz", + "integrity": "sha512-BhyluvGps26u9a7eQIpOI1YN7mFgi8lFwmiPi07whewbBARKAG9LE09Odc8s1Wtbt2MB6rNUrl7j9vvfXTJwdQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@libp2p/websockets": { "version": "9.1.5", "resolved": "http://94.130.170.209:4873/@libp2p%2fwebsockets/-/websockets-9.1.5.tgz", @@ -4720,9 +4830,9 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fassets-registry/-/assets-registry-0.77.1.tgz", - "integrity": "sha512-bAQHOgqGZnF6xdYE9sJrbZ7F65Z25yLi9yWps8vOByKtj0b+f3FJhsU3Mcfy1uWvelpNEGebOLQf+WEPiwGrkw==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fassets-registry/-/assets-registry-0.78.0.tgz", + "integrity": "sha512-PPHlTRuP9litTYkbFNkwveQFto3I94QRWPBBARU0cH/4ks4EkfCfb/Pdb3AHgtJi58QthSHKFvKTQnAWyHPs7w==", "license": "MIT", "peer": true, "engines": { @@ -4730,23 +4840,23 @@ } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fbabel-plugin-codegen/-/babel-plugin-codegen-0.77.1.tgz", - "integrity": "sha512-NmmAJHMTtA6gjHRE1FvO+Jvbp0ekonANcK2IYOyqK6nLj7hhtdiMlZaUDsRi17SGHYY4X4hj6UH2nm6LfD1RLg==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fbabel-plugin-codegen/-/babel-plugin-codegen-0.78.0.tgz", + "integrity": "sha512-+Sy9Uine0QAbQRxMl6kBlkzKW0qHQk8hghCoKswRWt1ZfxaMA3rezobD5mtSwt/Yhadds9cGbMFWfFJM3Tynsg==", "license": "MIT", "peer": true, "dependencies": { "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.77.1" + "@react-native/codegen": "0.78.0" }, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-preset": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fbabel-preset/-/babel-preset-0.77.1.tgz", - "integrity": "sha512-7eTOcMaZwvPllzZhT5fjcDNysjP54GtEbdXVxO2u5sPXWYriPL3UKuDIzIdhjxil8GtZs6+UvLNoKTateFt19Q==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fbabel-preset/-/babel-preset-0.78.0.tgz", + "integrity": "sha512-q44ZbR0JXdPvNrjNw75VmiVXXoJhZIx8dTUBVgnZx/UHBQuhPu0e8pAuo56E2mZVkF7FK0s087/Zji8n5OSxbQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4791,7 +4901,7 @@ "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", - "@react-native/babel-plugin-codegen": "0.77.1", + "@react-native/babel-plugin-codegen": "0.78.0", "babel-plugin-syntax-hermes-parser": "0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" @@ -4804,9 +4914,9 @@ } }, "node_modules/@react-native/codegen": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fcodegen/-/codegen-0.77.1.tgz", - "integrity": "sha512-cCUbkUewMjiK94Z2+Smh+qHkZrBSoXelOMruZGZe7TTCD6ygl6ho7fkfNuKrB2yFzSAjlUfUyLfaumVJGKslWw==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fcodegen/-/codegen-0.78.0.tgz", + "integrity": "sha512-8iVT2VYhkalLFUWoQRGSluZZHEG93StfwQGwQ+wk1vOUlOfoT/Xqglt6DvGXIyM9gaMCr6fJBFQVrU+FrXEFYA==", "license": "MIT", "peer": true, "dependencies": { @@ -4870,14 +4980,14 @@ } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fcommunity-cli-plugin/-/community-cli-plugin-0.77.1.tgz", - "integrity": "sha512-w2H9ePpUq7eqqtzSUSaYqbNNZoU6pbBONjTIWdztp0lFdnUaLoLUMddt9XhtKFUlnNaSmfetjJSSrsi3JVbO6w==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fcommunity-cli-plugin/-/community-cli-plugin-0.78.0.tgz", + "integrity": "sha512-LpfEU+F1hZGcxIf07aBrjlImA0hh8v76V4wTJOgxxqGDUjjQ/X6h9V+bMXne60G9gwccTtvs1G0xiKWNUPI0VQ==", "license": "MIT", "peer": true, "dependencies": { - "@react-native/dev-middleware": "0.77.1", - "@react-native/metro-babel-transformer": "0.77.1", + "@react-native/dev-middleware": "0.78.0", + "@react-native/metro-babel-transformer": "0.78.0", "chalk": "^4.0.0", "debug": "^2.2.0", "invariant": "^2.2.4", @@ -4917,9 +5027,9 @@ "peer": true }, "node_modules/@react-native/debugger-frontend": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fdebugger-frontend/-/debugger-frontend-0.77.1.tgz", - "integrity": "sha512-wX/f4JRyAc0PqcW3OBQAAw35k4KaTmDKe+/AJuSQLbqDH746awkFprmXRRTAfRc88q++4e6Db4gyK0GVdWNIpQ==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fdebugger-frontend/-/debugger-frontend-0.78.0.tgz", + "integrity": "sha512-KQYD9QlxES/VdmXh9EEvtZCJK1KAemLlszQq4dpLU1stnue5N8dnCY6A7PpStMf5UtAMk7tiniQhaicw0uVHgQ==", "license": "BSD-3-Clause", "peer": true, "engines": { @@ -4927,14 +5037,14 @@ } }, "node_modules/@react-native/dev-middleware": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fdev-middleware/-/dev-middleware-0.77.1.tgz", - "integrity": "sha512-DU6EEac57ch5XKflUB6eXepelHZFaKMJvmaZ24kt28AnvBp8rVrdaORe09pThuZdIF2m+j2BXsipU5zCd8BbZw==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fdev-middleware/-/dev-middleware-0.78.0.tgz", + "integrity": "sha512-zEafAZdOz4s37Jh5Xcv4hJE5qZ6uNxgrTLcpjDOJnQG6dO34/BoZeXvDrjomQFNn6ogdysR51mKJStaQ3ixp5A==", "license": "MIT", "peer": true, "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.77.1", + "@react-native/debugger-frontend": "0.78.0", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", @@ -4978,9 +5088,9 @@ } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fgradle-plugin/-/gradle-plugin-0.77.1.tgz", - "integrity": "sha512-QNuNMWH0CeC+PYrAXiuUIBbwdeGJ3fZpQM03vdG3tKdk66cVSFvxLh60P0w5kRHN7UFBg2FAcYx5eQ/IdcAntg==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fgradle-plugin/-/gradle-plugin-0.78.0.tgz", + "integrity": "sha512-WvwgfmVs1QfFl1FOL514kz2Fs5Nkg2BGgpE8V0ild8b/UT6jCD8qh2dTI5kL0xdT0d2Xd2BxfuFN0xCLkMC+SA==", "license": "MIT", "peer": true, "engines": { @@ -4988,9 +5098,9 @@ } }, "node_modules/@react-native/js-polyfills": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fjs-polyfills/-/js-polyfills-0.77.1.tgz", - "integrity": "sha512-6qd3kNr5R+JF+HzgM/fNSLEM1kw4RoOoaJV6XichvlOaCRmWS22X5TehVqiZOP95AAxtULRIifRs1cK5t9+JSg==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fjs-polyfills/-/js-polyfills-0.78.0.tgz", + "integrity": "sha512-YZ9XtS77s/df7548B6dszX89ReehnA7hiab/axc30j/Mgk7Wv2woOjBKnAA4+rZ0ITLtxNwyJIMaRAc9kGznXw==", "license": "MIT", "peer": true, "engines": { @@ -4998,14 +5108,14 @@ } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fmetro-babel-transformer/-/metro-babel-transformer-0.77.1.tgz", - "integrity": "sha512-M4EzWDmUpIZhwJojEekbK7DzK2fYukU/TRIVZEmnbxVyWVwt/A1urbE2iV+s9E4E99pN+JdVpnBgu4LRCyPzJQ==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fmetro-babel-transformer/-/metro-babel-transformer-0.78.0.tgz", + "integrity": "sha512-Hy/dl+zytLCRD9dp32ukcRS1Bn0gZH0h0i3AbriS6OGYgUgjAUFhXOKzZ15/G1SEq2sng91MNo/hMvo4uXoc5A==", "license": "MIT", "peer": true, "dependencies": { "@babel/core": "^7.25.2", - "@react-native/babel-preset": "0.77.1", + "@react-native/babel-preset": "0.78.0", "hermes-parser": "0.25.1", "nullthrows": "^1.1.1" }, @@ -5017,16 +5127,16 @@ } }, "node_modules/@react-native/normalize-colors": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fnormalize-colors/-/normalize-colors-0.77.1.tgz", - "integrity": "sha512-sCmEs/Vpi14CtFYhmKXpPFZntKYGezFGgT9cJANRS2aFseAL4MOomb5Ms+TOQw82aFcwPPjDX6Hrl87WjTf73A==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fnormalize-colors/-/normalize-colors-0.78.0.tgz", + "integrity": "sha512-FkeLvLLaMYlGsSntixTUvlNtc1OHij4TYRtymMNPWqBKFAMXJB/qe45VxXNzWP+jD0Ok6yXineQFtktKcHk9PA==", "license": "MIT", "peer": true }, "node_modules/@react-native/virtualized-lists": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/@react-native%2fvirtualized-lists/-/virtualized-lists-0.77.1.tgz", - "integrity": "sha512-S25lyHO9owc+uaV2tcd9CMTVJs7PUZX0UGCG60LoLOBHW3krVq0peI34Gm6HEhkeKqb4YvZXqI/ehoNPUm1/ww==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/@react-native%2fvirtualized-lists/-/virtualized-lists-0.78.0.tgz", + "integrity": "sha512-ibETs3AwpkkRcORRANvZeEFjzvN41W02X882sBzoxC5XdHiZ2DucXo4fjKF7i86MhYCFLfNSIYbwupx1D1iFmg==", "license": "MIT", "peer": true, "dependencies": { @@ -5037,7 +5147,7 @@ "node": ">=18" }, "peerDependencies": { - "@types/react": "^18.2.6", + "@types/react": "^19.0.0", "react": "*", "react-native": "*" }, @@ -6285,15 +6395,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "http://94.130.170.209:4873/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-ify": { "version": "1.0.0", "resolved": "http://94.130.170.209:4873/array-ify/-/array-ify-1.0.0.tgz", @@ -6473,6 +6574,7 @@ "version": "1.0.1", "resolved": "http://94.130.170.209:4873/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7125,19 +7227,6 @@ "node": "*" } }, - "node_modules/binary-data": { - "version": "0.6.0", - "resolved": "http://94.130.170.209:4873/binary-data/-/binary-data-0.6.0.tgz", - "integrity": "sha512-HGiT0ir03tS1u7iWdW5xjJfbPpvxH2qJbPFxXW0I3P5iOzkbjN/cJy5GlpAwmjHW5CiayGOxZ/ytLzXmYgdgqQ==", - "license": "MIT", - "dependencies": { - "generate-function": "^2.3.1", - "is-plain-object": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "http://94.130.170.209:4873/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -7730,9 +7819,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001699", - "resolved": "http://94.130.170.209:4873/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", + "version": "1.0.30001700", + "resolved": "http://94.130.170.209:4873/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", + "integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==", "funding": [ { "type": "opencollective", @@ -8485,18 +8574,6 @@ "node": ">=8" } }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "http://94.130.170.209:4873/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", - "license": "MIT", - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "http://94.130.170.209:4873/dashdash/-/dashdash-1.14.1.tgz", @@ -8626,6 +8703,7 @@ "version": "1.2.0", "resolved": "http://94.130.170.209:4873/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -8635,6 +8713,7 @@ "version": "1.1.1", "resolved": "http://94.130.170.209:4873/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, "license": "MIT", "dependencies": { "decamelize": "^1.1.0", @@ -8651,20 +8730,12 @@ "version": "1.0.1", "resolved": "http://94.130.170.209:4873/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "http://94.130.170.209:4873/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "http://94.130.170.209:4873/decompress-response/-/decompress-response-6.0.0.tgz", @@ -9174,9 +9245,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.100", - "resolved": "http://94.130.170.209:4873/electron-to-chromium/-/electron-to-chromium-1.5.100.tgz", - "integrity": "sha512-u1z9VuzDXV86X2r3vAns0/5ojfXBue9o0+JDUDBKYqGLjxLkSqsSUoPU/6kW0gx76V44frHaf6Zo+QF74TQCMg==", + "version": "1.5.102", + "resolved": "http://94.130.170.209:4873/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz", + "integrity": "sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==", "license": "ISC" }, "node_modules/elliptic": { @@ -10459,15 +10530,6 @@ "node": ">=8" } }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "http://94.130.170.209:4873/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "http://94.130.170.209:4873/finalhandler/-/finalhandler-1.1.2.tgz", @@ -10703,9 +10765,9 @@ } }, "node_modules/flatted": { - "version": "3.3.2", - "resolved": "http://94.130.170.209:4873/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "version": "3.3.3", + "resolved": "http://94.130.170.209:4873/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, @@ -10717,9 +10779,9 @@ "peer": true }, "node_modules/flow-parser": { - "version": "0.261.1", - "resolved": "http://94.130.170.209:4873/flow-parser/-/flow-parser-0.261.1.tgz", - "integrity": "sha512-2l5bBKeVtT+d+1CYSsTLJ+iP2FuoR7zjbDQI/v6dDRiBpx3Lb20Z/tLS37ReX/lcodyGSHC2eA/Nk63hB+mkYg==", + "version": "0.261.2", + "resolved": "http://94.130.170.209:4873/flow-parser/-/flow-parser-0.261.2.tgz", + "integrity": "sha512-RtunoakA3YjtpAxPSOBVW6lmP5NYmETwkpAfNkdr8Ovf86ENkbD3mtPWnswFTIUtRvjwv0i8ZSkHK+AzsUg1JA==", "license": "MIT", "peer": true, "engines": { @@ -10792,13 +10854,14 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "http://94.130.170.209:4873/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.2", + "resolved": "http://94.130.170.209:4873/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { @@ -10995,15 +11058,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "http://94.130.170.209:4873/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "license": "MIT", - "dependencies": { - "is-property": "^1.0.2" - } - }, "node_modules/generic-pool": { "version": "3.9.0", "resolved": "http://94.130.170.209:4873/generic-pool/-/generic-pool-3.9.0.tgz", @@ -12188,12 +12242,6 @@ "loose-envify": "^1.0.0" } }, - "node_modules/ip": { - "version": "1.1.9", - "resolved": "http://94.130.170.209:4873/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", - "license": "MIT" - }, "node_modules/ip-regex": { "version": "5.0.0", "resolved": "http://94.130.170.209:4873/ip-regex/-/ip-regex-5.0.0.tgz", @@ -12206,15 +12254,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ip2buf": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/ip2buf/-/ip2buf-2.0.0.tgz", - "integrity": "sha512-ezW62UW6IPwpuS3mpsvOS3/3Jgx7aaNZT+uJo/+xVBxHCq7EA1ryuhzZw2MyC5GuGd1sAp3RDx7e4+nJCGt9vA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/ipfs-unixfs": { "version": "11.2.0", "resolved": "http://94.130.170.209:4873/ipfs-unixfs/-/ipfs-unixfs-11.2.0.tgz", @@ -12677,12 +12716,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "http://94.130.170.209:4873/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", - "license": "MIT" - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "http://94.130.170.209:4873/is-regex/-/is-regex-1.2.1.tgz", @@ -12740,21 +12773,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ssh": { - "version": "1.4.1", - "resolved": "http://94.130.170.209:4873/is-ssh/-/is-ssh-1.4.1.tgz", - "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==", - "license": "MIT", - "dependencies": { - "protocols": "^2.0.1" - } - }, - "node_modules/is-ssh/node_modules/protocols": { - "version": "2.0.2", - "resolved": "http://94.130.170.209:4873/protocols/-/protocols-2.0.2.tgz", - "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", - "license": "MIT" - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "http://94.130.170.209:4873/is-stream/-/is-stream-2.0.1.tgz", @@ -12783,15 +12801,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stun": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/is-stun/-/is-stun-2.0.0.tgz", - "integrity": "sha512-3d3CI8nLmh2ATbjfvi5TkVcimMgXtFH7PGoXeT1prGguVK8eaO3CzynLbdFY8Ez9khVpLpP8HHFPxneqn0QYPw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/is-symbol": { "version": "1.1.1", "resolved": "http://94.130.170.209:4873/is-symbol/-/is-symbol-1.1.1.tgz", @@ -13565,13 +13574,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsc-android": { - "version": "250231.0.0", - "resolved": "http://94.130.170.209:4873/jsc-android/-/jsc-android-250231.0.0.tgz", - "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==", - "license": "BSD-2-Clause", - "peer": true - }, "node_modules/jsc-safe-url": { "version": "0.2.4", "resolved": "http://94.130.170.209:4873/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", @@ -14293,18 +14295,18 @@ } }, "node_modules/libp2p": { - "version": "2.6.2", - "resolved": "http://94.130.170.209:4873/libp2p/-/libp2p-2.6.2.tgz", - "integrity": "sha512-MSc0MbHqytsl54hUkPpQBSsBUdNt177mW14FUtzHI2S60Iw2pBKraXqm1FuVf9J8nTOK6VIDbSLcC2269A0j0Q==", + "version": "2.6.3", + "resolved": "http://94.130.170.209:4873/libp2p/-/libp2p-2.6.3.tgz", + "integrity": "sha512-OySoiRezMGZxrIVCM9amuX94TRUm3z+oqPJfsw1ur6VOxzc3RttqgIam8eit8PuFienVTiOAsx5QYORocw+9+Q==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.2", "@chainsafe/netmask": "^2.0.0", "@libp2p/crypto": "^5.0.11", "@libp2p/interface": "^2.5.0", - "@libp2p/interface-internal": "^2.3.0", + "@libp2p/interface-internal": "^2.3.1", "@libp2p/logger": "^5.1.8", - "@libp2p/multistream-select": "^6.0.13", + "@libp2p/multistream-select": "^6.0.14", "@libp2p/peer-collections": "^6.0.17", "@libp2p/peer-id": "^5.0.12", "@libp2p/peer-store": "^11.0.17", @@ -14405,6 +14407,7 @@ "version": "4.0.0", "resolved": "http://94.130.170.209:4873/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", @@ -14420,6 +14423,7 @@ "version": "4.0.0", "resolved": "http://94.130.170.209:4873/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, "license": "MIT", "dependencies": { "error-ex": "^1.3.1", @@ -14644,19 +14648,6 @@ "loose-envify": "cli.js" } }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "http://94.130.170.209:4873/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", - "license": "MIT", - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "http://94.130.170.209:4873/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -16047,9 +16038,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "5.0.9", - "resolved": "http://94.130.170.209:4873/nanoid/-/nanoid-5.0.9.tgz", - "integrity": "sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==", + "version": "5.1.0", + "resolved": "http://94.130.170.209:4873/nanoid/-/nanoid-5.1.0.tgz", + "integrity": "sha512-zDAl/llz8Ue/EblwSYwdxGBYfj46IM1dhjVi8dyp9LQffoIGxJEAHj2oeZ4uNcgycSRcQ83CnfcZqEJzVDLcDw==", "funding": [ { "type": "github", @@ -19468,42 +19459,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-path": { - "version": "4.0.4", - "resolved": "http://94.130.170.209:4873/parse-path/-/parse-path-4.0.4.tgz", - "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", - "license": "MIT", - "dependencies": { - "is-ssh": "^1.3.0", - "protocols": "^1.4.0", - "qs": "^6.9.4", - "query-string": "^6.13.8" - } - }, - "node_modules/parse-url": { - "version": "5.0.8", - "resolved": "http://94.130.170.209:4873/parse-url/-/parse-url-5.0.8.tgz", - "integrity": "sha512-KFg5QvyiOKJGQSwUT7c5A4ELs0TJ33gmx/NBjK0FvZUD6aonFuXHUVa3SIa2XpbYVkYU8VlDrD3oCbX1ufy0zg==", - "license": "MIT", - "dependencies": { - "is-ssh": "^1.3.0", - "normalize-url": "^6.1.0", - "parse-path": "^4.0.4", - "protocols": "^1.4.0" - } - }, - "node_modules/parse-url/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "http://94.130.170.209:4873/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "http://94.130.170.209:4873/parseurl/-/parseurl-1.3.3.tgz", @@ -19660,6 +19615,7 @@ "version": "3.0.0", "resolved": "http://94.130.170.209:4873/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -19915,12 +19871,6 @@ "dev": true, "license": "ISC" }, - "node_modules/protocols": { - "version": "1.4.8", - "resolved": "http://94.130.170.209:4873/protocols/-/protocols-1.4.8.tgz", - "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", - "license": "MIT" - }, "node_modules/protons-runtime": { "version": "5.5.0", "resolved": "http://94.130.170.209:4873/protons-runtime/-/protons-runtime-5.5.0.tgz", @@ -20054,24 +20004,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-string": { - "version": "6.14.1", - "resolved": "http://94.130.170.209:4873/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "http://94.130.170.209:4873/querystringify/-/querystringify-2.2.0.tgz", @@ -20265,14 +20197,11 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "http://94.130.170.209:4873/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.0.0", + "resolved": "http://94.130.170.209:4873/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -20318,20 +20247,20 @@ "peer": true }, "node_modules/react-native": { - "version": "0.77.1", - "resolved": "http://94.130.170.209:4873/react-native/-/react-native-0.77.1.tgz", - "integrity": "sha512-g2OMtsQqhgOuC4BqFyrcv0UsmbFcLOwfVRl/XAEHZK0p8paJubGIF3rAHN4Qh0GqGLWZGt7gJ7ha2yOmCFORoA==", + "version": "0.78.0", + "resolved": "http://94.130.170.209:4873/react-native/-/react-native-0.78.0.tgz", + "integrity": "sha512-3PO4tNvCN6BdAKcoY70v1sLfxYCmDR4KS1VTY+kIBKy5Qznp27QNxL7zBQjvS6Jp91gc8N82QbysQrfBlwg9gQ==", "license": "MIT", "peer": true, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native/assets-registry": "0.77.1", - "@react-native/codegen": "0.77.1", - "@react-native/community-cli-plugin": "0.77.1", - "@react-native/gradle-plugin": "0.77.1", - "@react-native/js-polyfills": "0.77.1", - "@react-native/normalize-colors": "0.77.1", - "@react-native/virtualized-lists": "0.77.1", + "@react-native/assets-registry": "0.78.0", + "@react-native/codegen": "0.78.0", + "@react-native/community-cli-plugin": "0.78.0", + "@react-native/gradle-plugin": "0.78.0", + "@react-native/js-polyfills": "0.78.0", + "@react-native/normalize-colors": "0.78.0", + "@react-native/virtualized-lists": "0.78.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -20345,7 +20274,6 @@ "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.6.3", - "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.81.0", "metro-source-map": "^0.81.0", @@ -20355,7 +20283,7 @@ "react-devtools-core": "^6.0.1", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", - "scheduler": "0.24.0-canary-efb381bbf-20230505", + "scheduler": "0.25.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", @@ -20369,8 +20297,8 @@ "node": ">=18" }, "peerDependencies": { - "@types/react": "^18.2.6", - "react": "^18.2.0" + "@types/react": "^19.0.0", + "react": "^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -21361,14 +21289,11 @@ "license": "ISC" }, "node_modules/scheduler": { - "version": "0.24.0-canary-efb381bbf-20230505", - "resolved": "http://94.130.170.209:4873/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", - "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", + "version": "0.25.0", + "resolved": "http://94.130.170.209:4873/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } + "peer": true }, "node_modules/schema-utils": { "version": "4.3.0", @@ -22311,6 +22236,7 @@ "version": "3.2.0", "resolved": "http://94.130.170.209:4873/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -22321,12 +22247,14 @@ "version": "2.5.0", "resolved": "http://94.130.170.209:4873/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "http://94.130.170.209:4873/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -22337,6 +22265,7 @@ "version": "3.0.21", "resolved": "http://94.130.170.209:4873/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true, "license": "CC0-1.0" }, "node_modules/split": { @@ -22352,15 +22281,6 @@ "node": "*" } }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "http://94.130.170.209:4873/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/split2": { "version": "3.2.2", "resolved": "http://94.130.170.209:4873/split2/-/split2-3.2.2.tgz", @@ -22443,9 +22363,9 @@ "peer": true }, "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "http://94.130.170.209:4873/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "version": "0.1.11", + "resolved": "http://94.130.170.209:4873/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", "license": "MIT", "peer": true, "dependencies": { @@ -22757,15 +22677,6 @@ "it-stream-types": "^2.0.1" } }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "http://94.130.170.209:4873/string_decoder/-/string_decoder-1.3.0.tgz", @@ -22900,6 +22811,7 @@ "version": "3.0.0", "resolved": "http://94.130.170.209:4873/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -22941,313 +22853,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stun": { - "version": "2.1.0", - "resolved": "http://94.130.170.209:4873/stun/-/stun-2.1.0.tgz", - "integrity": "sha512-p+kY8/qzyZ9Sx+ZvlYd71hKcUDkbYhRDqjGKHrWvOdrc89vrpa0B6uHkWjYklWNQr3nQWKWHkYKDEgGBB2fiPg==", - "license": "MIT", - "dependencies": { - "binary-data": "^0.6.0", - "buffer-xor": "^2.0.2", - "debug": "^4.1.1", - "ip": "^1.1.5", - "ip2buf": "^2.0.0", - "is-stun": "^2.0.0", - "meow": "^5.0.0", - "parse-url": "^5.0.1", - "turbo-crc32": "^1.0.0", - "universalify": "^0.1.2" - }, - "bin": { - "stun": "src/cli.js" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/stun/node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "http://94.130.170.209:4873/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/stun/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "http://94.130.170.209:4873/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/camelcase-keys": { - "version": "4.2.0", - "resolved": "http://94.130.170.209:4873/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==", - "license": "MIT", - "dependencies": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/find-up": { - "version": "2.1.0", - "resolved": "http://94.130.170.209:4873/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "http://94.130.170.209:4873/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "license": "ISC" - }, - "node_modules/stun/node_modules/indent-string": { - "version": "3.2.0", - "resolved": "http://94.130.170.209:4873/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "http://94.130.170.209:4873/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stun/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/map-obj": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/meow": { - "version": "5.0.0", - "resolved": "http://94.130.170.209:4873/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "license": "MIT", - "dependencies": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stun/node_modules/minimist-options": { - "version": "3.0.2", - "resolved": "http://94.130.170.209:4873/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/stun/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "http://94.130.170.209:4873/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/stun/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "http://94.130.170.209:4873/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/p-try": { - "version": "1.0.0", - "resolved": "http://94.130.170.209:4873/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "http://94.130.170.209:4873/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/path-type": { - "version": "3.0.0", - "resolved": "http://94.130.170.209:4873/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/quick-lru": { - "version": "1.1.0", - "resolved": "http://94.130.170.209:4873/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "http://94.130.170.209:4873/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "http://94.130.170.209:4873/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "license": "MIT", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/redent": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/redent/-/redent-2.0.0.tgz", - "integrity": "sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==", - "license": "MIT", - "dependencies": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/semver": { - "version": "5.7.2", - "resolved": "http://94.130.170.209:4873/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/stun/node_modules/strip-indent": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/trim-newlines": { - "version": "2.0.0", - "resolved": "http://94.130.170.209:4873/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/stun/node_modules/universalify": { - "version": "0.1.2", - "resolved": "http://94.130.170.209:4873/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/stun/node_modules/yargs-parser": { - "version": "10.1.0", - "resolved": "http://94.130.170.209:4873/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^4.1.0" - } - }, "node_modules/style-loader": { "version": "3.3.4", "resolved": "http://94.130.170.209:4873/style-loader/-/style-loader-3.3.4.tgz", @@ -23912,15 +23517,6 @@ "node": "*" } }, - "node_modules/turbo-crc32": { - "version": "1.0.1", - "resolved": "http://94.130.170.209:4873/turbo-crc32/-/turbo-crc32-1.0.1.tgz", - "integrity": "sha512-8yyRd1ZdNp+AQLGqi3lTaA2k81JjlIZOyFQEsi7GQWBgirnQOxjqVtDEbYHM2Z4yFdJ5AQw0fxBLLnDCl6RXoQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "http://94.130.170.209:4873/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -24344,6 +23940,7 @@ "version": "3.0.4", "resolved": "http://94.130.170.209:4873/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", diff --git a/package.json b/package.json index c6e32d5..cde2fbc 100644 --- a/package.json +++ b/package.json @@ -28,14 +28,15 @@ "@chainsafe/libp2p-noise": "16.0.1", "@chainsafe/libp2p-yamux": "7.0.1", "@helia/unixfs": "4.0.2", - "@libp2p/bootstrap": "11.0.22", - "@libp2p/circuit-relay-v2": "3.1.12", - "@libp2p/identify": "3.0.18", + "@libp2p/bootstrap": "11.0.23", + "@libp2p/circuit-relay-v2": "3.1.13", + "@libp2p/config": "1.1.0", + "@libp2p/identify": "3.0.19", "@libp2p/keychain": "5.0.14", "@libp2p/logger": "5.1.8", "@libp2p/ping": "2.0.18", - "@libp2p/tcp": "10.0.19", - "@libp2p/webrtc": "5.1.0", + "@libp2p/tcp": "10.0.20", + "@libp2p/webrtc": "5.1.1", "@libp2p/websockets": "9.1.5", "@multiformats/multiaddr": "12.3.5", "axios": "0.27.2", @@ -59,7 +60,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", - "libp2p": "2.6.2", + "libp2p": "2.6.3", "line-reader": "0.4.0", "minimal-slp-wallet": "5.13.2", "mongoose": "5.13.14", diff --git a/src/adapters/ipfs/ipfs.js b/src/adapters/ipfs/ipfs.js index 17c9237..7186abe 100644 --- a/src/adapters/ipfs/ipfs.js +++ b/src/adapters/ipfs/ipfs.js @@ -19,19 +19,20 @@ import { noise } from '@chainsafe/libp2p-noise' import { yamux } from '@chainsafe/libp2p-yamux' // import { bootstrap } from '@libp2p/bootstrap' // import { identifyService } from 'libp2p/identify' -import { identify } from '@libp2p/identify' +import { identify, identifyPush } from '@libp2p/identify' import { circuitRelayServer, circuitRelayTransport } from '@libp2p/circuit-relay-v2' // import { circuitRelayServer } from '@libp2p/circuit-relay-v2' import { gossipsub } from '@chainsafe/libp2p-gossipsub' import { webSockets } from '@libp2p/websockets' import { publicIpv4 } from 'public-ip' import { multiaddr } from '@multiformats/multiaddr' -import { webRTC } from '@libp2p/webrtc' +import { webRTC, webRTCDirect } from '@libp2p/webrtc' import { keychain } from '@libp2p/keychain' import { unixfs } from '@helia/unixfs' -import { generateKeyPairFromSeed } from '@libp2p/crypto/keys' -import crypto from 'crypto' +// import { generateKeyPairFromSeed } from '@libp2p/crypto/keys' +// import crypto from 'crypto' import { ping } from '@libp2p/ping' +import { loadOrCreateSelfKey } from '@libp2p/config' // Local libraries import config from '../../../config/index.js' @@ -66,7 +67,8 @@ class IpfsAdapter { this.createNode = this.createNode.bind(this) this.stop = this.stop.bind(this) this.ensureBlocksDir = this.ensureBlocksDir.bind(this) - this.getPrivateKey = this.getPrivateKey.bind(this) + // this.getPrivateKey = this.getPrivateKey.bind(this) + this.getSeed = this.getSeed.bind(this) } // Start an IPFS node. @@ -121,14 +123,23 @@ class IpfsAdapter { const datastore = new FsDatastore(`${IPFS_DIR}/datastore`) // Get the private key. - const privateKey = await this.getPrivateKey() + // const privateKey = await this.getPrivateKey() // console.log('privateKey: ', privateKey) + // Create an identity + const keychainInit = { + selfKey: 'myKey', + pass: await this.getSeed() + } + const privateKey = await loadOrCreateSelfKey(datastore, keychainInit) + // Configure services const services = { identify: identify(), + identifyPush: identifyPush(), pubsub: gossipsub({ allowPublishToZeroTopicPeers: true }), - ping: ping() + ping: ping(), + keychain: keychain(keychainInit) } if (this.config.isCircuitRelay) { console.log('Helia (IPFS) node IS configured as Circuit Relay') @@ -140,10 +151,10 @@ class IpfsAdapter { reservationClearInterval: 300 * 1000, // how often to reclaim stale reservations applyDefaultLimit: true, // whether to apply default data/duration limits to each relayed connection defaultDurationLimit: 2 * 60 * 1000, // the default maximum amount of time a relayed connection can be open for - defaultDataLimit: BigInt(2 << 7), // the default maximum number of bytes that can be transferred over a relayed connection - maxInboundHopStreams: 32, // how many inbound HOP streams are allow simultaneously - maxOutboundHopStreams: 64 // how many outbound HOP streams are allow simultaneously - } + defaultDataLimit: BigInt(2 << 7) // the default maximum number of bytes that can be transferred over a relayed connection + }, + maxInboundHopStreams: 32, // how many inbound HOP streams are allow simultaneously + maxOutboundHopStreams: 64 // how many outbound HOP streams are allow simultaneously }) } else { console.log('Helia (IPFS) node IS NOT configured as Circuit Relay') @@ -156,7 +167,8 @@ class IpfsAdapter { discoverRelays: 3, reservationConcurrency: 3 }), - webRTC() + webRTC(), + webRTCDirect() ] // libp2p is the networking layer that underpins Helia @@ -231,47 +243,75 @@ class IpfsAdapter { } } - // Get the private key from disk, or generate a new one and save it, - // if it doesn't exist. - async getPrivateKey () { + // This function opens the seed used to generate the key for this IPFS peer. + // The seed is stored in a JSON file. If it doesn't exist, a new one is created. + async getSeed () { try { - const filename = `${IPFS_DIR}/privkey.json` + let seed + + const filename = `${IPFS_DIR}/seed.json` - let privKeyHex try { // Try to read the JSON file containing the seed. - privKeyHex = await this.jsonFiles.readJSON(filename) - // console.log('saved privKeyHex: ', privKeyHex) + seed = await this.jsonFiles.readJSON(filename) } catch (err) { - // Generate a new private key and save it to disk. - - // Generate a new private key and save it to disk. - const randomBuffer = crypto.randomBytes(32) - // console.log('randomBuffer: ', randomBuffer) - - privKeyHex = randomBuffer.toString('hex') - // console.log('new privKeyHex: ', privKeyHex) + const seedNum = Math.floor(Math.random() * 1000000000000000000000) + seed = seedNum.toString() // Save the newly generated seed - await this.jsonFiles.writeJSON(privKeyHex, filename) + await this.jsonFiles.writeJSON(seed, filename) } - // Convert the saved hex string to a buffer. - const privKeyBuf = Buffer.from(privKeyHex, 'hex') + // console.log('getSeed() seed: ', seed) - // Convert the buffer to a Uint8Array 'seed' - const seed = new Uint8Array(privKeyBuf.buffer, privKeyBuf.byteOffset, privKeyBuf.byteLength) - // console.log('seed: ', seed) - - // Generate a ED25519 key pair. - const privKey = await generateKeyPairFromSeed('Ed25519', seed) - - return privKey + return seed } catch (err) { - console.error('Error in adapters/ipfs/ipfs.js/getPrivateKey(): ', err) + console.error('Error in adapters/ipfs/ipfs.js/getSeed()') throw err } } + + // Get the private key from disk, or generate a new one and save it, + // if it doesn't exist. + // async getPrivateKey () { + // try { + // const filename = `${IPFS_DIR}/privkey.json` + + // let privKeyHex + // try { + // // Try to read the JSON file containing the seed. + // privKeyHex = await this.jsonFiles.readJSON(filename) + // // console.log('saved privKeyHex: ', privKeyHex) + // } catch (err) { + // // Generate a new private key and save it to disk. + + // // Generate a new private key and save it to disk. + // const randomBuffer = crypto.randomBytes(32) + // // console.log('randomBuffer: ', randomBuffer) + + // privKeyHex = randomBuffer.toString('hex') + // // console.log('new privKeyHex: ', privKeyHex) + + // // Save the newly generated seed + // await this.jsonFiles.writeJSON(privKeyHex, filename) + // } + + // // Convert the saved hex string to a buffer. + // const privKeyBuf = Buffer.from(privKeyHex, 'hex') + + // // Convert the buffer to a Uint8Array 'seed' + // const seed = new Uint8Array(privKeyBuf.buffer, privKeyBuf.byteOffset, privKeyBuf.byteLength) + // // console.log('seed: ', seed) + + // // Generate a ED25519 key pair. + // const privKey = await generateKeyPairFromSeed('Ed25519', seed) + + // return privKey + // } catch (err) { + // console.error('Error in adapters/ipfs/ipfs.js/getPrivateKey(): ', err) + // throw err + // } + // } } export default IpfsAdapter diff --git a/test/unit/adapters/ipfs.adapter.unit.js b/test/unit/adapters/ipfs.adapter.unit.js index 9d0a8f8..2c73fda 100644 --- a/test/unit/adapters/ipfs.adapter.unit.js +++ b/test/unit/adapters/ipfs.adapter.unit.js @@ -203,40 +203,40 @@ describe('#IPFS-adapter', () => { }) }) - // describe('#getSeed', () => { - // it('should read the seed from the JSON file', async () => { - // // Mock dependencies and force desired code path - // sandbox.stub(uut.jsonFiles, 'readJSON').resolves('12345678') + describe('#getSeed', () => { + it('should read the seed from the JSON file', async () => { + // Mock dependencies and force desired code path + sandbox.stub(uut.jsonFiles, 'readJSON').resolves('12345678') - // const result = await uut.getSeed() - // // console.log('result: ', result) + const result = await uut.getSeed() + // console.log('result: ', result) - // assert.isString(result) - // }) + assert.isString(result) + }) - // it('should generate a new seed if the JSON file is not found', async () => { - // // Mock dependencies and force desired code path - // sandbox.stub(uut.jsonFiles, 'readJSON').rejects(new Error('test error')) - // sandbox.stub(uut.jsonFiles, 'writeJSON').resolves() + it('should generate a new seed if the JSON file is not found', async () => { + // Mock dependencies and force desired code path + sandbox.stub(uut.jsonFiles, 'readJSON').rejects(new Error('test error')) + sandbox.stub(uut.jsonFiles, 'writeJSON').resolves() - // const result = await uut.getSeed() - // // console.log('result: ', result) + const result = await uut.getSeed() + // console.log('result: ', result) - // assert.isString(result) - // }) + assert.isString(result) + }) - // it('should catch, report, and throw errors', async () => { - // try { - // // Force an error - // sandbox.stub(uut.jsonFiles, 'readJSON').rejects(new Error('test error')) - // sandbox.stub(uut.jsonFiles, 'writeJSON').rejects(new Error('test error')) + it('should catch, report, and throw errors', async () => { + try { + // Force an error + sandbox.stub(uut.jsonFiles, 'readJSON').rejects(new Error('test error')) + sandbox.stub(uut.jsonFiles, 'writeJSON').rejects(new Error('test error')) - // await uut.getSeed() + await uut.getSeed() - // assert.fail('Unexpected code path') - // } catch (err) { - // assert.include(err.message, 'test error') - // } - // }) - // }) + assert.fail('Unexpected code path') + } catch (err) { + assert.include(err.message, 'test error') + } + }) + }) })