From c2469a375d51ef419d6ab12a57b2debb28b0cfa8 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Mon, 15 Dec 2025 18:59:52 -0500 Subject: [PATCH] perf: optimize bundle size with lazy loading and dependency removal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add route-level lazy loading for all pages (Default, Board, Dashboard, etc.) - Remove gun, webnative, holosphere dependencies (175 packages removed) - Stub HoloSphereService for future Nostr integration (keeps h3-js for holon calculations) - Stub FileSystemContext (webnative removed) - Defer Daily.co initialization until needed - Add loading spinner for route transitions - Remove large-utils manual chunk from vite config Initial page load significantly reduced - heavy Board component (7.5MB) now loads on-demand instead of upfront. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- package-lock.json | 2061 +---------------------------- package.json | 5 +- src/App.tsx | 216 +-- src/context/FileSystemContext.tsx | 147 +- src/lib/HoloSphereService.ts | 398 ++---- vite.config.ts | 3 +- 6 files changed, 242 insertions(+), 2588 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e1f49f..a4d9e87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,9 +39,7 @@ "d3": "^7.9.0", "fathom-typescript": "^0.0.36", "gray-matter": "^4.0.3", - "gun": "^0.2020.1241", "h3-js": "^4.3.0", - "holosphere": "^1.1.20", "html2canvas": "^1.4.1", "itty-router": "^5.0.17", "jotai": "^2.6.0", @@ -62,8 +60,7 @@ "sharp": "^0.33.5", "tldraw": "^3.15.4", "use-whisper": "^0.0.1", - "webcola": "^3.4.0", - "webnative": "^0.36.3" + "webcola": "^3.4.0" }, "devDependencies": { "@cloudflare/types": "^6.0.0", @@ -709,21 +706,6 @@ "win32" ] }, - "node_modules/@chainsafe/is-ip": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.1.0.tgz", - "integrity": "sha512-KIjt+6IfysQ4GCv66xihEitBjvhU/bixbbbFxdJ1sqCp4uJ0wuZiYBPhksZoy4lfaF0k9cwNzY5upEW/VWdw3w==", - "license": "MIT" - }, - "node_modules/@chainsafe/netmask": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", - "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", - "license": "MIT", - "dependencies": { - "@chainsafe/is-ip": "^2.0.1" - } - }, "node_modules/@chengsokdara/react-hooks-async": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/@chengsokdara/react-hooks-async/-/react-hooks-async-0.0.2.tgz", @@ -1933,15 +1915,6 @@ "node": ">=18.0.0" } }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, "node_modules/@ffmpeg/ffmpeg": { "version": "0.11.6", "resolved": "https://registry.npmjs.org/@ffmpeg/ffmpeg/-/ffmpeg-0.11.6.tgz", @@ -2406,53 +2379,6 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@ipld/dag-cbor": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz", - "integrity": "sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "cborg": "^1.6.0", - "multiformats": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@ipld/dag-cbor/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@ipld/dag-pb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-3.0.2.tgz", - "integrity": "sha512-ge+llKU/CNc6rX5ZcUhCrPXJjKjN1DsolDOJ99zOsousGOhepoIgvT01iAP8s7QN9QFciOE+a1jHdccs+CyhBA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@ipld/dag-pb/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -2509,12 +2435,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, "node_modules/@lexical/clipboard": { "version": "0.35.0", "resolved": "https://registry.npmjs.org/@lexical/clipboard/-/clipboard-0.35.0.tgz", @@ -2947,368 +2867,6 @@ "@lezer/lr": "^1.4.0" } }, - "node_modules/@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection/node_modules/@libp2p/interface-peer-id": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz", - "integrity": "sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection/node_modules/@multiformats/multiaddr": { - "version": "12.5.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.5.1.tgz", - "integrity": "sha512-+DDlr9LIRUS8KncI1TX/FfUn8F2dl6BIxJgshS/yFQCNB5IAF0OGzcwB39g5NLE22s4qqDePv0Qof6HdpJ/4aQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "@chainsafe/netmask": "^2.0.0", - "@multiformats/dns": "^1.0.3", - "abort-error": "^1.0.1", - "multiformats": "^13.0.0", - "uint8-varint": "^2.0.1", - "uint8arrays": "^5.0.0" - } - }, - "node_modules/@libp2p/interface-connection/node_modules/@multiformats/multiaddr/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/interface-connection/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection/node_modules/uint8arrays": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@libp2p/interface-connection/node_modules/uint8arrays/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/interface-keychain": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-1.0.8.tgz", - "integrity": "sha512-JqI7mMthIafP8cGhhsmIs/M0Ey+ivHLcpzqbVVzMFiFVi1dC03R7EHlalcaPn8yaLSvlmI0MqjC8lJYuvlFjfw==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^10.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-keys": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.8.tgz", - "integrity": "sha512-CJ1SlrwuoHMquhEEWS77E+4vv7hwB7XORkqzGQrPQmA9MRdIEZRS64bA4JqCLUDa4ltH0l+U1vp0oZHLT67NEA==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-id": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^10.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.10.tgz", - "integrity": "sha512-HQlo8NwQjMyamCHJrnILEZz+YwEOXCB2sIIw3slIrhVUYeYlTaia1R6d9umaAeLHa255Zmdm4qGH8rJLRqhCcg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info/node_modules/@libp2p/interface-peer-id": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz", - "integrity": "sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info/node_modules/@multiformats/multiaddr": { - "version": "12.5.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.5.1.tgz", - "integrity": "sha512-+DDlr9LIRUS8KncI1TX/FfUn8F2dl6BIxJgshS/yFQCNB5IAF0OGzcwB39g5NLE22s4qqDePv0Qof6HdpJ/4aQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "@chainsafe/netmask": "^2.0.0", - "@multiformats/dns": "^1.0.3", - "abort-error": "^1.0.1", - "multiformats": "^13.0.0", - "uint8-varint": "^2.0.1", - "uint8arrays": "^5.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info/node_modules/@multiformats/multiaddr/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/interface-peer-info/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info/node_modules/uint8arrays": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info/node_modules/uint8arrays/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/interface-pubsub": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-3.0.7.tgz", - "integrity": "sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-pushable": "^3.0.0", - "uint8arraylist": "^2.1.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub/node_modules/@libp2p/interface-peer-id": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz", - "integrity": "sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interfaces": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.3.2.tgz", - "integrity": "sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/logger": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.1.1.tgz", - "integrity": "sha512-2UbzDPctg3cPupF6jrv6abQnAUTrbLybNOj0rmmrdGm1cN2HJ1o/hBu0sXuq4KF9P1h/eVRn1HIRbVIEKnEJrA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.2", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^11.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/logger/node_modules/@libp2p/interface-peer-id": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz", - "integrity": "sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/logger/node_modules/@multiformats/multiaddr": { - "version": "12.5.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.5.1.tgz", - "integrity": "sha512-+DDlr9LIRUS8KncI1TX/FfUn8F2dl6BIxJgshS/yFQCNB5IAF0OGzcwB39g5NLE22s4qqDePv0Qof6HdpJ/4aQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "@chainsafe/netmask": "^2.0.0", - "@multiformats/dns": "^1.0.3", - "abort-error": "^1.0.1", - "multiformats": "^13.0.0", - "uint8-varint": "^2.0.1", - "uint8arrays": "^5.0.0" - } - }, - "node_modules/@libp2p/logger/node_modules/@multiformats/multiaddr/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/logger/node_modules/interface-datastore": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.3.2.tgz", - "integrity": "sha512-R3NLts7pRbJKc3qFdQf+u40hK8XWc0w4Qkx3OFEstC80VoaDUABY/dXA2EJPhtNC+bsrf41Ehvqb6+pnIclyRA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "interface-store": "^6.0.0", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/logger/node_modules/interface-store": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-6.0.3.tgz", - "integrity": "sha512-+WvfEZnFUhRwFxgz+QCQi7UC6o9AM0EHM9bpIe2Nhqb100NHCsTvNAn4eJgvgV2/tmLo1MP9nGxQKEcZTAueLA==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/logger/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/logger/node_modules/uint8arrays": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@libp2p/logger/node_modules/uint8arrays/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/peer-id": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.18.tgz", - "integrity": "sha512-Zh3gzbrQZKDMLpoJAJB8gdGtyYFSBKV0dU5vflQ18/7MJDJmjsgKO+sJTYi72yN5sWREs1eGKMhxLo+N1ust5w==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "err-code": "^3.0.1", - "multiformats": "^10.0.0", - "uint8arrays": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-id/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/peer-id/node_modules/uint8arrays/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@mapbox/geojson-rewind": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", @@ -3529,134 +3087,6 @@ "node": ">= 18" } }, - "node_modules/@multiformats/dns": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.10.tgz", - "integrity": "sha512-6X200ceQLns0b/CU0S/So16tGjB5eIXHJ1xvJMPoWaKFHWSgfpW2EhkWJrqap4U3+c37zcowVR0ToPXeYEL7Vw==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "buffer": "^6.0.3", - "dns-packet": "^5.6.1", - "hashlru": "^2.3.0", - "p-queue": "^9.0.0", - "progress-events": "^1.0.0", - "uint8arrays": "^5.0.2" - } - }, - "node_modules/@multiformats/dns/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@multiformats/dns/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@multiformats/dns/node_modules/p-queue": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.0.1.tgz", - "integrity": "sha512-RhBdVhSwJb7Ocn3e8ULk4NMwBEuOxe+1zcgphUy9c2e5aR/xbEsdVXxHJ3lynw6Qiqu7OINEyHlZkiblEpaq7w==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^7.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@multiformats/dns/node_modules/p-timeout": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", - "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@multiformats/dns/node_modules/uint8arrays": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/@multiformats/multiaddr": { - "version": "11.6.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.6.1.tgz", - "integrity": "sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "multiformats": "^11.0.0", - "uint8arrays": "^4.0.2", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@multiformats/multiaddr/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/@multiformats/multiaddr/node_modules/uint8arrays/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@multmux/cli": { "resolved": "multmux/packages/cli", "link": true @@ -3692,48 +3122,6 @@ "node": ">=8.0.0" } }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", - "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", - "license": "MIT", - "optional": true, - "dependencies": { - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz", - "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", - "license": "MIT", - "optional": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2", - "webcrypto-core": "^1.8.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -7572,54 +6960,6 @@ "node": ">=6.5" } }, - "node_modules/abort-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/abort-error/-/abort-error-1.0.1.tgz", - "integrity": "sha512-fxqCblJiIPdSXIUrxI0PL+eJG49QdP9SQ70qtB65MVAoMr2rASlOyAbJFOylfB467F/f+5BCLJJq58RYi7mGfg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/abstract-level": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.4.tgz", - "integrity": "sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/abstract-level/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -7808,21 +7148,6 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, - "node_modules/asn1js": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.6.tgz", - "integrity": "sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA==", - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.3", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -7947,55 +7272,6 @@ "node": ">= 0.8.0" } }, - "node_modules/blockstore-core": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-2.0.2.tgz", - "integrity": "sha512-ALry3rBp2pTEi4F/usjCJGRluAKYFWI9Np7uE0pZHfDeScMJSj/fDkHEWvY80tPYu4kj03sLKRDGJlZH+V7VzQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "err-code": "^3.0.1", - "interface-blockstore": "^3.0.0", - "interface-store": "^3.0.0", - "it-all": "^1.0.4", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "multiformats": "^10.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/blockstore-datastore-adapter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-4.0.0.tgz", - "integrity": "sha512-vzy2lgLb7PQ0qopuZk6B+syRULdUt9w/ffNl7EXcvGZLS5+VoUmh4Agdp1OVuoaMEfXoEqIvCaPXi/v3829vBg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "blockstore-core": "^2.0.0", - "err-code": "^3.0.1", - "interface-blockstore": "^3.0.0", - "interface-datastore": "^7.0.0", - "it-drain": "^2.0.0", - "it-pushable": "^3.1.0", - "multiformats": "^10.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/blockstore-datastore-adapter/node_modules/it-drain": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/body-parser": { "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", @@ -8047,18 +7323,6 @@ "integrity": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==", "license": "MIT" }, - "node_modules/browser-level": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", - "license": "MIT", - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.1", - "module-error": "^1.0.2", - "run-parallel-limit": "^1.1.0" - } - }, "node_modules/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", @@ -8249,15 +7513,6 @@ "node": ">=10.0.0" } }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/cbor-extract": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz", @@ -8289,15 +7544,6 @@ "cbor-extract": "^2.2.0" } }, - "node_modules/cborg": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz", - "integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==", - "license": "Apache-2.0", - "bin": { - "cborg": "cli.js" - } - }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -8394,23 +7640,6 @@ "mermaid": "9.4.3" } }, - "node_modules/classic-level": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.4.1.tgz", - "integrity": "sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.0", - "module-error": "^1.0.1", - "napi-macros": "^2.2.2", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", @@ -8797,12 +8026,6 @@ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", - "license": "MIT" - }, "node_modules/cytoscape": { "version": "3.33.1", "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", @@ -9320,129 +8543,6 @@ "node": ">=12" } }, - "node_modules/datastore-core": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.4.tgz", - "integrity": "sha512-oBA6a024NFXJOTu+w9nLAimfy4wCYUhdE/5XQGtdKt1BmCVtPYW10GORvVT3pdZBcse6k/mVcBl+hjkXIlm65A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/logger": "^2.0.0", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0", - "it-all": "^2.0.0", - "it-drain": "^2.0.0", - "it-filter": "^2.0.0", - "it-map": "^2.0.0", - "it-merge": "^2.0.0", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "it-take": "^2.0.0", - "uint8arrays": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/it-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.1.tgz", - "integrity": "sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/it-drain": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/it-filter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/it-take": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.1.tgz", - "integrity": "sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/datastore-level": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-9.0.4.tgz", - "integrity": "sha512-HKf2tVVWywdidI+94z0B5NLx4J94wTLCT1tYXXxJ58MK/Y5rdX8WVRp9XmZaODS70uxpNC8/UrvWr0iTBZwkUA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "abstract-level": "^1.0.3", - "datastore-core": "^8.0.1", - "interface-datastore": "^7.0.0", - "it-filter": "^2.0.0", - "it-map": "^2.0.0", - "it-sort": "^2.0.0", - "it-take": "^2.0.0", - "level": "^8.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-level/node_modules/it-filter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-level/node_modules/it-take": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.1.tgz", - "integrity": "sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/dayjs": { "version": "1.11.19", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", @@ -9600,30 +8700,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/dns-over-http-resolver": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.3.tgz", - "integrity": "sha512-zjRYFhq+CsxPAouQWzOsxNMvEN+SHisjzhX8EMxd2Y0EG3thvn6wXQgMJLnTDImkhe4jhLbOQpXtL10nALBOSA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^4.0.2", - "receptacle": "^1.3.2", - "undici": "^5.12.0" - } - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -9811,12 +8887,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", - "license": "MIT" - }, "node_modules/error-stack-parser-es": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", @@ -10339,58 +9409,12 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/fission-bloom-filters": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/fission-bloom-filters/-/fission-bloom-filters-1.7.1.tgz", - "integrity": "sha512-AAVWxwqgSDK+/3Tn2kx+a9j/ND/pyVNVZgn/rL5pfQaX7w0qfP81PlLCNKhM4XKOhcg1kFXNcoWkQKg3MyyULw==", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "is-buffer": "^2.0.4", - "lodash": "^4.17.15", - "lodash.eq": "^4.0.0", - "lodash.indexof": "^4.0.5", - "reflect-metadata": "^0.1.13", - "seedrandom": "^3.0.5", - "xxhashjs": "^0.2.2" - } - }, - "node_modules/fission-bloom-filters/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/flatbuffers": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz", "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==", "license": "SEE LICENSE IN LICENSE.txt" }, - "node_modules/fnv1a": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.1.1.tgz", - "integrity": "sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag==", - "license": "MIT" - }, "node_modules/follow-redirects": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", @@ -10637,12 +9661,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -10664,21 +9682,6 @@ "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==", "license": "ISC" }, - "node_modules/gun": { - "version": "0.2020.1241", - "resolved": "https://registry.npmjs.org/gun/-/gun-0.2020.1241.tgz", - "integrity": "sha512-rmGqLuJj4fAuZ/0lddCvXHbENPkEnBOBYpq+kXHrwQ5RdNtQ5p0Io99lD1qUXMFmtwNacQ/iqo3VTmjmMyAYZg==", - "license": "(Zlib OR MIT OR Apache-2.0)", - "dependencies": { - "ws": "^7.2.1" - }, - "engines": { - "node": ">=0.8.4" - }, - "optionalDependencies": { - "@peculiar/webcrypto": "^1.1.1" - } - }, "node_modules/h3-js": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-4.3.0.tgz", @@ -10741,12 +9744,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==", - "license": "MIT" - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -11080,27 +10077,6 @@ "he": "bin/he" } }, - "node_modules/holosphere": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/holosphere/-/holosphere-1.1.20.tgz", - "integrity": "sha512-Q++C7cuU1ubF6LPQ8YRYJJsFwK4HxnYgqm0FekNBOGEGdWOiEf3muN5kQpmMl7u3wf1H69hWrfsU8up0ppfbIw==", - "license": "GPL-3.0-or-later", - "dependencies": { - "ajv": "^8.12.0", - "gun": "^0.2020.1240", - "h3-js": "^4.1.0", - "openai": "^4.85.1" - }, - "peerDependencies": { - "gun": "^0.2020.1240", - "h3-js": "^4.1.0" - }, - "peerDependenciesMeta": { - "openai": { - "optional": true - } - } - }, "node_modules/hotkeys-js": { "version": "3.13.15", "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.13.15.tgz", @@ -11344,82 +10320,6 @@ "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", "license": "MIT" }, - "node_modules/interface-blockstore": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-3.0.2.tgz", - "integrity": "sha512-lJXCyu3CwidOvNjkJARwCmoxl/HNX/mrfMxtyq5e/pVZA1SrlTj5lvb4LBYbfoynzewGUPcUU4DEUaXoLKliHQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "interface-store": "^3.0.0", - "multiformats": "^10.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/interface-datastore": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.4.tgz", - "integrity": "sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "interface-store": "^3.0.0", - "nanoid": "^4.0.0", - "uint8arrays": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/interface-datastore/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/interface-datastore/node_modules/nanoid": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^14 || ^16 || >=18" - } - }, - "node_modules/interface-datastore/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/interface-store": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.4.tgz", - "integrity": "sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", @@ -11455,225 +10355,6 @@ "node": ">= 0.10" } }, - "node_modules/ipfs-core-types": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.13.0.tgz", - "integrity": "sha512-IIKS9v2D5KIqReZMbyuCStI4FRyIbRA9nD3fji1KgKJPiic1N3iGe2jL4hy4Y3FQ30VbheWJ9jAROwMyvqxYNA==", - "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@ipld/dag-pb": "^3.0.0", - "@libp2p/interface-keychain": "^1.0.3", - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/interface-peer-info": "^1.0.2", - "@libp2p/interface-pubsub": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "@types/node": "^18.0.0", - "interface-datastore": "^7.0.0", - "ipfs-unixfs": "^8.0.0", - "multiformats": "^10.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-repo": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-16.0.0.tgz", - "integrity": "sha512-CYlHO3MK1CNfuCkRyLxXB9pKj2nx4yomH92DilhwDW+Et4rQ/8279RgmEh5nFNf7BgvIvYPE+3hVErGbVytS5Q==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@ipld/dag-pb": "^3.0.0", - "bytes": "^3.1.0", - "cborg": "^1.3.4", - "datastore-core": "^8.0.1", - "debug": "^4.1.0", - "err-code": "^3.0.1", - "interface-blockstore": "^3.0.0", - "interface-datastore": "^7.0.0", - "ipfs-repo-migrations": "^14.0.0", - "it-drain": "^2.0.0", - "it-filter": "^2.0.0", - "it-first": "^2.0.0", - "it-map": "^2.0.0", - "it-merge": "^2.0.0", - "it-parallel-batch": "^2.0.0", - "it-pipe": "^2.0.4", - "it-pushable": "^3.1.0", - "just-safe-get": "^4.1.1", - "just-safe-set": "^4.1.1", - "merge-options": "^3.0.4", - "mortice": "^3.0.0", - "multiformats": "^10.0.1", - "p-queue": "^7.3.0", - "proper-lockfile": "^4.0.0", - "quick-lru": "^6.1.1", - "sort-keys": "^5.0.0", - "uint8arrays": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-repo-migrations": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-14.0.1.tgz", - "integrity": "sha512-wE22g05hzxegCWMhNj7deagCLsKPcNf8KmK1QN4WMob0kuZ4kDxCg7fusM68tGrOnhE+Ll/AVHseFlzmoU/ZbQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@ipld/dag-pb": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "cborg": "^1.3.4", - "datastore-core": "^8.0.1", - "debug": "^4.1.0", - "fnv1a": "^1.0.1", - "interface-blockstore": "^3.0.0", - "interface-datastore": "^7.0.0", - "it-length": "^2.0.0", - "multiformats": "^10.0.1", - "protobufjs": "^7.0.0", - "uint8arrays": "^4.0.2", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, - "node_modules/ipfs-repo-migrations/node_modules/protobufjs": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", - "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/ipfs-repo-migrations/node_modules/uint8arrays/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-repo/node_modules/it-drain": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.1.tgz", - "integrity": "sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-repo/node_modules/it-filter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.2.tgz", - "integrity": "sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-repo/node_modules/uint8arrays": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", - "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^12.0.1" - } - }, - "node_modules/ipfs-repo/node_modules/uint8arrays/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-unixfs": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-8.0.0.tgz", - "integrity": "sha512-PAHtfyjiFs2PZBbeft5QRyXpVOvZ2zsGqID+zVRla7fjC1zRTqJkrGY9h6dF03ldGv/mSmFlNZh479qPC6aZKg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^7.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/ipfs-unixfs/node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, - "node_modules/ipfs-unixfs/node_modules/protobufjs": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", - "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", @@ -11704,29 +10385,6 @@ "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", "license": "MIT" }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -11820,166 +10478,6 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "license": "MIT" }, - "node_modules/it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==", - "license": "ISC" - }, - "node_modules/it-batch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-2.0.1.tgz", - "integrity": "sha512-2gWFuPzamh9Dh3pW+OKjc7UwJ41W4Eu2AinVAfXDMfrC5gXfm3b1TF+1UzsygBUgKBugnxnGP+/fFRyn+9y1mQ==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-drain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==", - "license": "ISC" - }, - "node_modules/it-filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==", - "license": "ISC" - }, - "node_modules/it-first": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-2.0.1.tgz", - "integrity": "sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-length": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-2.0.1.tgz", - "integrity": "sha512-BynaPOK4UwcQX2Z+kqsQygXUNW9NZswfTnscfP7MLhFvVhRYbYJv8XH+09/Qwf8ktk65QdsGoVnDmQUCUGCyvg==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-2.0.1.tgz", - "integrity": "sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-merge": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-2.0.1.tgz", - "integrity": "sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "it-pushable": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-parallel-batch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-2.0.1.tgz", - "integrity": "sha512-tXh567/JfDGJ90Zi//H9HkL7kY27ARp0jf2vu2jUI6PUVBWfsoT+gC4eT41/b4+wkJXSGgT8ZHnivAOlMfcNjA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "it-batch": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pipe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.5.tgz", - "integrity": "sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "it-merge": "^2.0.0", - "it-pushable": "^3.1.0", - "it-stream-types": "^1.0.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pushable": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.2.3.tgz", - "integrity": "sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "p-defer": "^4.0.0" - } - }, - "node_modules/it-queue": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-queue/-/it-queue-1.1.0.tgz", - "integrity": "sha512-aK9unJRIaJc9qiv53LByhF7/I2AuD7Ro4oLfLieVLL9QXNvRx++ANMpv8yCp2UO0KAtBuf70GOxSYb6ElFVRpQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "abort-error": "^1.0.1", - "it-pushable": "^3.2.3", - "main-event": "^1.0.0", - "race-event": "^1.3.0", - "race-signal": "^1.1.3" - } - }, - "node_modules/it-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-2.0.1.tgz", - "integrity": "sha512-9f4jKOTHfxc/FJpg/wwuQ+j+88i+sfNGKsu2HukAKymm71/XDnBFtOAOzaimko3YIhmn/ERwnfEKrsYLykxw9A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "it-all": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-sort/node_modules/it-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.1.tgz", - "integrity": "sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-stream-types": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.5.tgz", - "integrity": "sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-take": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==", - "license": "ISC" - }, "node_modules/itty-router": { "version": "5.0.22", "resolved": "https://registry.npmjs.org/itty-router/-/itty-router-5.0.22.tgz", @@ -12192,38 +10690,12 @@ "html2canvas": "^1.0.0-rc.5" } }, - "node_modules/just-safe-get": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-4.2.0.tgz", - "integrity": "sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA==", - "license": "MIT" - }, - "node_modules/just-safe-set": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-4.2.1.tgz", - "integrity": "sha512-La5CP41Ycv52+E4g7w1sRV8XXk7Sp8a/TwWQAYQKn6RsQz1FD4Z/rDRRmqV3wJznS1MDF3YxK7BCudX1J8FxLg==", - "license": "MIT" - }, "node_modules/kdbush": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", "license": "ISC" }, - "node_modules/keystore-idb": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/keystore-idb/-/keystore-idb-0.15.5.tgz", - "integrity": "sha512-7bcUAnY5iD0+N75odQVTCs8mhXBW+yLt9/HH8+VUrl44FGllpAhu7q3/w9QpNMHxLQv3OXs1fsA042CAviN79Q==", - "license": "Apache-2.0", - "dependencies": { - "localforage": "^1.10.0", - "one-webcrypto": "^1.0.3", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=10.21.0" - } - }, "node_modules/khroma": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", @@ -12263,70 +10735,6 @@ "license": "MIT", "optional": true }, - "node_modules/level": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/level/-/level-8.0.1.tgz", - "integrity": "sha512-oPBGkheysuw7DmzFQYyFe8NAia5jFLAgEnkgWnK3OXAuJr8qFT+xBQIwokAZPME2bhPFzS8hlYcL16m8UZrtwQ==", - "license": "MIT", - "dependencies": { - "abstract-level": "^1.0.4", - "browser-level": "^1.0.1", - "classic-level": "^1.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/level-transcoder/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/lexical": { "version": "0.35.0", "resolved": "https://registry.npmjs.org/lexical/-/lexical-0.35.0.tgz", @@ -12379,18 +10787,6 @@ "license": "MIT", "optional": true }, - "node_modules/lodash.eq": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lodash.eq/-/lodash.eq-4.0.0.tgz", - "integrity": "sha512-vbrJpXL6kQNG6TkInxX12DZRfuYVllSxhwYqjYB78g2zF3UI15nFO/0AgmZnZRnaQ38sZtjCiVjGr2rnKt4v0g==", - "license": "MIT" - }, - "node_modules/lodash.indexof": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/lodash.indexof/-/lodash.indexof-4.0.5.tgz", - "integrity": "sha512-t9wLWMQsawdVmf6/IcAgVGqAJkNzYVcn4BHYZKTPW//l7N5Oq7Bq138BaVk19agcsPZePcidSgTTw4NqS1nUAw==", - "license": "MIT" - }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -12488,12 +10884,6 @@ "lz-string": "bin/bin.js" } }, - "node_modules/main-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/main-event/-/main-event-1.0.1.tgz", - "integrity": "sha512-NWtdGrAca/69fm6DIVd8T9rtfDII4Q8NQbIbsKQq2VzS9eqOGYs8uaNQjcuaCq/d9H/o625aOTJX2Qoxzqw0Pw==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/maplibre-gl": { "version": "5.14.0", "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.14.0.tgz", @@ -12957,27 +11347,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "license": "MIT", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge-options/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/mermaid": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.4.3.tgz", @@ -13928,26 +12297,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/mortice": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.3.1.tgz", - "integrity": "sha512-t3oESfijIPGsmsdLEKjF+grHfrbnKSXflJtgb1wY14cjxZpS6GnhHRXTxxzCAoCCnq1YYfpEPwY3gjiCPhOufQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "abort-error": "^1.0.0", - "it-queue": "^1.1.0", - "main-event": "^1.0.0" - } - }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -13963,16 +12312,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, - "node_modules/multiformats": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/murmurhash-js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", @@ -14003,21 +12342,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/napi-macros": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", - "license": "MIT" - }, - "node_modules/native-fetch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", - "license": "MIT", - "peerDependencies": { - "undici": "*" - } - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -14105,17 +12429,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/node-gyp-build": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", - "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, "node_modules/node-gyp-build-optional-packages": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", @@ -14336,46 +12649,6 @@ "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", "license": "MIT" }, - "node_modules/p-defer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.1.tgz", - "integrity": "sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", - "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^5.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -14554,12 +12827,6 @@ "node": ">=6" } }, - "node_modules/progress-events": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.1.tgz", - "integrity": "sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -14577,17 +12844,6 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, "node_modules/property-information": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", @@ -14886,26 +13142,6 @@ "node": ">=6" } }, - "node_modules/pvtsutils": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", - "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/pvutils": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", - "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/qrcode.react": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.2.0.tgz", @@ -14936,59 +13172,12 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "license": "MIT" }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", - "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/quickselect": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", "license": "ISC" }, - "node_modules/race-event": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/race-event/-/race-event-1.6.1.tgz", - "integrity": "sha512-vi7WH5g5KoTFpu2mme/HqZiWH14XSOtg5rfp6raBskBHl7wnmy3F/biAIyY5MsK+BHWhoPhxtZ1Y2R7OHHaWyQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "abort-error": "^1.0.1" - } - }, - "node_modules/race-signal": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-1.1.3.tgz", - "integrity": "sha512-Mt2NznMgepLfORijhQMncE26IhkmjEphig+/1fKC0OtaKwys/gpvpmswSjoN01SS+VO951mj0L4VIDXdXsjnfA==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/radix-ui": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.4.3.tgz", @@ -15376,15 +13565,6 @@ "node": ">= 6" } }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/recoil": { "version": "0.7.7", "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.7.tgz", @@ -15411,12 +13591,6 @@ "integrity": "sha512-1QNKKNtl7+KcwD1lyOgP3ZlbiJ1d0HtXnypUy7yq49xEERxk31PHvE9RCciDrulPCY7WJ+oz0R9hpNxgsIurGQ==", "license": "MIT" }, - "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", - "license": "Apache-2.0" - }, "node_modules/refractor": { "version": "4.9.0", "resolved": "https://registry.npmjs.org/refractor/-/refractor-4.9.0.tgz", @@ -15821,15 +13995,6 @@ "node": ">=8" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/rgbcolor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", @@ -15900,29 +14065,6 @@ "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", "license": "MIT" }, - "node_modules/run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -16017,12 +14159,6 @@ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", "license": "BSD-3-Clause" }, - "node_modules/seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", - "license": "MIT" - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -16259,21 +14395,6 @@ "is-arrayish": "^0.3.1" } }, - "node_modules/sort-keys": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.1.0.tgz", - "integrity": "sha512-aSbHV0DaBcr7u0PVHXzM6NbZNAtrr9sF6+Qfs9UUVG7Ll3jQ6hHi8F/xqIIcn2rvIVbr0v/2zyjSdwSV47AgLQ==", - "license": "MIT", - "dependencies": { - "is-plain-obj": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -16587,15 +14708,6 @@ "utrie": "^1.0.2" } }, - "node_modules/throttle-debounce": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", - "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/throttleit": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz", @@ -16768,12 +14880,6 @@ "fsevents": "~2.3.3" } }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "license": "Unlicense" - }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", @@ -16813,82 +14919,6 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "license": "MIT" }, - "node_modules/uint8-varint": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", - "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "uint8arraylist": "^2.0.0", - "uint8arrays": "^5.0.0" - } - }, - "node_modules/uint8-varint/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/uint8-varint/node_modules/uint8arrays": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/uint8arraylist": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.8.tgz", - "integrity": "sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "uint8arrays": "^5.0.1" - } - }, - "node_modules/uint8arraylist/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/uint8arraylist/node_modules/uint8arrays": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "node_modules/uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", - "license": "MIT", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/uint8arrays/node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", - "license": "(Apache-2.0 AND MIT)" - }, - "node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", - "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -17228,12 +15258,6 @@ "node": ">=8" } }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "license": "MIT" - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -17518,20 +15542,6 @@ "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", "license": "BSD-3-Clause" }, - "node_modules/webcrypto-core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.8.1.tgz", - "integrity": "sha512-P+x1MvlNCXlKbLSOY4cYrdreqPG5hbzkmawbcXLKN/mf6DZW0SdNNkZ+sjwsqVkI4A4Ko2sPZmkZtCKY58w83A==", - "license": "MIT", - "optional": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.7.0" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -17541,39 +15551,6 @@ "node": ">=12" } }, - "node_modules/webnative": { - "version": "0.36.3", - "resolved": "https://registry.npmjs.org/webnative/-/webnative-0.36.3.tgz", - "integrity": "sha512-MucN6ydnyY5E8GczuARAWXSOn3+yjXKSLNTIPeJhcFmZpxPBDRfpZ0SpKJjKWtVLNiEaUQibeiKsIYDfij/wIQ==", - "deprecated": "webnative has been renamed to @oddjs/odd. Upgrade to @oddjs/odd.", - "license": "Apache-2.0", - "dependencies": { - "@ipld/dag-cbor": "^8.0.0", - "@ipld/dag-pb": "^3.0.1", - "@libp2p/interface-keys": "^1.0.4", - "@libp2p/peer-id": "^1.1.17", - "@multiformats/multiaddr": "^11.1.0", - "blockstore-core": "^2.0.2", - "blockstore-datastore-adapter": "^4.0.0", - "datastore-core": "^8.0.2", - "datastore-level": "^9.0.4", - "events": "^3.3.0", - "fission-bloom-filters": "1.7.1", - "ipfs-core-types": "0.13.0", - "ipfs-repo": "^16.0.0", - "keystore-idb": "^0.15.5", - "localforage": "^1.10.0", - "multiformats": "^10.0.2", - "one-webcrypto": "^1.0.3", - "throttle-debounce": "^3.0.1", - "tweetnacl": "^1.0.3", - "uint8arrays": "^3.0.0", - "wnfs": "0.1.7" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -17625,12 +15602,6 @@ "resolved": "https://registry.npmjs.org/wildemitter/-/wildemitter-1.2.1.tgz", "integrity": "sha512-UMmSUoIQSir+XbBpTxOTS53uJ8s/lVhADCkEbhfRjUGFDPme/XGOb0sBWLx5sTz7Wx/2+TlAw1eK9O5lw5PiEw==" }, - "node_modules/wnfs": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/wnfs/-/wnfs-0.1.7.tgz", - "integrity": "sha512-WTadILZSNX7Ti+jy1QgqGtWp0pLHvPAG+ERsNWge2DuR8P8x+U/CM9QjYqJb7wqBkbSoboZgeBspetybIzNQgw==", - "license": "Apache-2.0" - }, "node_modules/workerd": { "version": "1.20251125.0", "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20251125.0.tgz", @@ -18178,27 +16149,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -18224,15 +16174,6 @@ "url": "https://opencollective.com/xstate" } }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "license": "MIT", - "dependencies": { - "cuint": "^0.2.2" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 3a7aba0..a3a93ad 100644 --- a/package.json +++ b/package.json @@ -56,9 +56,7 @@ "d3": "^7.9.0", "fathom-typescript": "^0.0.36", "gray-matter": "^4.0.3", - "gun": "^0.2020.1241", "h3-js": "^4.3.0", - "holosphere": "^1.1.20", "html2canvas": "^1.4.1", "itty-router": "^5.0.17", "jotai": "^2.6.0", @@ -79,8 +77,7 @@ "sharp": "^0.33.5", "tldraw": "^3.15.4", "use-whisper": "^0.0.1", - "webcola": "^3.4.0", - "webnative": "^0.36.3" + "webcola": "^3.4.0" }, "devDependencies": { "@cloudflare/types": "^6.0.0", diff --git a/src/App.tsx b/src/App.tsx index 5cac178..e2b7c6e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,18 +4,18 @@ import "@/css/auth.css"; // Import auth styles import "@/css/crypto-auth.css"; // Import crypto auth styles import "@/css/starred-boards.css"; // Import starred boards styles import "@/css/user-profile.css"; // Import user profile styles -import { Default } from "@/routes/Default"; import { BrowserRouter, Route, Routes, Navigate, useParams } from "react-router-dom"; -import { Contact } from "@/routes/Contact"; -import { Board } from "./routes/Board"; -import { Inbox } from "./routes/Inbox"; -import { Presentations } from "./routes/Presentations"; -import { Resilience } from "./routes/Resilience"; -import { Dashboard } from "./routes/Dashboard"; import { createRoot } from "react-dom/client"; -import { DailyProvider } from "@daily-co/daily-react"; -import Daily from "@daily-co/daily-js"; -import { useState, useEffect } from 'react'; +import { useState, useEffect, lazy, Suspense } from 'react'; + +// Lazy load heavy route components for faster initial load +const Default = lazy(() => import("@/routes/Default").then(m => ({ default: m.Default }))); +const Contact = lazy(() => import("@/routes/Contact").then(m => ({ default: m.Contact }))); +const Board = lazy(() => import("./routes/Board").then(m => ({ default: m.Board }))); +const Inbox = lazy(() => import("./routes/Inbox").then(m => ({ default: m.Inbox }))); +const Presentations = lazy(() => import("./routes/Presentations").then(m => ({ default: m.Presentations }))); +const Resilience = lazy(() => import("./routes/Resilience").then(m => ({ default: m.Resilience }))); +const Dashboard = lazy(() => import("./routes/Dashboard").then(m => ({ default: m.Dashboard }))); // Import React Context providers import { AuthProvider, useAuth } from './context/AuthContext'; @@ -31,19 +31,59 @@ import CryptoDebug from './components/auth/CryptoDebug'; // Import Google Data test component import { GoogleDataTest } from './components/GoogleDataTest'; -// Initialize Daily.co call object with error handling -let callObject: any = null; -try { - // Only create call object if we're in a secure context and mediaDevices is available - if (typeof window !== 'undefined' && - window.location.protocol === 'https:' && - navigator.mediaDevices) { - callObject = Daily.createCallObject(); +// Lazy load Daily.co provider - only needed for video chat +const DailyProvider = lazy(() => + import('@daily-co/daily-react').then(m => ({ default: m.DailyProvider })) +); + +// Loading skeleton for lazy-loaded routes +const LoadingSpinner = () => ( +
+
+

