mirror of
https://github.com/joinmarket-webui/jam.git
synced 2026-08-13 12:33:26 +02:00
173 lines
7.5 KiB
JSON
173 lines
7.5 KiB
JSON
{
|
|
"name": "jam",
|
|
"version": "2.0.0-beta.3",
|
|
"private": true,
|
|
"description": "Your sats. Your privacy. Your profit.",
|
|
"repository": "git@github.com:joinmarket-webui/jam.git",
|
|
"license": "MIT",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=26.3.0",
|
|
"npm": ">=11.16.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "npm run dev:ng:native",
|
|
"dev:ng:native": "JAM_BACKEND=joinmarket-ng JMOBWATCH_PORT=31800 VITE_JAM_DEV_MODE=true vite",
|
|
"dev:ng:jam-standalone": "JAM_BACKEND=jam-standalone JAM_API_PORT=29080 VITE_JAM_DEV_MODE=true vite",
|
|
"dev:clientserver:native": "JAM_BACKEND=joinmarket-clientserver JMWALLETD_API_PORT=30183 JMWALLETD_WEBSOCKET_PORT=30283 JMOBWATCH_PORT=30601 VITE_JAM_DEV_MODE=true vite",
|
|
"dev:clientserver:jam-standalone": "JAM_BACKEND=jam-standalone JAM_API_PORT=31080 VITE_JAM_DEV_MODE=true vite",
|
|
"build": "tsc -b && vite build",
|
|
"lint": "npm run lint:check",
|
|
"lint:check": "eslint .",
|
|
"lint:fix": "eslint . --fix",
|
|
"format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,css,md}\"",
|
|
"format:write": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,md}\"",
|
|
"format": "npm run lint:fix && npm run format:write",
|
|
"preview": "vite preview",
|
|
"storybook": "npm run storybook:up",
|
|
"storybook:up": "storybook dev -p 6006",
|
|
"storybook:build": "storybook build --disable-telemetry",
|
|
"storybook:build-gh-pages": "STORYBOOK_MSW_SERVICE_WORKER_URL=./mockServiceWorker.js npm run storybook:build",
|
|
"storybook:serve-static": "cd storybook-static/ && python3 -m http.server",
|
|
"test": "NODE_OPTIONS=--no-webstorage vitest run",
|
|
"test:unit": "NODE_OPTIONS=--no-webstorage vitest run --project unit",
|
|
"test:storybook": "NODE_OPTIONS=--no-webstorage vitest run --project storybook",
|
|
"test:coverage": "npm test -- --coverage.enabled",
|
|
"check": "npm run format && npm run test && npm run build",
|
|
"regtest:build": "npm run regtest:clear && npm run regtest:pull && docker compose --env-file docker/regtest/.env.example --file docker/regtest/docker-compose.yml build --pull",
|
|
"regtest:pull": "docker compose --env-file docker/regtest/.env.example --file docker/regtest/docker-compose.yml pull",
|
|
"regtest:rebuild": "rm -rf docker/regtest/.tmp && npm run regtest:build -- --no-cache",
|
|
"regtest:clear": "docker compose --env-file docker/regtest/.env.example --file docker/regtest/docker-compose.yml down --volumes --remove-orphans",
|
|
"regtest:up": "./docker/regtest/prepare-setup.sh && docker compose --env-file docker/regtest/.env.generated --file docker/regtest/docker-compose.yml up --detach --wait --wait-timeout 120",
|
|
"regtest:down": "docker compose --env-file docker/regtest/.env.example --file docker/regtest/docker-compose.yml down",
|
|
"regtest:logs:all": "docker compose --env-file docker/regtest/.env.example --file docker/regtest/docker-compose.yml logs --follow",
|
|
"regtest:logs": "npm run regtest:logs:ng:native:jmwalletd",
|
|
"regtest:logs:obwatch": "npm run regtest:logs:ng:obwatch",
|
|
"regtest:logs:directory_node": "npm run regtest:logs:ng:directory_node",
|
|
"regtest:logs:ng:native:jmwalletd": "docker logs -f jm_regtest_joinmarket",
|
|
"regtest:logs:ng:obwatch": "docker logs -f jm_regtest_joinmarket_ng_orderbook_watcher",
|
|
"regtest:logs:ng:directory_node": "docker logs -f jm_regtest_joinmarket_ng_directory_node",
|
|
"regtest:logs:clientserver:directory_node": "docker exec -t jm_regtest_joinmarket_clientserver_directory_node tail -f /var/log/jam/directory_node_stdout.log -n 200",
|
|
"regtest:logs:clientserver:native:jmwalletd": "docker exec -t jm_regtest_joinmarket3 tail -f /var/log/jam/jmwalletd_stdout.log",
|
|
"regtest:logs:clientserver:native:tor": "docker exec -t jm_regtest_joinmarket3 tail -f /var/log/jam/tor_stdout.log",
|
|
"regtest:logs:clientserver:native:schedule": "docker exec -t jm_regtest_joinmarket3 tail -f /root/.joinmarket/logs/TUMBLE.schedule",
|
|
"regtest:init": "./docker/regtest/init-setup.sh",
|
|
"regtest:mine": "watch -n 11 ./docker/regtest/mine-block.sh",
|
|
"regtest:listwallets": "docker exec -t jm_regtest_bitcoind bitcoin-cli -datadir=/home/bitcoin/data -regtest -rpcport=43782 listwallets"
|
|
},
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx}": [
|
|
"eslint --fix",
|
|
"prettier --write"
|
|
],
|
|
"*.{json,css,md}": "prettier --write"
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
"> 0.5%",
|
|
"last 2 versions",
|
|
"not dead",
|
|
"not op_mini all"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"@hookform/resolvers": "5.7.1",
|
|
"@joinmarket-webui/joinmarket-ng-api-ts": "1.0.0",
|
|
"@noble/hashes": "2.3.0",
|
|
"@radix-ui/react-accordion": "1.2.20",
|
|
"@radix-ui/react-avatar": "1.2.6",
|
|
"@radix-ui/react-checkbox": "1.3.11",
|
|
"@radix-ui/react-dialog": "1.1.23",
|
|
"@radix-ui/react-dropdown-menu": "2.1.24",
|
|
"@radix-ui/react-label": "2.1.15",
|
|
"@radix-ui/react-popover": "1.1.23",
|
|
"@radix-ui/react-radio-group": "1.4.7",
|
|
"@radix-ui/react-select": "2.3.7",
|
|
"@radix-ui/react-separator": "1.1.15",
|
|
"@radix-ui/react-slider": "1.4.7",
|
|
"@radix-ui/react-slot": "1.3.3",
|
|
"@radix-ui/react-switch": "1.3.7",
|
|
"@radix-ui/react-tabs": "1.1.21",
|
|
"@radix-ui/react-tooltip": "1.2.16",
|
|
"@scure/bip32": "2.2.0",
|
|
"@scure/bip39": "2.2.0",
|
|
"@tailwindcss/vite": "4.3.3",
|
|
"@tanstack/match-sorter-utils": "8.19.4",
|
|
"@tanstack/react-query": "5.101.4",
|
|
"@tanstack/react-table": "8.21.3",
|
|
"bitcoin-address-validation": "3.0.0",
|
|
"class-variance-authority": "0.7.1",
|
|
"clsx": "2.1.1",
|
|
"html5-qrcode": "2.3.8",
|
|
"i18next-browser-languagedetector": "8.2.1",
|
|
"lucide-react": "1.30.0",
|
|
"next-themes": "0.4.6",
|
|
"qrcode": "1.5.4",
|
|
"radix-ui": "1.6.7",
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"react-hook-form": "7.84.0",
|
|
"react-i18next": "17.0.11",
|
|
"react-router-dom": "7.18.2",
|
|
"react-use-websocket": "4.13.0",
|
|
"sonner": "2.0.7",
|
|
"tailwind-merge": "3.6.0",
|
|
"tailwindcss": "4.3.3",
|
|
"tw-animate-css": "1.4.0",
|
|
"yup": "1.7.1",
|
|
"zustand": "5.0.14"
|
|
},
|
|
"devDependencies": {
|
|
"@chromatic-com/storybook": "5.3.0",
|
|
"@eslint/js": "9.39.5",
|
|
"@playwright/test": "1.62.0",
|
|
"@storybook/addon-a11y": "10.5.7",
|
|
"@storybook/addon-docs": "10.5.7",
|
|
"@storybook/addon-vitest": "10.5.7",
|
|
"@storybook/react-vite": "10.5.7",
|
|
"@tanstack/eslint-plugin-query": "5.101.4",
|
|
"@testing-library/jest-dom": "7.0.0",
|
|
"@testing-library/react": "16.3.2",
|
|
"@testing-library/user-event": "14.6.3",
|
|
"@trivago/prettier-plugin-sort-imports": "6.0.2",
|
|
"@types/node": "26.1.2",
|
|
"@types/qrcode": "1.5.6",
|
|
"@types/react": "19.2.18",
|
|
"@types/react-dom": "19.2.4",
|
|
"@vitejs/plugin-react": "6.0.5",
|
|
"@vitest/browser": "4.1.10",
|
|
"@vitest/browser-playwright": "4.1.10",
|
|
"@vitest/coverage-v8": "4.1.10",
|
|
"conventional-changelog": "8.1.1",
|
|
"eslint": "9.39.5",
|
|
"eslint-plugin-compat": "7.0.2",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"eslint-plugin-react-refresh": "0.5.3",
|
|
"eslint-plugin-storybook": "10.5.7",
|
|
"eslint-plugin-unicorn": "65.0.1",
|
|
"globals": "17.9.0",
|
|
"husky": "9.1.7",
|
|
"jsdom": "30.0.1",
|
|
"lint-staged": "17.3.0",
|
|
"msw": "2.15.0",
|
|
"msw-storybook-addon": "3.0.0",
|
|
"prettier": "3.9.6",
|
|
"prettier-plugin-tailwindcss": "0.8.1",
|
|
"storybook": "10.5.7",
|
|
"typescript": "6.0.3",
|
|
"typescript-eslint": "8.66.0",
|
|
"vite": "8.2.1",
|
|
"vitest": "4.1.10"
|
|
},
|
|
"overrides": {
|
|
"storybook": "$storybook",
|
|
"@joinmarket-webui/joinmarket-ng-api-ts": {
|
|
"@tanstack/react-query": "$@tanstack/react-query"
|
|
}
|
|
},
|
|
"msw": {
|
|
"workerDirectory": [
|
|
"public"
|
|
]
|
|
}
|
|
}
|