{ "name": "iris", "private": true, "version": "2.5.3", "type": "module", "packageManager": "pnpm@9.15.0", "engines": { "node": ">=20.0.0" }, "repository": "https://git.iris.to/#/npub1xdhnr9mrv47kkrn95k6cwecearydeh8e895990n3acntwvmgk2dsdeeycm/iris-client", "homepage": "https://git.iris.to/#/npub1xdhnr9mrv47kkrn95k6cwecearydeh8e895990n3acntwvmgk2dsdeeycm/iris-client", "bugs": { "url": "https://git.iris.to/#/npub1xdhnr9mrv47kkrn95k6cwecearydeh8e895990n3acntwvmgk2dsdeeycm/iris-client?tab=issues" }, "description": "Nostr client", "author": "Martti Malmi", "license": "MIT", "scripts": { "dev": "vite", "dev:local": "VITE_USE_LOCAL_RELAY=true vite", "dev:test": "VITE_USE_TEST_RELAY=true vite", "dev:relay": "pnpm relay:start -- --seed 80000 --port 7777", "relay:start": "tsx dev-relay/node-relay.ts", "start": "vite", "prebuild": "tsx ./scripts/updateSocialGraph.ts || true", "verify:dependency-lock": "node ./scripts/verify-dependency-lock.mjs", "build": "pnpm verify:dependency-lock && tsc && vite build --mode production", "build:dev": "tsx ./scripts/updateSocialGraph.ts; tsc && vite build --mode development", "build:analyze": "tsc && vite build --mode production && echo '\n📦 Bundle Analysis:' && cat build/stats-list.txt", "knip": "knip", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --fix", "preview": "vite preview", "pretest": "playwright install --with-deps chromium", "test": "pnpm verify:dependency-lock && vitest run && playwright test --reporter=list", "test:unit": "pnpm verify:dependency-lock && vitest run", "test:ci": "pnpm verify:dependency-lock && vitest run && playwright test --reporter=list", "test:ci:e2e": "playwright test --reporter=list,html", "test:local": "vitest run && playwright test --reporter=list --workers=1", "test:ui": "playwright test --ui", "test:ui:testrelay": "VITE_USE_TEST_RELAY=true playwright test --ui", "test:performance": "VITE_USE_TEST_RELAY=true playwright test tests/performance/ --reporter=list", "test:performance:prod": "playwright test tests/performance/ --reporter=list", "test:release:e2e": "IRIS_E2E_BUILT_DIST=true playwright test --reporter=list", "performance:baseline": "tsx ./scripts/performance-baseline.ts", "lighthouse": "pnpm build && node ./scripts/lighthouse-test.js", "lighthouse:json": "pnpm build && node ./scripts/lighthouse-test.js --json", "lighthouse:open": "pnpm build && node ./scripts/lighthouse-test.js --open", "smoke:portable": "node ./scripts/smoke-iris-portable.mjs", "devpublish": "node ./scripts/devpublish-iris.mjs", "devpublish:iris": "node ./scripts/devpublish-iris.mjs", "publish:iris": "node ./scripts/publish-iris-build.mjs", "release:iris": "node ./scripts/release-site.mjs", "format": "prettier --write \"**/*.+(js|jsx|tsx|json|yml|yaml|css|md)\"", "format:check": "prettier --check \"**/*.+(js|jsx|tsx|json|yml|yaml|css|md)\"", "typecheck": "tsc --noEmit" }, "build": { "extends": null, "appId": "com.nestr", "mac": { "icon": "src/assets/nest-logo-no-name.png" }, "win": { "icon": "src/assets/nest-logo-no-name.png" }, "nsis": { "installerIcon": "src/assets/nest-logo-no-name.png" }, "files": [ "dist/**/*", "build/**/*", "node_modules/**/*", "package.json" ], "directories": { "buildResources": "assets" } }, "dependencies": { "@cashu/cashu-ts": "^2.9.0", "@emoji-mart/data": "^1.2.1", "@emoji-mart/react": "^1.1.1", "@gandlaf21/bc-ur": "^1.1.12", "@hashtree/core": "https://github.com/mmalmi/hashtree/releases/download/hashtree-ts-runtime-v0.4.2/hashtree-core-0.2.1.tgz", "@hashtree/index": "https://github.com/mmalmi/hashtree/releases/download/hashtree-ts-runtime-v0.4.2/hashtree-index-0.1.11.tgz", "@noble/curves": "^1.9.7", "@noble/hashes": "^1.8.0", "@remixicon/react": "^4.9.0", "@scure/base": "^1.2.6", "@types/leaflet": "^1.9.21", "blurhash": "^2.0.5", "buffer": "^6.0.3", "classnames": "^2.5.1", "debug": "^4.4.3", "dexie": "^4.4.4", "emoji-mart": "^5.6.0", "fuse.js": "^7.5.0", "hls.js": "^1.6.16", "jsqr": "^1.4.0", "leaflet": "^1.9.4", "light-bolt11-decoder": "^3.2.0", "localforage": "^1.10.0", "lodash": "^4.18.1", "markdown-to-jsx": "^7.7.17", "minidenticons": "^4.2.1", "nostr-double-ratchet": "https://github.com/irislib/nostr-double-ratchet/releases/download/nostr-double-ratchet-ts-v0.0.165/nostr-double-ratchet-0.0.165.tgz", "nostr-social-graph": "https://github.com/mmalmi/nostr-social-graph/releases/download/v2.0.0/nostr-social-graph-2.0.0.tgz", "nostr-tools": "^2.23.12", "nostr-wasm": "^0.1.0", "qrcode": "^1.5.4", "react": "^19.2.7", "react-dom": "^19.2.7", "react-helmet": "^6.1.0", "react-string-replace": "^1.1.1", "tseep": "^1.3.1", "typescript-lru-cache": "^2.0.0", "zustand": "^5.0.14" }, "devDependencies": { "@iris/release-tools": "https://github.com/mmalmi/iris-kit/releases/download/runtime-v0.2.2/iris-release-tools-0.1.1.tgz", "@playwright/test": "^1.61.1", "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/typography": "^0.5.20", "@types/config": "^3.3.5", "@types/debug": "^4.1.13", "@types/lodash": "^4.17.24", "@types/qrcode": "^1.5.6", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "@types/react-helmet": "^6.1.11", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^5.2.0", "autoprefixer": "^10.5.3", "config": "^4.4.2", "daisyui": "^4.12.24", "eslint": "^8.57.1", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.26", "fake-indexeddb": "^6.2.5", "jsdom": "^26.1.0", "knip": "^5.88.1", "node-fetch": "^3.3.2", "postcss": "^8.5.19", "prettier": "^3.9.5", "rollup-plugin-visualizer": "^6.0.11", "tailwindcss": "^3.4.19", "tsx": "^4.23.1", "typescript": "^5.9.3", "vite": "^7.3.6", "vite-plugin-pwa": "^1.3.0", "vitest": "^3.2.7", "workbox-build": "^7.4.1", "workbox-cacheable-response": "^7.4.1", "workbox-core": "^7.4.1", "workbox-expiration": "^7.4.1", "workbox-precaching": "^7.4.1", "workbox-routing": "^7.4.1", "workbox-strategies": "^7.4.1", "workbox-window": "^7.4.1", "ws": "^8.21.1" } }