| 1 |
{ |
| 2 |
"name": "hostinger", |
| 3 |
"private": true, |
| 4 |
"scripts": { |
| 5 |
"auth:gcp": "gcloud auth application-default login", |
| 6 |
"auth:gca": "npx google-artifactregistry-auth", |
| 7 |
"dev": "npm run development", |
| 8 |
"development": "npm run sync:cursor-skills && cross-env NODE_ENV=development node scripts/build-assets.mjs", |
| 9 |
"prod": "npm run production", |
| 10 |
"watch": "npm run sync:cursor-skills && cross-env NODE_ENV=development node scripts/build-assets.mjs --watch", |
| 11 |
"production": "npm run sync:cursor-skills && cross-env NODE_ENV=production node scripts/build-assets.mjs", |
| 12 |
"dev:vue-frontend": "npm run sync:cursor-skills && webpack --mode development --watch", |
| 13 |
"build:vue-frontend": "npm run sync:cursor-skills && webpack --mode production", |
| 14 |
"prepare": "npm run sync:cursor-skills && husky", |
| 15 |
"lint:php": "vendor/bin/phpcs", |
| 16 |
"lint:frontend": "eslint vue-frontend/src --config vue-frontend/src/eslint.config.mjs", |
| 17 |
"lint:frontend:fix": "eslint vue-frontend/src --config vue-frontend/src/eslint.config.mjs --fix", |
| 18 |
"test:vue": "vitest --run", |
| 19 |
"test:vue:watch": "vitest --watch", |
| 20 |
"test:vue:ui": "vitest --ui", |
| 21 |
"test:coverage": "vitest --run --coverage", |
| 22 |
"sync:cursor-skills": "npx @hostinger/wp-plugin-toolkit sync-cursor-skills" |
| 23 |
}, |
| 24 |
"lint-staged": { |
| 25 |
"*.php": [ |
| 26 |
"npm run lint:php" |
| 27 |
], |
| 28 |
"vue-frontend/src/**/*.{ts,vue,js}": [ |
| 29 |
"npm run lint:frontend" |
| 30 |
] |
| 31 |
}, |
| 32 |
"devDependencies": { |
| 33 |
"@eslint/js": "^9.32.0", |
| 34 |
"@hostinger/wp-plugin-toolkit": "^1.1.0", |
| 35 |
"@rushstack/eslint-patch": "^1.12.0", |
| 36 |
"@types/lodash": "^4.17.20", |
| 37 |
"@types/node": "^26.1.2", |
| 38 |
"@typescript-eslint/eslint-plugin": "^8.65.0", |
| 39 |
"@typescript-eslint/parser": "^8.63.0", |
| 40 |
"@vitest/coverage-v8": "^4.1.10", |
| 41 |
"@vue/eslint-config-typescript": "^14.1.3", |
| 42 |
"@vue/test-utils": "^2.4.6", |
| 43 |
"@vue/tsconfig": "^0.9.1", |
| 44 |
"cross-env": "^10.0.0", |
| 45 |
"css-loader": "^7.1.4", |
| 46 |
"css-minimizer-webpack-plugin": "^8.0.0", |
| 47 |
"eslint": "^9.32.0", |
| 48 |
"eslint-plugin-import": "^2.32.0", |
| 49 |
"eslint-plugin-modules-newlines": "^0.0.7", |
| 50 |
"eslint-plugin-simple-import-sort": "^13.0.0", |
| 51 |
"eslint-plugin-unused-imports": "^4.1.4", |
| 52 |
"eslint-plugin-vue": "^10.10.0", |
| 53 |
"husky": "^9.1.7", |
| 54 |
"jsdom": "^29.1.1", |
| 55 |
"lint-staged": "^17.0.4", |
| 56 |
"lodash": "^4.17.23", |
| 57 |
"mini-css-extract-plugin": "^2.10.2", |
| 58 |
"punycode": "^2.3.1", |
| 59 |
"sass": "^1.101.0", |
| 60 |
"sass-loader": "^17.0.0", |
| 61 |
"style-loader": "^4.0.0", |
| 62 |
"terser-webpack-plugin": "^5.3.14", |
| 63 |
"ts-loader": "^9.6.2", |
| 64 |
"typescript": "^5.9.3", |
| 65 |
"typescript-eslint": "^8.65.0", |
| 66 |
"video.js": "^8.10.0", |
| 67 |
"vite": "^7.0.0", |
| 68 |
"vitest": "^4.0.9", |
| 69 |
"vue": "^3.5.39", |
| 70 |
"vue-eslint-parser": "^10.4.1", |
| 71 |
"vue-loader": "^17.4.2", |
| 72 |
"webpack": "^5.107.2", |
| 73 |
"webpack-cli": "^7.2.2" |
| 74 |
}, |
| 75 |
"dependencies": { |
| 76 |
"@vitejs/plugin-vue": "^6.0.8", |
| 77 |
"@vueuse/core": "^14.3.0", |
| 78 |
"axios": "^1.18.0", |
| 79 |
"bootstrap-scss": "^5.3.3", |
| 80 |
"pinia": "^3.0.4", |
| 81 |
"pinia-plugin-persistedstate": "^4.7.1", |
| 82 |
"survey-core": "^1.12.53", |
| 83 |
"survey-jquery": "^1.12.53", |
| 84 |
"survey-knockout-ui": "^1.12.65", |
| 85 |
"videojs-youtube": "^3.0.1", |
| 86 |
"vue-router": "^5.2.0", |
| 87 |
"vue3-slide-up-down": "^2.1.0", |
| 88 |
"vue3-toastify": "^0.2.1" |
| 89 |
}, |
| 90 |
"browserslist": [ |
| 91 |
"last 2 versions" |
| 92 |
], |
| 93 |
"overrides": { |
| 94 |
"serialize-javascript": "^7.0.3", |
| 95 |
"brace-expansion@1": "^1.1.12", |
| 96 |
"brace-expansion@2": "^2.0.2" |
| 97 |
} |
| 98 |
} |
| 99 |
|