{ "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.7", "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.15.1", "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.3", "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/gapi": "^0.0.47", "@types/google.accounts": "^0.0.18", "@types/google.picker": "^0.0.52", "@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", "test:probers": "playwright test --config=playwright.prober.config.ts gh-pages-gedcom.spec.ts wikitree.spec.ts wikitree-cors-gedcom.spec.ts", "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" ] }