Weak hands cannot be planted, meager skills have no foundation. Shallow wisdom is futile, how can one hope for a good name?扰扰从役倦，屑屑身事微。少壮轻年月，迟暮惜光辉。
<html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'>{
  "name": "hostinger-reach",
  "private": true,
  "description": "Hostinger Reach.",
  "scripts": {
    "auth:gcp": "gcloud auth application-default login",
    "auth:gca": "npx google-artifactregistry-auth",
    "dev:vue-frontend": "webpack --config webpack.config.js --env target=assets --mode development --watch",
    "dev:blocks": "webpack --config webpack.config.js --env target=subscription --mode development --watch",
    "build:vue-frontend": "webpack --config webpack.config.js --env target=assets --mode production",
    "build:blocks": "webpack --config webpack.config.js --env target=subscription --mode production",
    "build:all": "npm run sync:cursor-skills && npm run build:vue-frontend && npm run build:blocks",
    "prepare": "npm run sync:cursor-skills && husky",
    "lint:php": "vendor/bin/phpcs",
    "lint:php:fix": "vendor/bin/phpcbf",
    "lint:frontend": "cd frontend/vue && eslint .",
    "lint:frontend:fix": "cd frontend/vue && eslint . --fix",
    "lint:all": "npm run lint:php && npm run lint:frontend",
    "test:vue": "vitest --run",
    "test:vue:watch": "vitest --watch",
    "test:vue:ui": "vitest --ui",
    "test:coverage": "vitest --run --coverage",
    "sync:cursor-skills": "npx @hostinger/wp-plugin-toolkit sync-cursor-skills"
  },
  "lint-staged": {
    "*.php": [
      "npm run lint:php"
    ],
    "frontend/vue/**/*.{ts,vue}": [
      "npm run lint:frontend"
    ]
  },
  "optionalDependencies": {
    "@rollup/rollup-linux-x64-gnu": "4.60.3"
  },
  "devDependencies": {
    "@hostinger/wp-plugin-toolkit": "^1.1.0",
    "@rushstack/eslint-patch": "^1.12.0",
    "@vitejs/plugin-vue": "^6.0.2",
    "@vitest/coverage-v8": "^4.0.8",
    "@vue/test-utils": "^2.4.6",
    "@wordpress/babel-preset-default": "^8.34.0",
    "@wordpress/scripts": "^32.1.0",
    "copy-webpack-plugin": "^14.0.0",
    "css-minimizer-webpack-plugin": "^8.0.0",
    "eslint": "^9.32.0",
    "husky": "^9.1.7",
    "jsdom": "^25.0.1",
    "lint-staged": "^17.0.4",
    "mini-css-extract-plugin": "^2.9.2",
    "sass": "^1.89.2",
    "sass-loader": "^16.0.5",
    "terser-webpack-plugin": "^5.3.14",
    "ts-loader": "^9.5.2",
    "tsx": "^4.22.0",
    "typescript": "^5.8.3",
    "vite": "^7.3.2",
    "vitest": "^4.0.8",
    "vue": "^3.5.17",
    "vue-loader": "^17.4.2",
    "webpack": "^5.99.9",
    "webpack-cli": "^6.0.1"
  },
  "engines": {
    "node": ">=20.17.0",
    "npm": ">=9.0.0"
  },
  "browserslist": [
    "last 2 versions"
  ],
  "babel": {
    "presets": [
      "@babel/preset-env"
    ]
  },
  "dependencies": {
    "@babel/runtime": "^7.28.4",
    "@hostinger/hcomponents": "^14.0.2",
    "@wordpress/api-fetch": "^7.34.0",
    "@wordpress/block-editor": "^15.7.0",
    "@wordpress/blocks": "^15.7.0",
    "@wordpress/components": "^33.0.0",
    "@wordpress/jest-console": 