{
  "name": "topola-viewer",
  "version": "1.0.0",
  "main": "src/index.tsx",
  "dependencies": {
    "@artsy/fresnel": "^6.2.1",
    "@types/react-linkify": "^1.0.4",
    "array.prototype.flatmap": "^1.2.4",
    "buffer": "^6.0.3",
    "canvas-toBlob": "^1.0.0",
    "d3-array": "^3.2.4",
    "d3-interpolate": "^3.0.1",
    "d3-selection": "^3.0.0",
    "d3-transition": "^3.0.1",
    "d3-zoom": "^3.0.0",
    "debounce": "^2.2.0",
    "detect-browser": "^5.2.0",
    "family-chart": "^0.9.0",
    "fflate": "^0.8.2",
    "file-saver": "^2.0.5",
    "javascript-natural-sort": "^0.7.1",
    "js-cookie": "^3.0.5",
    "jspdf": "^4.2.1",
    "lunr": "^2.3.9",
    "lunr-languages": "^1.20.0",
    "md5": "^2.3.0",
    "original-fs": "^1.2.0",
    "parse-gedcom": "^1.0.5",
    "query-string": "^9.1.1",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
    "react-intl": "^6.8.9",
    "react-linkify": "^1.0.0-alpha",
    "react-router": "^7.12.0",
    "rehype-stringify": "^10.0.1",
    "remark-parse": "^11.0.0",
    "remark-rehype": "^11.1.1",
    "semantic-ui-css": "^2.5.0",
    "semantic-ui-react": "^2.1.5",
    "topola": "^3.10.1",
    "turbocommons-ts": "^3.8.0",
    "unified": "^11.0.5",
    "wikitree-js": "^0.5.0"
  },
  "devDependencies": {
    "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
    "@formatjs/fast-memoize": "^2.2.6",
    "@formatjs/intl": "^2.10.15",
    "@jest/globals": "^29.7.0",
    "@playwright/test": "^1.59.1",
    "@types/adm-zip": "^0.5.0",
    "@types/array.prototype.flatmap": "^1.2.2",
    "@types/d3-array": "^3.2.1",
    "@types/d3-interpolate": "^3.0.4",
    "@types/d3-selection": "^3.0.11",
    "@types/d3-transition": "^3.0.9",
    "@types/d3-zoom": "^3.0.8",
    "@types/debounce": "^1.2.0",
    "@types/file-saver": "^2.0.1",
    "@types/history": "^4.7.8",
    "@types/jest": "^26.0.23",
    "@types/js-cookie": "^3.0.6",
    "@types/lunr": "^2.3.7",
    "@types/md5": "^2.3.0",
    "@types/node": "^25.6.0",
    "@types/react": "^18.3.12",
    "@types/react-dom": "^18.3.0",
    "@typescript-eslint/eslint-plugin": "^5.62.0",
    "@typescript-eslint/parser": "^5.62.0",
    "@vitejs/plugin-react": "^4.3.4",
    "dedent": "^1.7.2",
    "eslint": "^7.32.0",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^7.1.1",
    "gh-pages": "^6.3.0",
    "jest": "^29.7.0",
    "jsdom": "^26.0.0",
    "prettier": "^3.8.3",
    "prettier-plugin-organize-imports": "^4.1.0",
    "run-script-os": "^1.1.6",
    "ts-jest": "^29.2.5",
    "ts-node": "^10.9.2",
    "typescript": "^5.7.3",
    "vite": "^6.4.2",
    "vite-tsconfig-paths": "^5.1.4"
  },
  "scripts": {
    "start": "vite",
    "build": "tsc && vite build",
    "test": "jest",
    "prettier": "prettier --write \"{src,tests}/**/*.{ts,tsx,json}\"",
    "lint": "eslint src tests --ext .ts,.tsx",
    "predeploy": "npm run build",
    "deploy": "gh-pages -d dist",
    "predeploy-wikitree": "npm run build",
    "deploy-wikitree": "./deploy-wikitree.sh",
    "preview": "vite preview",
    "test:e2e": "playwright test --project=e2e",
    "test:e2e:ui": "playwright test --project=e2e --ui",
    "test:visual": "playwright test --project=visual",
    "test:visual:update": "playwright test --project=visual --update-snapshots",
    "test:visual:ui": "playwright test --project=visual --ui",
    "check:all": "prettier --check \"{src,tests}/**/*.{ts,tsx,json}\" && npm run lint && npm run build && npm test && tsc -p tests/tsconfig.json --noEmit && npm run test:e2e && npm run test:visual"
  },
  "homepage": ".",
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}
