mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
* fix(comment-content): render reason text as comment content * fix(post-form): use native browser styling for flash tag select Exclude the flash tag dropdown from themed post-form select styling so it renders with the browser's default select appearance, matching the flag selector. * fix(p2p-stats): show peer flags for DNS6 relay hostnames Extract embedded IPv6 addresses from dns6 multiaddrs so geo lookup and country flags work for relay peers that publish IPv6 via DNS hostnames. * fix(flags): hide geolocation-only selectors on /int/ and /sp/ Country-only boards auto-publish geographic location flags without showing a flag dropdown, matching existing /bant/ behavior. * fix(embed): restore youtube thumbnails and file-row labels Restore thumbnail-first previews for YouTube embeds in post media and markdown hover. Desktop posts show File with the thumbnail image URL and a youtube video type label. * fix(embed): address youtube thumbnail review feedback Translate the youtube video label, handle mobile/music YouTube hosts as standard YouTube URLs, keep affected mocks current, and cap default Vitest workers to reduce local CPU spikes.
267 lines
12 KiB
JSON
267 lines
12 KiB
JSON
{
|
|
"name": "5chan",
|
|
"version": "0.9.0",
|
|
"packageManager": "yarn@4.13.0",
|
|
"description": "A Bitsocial client with an imageboard UI",
|
|
"type": "module",
|
|
"author": "Bitsocial Forge",
|
|
"license": "GPL-3.0-or-later",
|
|
"private": true,
|
|
"dependencies": {
|
|
"@bbob/parser": "4.3.1",
|
|
"@bitsocial/bitsocial-react-hooks": "0.1.13",
|
|
"@capacitor/app": "7.0.1",
|
|
"@capacitor/browser": "7.0.5",
|
|
"@capacitor/status-bar": "7.0.1",
|
|
"@capawesome/capacitor-android-edge-to-edge-support": "7.2.2",
|
|
"@chenglou/pretext": "0.0.5",
|
|
"@floating-ui/react": "0.26.1",
|
|
"@pkcprotocol/pkc-js": "0.0.37",
|
|
"@react-spring/web": "10.0.3",
|
|
"@ruffle-rs/ruffle": "0.2.0",
|
|
"@types/node": "20.19.37",
|
|
"@types/react": "18.2.25",
|
|
"@types/react-dom": "18.2.10",
|
|
"@use-gesture/react": "10.3.1",
|
|
"@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",
|
|
"fs-extra": "11.3.0",
|
|
"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",
|
|
"lodash": "4.18.0",
|
|
"memoizee": "0.4.15",
|
|
"react": "19.1.2",
|
|
"react-ace": "14.0.1",
|
|
"react-dom": "19.1.2",
|
|
"react-i18next": "16.6.6",
|
|
"react-router-dom": "6.30.2",
|
|
"react-router-hash-link": "2.4.3",
|
|
"react-virtuoso": "4.18.5",
|
|
"tcp-port-used": "1.0.2",
|
|
"typescript": "6.0.2",
|
|
"workbox-core": "7.4.0",
|
|
"workbox-expiration": "7.4.0",
|
|
"workbox-precaching": "7.4.0",
|
|
"workbox-routing": "7.4.0",
|
|
"workbox-strategies": "7.4.0",
|
|
"zustand": "4.4.3"
|
|
},
|
|
"scripts": {
|
|
"generate:assets": "node scripts/generate-asset-manifest.js",
|
|
"llms:generate": "node scripts/generate-llms-files.mjs",
|
|
"map:generate": "node scripts/generate-world-map-dots.mjs",
|
|
"centroids:generate": "node scripts/generate-country-centroids.mjs",
|
|
"release:manifest": "node scripts/generate-release-manifest.mjs",
|
|
"release:manifest:keygen": "node scripts/generate-release-manifest-keypair.mjs",
|
|
"sync:directories": "node scripts/sync-directories.js",
|
|
"postinstall": "node scripts/patch-capacitor-cli-tar.cjs",
|
|
"prebuild": "corepack yarn sync:directories && corepack yarn generate:assets",
|
|
"prestart": "corepack yarn sync:directories && corepack yarn generate:assets",
|
|
"start": "node scripts/start-dev.js",
|
|
"start:preview": "node scripts/start-preview.js",
|
|
"start:android-usb": "node scripts/start-android-usb.mjs",
|
|
"build": "cross-env PUBLIC_URL=./ GENERATE_SOURCEMAP=false vite build",
|
|
"build:fdroid": "cross-env PUBLIC_URL=./ GENERATE_SOURCEMAP=false VITE_APP_DISTRIBUTION=fdroid vite build",
|
|
"build:preload": "vite build --config electron/vite.preload.config.js",
|
|
"build-vercel": "cross-env NODE_OPTIONS=\"--max_old_space_size=4096\" PUBLIC_URL=./ GENERATE_SOURCEMAP=true VITE_COMMIT_REF=$COMMIT_REF CI='' vite build",
|
|
"test": "vitest --maxWorkers=4",
|
|
"test:leaks": "vitest run --detectAsyncLeaks",
|
|
"preview": "vite preview",
|
|
"analyze-bundle": "cross-env PUBLIC_URL=./ GENERATE_SOURCEMAP=true vite build && npx source-map-explorer 'dist/assets/*.js'",
|
|
"electron": "corepack yarn build:preload && corepack yarn electron:before && electron .",
|
|
"electron:no-delete-data": "corepack yarn build:preload && electron .",
|
|
"electron:start": "concurrently \"cross-env BROWSER=none PORTLESS=0 PORT=3000 corepack yarn start\" \"wait-on http://localhost:3000 && corepack yarn electron\"",
|
|
"electron:start:no-delete-data": "concurrently \"cross-env BROWSER=none PORTLESS=0 PORT=3000 corepack yarn start\" \"wait-on http://localhost:3000 && corepack yarn electron:no-delete-data\"",
|
|
"electron:rebuild-native": "electron-rebuild -f -o better-sqlite3",
|
|
"electron:verify-native": "node scripts/verify-electron-native-modules.js",
|
|
"electron:prepare-package": "corepack yarn electron:rebuild-native && corepack yarn electron:verify-native",
|
|
"electron:package": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge package",
|
|
"electron:build": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make",
|
|
"electron:build:linux": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make --platform=linux",
|
|
"electron:build:mac": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make --platform=darwin",
|
|
"electron:build:windows": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make --platform=win32",
|
|
"electron:build:linux:x64": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make --platform=linux --arch=x64",
|
|
"electron:build:linux:arm64": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make --platform=linux --arch=arm64",
|
|
"electron:build:mac:x64": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make --platform=darwin --arch=x64",
|
|
"electron:build:mac:arm64": "corepack yarn build && corepack yarn build:preload && corepack yarn electron:prepare-package && electron-forge make --platform=darwin --arch=arm64",
|
|
"electron:before": "corepack yarn electron:before:delete-data",
|
|
"electron:before:delete-data": "node scripts/clear-local-pkc-data.mjs",
|
|
"test:update:e2e:electron": "node scripts/run-electron-app-update-e2e.mjs",
|
|
"test:thread-auto-update:e2e": "node scripts/run-thread-auto-update-e2e.mjs --start-dev",
|
|
"android:build:icons": "cordova-res android --skip-config --copy --resources /tmp/bitsocial-react-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'",
|
|
"knip": "knip --production --include dependencies,unlisted,binaries --no-progress",
|
|
"knip:full": "knip --no-progress --no-exit-code",
|
|
"lint": "oxlint src/**/*.{js,ts,tsx}",
|
|
"type-check": "tsgo --noEmit",
|
|
"prettier": "oxfmt src/**/*.{js,ts,tsx} electron/**/*.{js,mjs}",
|
|
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
|
"android:build": "corepack yarn build && corepack yarn cap sync android && corepack yarn cap run android --flavor github",
|
|
"i18n:update": "node scripts/update-translations.js",
|
|
"i18n:update:dry": "node scripts/update-translations.js --dry",
|
|
"doctor": "react-doctor . -y",
|
|
"doctor:score": "react-doctor . --score -y",
|
|
"doctor:verbose": "react-doctor . --verbose -y",
|
|
"doctor:badge": "node scripts/write-react-doctor-badge.mjs",
|
|
"contract:imgur": "cd android && ./gradlew :app:connectedDebugAndroidTest -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false -Pandroid.testInstrumentationRunnerArguments.class=fivechan.android.MediaUploadAutomationRunnerTest",
|
|
"smoke:upload-selectors": "node scripts/smoke-upload-selectors.js",
|
|
"test:coverage": "vitest run --fileParallelism=false --coverage.enabled --coverage.provider=istanbul --coverage.reporter=text --coverage.reporter=json --coverage.reporter=json-summary --coverage.reportsDirectory=./coverage",
|
|
"test:coverage:changed": "vitest run --changed master --fileParallelism=false --coverage.enabled --coverage.provider=istanbul --coverage.reporter=text --coverage.reporter=json --coverage.reporter=json-summary --coverage.reportsDirectory=./coverage",
|
|
"retest:quality": "corepack yarn test && corepack yarn build && corepack yarn lint && corepack yarn type-check && corepack yarn doctor",
|
|
"blotter": "node scripts/update-blotter.js",
|
|
"blotter:check": "node scripts/update-blotter.js check",
|
|
"blotter:release": "node scripts/update-blotter.js release",
|
|
"blotter:manual": "node scripts/update-blotter.js manual",
|
|
"android:connectedTest": "cd android && ./gradlew :app:connectedDebugAndroidTest -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false"
|
|
},
|
|
"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/rebuild": "3.7.2",
|
|
"@reforged/maker-appimage": "5.1.1",
|
|
"@types/lodash": "4.17.24",
|
|
"@types/memoizee": "0.4.9",
|
|
"@typescript/native-preview": "^7.0.0-dev.20251226.1",
|
|
"@vitejs/plugin-react": "6.0.0",
|
|
"@vitest/coverage-istanbul": "4.1.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",
|
|
"crypto-browserify": "3.12.1",
|
|
"cz-conventional-changelog": "3.3.0",
|
|
"decompress": "4.2.1",
|
|
"electron": "39.8.7",
|
|
"element-source": "0.0.4",
|
|
"husky": "4.3.8",
|
|
"isomorphic-fetch": "3.0.0",
|
|
"jsdom": "28.1.0",
|
|
"knip": "6.1.0",
|
|
"lint-staged": "12.3.8",
|
|
"node-fetch": "3.3.2",
|
|
"oxfmt": "0.20.0",
|
|
"oxlint": "1.35.0",
|
|
"playwright": "1.56.1",
|
|
"progress": "2.0.3",
|
|
"react-doctor": "0.2.6",
|
|
"react-grab": "0.1.37",
|
|
"react-scan": "0.5.3",
|
|
"stream-browserify": "3.0.0",
|
|
"vite": "8.0.5",
|
|
"vite-plugin-pwa": "1.2.0",
|
|
"vitest": "4.1.0",
|
|
"wait-on": "9.0.3",
|
|
"workbox-build": "7.4.0",
|
|
"workbox-window": "7.4.0"
|
|
},
|
|
"optionalDependencies": {
|
|
"portless": "0.11.1"
|
|
},
|
|
"resolutions": {
|
|
"@pkcprotocol/pkc-js": "0.0.37",
|
|
"follow-redirects": "1.16.0",
|
|
"@libp2p/gossipsub": "15.0.23",
|
|
"@libp2p/kad-dht": "16.2.6",
|
|
"brace-expansion@npm:^5.0.2": "5.0.6",
|
|
"protobufjs": "7.5.8",
|
|
"@protobufjs/utf8": "1.1.1",
|
|
"@babel/plugin-transform-modules-systemjs": "7.29.4",
|
|
"axios": "1.16.0",
|
|
"js-yaml": "4.1.1",
|
|
"baseline-browser-mapping": "^2.9.11",
|
|
"vite": "8.0.5",
|
|
"qs": "6.15.0",
|
|
"mdast-util-to-hast": "12.3.0",
|
|
"node-forge": "1.4.0",
|
|
"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",
|
|
"undici": "7.24.0",
|
|
"diff": "^8.0.3",
|
|
"lodash": "4.18.0",
|
|
"@xmldom/xmldom": "0.8.13",
|
|
"ajv@npm:^8.6.0": "8.18.0",
|
|
"ajv@npm:^8.11.0": "8.18.0",
|
|
"fast-uri": "3.1.2",
|
|
"ip-address": "10.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",
|
|
"minimatch@npm:^3.0.5": "3.1.4",
|
|
"seroval": "1.4.1",
|
|
"smol-toml": "1.6.1",
|
|
"tar": "7.5.11",
|
|
"yauzl": "3.2.1",
|
|
"serialize-javascript": "7.0.5",
|
|
"@tootallnate/once": "3.0.1",
|
|
"rollup": "2.80.0",
|
|
"@electron/asar": "4.0.1",
|
|
"uuid@npm:^8.3.2": "14.0.0",
|
|
"uuid@npm:^11.0.0": "14.0.0",
|
|
"uuid@npm:11.1.0": "14.0.0",
|
|
"uuid@npm:13.0.0": "14.0.0",
|
|
"yaml@npm:^1.10.0": "1.10.3",
|
|
"yaml@npm:^1.10.2": "1.10.3",
|
|
"yaml@npm:^2.8.2": "2.8.3",
|
|
"use-sync-external-store": "1.6.0"
|
|
},
|
|
"main": "electron/main.js",
|
|
"lint-staged": {
|
|
"src/**/*.{js,ts,tsx}": [
|
|
"oxfmt --write"
|
|
],
|
|
"electron/**/*.{js,mjs}": [
|
|
"oxfmt --write"
|
|
]
|
|
},
|
|
"husky": {
|
|
"hooks": {
|
|
"prepare-commit-msg": "exec < /dev/tty && cz --hook || true",
|
|
"pre-commit": "lint-staged"
|
|
}
|
|
},
|
|
"config": {
|
|
"commitizen": {
|
|
"path": "./node_modules/cz-conventional-changelog"
|
|
}
|
|
},
|
|
"reactDoctor": {
|
|
"diff": false
|
|
}
|
|
}
|