{
"name": "keet",
"productName": "Keet",
"main": ".webpack/main",
"description": "Keet the P2P chat app",
"upgrade": "pear://17pwkcszz18deaccarhrrixhzf1f5ko1b1dz6j3pxhexebutjwzy",
"version": "4.17.2",
"scripts": {
"bundle:core": "node ./build-lib/bundle/bundle-core.mjs && mv ./workers/core/core-worker.bundle . && rm -r ./workers/core/node_modules",
"bundle:media": "node ./build-lib/bundle/bundle-media.mjs && mv ./workers/media/media-worker.bundle . && rm -r ./workers/media/node_modules",
"bundle:recording": "node ./build-lib/bundle/bundle-recording.mjs && mv ./workers/recording/recording-worker.bundle . && rm -r ./workers/recording/node_modules",
"bundle:updater": "node ./build-lib/bundle/bundle-updater.mjs && mv ./src/electron/updater.bundle ./updater.bundle && rm -r ./src/electron/node_modules",
"bundle": "npm run bundle:core && npm run bundle:media && npm run bundle:recording && npm run bundle:updater",
"dev": "npm run bundle && NODE_ENV=development CHANNEL=development bash scripts/dev.sh",
"dev:quick": "NODE_ENV=development CHANNEL=development bash scripts/dev.sh",
"dev:devtools": "npm run dev -- --react-devtools",
"dev:forge": "NODE_ENV=development CHANNEL=development electron-forge start --",
"dev:spawn": "NODE_ENV=development CHANNEL=development electron .",
"package": "NODE_ENV=production electron-forge package",
"make": "electron-forge make",
"install:all": "npm ci --ignore-scripts=true && npm run install:electron",
"install:mac": "npm ci --ignore-scripts=true && npm run install:electron && npm run install:swc && npm run install:fs-xattr && npm run install:macos-alias && npx --yes patch-package",
"install:electron": "node node_modules/electron/install.js",
"install:swc": "node node_modules/@swc/core/postinstall.js",
"install:fs-xattr": "cd node_modules/fs-xattr && node-gyp rebuild",
"install:macos-alias": "cd node_modules/macos-alias && node-gyp rebuild",
"install:nightly": "./scripts/install-core-deps.sh nightly",
"install:internal": "./scripts/install-core-deps.sh internal",
"install:production": "./scripts/install-core-deps.sh production",
"lint": "eslint . --ext .js --ext .cjs --ext .jsx --ext .ts --ext .tsx --ext .mjs --quiet",
"lint:fix": "npm run lint -- --fix",
"postinstall": "npx --yes patch-package",
"test": "npm run lint && npm run typecheck && npm run test:brittle:coverage && npm run test:jest:coverage",
"test:brittle": "brittle test/*.test.js test/lib/**/*.test.js",
"test:brittle:coverage": "npm run test:brittle -- --coverage",
"test:jest": "npx jest --no-cache --config=jest.config.js",
"test:jest:coverage": "npm run test:jest -- --coverage",
"test:single": "npx jest --no-cache --config=jest.config.js --",
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"test:e2e:smoke": "playwright test smoke.spec.js",
"test:e2e:p2p": "playwright test two-instance.spec.js",
"test:e2e:ota": "brittle test/e2e/ota/ota-updates.test.js",
"typecheck": "tsc --noEmit",
"typecheck:watch": "tsc --noEmit --watch"
},
"overrides": {
"typescript": "^5.9.2",
"eslint-plugin-react-hooks": "^5.2.0"
},
"dependencies": {
"@floating-ui/dom": "^1.6.13",
"@floating-ui/react": "^0.27.12",
"@holepunchto/broadcast-call": "^2.0.0",
"@holepunchto/emojis": "^3.0.0",
"@holepunchto/keet-call": "^10.2.0",
"@holepunchto/keet-core": "~4.17.0",
"@holepunchto/keet-debug-helper": "^2.0.0",
"@holepunchto/keet-editor": "^3.16.2",
"@holepunchto/keet-link-preview": "^1.0.11",
"@holepunchto/keet-media": "^2.0.0",
"@holepunchto/keet-recording": "^1.0.0",
"@holepunchto/keet-store": "~6.17.23",
"@holepunchto/keet-translations": "^2.4.1",
"@reduxjs/toolkit": "2.10.1",
"@twind/content": "^0.1.0",
"@twind/forms": "^0.1.4",
"b4a": "^1.6.7",
"bare-bundle": "^1.10.0",
"bare-bundle-evaluate": "^2.0.0",
"canvas-resize-image": "^1.0.1",
"copy-text-to-clipboard": "3.2.0",
"dayjs": "^1.11.13",
"framed-stream": "^1.0.1",
"hotkeys-js": "^3.13.9",
"hypercore-crypto": "^3.6.1",
"jsqr": "^1.4.0",
"linkifyjs": "^4.3.2",
"lodash.debounce": "^4.0.8",
"lodash.throttle": "^4.1.1",
"paparam": "^1.8.6",
"pear-runtime": "^1.1.3",
"pear-runtime-legacy-storage": "^1.3.1",
"process-top": "^1.7.1",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-redux": "9.2.0",
"sodium-javascript": "^0.8.0",
"streamx": "^2.23.0",
"throwaway-local-cache": "^1.1.0",
"tiny-buffer-rpc": "^2.2.2",
"tippy.js": "^6.3.7",
"twind": "^0.16.19",
"unicode-to-plain-text": "^2.0.1",
"webcomponent-qr-code": "^1.3.0",
"which-runtime": "^1.3.2",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@babel/core": "^7.29.0",
"@babel/plugin-syntax-jsx": "^7.28.6",
"@babel/plugin-syntax-typescript": "^7.28.6",
"@electron-forge/cli": "^7.11.1",
"@electron-forge/maker-dmg": "^7.11.1",
"@electron-forge/maker-msix": "^7.11.1",
"@electron-forge/maker-zip": "^7.11.1",
"@electron-forge/plugin-webpack": "^7.11.1",
"@holepunchto/keet-package": "^3.2.5",
"@holepunchto/pear-hotmods": "^1.0.2",
"@hyperswarm/testnet": "^3.1.4",
"@playwright/test": "^1.58.2",
"@swc/core": "^1.15.18",
"@swc/jest": "^0.2.37",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@types/jest": "^30.0.0",
"@types/node": "^24.12.2",
"@types/react": "^19.1.12",
"@types/react-dom": "^19.1.9",
"@typescript-eslint/eslint-plugin": "^8.41.0",
"@typescript-eslint/parser": "^8.41.0",
"@vercel/webpack-asset-relocator-loader": "^1.10.0",
"babel-loader": "^10.1.1",
"babel-plugin-react-compiler": "^1.0.0",
"brittle": "^3.13.1",
"copy-webpack-plugin": "^13.0.1",
"css-loader": "^7.1.4",
"electron": "^42.0.1",
"electron-devtools-installer": "^4.0.0",
"electron-forge-plugin-prune-prebuilds": "^1.0.1",
"electron-forge-plugin-universal-prebuilds": "^1.0.0",
"eslint": "^8.57.1",
"eslint-config-airbnb": "^19.0.4",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jest": "^28.11.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-compiler": "^19.1.0-rc.2",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-regex": "^1.10.0",
"get-mime-type": "^2.0.2",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"node-loader": "^2.1.0",
"pear-build": "^1.1.0",
"pear-electron-forge-maker-appimage": "2.0.0",
"pear-electron-forge-maker-flatpak": "0.0.4",
"pear-electron-forge-maker-snap": "0.0.10",
"playwright": "^1.58.2",
"react-refresh": "0.14.2",
"style-loader": "^4.0.0",
"swc-loader": "^0.2.7",
"test-tmp": "^1.4.0",
"typescript": "^5.9.2",
"webpack": "^5.99.9",
"webpack-cli": "^7.0.2",
"webpack-node-externals": "^3.0.0"
}
}