{ "name": "quran.com", "version": "1.0.0", "main": "index.js", "license": "MIT", "engines": { "node": "18.x" }, "scripts": { "dev": "next dev", "dev:https": "node server.js", "build": "next build", "postbuild": "yarn run generate-sitemap", "snapshots:update": "vitest run --update", "start": "next start", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "lint": "eslint . --ext=tsx,ts,js,jsx", "lint:fix": "yarn lint --fix", "lint:scss": "yarn stylelint '**/*.scss' --fix", "generate-sitemap": "next-sitemap --config next-sitemap.js && node scripts/format-sitemap.js", "test": "vitest run", "test:integration": "playwright test", "test:coverage": "vitest run --coverage", "test:watch": "vitest watch", "analyze": "cross-env ANALYZE_BUNDLE=true yarn build", "lokalise": "node scripts/lokalise.js", "chapter-data:format": "node scripts/format-chapter-data-json.js", "postinstall": "husky", "prepack": "pinst --disable", "postpack": "pinst --enable" }, "dependencies": { "@babel/eslint-parser": "^7.19.1", "@milkdown/core": "^7.3.3", "@milkdown/ctx": "^7.3.3", "@milkdown/preset-commonmark": "^7.3.3", "@milkdown/prose": "^7.3.3", "@milkdown/react": "^7.3.3", "@milkdown/transformer": "^7.3.3", "@milkdown/utils": "^7.3.3", "@next/bundle-analyzer": "^12.3.1", "@novu/headless": "0.24.0", "@radix-ui/react-checkbox": "^1.0.0", "@radix-ui/react-collapsible": "^1.0.0", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-direction": "^1.0.1", "@radix-ui/react-dropdown-menu": "^2.0.6", "@radix-ui/react-hover-card": "^1.0.7", "@radix-ui/react-id": "^1.0.1", "@radix-ui/react-polymorphic": "^0.0.14", "@radix-ui/react-popover": "^1.0.7", "@radix-ui/react-progress": "^1.0.3", "@radix-ui/react-radio-group": "^1.1.3", "@radix-ui/react-separator": "^1.0.3", "@radix-ui/react-slider": "^1.1.2", "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tabs": "^1.0.4", "@radix-ui/react-tooltip": "^1.0.7", "@radix-ui/react-visually-hidden": "^1.0.3", "@reduxjs/toolkit": "^1.8.5", "@sanity/client": "^5.2.1", "@sanity/image-url": "^1.0.2", "@sentry/nextjs": "^7.77.0", "@umalqura/core": "^0.0.7", "@xstate/react": "^3.0.1", "classnames": "^2.3.2", "clipboard-copy": "^4.0.1", "cookie": "^0.5.0", "firebase": "^9.10.0", "fuse.js": "^6.6.2", "groq": "^3.4.0", "humps": "^2.0.1", "js-cookie": "^3.0.1", "lodash": "^4.17.21", "next": "^12.1.5", "next-compose-plugins": "^2.2.0", "next-fonts": "^1.0.3", "next-pwa": "^5.6.0", "next-seo": "^5.5.0", "next-translate": "^1.6.0", "node-fetch": "2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-hook-form": "^7.36.1", "react-hotkeys-hook": "^3.4.7", "react-joyride": "^2.7.2", "react-redux": "^8.0.4", "react-toastify": "^9.0.8", "react-virtuoso": "^2.19.0", "redux": "^4.2.0", "redux-persist": "^6.0.0", "refresh-fetch": "^0.8.0", "swr": "1.2.1", "xstate": "^4.33.6" }, "devDependencies": { "@lokalise/node-api": "^8.0.1", "@next/eslint-plugin-next": "^12.3.1", "@playwright/test": "^1.26.0", "@storybook/addon-a11y": "^7.6.4", "@storybook/addon-actions": "^7.6.4", "@storybook/addon-essentials": "^7.6.4", "@storybook/addon-links": "^7.6.4", "@storybook/addon-storysource": "^7.6.4", "@storybook/addon-styling-webpack": "^0.0.5", "@storybook/nextjs": "^7.6.4", "@storybook/react": "^7.6.4", "@svgr/webpack": "^6.3.1", "@testing-library/react": "^13.4.0", "@types/cookie": "^0.5.1", "@types/js-cookie": "^3.0.2", "@types/lodash": "^4.14.184", "@types/node": "^20.10.4", "@types/node-fetch": "^2.6.2", "@types/qs": "^6.9.7", "@types/react": "^18.2.45", "@types/react-dom": "^18.2.17", "@types/react-redux": "^7.1.23", "@types/refresh-fetch": "^0.6.1", "@types/wicg-mediasession": "^1.1.3", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", "@vitejs/plugin-react": "^2.1.0", "@vitest/coverage-c8": "^0.23.4", "adm-zip": "^0.5.9", "cross-env": "^7.0.3", "dotenv": "^16.0.2", "eslint": "^8.24.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-next": "^14.0.4", "eslint-config-prettier": "^8.5.0", "eslint-plugin-i18next": "^6.0.0-4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsdoc": "^46.9.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.31.8", "eslint-plugin-react-func": "^0.1.18", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-sonarjs": "^0.15.0", "eslint-plugin-storybook": "^0.6.15", "eslint-plugin-unicorn": "^43.0.2", "husky": "^9.0.11", "inquirer": "^8.0.0", "inquirer-file-tree-selection-prompt": "^1", "jsdom": "^20.0.0", "lint-staged": "^13.0.3", "next-sitemap": "^3.1.22", "pinst": "^3.0.0", "postcss": "8", "postcss-scss": "^4.0.5", "prettier": "^2.7.1", "react-docgen-typescript-loader": "^3.7.2", "replace-in-file": "^6.3.5", "sass": "^1.55.0", "sass-loader": "^13.0.2", "storybook": "^7.6.4", "storybook-addon-rtl": "^1.0.0", "stylelint": "14.12.1", "stylelint-prettier": "^2.0.0", "stylelint-scss": "^4.3.0", "stylelint-use-logical": "^2.0.0", "superagent": "^8.0.0", "typescript": "^4.8.3", "vite": "^3.2.5", "vitest": "^0.23.4" }, "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "*.{tsx,ts}": "yarn lint:fix", "*.scss": "yarn lint:scss", "*": "prettier --write" } }