{ "name": "chatgptbox", "engines": { "node": ">=22" }, "scripts": { "build": "node build.mjs --production", "build:safari": "bash ./safari/build.sh", "dev": "node build.mjs --development", "analyze": "node build.mjs --analyze", "lint": "eslint --ext .js,.mjs,.jsx .", "test": "node --import ./tests/setup/browser-shim.mjs --test", "test:coverage": "c8 --all --reporter=text --reporter=lcov --reporter=json-summary --include=\"src/**/*.{mjs,jsx,js}\" node --import ./tests/setup/browser-shim.mjs --test", "lint:fix": "eslint --ext .js,.mjs,.jsx . --fix", "pretty": "prettier --write ./**/*.{js,mjs,jsx,json,css,scss}", "stage": "run-script-os", "stage:default": "git add $(git diff --name-only --cached --diff-filter=d)", "stage:win32": "powershell git add $(git diff --name-only --cached --diff-filter=d)", "verify": "node .github/workflows/scripts/verify-search-engine-configs.mjs" }, "pre-commit": [ "pretty", "stage", "lint" ], "dependencies": { "@babel/runtime": "^7.24.7", "@mozilla/readability": "^0.6.0", "@nem035/gpt-3-encoder": "^1.1.7", "@picocss/pico": "^1.5.13", "@primer/octicons-react": "^18.3.0", "buffer": "^6.0.3", "countries-list": "^2.6.1", "crypto-browserify": "^3.12.0", "diff": "^5.2.0", "file-saver": "^2.0.5", "github-markdown-css": "^5.6.1", "gpt-3-encoder": "^1.1.4", "graphql": "^16.9.0", "i18next": "^22.4.15", "js-sha3": "^0.9.3", "jsonwebtoken": "9.0.2", "katex": "^0.16.11", "lodash-es": "^4.17.21", "md5": "^2.3.0", "parse5": "^6.0.1", "preact": "^10.22.1", "process": "^0.11.10", "prop-types": "^15.8.1", "random-int": "^3.0.0", "react": "npm:@preact/compat@^17.1.2", "react-bootstrap-icons": "^1.11.4", "react-dom": "npm:@preact/compat@^17.1.2", "react-draggable": "^4.4.6", "react-i18next": "^12.2.0", "react-markdown": "^8.0.7", "react-tabs": "^4.3.0", "react-toastify": "^9.1.3", "rehype-highlight": "^6.0.0", "rehype-katex": "^6.0.3", "rehype-raw": "^6.1.1", "remark-breaks": "^3.0.3", "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", "stream-browserify": "^3.0.0", "util": "^0.12.5", "uuid": "^9.0.1", "webextension-polyfill": "^0.12.0" }, "devDependencies": { "@babel/core": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-env": "^7.24.7", "@types/archiver": "^5.3.4", "@types/fs-extra": "^11.0.4", "@types/jsdom": "^21.1.7", "@types/webextension-polyfill": "^0.10.7", "archiver": "^5.3.2", "babel-loader": "^9.1.3", "c8": "^11.0.0", "css-loader": "^6.11.0", "css-minimizer-webpack-plugin": "^8.0.0", "esbuild": "^0.25.9", "esbuild-loader": "^4.3.0", "eslint": "^8.57.1", "eslint-plugin-react": "^7.34.3", "fs-extra": "^11.2.0", "graphql-tag": "^2.12.6", "jsdom": "^28.1.0", "less-loader": "^11.1.4", "mini-css-extract-plugin": "^2.9.0", "node-fetch": "^3.3.2", "pre-commit": "^1.2.2", "prettier": "^2.8.8", "progress-bar-webpack-plugin": "^2.1.0", "run-script-os": "^1.1.6", "sass": "^1.91.0", "sass-embedded": "^1.91.0", "sass-loader": "^16.0.5", "string-replace-loader": "^3.1.0", "style-loader": "^4.0.0", "thread-loader": "^4.0.4", "webpack": "^5.92.1", "webpack-bundle-analyzer": "^4.10.2" } }