Loading canvas...

+ +
+); + +// Daily.co call object - initialized lazily when needed +let dailyCallObject: any = null; +const getDailyCallObject = async () => { + if (dailyCallObject) return dailyCallObject; + + try { + // Only create call object if we're in a secure context and mediaDevices is available + if (typeof window !== 'undefined' && + window.location.protocol === 'https:' && + navigator.mediaDevices) { + const Daily = (await import('@daily-co/daily-js')).default; + dailyCallObject = Daily.createCallObject(); + } + } catch (error) { + console.warn('Daily.co call object initialization failed:', error); } -} catch (error) { - console.warn('Daily.co call object initialization failed:', error); - // Continue without video chat functionality -} + return dailyCallObject; +}; /** * Optional Auth Route component @@ -104,72 +144,76 @@ const AppWithProviders = () => { - - - {/* Display notifications */} - - - - {/* Redirect routes without trailing slashes to include them */} - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> + }> + + + {/* Display notifications */} + - {/* Auth routes */} - } /> + }> + + {/* Redirect routes without trailing slashes to include them */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> - {/* Optional auth routes */} - - - - } /> - - - - } /> - - - - } /> - - - - } /> - - - - } /> - - - - } /> - - - - } /> - - - - } /> - {/* Google Data routes */} - } /> - } /> - - - + {/* Auth routes */} + } /> + + {/* Optional auth routes - all lazy loaded */} + + + + } /> + + + + } /> + + + + } /> + + + + } /> + + + + } /> + + + + } /> + + + + } /> + + + + } /> + {/* Google Data routes */} + } /> + } /> + + + + + diff --git a/src/context/FileSystemContext.tsx b/src/context/FileSystemContext.tsx index ed53127..a5ba206 100644 --- a/src/context/FileSystemContext.tsx +++ b/src/context/FileSystemContext.tsx @@ -1,29 +1,39 @@ import React, { createContext, useContext, useState, ReactNode } from 'react'; -import * as webnative from 'webnative'; -import type FileSystem from 'webnative/fs/index'; /** - * File system context interface + * FileSystemContext - PLACEHOLDER + * + * Previously used webnative for Fission WNFS integration. + * Now a stub - file system functionality is handled via local storage + * or server-side APIs when needed. */ + +// Placeholder FileSystem interface matching previous API +interface FileSystem { + exists: (path: any) => Promise; + mkdir: (path: any) => Promise; + write: (path: any, content: any) => Promise; + read: (path: any) => Promise; + ls: (path: any) => Promise>; + publish: () => Promise; +} + interface FileSystemContextType { fs: FileSystem | null; setFs: (fs: FileSystem | null) => void; isReady: boolean; } -// Create context with a default undefined value const FileSystemContext = createContext(undefined); /** - * FileSystemProvider component - * - * Provides access to the webnative filesystem throughout the application. + * FileSystemProvider - Stub implementation */ export const FileSystemProvider: React.FC<{ children: ReactNode }> = ({ children }) => { const [fs, setFs] = useState(null); - // File system is ready when it's not null - const isReady = fs !== null; + // File system is never ready in stub mode + const isReady = false; return ( @@ -34,9 +44,6 @@ export const FileSystemProvider: React.FC<{ children: ReactNode }> = ({ children /** * Hook to access the file system context - * - * @returns The file system context - * @throws Error if used outside of FileSystemProvider */ export const useFileSystem = (): FileSystemContextType => { const context = useContext(FileSystemContext); @@ -64,120 +71,30 @@ export const DIRECTORIES = { }; /** - * Common filesystem operations - * - * @param fs The filesystem instance - * @returns An object with filesystem utility functions + * Stub filesystem utilities - returns no-op functions */ -export const createFileSystemUtils = (fs: FileSystem) => { +export const createFileSystemUtils = (_fs: FileSystem) => { + console.warn('⚠️ FileSystemUtils is a stub - webnative has been removed'); return { - /** - * Creates a directory if it doesn't exist - * - * @param path Array of path segments - */ - ensureDirectory: async (path: string[]): Promise => { - try { - const dirPath = webnative.path.directory(...path); - const exists = await fs.exists(dirPath as any); - if (!exists) { - await fs.mkdir(dirPath as any); - } - } catch (error) { - console.error('Error ensuring directory:', error); - } + ensureDirectory: async (_path: string[]): Promise => {}, + writeFile: async (_path: string[], _fileName: string, _content: Blob | string): Promise => {}, + readFile: async (_path: string[], _fileName: string): Promise => { + throw new Error('FileSystem not available'); }, - - /** - * Writes a file to the filesystem - * - * @param path Array of path segments - * @param fileName The name of the file - * @param content The content to write - */ - writeFile: async (path: string[], fileName: string, content: Blob | string): Promise => { - try { - const filePath = webnative.path.file(...path, fileName); - // Convert content to appropriate format for webnative - const contentToWrite = typeof content === 'string' ? new TextEncoder().encode(content) : content; - await fs.write(filePath as any, contentToWrite as any); - await fs.publish(); - } catch (error) { - console.error('Error writing file:', error); - } - }, - - /** - * Reads a file from the filesystem - * - * @param path Array of path segments - * @param fileName The name of the file - * @returns The file content - */ - readFile: async (path: string[], fileName: string): Promise => { - try { - const filePath = webnative.path.file(...path, fileName); - const exists = await fs.exists(filePath as any); - if (!exists) { - throw new Error(`File doesn't exist: ${fileName}`); - } - return await fs.read(filePath as any); - } catch (error) { - console.error('Error reading file:', error); - throw error; - } - }, - - /** - * Checks if a file exists - * - * @param path Array of path segments - * @param fileName The name of the file - * @returns Boolean indicating if the file exists - */ - fileExists: async (path: string[], fileName: string): Promise => { - try { - const filePath = webnative.path.file(...path, fileName); - return await fs.exists(filePath as any); - } catch (error) { - console.error('Error checking file existence:', error); - return false; - } - }, - - /** - * Lists files in a directory - * - * @param path Array of path segments - * @returns Object with file names as keys - */ - listDirectory: async (path: string[]): Promise> => { - try { - const dirPath = webnative.path.directory(...path); - const exists = await fs.exists(dirPath as any); - if (!exists) { - return {}; - } - return await fs.ls(dirPath as any); - } catch (error) { - console.error('Error listing directory:', error); - return {}; - } - } + fileExists: async (_path: string[], _fileName: string): Promise => false, + listDirectory: async (_path: string[]): Promise> => ({}) }; }; /** - * Hook to use filesystem utilities - * - * @returns Filesystem utilities or null if filesystem is not ready + * Hook to use filesystem utilities - always returns null in stub mode */ export const useFileSystemUtils = () => { const { fs, isReady } = useFileSystem(); - + if (!isReady || !fs) { return null; } - + return createFileSystemUtils(fs); -}; \ No newline at end of file +}; diff --git a/src/lib/HoloSphereService.ts b/src/lib/HoloSphereService.ts index dbf38a7..6a5bea0 100644 --- a/src/lib/HoloSphereService.ts +++ b/src/lib/HoloSphereService.ts @@ -1,4 +1,12 @@ -import HoloSphere from 'holosphere' +/** + * HoloSphere Service - PLACEHOLDER + * + * This service previously used the holosphere library (which uses GunDB). + * It's now a stub awaiting Nostr integration for decentralized data storage. + * + * TODO: Integrate with Nostr protocol when Holons.io provides their Nostr-based API + */ + import * as h3 from 'h3-js' export interface HolonData { @@ -26,304 +34,78 @@ export interface HolonConnection { status: 'connected' | 'disconnected' | 'error' } +/** + * Placeholder HoloSphere Service + * Returns empty/default values until Nostr integration is available + */ export class HoloSphereService { - private sphere!: HoloSphere private isInitialized: boolean = false private connections: Map = new Map() - private connectionErrorLogged: boolean = false // Track if we've already logged connection errors + private localCache: Map = new Map() // Local-only cache for development - constructor(appName: string = 'canvas-holons', strict: boolean = false, openaiKey?: string) { - try { - this.sphere = new HoloSphere(appName, strict, openaiKey) - this.isInitialized = true - console.log('✅ HoloSphere service initialized') - } catch (error) { - console.error('❌ Failed to initialize HoloSphere:', error) - this.isInitialized = false - } + constructor(_appName: string = 'canvas-holons', _strict: boolean = false, _openaiKey?: string) { + this.isInitialized = true + console.log('⚠️ HoloSphere service initialized (STUB MODE - awaiting Nostr integration)') } async initialize(): Promise { - if (!this.isInitialized) { - console.error('❌ HoloSphere not initialized') - return false - } - return true + return this.isInitialized } // Get a holon for specific coordinates and resolution async getHolon(lat: number, lng: number, resolution: number): Promise { - if (!this.isInitialized) return '' try { - return await this.sphere.getHolon(lat, lng, resolution) + return h3.latLngToCell(lat, lng, resolution) } catch (error) { console.error('❌ Error getting holon:', error) return '' } } - // Store data in a holon + // Store data in local cache (placeholder for Nostr) async putData(holon: string, lens: string, data: any): Promise { - if (!this.isInitialized) return false - try { - await this.sphere.put(holon, lens, data) - return true - } catch (error) { - console.error('❌ Error storing data:', error) - return false - } + const key = `${holon}:${lens}` + const existing = this.localCache.get(key) || {} + this.localCache.set(key, { ...existing, ...data }) + console.log(`📝 [STUB] Stored data locally: ${key}`) + return true } - // Retrieve data from a holon - async getData(holon: string, lens: string, key?: string): Promise { - if (!this.isInitialized) return null - try { - if (key) { - return await this.sphere.get(holon, lens, key) - } else { - return await this.sphere.getAll(holon, lens) - } - } catch (error) { - console.error('❌ Error retrieving data:', error) - return null - } + // Retrieve data from local cache + async getData(holon: string, lens: string, _key?: string): Promise { + const cacheKey = `${holon}:${lens}` + return this.localCache.get(cacheKey) || null } - // Retrieve data with subscription and timeout (better for Gun's async nature) - async getDataWithWait(holon: string, lens: string, timeoutMs: number = 5000): Promise { - if (!this.isInitialized) { - console.log(`⚠️ HoloSphere not initialized for ${lens}`) - return null - } - - // Check for WebSocket connection issues - // Note: GunDB connection errors appear in browser console, we can't directly detect them - // but we can provide better feedback when no data is received - - return new Promise((resolve) => { - let resolved = false - let collectedData: any = {} - let subscriptionActive = false - - console.log(`🔍 getDataWithWait: holon=${holon}, lens=${lens}, timeout=${timeoutMs}ms`) - - // Listen for WebSocket errors (they appear in console but we can't catch them directly) - // Instead, we'll detect the pattern: subscription never fires + getAll never resolves - - // Set up timeout (increased default to 5 seconds for network sync) - const timeout = setTimeout(() => { - if (!resolved) { - resolved = true - const keyCount = Object.keys(collectedData).length - const status = subscriptionActive - ? '(subscription was active)' - : '(subscription never fired - possible WebSocket connection issue)' - - console.log(`⏱️ Timeout for lens ${lens}, returning collected data:`, keyCount, 'keys', status) - - // If no data and subscription never fired, it's likely a connection issue - // Only log this once to avoid console spam - if (keyCount === 0 && !subscriptionActive && !this.connectionErrorLogged) { - this.connectionErrorLogged = true - console.error(`❌ GunDB Connection Issue: WebSocket to 'wss://gun.holons.io/gun' is failing`) - console.error(`💡 This prevents loading data from the Holosphere. Possible causes:`) - console.error(` • GunDB server may be down or unreachable`) - console.error(` • Network/firewall blocking WebSocket connections`) - console.error(` • Check browser console for WebSocket connection errors`) - console.error(` • Data will not load until connection is established`) - } - - resolve(keyCount > 0 ? collectedData : null) - } - }, timeoutMs) - - try { - // Check if methods exist - if (!this.sphere.subscribe) { - console.error(`❌ sphere.subscribe does not exist`) - } - if (!this.sphere.getAll) { - console.error(`❌ sphere.getAll does not exist`) - } - if (!this.sphere.get) { - console.error(`❌ sphere.get does not exist`) - } - - console.log(`🔧 Attempting to subscribe to ${holon}/${lens}`) - - // Try subscribe if it exists - let unsubscribe: (() => void) | undefined = undefined - if (this.sphere.subscribe) { - try { - const subscribeResult = this.sphere.subscribe(holon, lens, (data: any, key?: string) => { - subscriptionActive = true - console.log(`📥 Subscription callback fired for ${lens}:`, { data, key, dataType: typeof data, isObject: typeof data === 'object', isArray: Array.isArray(data) }) - - if (data !== null && data !== undefined) { - if (key) { - // If we have a key, it's a key-value pair - collectedData[key] = data - console.log(`📥 Added key-value pair: ${key} =`, data) - } else if (typeof data === 'object' && !Array.isArray(data)) { - // If it's an object, merge it - collectedData = { ...collectedData, ...data } - console.log(`📥 Merged object data, total keys:`, Object.keys(collectedData).length) - } else if (Array.isArray(data)) { - // If it's an array, convert to object with indices - data.forEach((item, index) => { - collectedData[String(index)] = item - }) - console.log(`📥 Converted array to object, total keys:`, Object.keys(collectedData).length) - } else { - // Primitive value - collectedData['value'] = data - console.log(`📥 Added primitive value:`, data) - } - - console.log(`📥 Current collected data for ${lens}:`, Object.keys(collectedData).length, 'keys') - } - }) - // Handle Promise if subscribe returns one - if (subscribeResult instanceof Promise) { - subscribeResult.then((result: any) => { - unsubscribe = result?.unsubscribe || undefined - console.log(`✅ Subscribe called successfully for ${lens}`) - }).catch((err) => { - console.error(`❌ Error in subscribe promise for ${lens}:`, err) - }) - } else if (subscribeResult && typeof subscribeResult === 'object' && subscribeResult !== null) { - const result = subscribeResult as { unsubscribe?: () => void } - unsubscribe = result?.unsubscribe || undefined - console.log(`✅ Subscribe called successfully for ${lens}`) - } - } catch (subError) { - console.error(`❌ Error calling subscribe for ${lens}:`, subError) - } - } - - // Try getAll if it exists - if (this.sphere.getAll) { - console.log(`🔧 Attempting getAll for ${holon}/${lens}`) - this.sphere.getAll(holon, lens).then((immediateData: any) => { - console.log(`📦 getAll returned for ${lens}:`, { - data: immediateData, - type: typeof immediateData, - isObject: typeof immediateData === 'object', - isArray: Array.isArray(immediateData), - keys: immediateData && typeof immediateData === 'object' ? Object.keys(immediateData).length : 'N/A' - }) - - if (immediateData !== null && immediateData !== undefined) { - if (typeof immediateData === 'object' && !Array.isArray(immediateData)) { - collectedData = { ...collectedData, ...immediateData } - console.log(`📦 Merged immediate data, total keys:`, Object.keys(collectedData).length) - } else if (Array.isArray(immediateData)) { - immediateData.forEach((item, index) => { - collectedData[String(index)] = item - }) - console.log(`📦 Converted immediate array to object, total keys:`, Object.keys(collectedData).length) - } else { - collectedData['value'] = immediateData - console.log(`📦 Added immediate primitive value`) - } - } - - // If we have data immediately, resolve early - if (Object.keys(collectedData).length > 0 && !resolved) { - resolved = true - clearTimeout(timeout) - if (unsubscribe) unsubscribe() - console.log(`✅ Resolving early with ${Object.keys(collectedData).length} keys for ${lens}`) - resolve(collectedData) - } - }).catch((error: any) => { - console.error(`⚠️ Error getting immediate data for ${lens}:`, error) - }) - } else { - // Fallback: try using getData method instead - console.log(`🔧 getAll not available, trying getData as fallback for ${lens}`) - this.getData(holon, lens).then((fallbackData: any) => { - console.log(`📦 getData (fallback) returned for ${lens}:`, fallbackData) - if (fallbackData !== null && fallbackData !== undefined) { - if (typeof fallbackData === 'object' && !Array.isArray(fallbackData)) { - collectedData = { ...collectedData, ...fallbackData } - } else { - collectedData['value'] = fallbackData - } - if (Object.keys(collectedData).length > 0 && !resolved) { - resolved = true - clearTimeout(timeout) - if (unsubscribe) unsubscribe() - console.log(`✅ Resolving with fallback data: ${Object.keys(collectedData).length} keys for ${lens}`) - resolve(collectedData) - } - } - }).catch((error: any) => { - console.error(`⚠️ Error in fallback getData for ${lens}:`, error) - }) - } - - } catch (error) { - console.error(`❌ Error setting up subscription for ${lens}:`, error) - clearTimeout(timeout) - if (!resolved) { - resolved = true - resolve(null) - } - } - }) + // Retrieve data with subscription (stub - just returns cached data) + async getDataWithWait(holon: string, lens: string, _timeoutMs: number = 5000): Promise { + console.log(`🔍 [STUB] getDataWithWait: holon=${holon}, lens=${lens}`) + return this.getData(holon, lens) } - // Delete data from a holon - async deleteData(holon: string, lens: string, key?: string): Promise { - if (!this.isInitialized) return false - try { - if (key) { - await this.sphere.delete(holon, lens, key) - } else { - await this.sphere.deleteAll(holon, lens) - } - return true - } catch (error) { - console.error('❌ Error deleting data:', error) - return false - } + // Delete data from local cache + async deleteData(holon: string, lens: string, _key?: string): Promise { + const cacheKey = `${holon}:${lens}` + this.localCache.delete(cacheKey) + return true } - // Set schema for data validation - async setSchema(lens: string, schema: any): Promise { - if (!this.isInitialized) return false - try { - await this.sphere.setSchema(lens, schema) - return true - } catch (error) { - console.error('❌ Error setting schema:', error) - return false - } + // Schema methods (stub) + async setSchema(_lens: string, _schema: any): Promise { + console.log('⚠️ [STUB] setSchema not implemented') + return true } - // Get current schema - async getSchema(lens: string): Promise { - if (!this.isInitialized) return null - try { - return await this.sphere.getSchema(lens) - } catch (error) { - console.error('❌ Error getting schema:', error) - return null - } + async getSchema(_lens: string): Promise { + return null } - // Subscribe to changes in a holon - subscribe(holon: string, lens: string, callback: (data: any) => void): void { - if (!this.isInitialized) return - try { - this.sphere.subscribe(holon, lens, callback) - } catch (error) { - console.error('❌ Error subscribing to changes:', error) - } + // Subscribe to changes (stub - no-op) + subscribe(_holon: string, _lens: string, _callback: (data: any) => void): void { + console.log('⚠️ [STUB] subscribe not implemented - awaiting Nostr integration') } - // Get holon hierarchy (parent and children) + // Get holon hierarchy using h3-js getHolonHierarchy(holon: string): { parent?: string; children: string[] } { try { const resolution = h3.getResolution(holon) @@ -336,77 +118,54 @@ export class HoloSphereService { } } - // Get all scales for a holon (all containing holons) + // Get all scales for a holon getHolonScalespace(holon: string): string[] { try { - return this.sphere.getHolonScalespace(holon) + const resolution = h3.getResolution(holon) + const scales: string[] = [holon] + + // Get all parent holons up to resolution 0 + let current = holon + for (let r = resolution - 1; r >= 0; r--) { + current = h3.cellToParent(current, r) + scales.unshift(current) + } + + return scales } catch (error) { console.error('❌ Error getting holon scalespace:', error) return [] } } - // Federation methods - async federate(spaceId1: string, spaceId2: string, password1?: string, password2?: string, bidirectional?: boolean): Promise { - if (!this.isInitialized) return false - try { - await this.sphere.federate(spaceId1, spaceId2, password1, password2, bidirectional) - return true - } catch (error) { - console.error('❌ Error federating spaces:', error) - return false - } + // Federation methods (stub) + async federate(_spaceId1: string, _spaceId2: string, _password1?: string, _password2?: string, _bidirectional?: boolean): Promise { + console.log('⚠️ [STUB] federate not implemented - awaiting Nostr integration') + return false } - async propagate(holon: string, lens: string, data: any, options?: { useReferences?: boolean; targetSpaces?: string[] }): Promise { - if (!this.isInitialized) return false - try { - await this.sphere.propagate(holon, lens, data, options) - return true - } catch (error) { - console.error('❌ Error propagating data:', error) - return false - } + async propagate(_holon: string, _lens: string, _data: any, _options?: { useReferences?: boolean; targetSpaces?: string[] }): Promise { + console.log('⚠️ [STUB] propagate not implemented - awaiting Nostr integration') + return false } - // Message federation - async federateMessage(originalChatId: string, messageId: string, federatedChatId: string, federatedMessageId: string, type: string): Promise { - if (!this.isInitialized) return false - try { - await this.sphere.federateMessage(originalChatId, messageId, federatedChatId, federatedMessageId, type) - return true - } catch (error) { - console.error('❌ Error federating message:', error) - return false - } + // Message federation (stub) + async federateMessage(_originalChatId: string, _messageId: string, _federatedChatId: string, _federatedMessageId: string, _type: string): Promise { + return false } - async getFederatedMessages(originalChatId: string, messageId: string): Promise { - if (!this.isInitialized) return [] - try { - const result = await this.sphere.getFederatedMessages(originalChatId, messageId) - return Array.isArray(result) ? result : [] - } catch (error) { - console.error('❌ Error getting federated messages:', error) - return [] - } + async getFederatedMessages(_originalChatId: string, _messageId: string): Promise { + return [] } - async updateFederatedMessages(originalChatId: string, messageId: string, updateCallback: (chatId: string, messageId: string) => Promise): Promise { - if (!this.isInitialized) return false - try { - await this.sphere.updateFederatedMessages(originalChatId, messageId, updateCallback) - return true - } catch (error) { - console.error('❌ Error updating federated messages:', error) - return false - } + async updateFederatedMessages(_originalChatId: string, _messageId: string, _updateCallback: (chatId: string, messageId: string) => Promise): Promise { + return false } - // Utility methods for working with coordinates and resolutions + // Utility methods for working with resolutions static getResolutionName(resolution: number): string { const names = [ - 'Country', 'State/Province', 'Metropolitan Area', 'City', 'District', + 'Country', 'State/Province', 'Metropolitan Area', 'City', 'District', 'Neighborhood', 'Block', 'Building', 'Room', 'Desk', 'Chair', 'Point' ] return names[resolution] || `Level ${resolution}` @@ -430,22 +189,19 @@ export class HoloSphereService { return descriptions[resolution] || `Geographic level ${resolution}` } - // Get connection status + // Connection management getConnectionStatus(spaceId: string): HolonConnection | undefined { return this.connections.get(spaceId) } - // Add connection addConnection(connection: HolonConnection): void { this.connections.set(connection.id, connection) } - // Remove connection removeConnection(spaceId: string): boolean { return this.connections.delete(spaceId) } - // Get all connections getAllConnections(): HolonConnection[] { return Array.from(this.connections.values()) } diff --git a/vite.config.ts b/vite.config.ts index 21e9d6b..b73c626 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -73,8 +73,7 @@ export default defineConfig(({ mode }) => { // Markdown editors 'markdown': ['@uiw/react-md-editor', 'cherry-markdown', 'marked', 'react-markdown'], - // Large P2P utilities - 'large-utils': ['gun', 'webnative', 'holosphere'], + // Note: gun, webnative, holosphere removed - stubbed for future Nostr integration }, }, },