{ "name": "doof", "version": "0.1.0", "private": true, "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint", "format": "prettier --write .", "prepare": "husky install", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "typecheck": "tsc -p tsconfig.json --noEmit", "typecheck:vue": "vue-tsc --noEmit", "codegen:api": "openapi-typescript ../munch-ease-backend/openapi.json -o src/api/types.ts", "codegen": "npm run codegen:api", "codegen:check": "node scripts/codegen-check.js" }, "dependencies": { "vue": "^3.5.12", "vue-router": "^4.4.5" }, "devDependencies": { "@babel/core": "^7.12.16", "@babel/eslint-parser": "^7.12.16", "@types/node": "^20.19.22", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitest/coverage-v8": "^1.6.0", "@vue/cli-plugin-babel": "~5.0.0", "@vue/cli-plugin-eslint": "~5.0.0", "@vue/cli-plugin-typescript": "~5.0.0", "@vue/cli-service": "~5.0.0", "eslint": "^8.57.0", "eslint-plugin-vue": "^9.27.0", "husky": "^8.0.0", "lint-staged": "^13.3.0", "msw": "^2.5.2", "openapi-fetch": "^0.9.5", "openapi-typescript": "^7.4.2", "prettier": "^3.3.3", "typescript": "~5.5.4", "vitest": "^1.6.0", "vue-tsc": "^2.0.29" }, "lint-staged": { "*.{js,vue,css,scss,md}": [ "prettier --write" ] }, "eslintConfig": { "root": true, "env": { "node": true, "vue/setup-compiler-macros": true }, "extends": [ "plugin:vue/vue3-recommended", "eslint:recommended", "plugin:@typescript-eslint/recommended" ], "parser": "vue-eslint-parser", "parserOptions": { "parser": "@typescript-eslint/parser", "sourceType": "module", "ecmaVersion": 2020, "extraFileExtensions": [ ".vue" ] }, "plugins": [ "@typescript-eslint" ], "rules": { "vue/multi-word-component-names": "off", "vue/no-mutating-props": "error" }, "overrides": [ { "files": [ "src/**/*.ts", "src/**/*.vue", "src/**/*.d.ts" ], "excludedFiles": [ "src/api/types.ts", "src/**/*.d.ts" ], "parserOptions": { "project": [ "./tsconfig.eslint.json" ], "tsconfigRootDir": "." }, "rules": { "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-unsafe-assignment": "error", "@typescript-eslint/no-unsafe-call": "error", "@typescript-eslint/no-unsafe-member-access": "error", "@typescript-eslint/no-unsafe-return": "error", "no-restricted-syntax": [ "error", { "selector": "TSAsExpression[typeAnnotation.type!='TSConstKeyword']", "message": "Disallow 'as' type assertions in app code. Prefer precise typing and helpers." }, { "selector": "TSTypeAssertion", "message": "Disallow angle-bracket type assertions in app code. Prefer precise typing and helpers." } ] } } ] }, "browserslist": [ "> 1%", "last 2 versions", "not dead", "not ie 11" ] }