{ "name": "slicer", "version": "0.2.0", "private": true, "description": "Slice wide panoramas into 5-10 vertical segments and publish them as a single Bluesky gallery post.", "dependencies": { "@atproto/api": "0.13.35", "@atproto/lexicon": "0.4.14", "@atproto/oauth-client-browser": "0.3.30", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.28.1", "react-scripts": "5.0.1" }, "overrides": { "zod": "3.24.3" }, "scripts": { "start": "npm run sync:theme && react-scripts start", "build": "npm run sync:theme && react-scripts build", "test": "CI=true react-scripts test", "eject": "react-scripts eject", "sync:theme": "bash scripts/sync-theme.sh", "lint": "oxlint" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "jest": { "moduleNameMapper": { "^multiformats/hashes/sha2$": "/node_modules/multiformats/cjs/src/hashes/sha2.js", "^multiformats/hashes/sha2-browser$": "/node_modules/multiformats/cjs/src/hashes/sha2.js", "^multiformats/basics$": "/node_modules/multiformats/cjs/src/basics.js", "^multiformats/([^/]+)$": "/node_modules/multiformats/cjs/src/$1.js" }, "transformIgnorePatterns": [ "node_modules/(?!(@atproto|unicode-segmenter|multiformats)/)" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": { "@napi-rs/canvas": "^1.0.7", "@oxlint/plugins": "^1.88.0", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.2", "oxlint": "^1.88.0" } }