Files
5chan/package.json
T
2026-01-08 17:46:47 +01:00

202 lines
6.9 KiB
JSON

{
"name": "5chan",
"version": "0.5.3",
"description": "A serverless, adminless, decentralized 4chan alternative",
"type": "module",
"author": "Plebbit Labs",
"license": "GPL-2.0-only",
"private": true,
"dependencies": {
"@capacitor/app": "7.0.1",
"@capacitor/status-bar": "7.0.1",
"@capawesome/capacitor-android-edge-to-edge-support": "7.2.2",
"@floating-ui/react": "0.26.1",
"@plebbit/plebbit-react-hooks": "https://github.com/plebbit/plebbit-react-hooks.git#60b9d18ebc647f76cdda8f36e2143192d7378658",
"@react-spring/web": "9.7.5",
"@types/node": "20.8.2",
"@types/react": "18.2.25",
"@types/react-dom": "18.2.10",
"@use-gesture/react": "10.3.1",
"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": "23.5.1",
"i18next-browser-languagedetector": "7.1.0",
"i18next-http-backend": "2.2.2",
"json-stringify-pretty-compact": "4.0.0",
"lodash": "4.17.21",
"memoizee": "0.4.15",
"react": "19.1.2",
"react-dom": "19.1.2",
"react-i18next": "13.2.2",
"react-markdown": "8.0.6",
"react-router-dom": "6.16.0",
"react-router-hash-link": "2.4.3",
"react-virtuoso": "4.17.0",
"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": "5.1.6",
"zustand": "4.4.3"
},
"scripts": {
"generate:assets": "node scripts/generate-asset-manifest.js",
"prebuild": "yarn generate:assets",
"prestart": "yarn generate:assets",
"start": "vite",
"build": "cross-env PUBLIC_URL=./ GENERATE_SOURCEMAP=false 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",
"preview": "vite preview",
"analyze-bundle": "cross-env PUBLIC_URL=./ GENERATE_SOURCEMAP=true vite build && npx source-map-explorer 'dist/assets/*.js'",
"electron": "yarn build:preload && cross-env ELECTRON_IS_DEV=1 yarn electron:before && cross-env ELECTRON_IS_DEV=1 electron .",
"electron:no-delete-data": "yarn electron:before:download-ipfs && electron .",
"electron:start": "concurrently \"cross-env BROWSER=none yarn start\" \"wait-on http://localhost:3000 && yarn electron\"",
"electron:start:no-delete-data": "concurrently \"cross-env BROWSER=none yarn start\" \"wait-on http://localhost:3000 && yarn electron:no-delete-data\"",
"electron:build:linux": "yarn build && yarn build:preload && electron-rebuild && electron-builder build --publish never -l",
"electron:build:windows": "yarn build && yarn build:preload && yarn electron-rebuild && electron-builder build --publish never -w",
"electron:build:mac": "yarn build && yarn build:preload && yarn electron-rebuild && electron-builder build --publish never -m",
"electron:before": "yarn electron-rebuild && yarn electron:before:download-ipfs && yarn electron:before:delete-data",
"electron:before:download-ipfs": "node electron/download-ipfs",
"electron:before:delete-data": "rimraf .plebbit",
"android:build:icons": "cordova-res android --skip-config --copy --resources /tmp/plebbit-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'",
"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": "yarn build && npx cap sync android && npx cap run android",
"i18n:update": "node scripts/update-translations.js",
"i18n:update:dry": "node scripts/update-translations.js --dry"
},
"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.4",
"@capacitor/cli": "7.4.4",
"@capacitor/core": "7.4.4",
"@electron/rebuild": "4.0.0",
"@react-scan/vite-plugin-react-scan": "0.1.8",
"@types/memoizee": "0.4.9",
"@typescript/native-preview": "^7.0.0-dev.20251226.1",
"@vitejs/plugin-react": "4.3.4",
"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": "36.9.5",
"electron-builder": "24.13.2",
"husky": "4.3.8",
"isomorphic-fetch": "3.0.0",
"jsdom": "27.3.0",
"lint-staged": "12.3.8",
"oxfmt": "0.20.0",
"oxlint": "1.35.0",
"progress": "2.0.3",
"react-grab": "0.0.98",
"react-scan": "0.4.3",
"stream-browserify": "3.0.0",
"vite": "npm:rolldown-vite@7.2.11",
"vite-plugin-node-polyfills": "0.24.0",
"vite-plugin-pwa": "0.21.1",
"vitest": "4.0.15",
"wait-on": "9.0.3"
},
"resolutions": {
"js-yaml": "4.1.1",
"baseline-browser-mapping": "^2.9.11",
"vite": "npm:rolldown-vite@7.2.11",
"qs": "6.14.1",
"mdast-util-to-hast": "12.3.0",
"node-forge": "1.3.3",
"glob": "10.5.0",
"tmp": "0.2.5",
"elliptic": "6.6.1",
"ws": "8.18.3",
"jose": "4.15.9",
"sharp": "0.34.5",
"cacache": "19.0.1",
"preact": "10.27.3"
},
"main": "electron/main.js",
"build": {
"appId": "5chan.desktop",
"productName": "5chan",
"beforePack": "electron/before-pack.js",
"afterAllArtifactBuild": "electron/after-all-artifact-build.cjs",
"extraResources": [
{
"from": "bin/${os}",
"to": "bin",
"filter": [
"**/*"
]
}
],
"files": [
"dist/**/*",
"electron/**/*",
"package.json",
"node_modules/**/*"
],
"extends": null,
"mac": {
"target": "dmg",
"category": "public.app-category.social-networking",
"type": "distribution"
},
"win": {
"target": [
"portable",
"nsis"
]
},
"linux": {
"target": "AppImage",
"category": "Network"
}
},
"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"
}
}
}