{ "name": "chrome-wakatime", "private": true, "scripts": { "build": "clap build", "dev": "clap dev", "postinstall": "clap postinstall", "lint": "clap lint", "start": "clap build", "test": "clap test", "validate": "npm ls", "watch": "clap watch" }, "husky": { "hooks": { "pre-commit": "lint-staged", "pre-push": "npm test" } }, "lint-staged": { "*.json": [ "prettier --write" ], "*.{js|jsx|ts|tsx}": [ "eslint", "prettier --write", "git add" ] }, "dependencies": { "@manaflair/redux-batch": "^1.0.0", "@reduxjs/toolkit": "^2.2.7", "bootstrap": "^5.3.3", "bootswatch": "^5.3.3", "classnames": "^2.5.1", "create-react-class": "^15.7.0", "font-awesome": "4.7.0", "idb": "^8.0.0", "jquery": "^3.7.1", "moment": "^2.30.1", "node-html-parser": "^6.1.13", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^9.1.2", "react-transition-group": "^4.4.5", "redux-logger": "^4.0.0", "uuid": "^10.0.0", "webextension-polyfill": "^0.10.0" }, "devDependencies": { "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.4", "@babel/preset-react": "^7.24.7", "@babel/preset-typescript": "^7.24.7", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", "@types/bootstrap": "^5.2.10", "@types/chai": "^4.3.19", "@types/chrome": "0.0.270", "@types/classnames": "^2.3.0", "@types/copy-webpack-plugin": "^10.1.0", "@types/firefox-webext-browser": "^120.0.4", "@types/jest": "^29.5.12", "@types/jquery": "^3.5.30", "@types/node": "^22.5.1", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.33", "@types/redux-logger": "^3.0.13", "@types/shelljs": "^0.8.15", "@types/sinon-chrome": "^2.2.15", "@types/uuid": "^10.0.0", "@types/wait-on": "^5.2.0", "@types/webextension-polyfill": "^0.10.0", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@xarc/run": "^1.0.4", "axios": "^1.7.5", "babel-jest": "^29.7.0", "babel-loader": "^9.1.3", "browserify": "^17.0.0", "chai": "^4.5.0", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^11.0.0", "del": "^7.0.0", "eslint": "^8.57.0", "eslint-config-kentcdodds": "^21.0.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest-dom": "^5.4.0", "eslint-plugin-kentcdodds": "^1.0.3", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.32.0", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-testing-library": "^5.9.1", "eslint-plugin-typescript-sort-keys": "^3.2.0", "husky": "^4.3.7", "jest": "^29.3.1", "jest-cli": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "jsdom": "^21.0.0", "jshint": "^2.13.6", "jsxhint": "^0.15.1", "lint-staged": "^15.2.9", "mocha": "^10.7.3", "mocha-sinon": "^2.1.2", "prettier": "^3.3.3", "prettier-plugin-packagejson": "^2.5.2", "prettier-plugin-sort-json": "4.0.0", "rimraf": "^6.0.1", "sass": "^1.77.8", "shelljs": "^0.8.5", "sinon": "^15.2.0", "sinon-chai": "^3.7.0", "sinon-chrome": "^3.0.1", "ts-jest": "^29.2.5", "ts-loader": "^9.5.1", "ts-node": "^10.9.2", "typescript": "~5.5.4", "wait-on": "^8.0.0", "web-ext": "^8.2.0", "webpack": "^5.94.0", "webpack-cli": "^5.1.4" } }