Files
seedit/package.json
Tommaso Casaburi 8de11b8357 feat: pure p2p by default with p2p stats tab and 5chan-style advanced settings (#821)
* feat: pure p2p by default with p2p stats tab and 5chan-style advanced settings

Seedit now configures a browser libp2p node via window.defaultPkcOptions before
render (with a localStorage opt-out), like 5chan. Adds a "p2p stats" preferences
tab ported from 5chan (peers, transfer, world map), renames "plebbit options" to
"advanced" and revamps it to match 5chan (pure p2p toggle, gateway fields hidden
in pure p2p mode, RPC placeholder instead of the ? help box). Existing browser
accounts auto-upgrade to pure p2p options on load. Also fixes an aborted-lookup
race that could cache a wrong "Your IP" country flag for 60s, and reads
chainProviders from the account top-level per bitsocial-react-hooks 0.1.27.
Upgrades bitsocial-react-hooks to 0.1.27 and pkc-js to 0.0.65 to match 5chan.

* fix(settings): show first full node RPC URL instead of array in advanced settings input
2026-07-10 23:50:21 +07:00

250 lines
9.4 KiB
JSON
Executable File

{
"name": "seedit",
"version": "0.5.10",
"description": "A bitsocial client with an old.reddit UI",
"author": "Bitsocial Labs",
"type": "module",
"license": "GPL-3.0-or-later",
"private": true,
"packageManager": "yarn@4.17.1",
"dependencies": {
"@bitsocial/bitsocial-react-hooks": "0.1.27",
"@bitsocial/bso-resolver": "0.0.8",
"@capacitor/app": "7.0.1",
"@capacitor/filesystem": "7.1.4",
"@capacitor/local-notifications": "7.0.1",
"@capacitor/share": "7.0.2",
"@capacitor/status-bar": "7.0.1",
"@capawesome/capacitor-android-edge-to-edge-support": "7.2.2",
"@floating-ui/react": "0.26.1",
"@pkcprotocol/pkc-js": "0.0.65",
"@types/node": "20.19.37",
"@types/react": "19.2.16",
"@types/react-dom": "19.2.3",
"@vercel/analytics": "1.6.1",
"ace-builds": "1.41.0",
"cross-env": "7.0.3",
"electron-context-menu": "3.3.0",
"electron-is-dev": "2.0.0",
"env-paths": "3.0.0",
"ext-name": "5.0.0",
"form-data": "4.0.4",
"fs-extra": "11.3.0",
"gifuct-js": "2.1.2",
"http-proxy": "1.18.1",
"i18next": "25.10.9",
"i18next-browser-languagedetector": "7.1.0",
"i18next-http-backend": "3.0.5",
"json-stringify-pretty-compact": "4.0.0",
"kubo": "0.39.0",
"lodash": "4.18.0",
"memoizee": "0.4.15",
"node-fetch": "3.3.2",
"react": "19.2.7",
"react-ace": "14.0.1",
"react-dom": "19.2.7",
"react-dropzone": "14.3.8",
"react-i18next": "16.6.6",
"react-markdown": "10.1.0",
"react-router-dom": "6.30.4",
"react-router-hash-link": "2.4.3",
"react-virtuoso": "4.18.5",
"rehype-raw": "7.0.0",
"rehype-sanitize": "5.0.1",
"remark-gfm": "3.0.1",
"remark-supersub": "1.0.0",
"tcp-port-used": "1.0.2",
"typescript": "7.0.2",
"zustand": "4.4.3"
},
"scripts": {
"start": "node scripts/start-dev.js",
"start:preview": "node scripts/start-preview.js",
"ai-workflow:check": "node scripts/validate-ai-workflow.mjs",
"llms:generate": "node scripts/generate-llms-files.mjs",
"sync:directories": "node scripts/sync-directories.js",
"build": "cross-env NODE_ENV=production PUBLIC_URL=./ GENERATE_SOURCEMAP=false vite build",
"build:preload": "cross-env NODE_ENV=production vite build --config electron/vite.preload.config.js",
"build-netlify": "cross-env NODE_OPTIONS=\"--max_old_space_size=4096\" NODE_ENV=production PUBLIC_URL=./ GENERATE_SOURCEMAP=true VITE_COMMIT_REF=$COMMIT_REF CI='' vite build",
"test": "vitest --passWithNoTests",
"preview": "vite preview",
"analyze-bundle": "cross-env NODE_ENV=production PUBLIC_URL=./ GENERATE_SOURCEMAP=true vite build && npx source-map-explorer 'build/assets/*.js'",
"electron": "yarn build:preload && yarn electron:before && electron .",
"electron:no-delete-data": "yarn build:preload && electron .",
"electron:start": "concurrently \"cross-env BROWSER=none PORTLESS=0 PORT=3000 yarn start\" \"wait-on http://localhost:3000 && yarn electron\"",
"electron:start:no-delete-data": "concurrently \"cross-env BROWSER=none PORTLESS=0 PORT=3000 yarn start\" \"wait-on http://localhost:3000 && yarn electron:no-delete-data\"",
"electron:rebuild-native": "electron-rebuild -f -o better-sqlite3",
"electron:package": "yarn build && yarn build:preload && electron-forge package",
"electron:build": "yarn build && yarn build:preload && electron-forge make",
"electron:build:linux": "yarn build && yarn build:preload && electron-forge make --platform=linux",
"electron:build:mac": "yarn build && yarn build:preload && electron-forge make --platform=darwin",
"electron:build:windows": "yarn build && yarn build:preload && electron-forge make --platform=win32",
"electron:build:linux:x64": "yarn build && yarn build:preload && electron-forge make --platform=linux --arch=x64",
"electron:build:linux:arm64": "yarn build && yarn build:preload && electron-forge make --platform=linux --arch=arm64",
"electron:build:mac:x64": "yarn build && yarn build:preload && electron-forge make --platform=darwin --arch=x64",
"electron:build:mac:arm64": "yarn build && yarn build:preload && electron-forge make --platform=darwin --arch=arm64",
"electron:before": "yarn electron:before:delete-data",
"electron:before:delete-data": "rimraf .pkc .plebbit",
"release:manifest": "node scripts/generate-release-manifest.mjs",
"release:manifest:keygen": "node scripts/generate-release-manifest-keypair.mjs",
"android:build:icons": "cordova-res android --skip-config --copy --resources /tmp/seedit-android-icons --icon-source ./android/icons/icon.png --splash-source ./android/icons/splash.png --icon-foreground-source ./android/icons/icon-foreground.png --icon-background-source '#ffffee'",
"prettier": "oxfmt src/**/*.{js,ts,tsx} electron/**/*.{js,mjs}",
"lint": "oxlint src electron",
"type-check": "tsc --noEmit",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
"android:build": "yarn build && npx cap sync android && npx cap run android",
"knip": "knip --production --include dependencies,unlisted,binaries --no-progress",
"knip:full": "knip --no-progress --no-exit-code",
"doctor": "react-doctor . -y",
"doctor:score": "react-doctor . --score -y",
"doctor:verbose": "react-doctor . --verbose -y"
},
"browserslist": {
"production": [
"chrome >= 67",
"edge >= 79",
"firefox >= 68",
"opera >= 54",
"safari >= 14"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@capacitor/android": "7.4.5",
"@capacitor/cli": "7.4.5",
"@capacitor/core": "7.4.5",
"@electron-forge/cli": "7.8.0",
"@electron-forge/maker-dmg": "7.8.0",
"@electron-forge/maker-squirrel": "7.8.0",
"@electron-forge/maker-zip": "7.8.0",
"@electron-forge/plugin-auto-unpack-natives": "7.8.0",
"@electron/rebuild": "3.7.2",
"@reforged/maker-appimage": "5.1.1",
"@types/memoizee": "0.4.9",
"@vitejs/plugin-react": "6.0.0",
"assert": "2.1.0",
"babel-plugin-react-compiler": "1.0.0",
"buffer": "6.0.3",
"concurrently": "8.0.1",
"conventional-changelog-cli": "4.1.0",
"cordova-res": "0.15.4",
"cross-env": "7.0.3",
"crypto-browserify": "3.12.1",
"cz-conventional-changelog": "3.3.0",
"decompress": "4.2.1",
"electron": "39.8.7",
"element-source": "0.0.4",
"glob": "10.5.0",
"husky": "4.3.8",
"isomorphic-fetch": "3.0.0",
"knip": "6.17.0",
"lint-staged": "12.3.8",
"oxfmt": "0.24.0",
"oxlint": "1.39.0",
"progress": "2.0.3",
"react-doctor": "0.5.2",
"react-grab": "0.1.37",
"react-scan": "0.5.3",
"stream-browserify": "3.0.0",
"vite": "8.0.16",
"vite-plugin-node-polyfills": "0.24.0",
"vite-plugin-pwa": "1.2.0",
"vitest": "4.1.0",
"wait-on": "9.0.4"
},
"optionalDependencies": {
"portless": "0.11.1"
},
"resolutions": {
"axios": "1.16.0",
"@xmldom/xmldom": "0.8.13",
"follow-redirects": "1.16.0",
"handlebars@npm:^4.7.7": "4.7.9",
"js-yaml": "4.1.1",
"baseline-browser-mapping": "2.9.11",
"vite": "8.0.16",
"qs": "6.15.2",
"mdast-util-to-hast": "13.2.1",
"node-forge": "1.4.0",
"protobufjs": "7.5.8",
"glob": "10.5.0",
"tmp": "0.2.6",
"elliptic": "6.6.1",
"ws": "8.20.1",
"jose": "4.15.9",
"sharp": "0.34.5",
"cacache": "19.0.1",
"preact": "10.27.3",
"@remix-run/router": "1.23.2",
"@peculiar/asn1-schema": "2.5.0",
"@tootallnate/once": "3.0.1",
"axios@npm:^0.27.2": "0.30.2",
"brace-expansion@npm:^1.1.7": "1.1.13",
"brace-expansion@npm:^2.0.0": "2.0.3",
"brace-expansion@npm:^2.0.1": "2.0.3",
"brace-expansion@npm:^5.0.2": "5.0.6",
"diff@npm:^5.0.0": "5.2.2",
"lodash": "4.18.0",
"picomatch@npm:^2.2.2": "2.3.2",
"picomatch@npm:^2.3.1": "2.3.2",
"picomatch@npm:^4.0.2": "4.0.4",
"picomatch@npm:^4.0.1": "4.0.4",
"picomatch@npm:^4.0.3": "4.0.4",
"minimatch@npm:^3.0.4": "3.1.4",
"minimatch@npm:^3.0.5": "3.1.4",
"minimatch@npm:^5.0.1": "5.1.8",
"minimatch@npm:^9.0.3": "9.0.7",
"minimatch@npm:^9.0.4": "9.0.7",
"open-graph-scraper": "6.11.0",
"serialize-javascript": "7.0.5",
"shell-quote": "1.8.4",
"solid-js": "1.9.11",
"seroval": "1.5.0",
"tar@npm:^6.0.5": "7.5.11",
"tar@npm:^6.1.2": "7.5.11",
"tar@npm:^6.1.11": "7.5.11",
"tar@npm:^6.2.1": "7.5.11",
"tar@npm:^7.4.3": "7.5.11",
"undici@npm:^6.21.2": "6.24.0",
"undici@npm:^7.12.0": "7.24.0",
"undici@npm:^7.16.0": "7.24.0",
"@babel/plugin-transform-modules-systemjs": "7.29.4",
"@libp2p/gossipsub": "15.0.23",
"@libp2p/kad-dht": "16.2.6",
"@protobufjs/utf8": "1.1.1",
"bn.js@npm:^4.0.0": "4.12.3",
"bn.js@npm:^4.1.0": "4.12.3",
"bn.js@npm:^4.11.9": "4.12.3",
"bn.js@npm:^5.2.1": "5.2.3",
"bn.js@npm:^5.2.2": "5.2.3",
"fast-uri": "3.1.2",
"ip-address": "10.1.1",
"postcss": "8.5.10",
"uuid@npm:^11.0.0": "11.1.1",
"uuid@npm:11.1.0": "11.1.1",
"uuid@npm:^13.0.0": "13.0.1",
"uuid@npm:13.0.0": "13.0.1"
},
"main": "electron/main.js",
"lint-staged": {
"{src,electron}/**/*.{js,ts,tsx,mjs}": [
"oxfmt"
]
},
"husky": {
"hooks": {
"prepare-commit-msg": "exec < /dev/tty && cz --hook || true",
"pre-commit": "lint-staged"
}
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}