{
  "name": "<%= name %>",
  "version": "0.0.0",
  "description": "Nitro is a Node.js application for simple and complex frontend development with a tiny footprint. This app is based on generator-nitro <%= version %>",
  "license": "UNLICENSED",
  "private": true,
  "author": "The Nitro Team",
  "engines": {
	  "node": ">=22.11.0 <25",
	  "npm": ">=10.9.0 <12"
  },
  "scripts": {
    "\n# PROJECT ------- ": "",
    "clean": "npx -y npm-run-all --npm-path npm clean:*",
    "clean:lock": "rimraf package-lock.json",
    "clean:modules": "npx -y rimraf node_modules",
    "commit": "git-cz",
    "nitro:pattern": "yo nitro:pattern",
    "nitro:server": "npm run build && rimraf dist/ && yo nitro:server --folder=dist",
    "nitro:update": "npm uninstall generator-nitro && npm install generator-nitro@latest --save-dev --save-exact && yo nitro",
    "update-dependencies": "npm-check-updates -u --deprecated",
    "\n# MISC ------- ": "",
    "postinstall": "<% if (git.root) { %>cd <%= git.root %> && husky <% if (git.project) { %><%= git.project %>/.husky && cd <%= git.project %> <% } %>&& <% } %>npx playwright install && env-linter<% if (git.root) { %> --hooksInstalled<% } %> --saveExact --dependenciesExactVersion --lts",
    "\n# LINT/TEST ------- ": "",
    "check-node-version": "check-node-version --print --package",
    "cypress-test": "npm run build && cross-env PORT=8888 NITRO_MODE=test npm-run-all --parallel --race prod:serve cypress-test:open",
    "cypress-test:open": "cypress open --project ./tests/cypress/ --e2e --browser chrome",
    "lighthouse-test": "npm run build && cross-env PORT=8889 NITRO_MODE=test npm-run-all --parallel --race prod:serve lighthouse-test:run",
    "lighthouse-test:run": "lighthouse http://localhost:8889/<% if (options.exampleCode) { %>example-patterns<% } else { %>index<% } %> --quiet --config-path=./tests/lighthouse/lighthouse.config.js --output-path=./public/reports/lighthouse/report.html --view",
    "lint": "npm-run-all --parallel lint:*",
    "lint:css": "stylelint src/**/*.*ss --allow-empty-input",
    "lint:data": "nitro-app-validate-pattern-data",
    "lint:html": "gulp dump-views && html-validate --formatter stylish ./project/tmp/views/*.html",
    "lint:js": "eslint ./src --ext <% if (options.jsCompiler === 'js') { %>.js,.jsx<% } else { %>.ts,.tsx<% } %>",
    "lint:license": "license-checker --production --summary --exclude \"Apache-2.0, BSD, ISC, LGPL, MIT, MPL\" --failOn \"AGPL; EPL; GPL\"",
    "playwright-test": "cross-env PORT=8890 NITRO_MODE=test playwright test --config=tests/playwright/playwright.config.ts --ui",
    "prettier": "prettier --write \"**/*.*(js|jsx|ts|tsx|json|css|scss|md|mdx|graphql|gql|yml|yaml)\"",
    "test": "npm-run-all test:*",
    "test:lint": "npm run lint",
    "test:build": "npm run build",
    "test:e2e": "cross-env PORT=8899 NITRO_MODE=test npm-run-all --parallel --race test:e2e:*",
    "test:e2e:serve": "npm run prod:serve",
    "test:e2e:run": "npm-run-all --serial test:e2e:run:*",
    "test:e2e:run:cypress": "cypress run --project ./tests/cypress/",
    "test:e2e:run:playwright": "playwright test --config=tests/playwright/playwright.config.ts",
    "visual-approve": "backstop approve --config=tests/backstop/backstop.config.js --docker",
    "visual-test": "npm run build && cross-env PORT=8892 npm-run-all --parallel --race visual-test:*",
    "visual-test:serve": "npm run prod:serve",
    "visual-test:test": "backstop test --config=tests/backstop/backstop.config.js --docker",
    "\n# BUILD/RELEASE ------- ": "",
    "build": "npm-run-all build:*",
    "build:clean": "rimraf public/assets",
    "build:assets": "gulp assets",<% if (options.themes) { %>
    "build:webpack": "npm-run-all build:webpack:*",
    "build:webpack:light": "cross-env THEME=light webpack --mode production --config config/webpack/webpack.config.prod.js",
    "build:webpack:dark": "cross-env THEME=dark webpack --mode production --config config/webpack/webpack.config.prod.js",<% } else { %>
    "build:webpack": "webpack --mode production --config config/webpack/webpack.config.prod.js",<% } %><% if (options.exporter) { %>
    "export": "npm run build && gulp export",<% } %>
    "\n# RUN ------- ": "",
    "dev": "npm-run-all check-node-version --parallel --race dev:*",
    "dev:serve": "cross-env NODE_ENV=development nitro-app-serve --open",
    "dev:watch": "gulp develop",
    "prod": "npm-run-all prod:*",
    "prod:check": "npm run check-node-version",
    "prod:build": "npm run build",
    "prod:serve": "cross-env NODE_ENV=production nitro-app-serve",<% if (options.themes) { %>
    "start": "npm run start:light",
    "start:light": "cross-env THEME=light PORT=8080 HMR_PORT=3000 npm run dev",
    "start:dark": "cross-env THEME=dark PORT=8081 HMR_PORT=3001 npm run dev"<% } else { %>
    "start": "npm run dev"<% } %>
  },
  "keywords": [
    "frontend",
    "app",
    "nitro",
    "component",
    "pattern",
    "modular"
  ],
  "dependencies": {<% if (options.exampleCode) { %>
    "@gondel/core": "1.2.9",
    "@gondel/plugin-hot": "1.2.9",
    "bootstrap": "5.3.8",<% } %>
    "core-js": "3.49.0"<% if (options.exampleCode) { %>,
    "flatpickr": "4.6.13",
    "handlebars": "4.7.9",
    "jquery": "4.0.0",
    "lazysizes": "5.3.2",
    "lottie-web": "5.13.0"<% } %><% if (options.jsCompiler === 'js') { %>,
    "regenerator-runtime": "0.14.1"<% } %>
  },
  "devDependencies": {<% if (options.jsCompiler === 'js') { %>
    "@babel/eslint-parser": "7.28.6",<% } %>
    "@merkle-open/eslint-config": "4.0.1",
    "@merkle-open/html-validate-config": "2.0.1",
    "@merkle-open/prettier-config": "2.0.1",
    "@merkle-open/stylelint-config": "5.0.1",<% if (options.jsCompiler === 'ts') { %>
    "@merkle-open/ts-config": "1.1.2",<% } %>
    "@nitro/app": "<%= version %>",
    "@nitro/exporter": "<%= version %>",
    "@nitro/gulp": "<%= version %>",
    "@nitro/webpack": "<%= version %>",
    "@playwright/test": "1.59.1",<% if (options.jsCompiler === 'ts') { %>
    "@types/bootstrap": "5.2.10",<% if (options.exampleCode ) { %>
    "@types/jquery": "4.0.0",<% } %>
    "@types/webpack-env": "1.18.8",<% } %>
    "backstopjs": "6.3.25",
    "check-node-version": "4.2.1",
    "config": "4.4.1",<% if (options.themes) { %>
    "cookie-session": "2.1.1",<% } %>
    "cross-env": "10.1.0",
    "cypress": "15.14.0",
    "env-linter": "2.0.0",
    "eslint": "8.57.1",
    "eslint-plugin-import": "2.32.0",
    "extend": "3.0.2",
    "generator-nitro": "<%= version %>",
    "gulp": "5.0.1",
    "html-validate": "7.18.1",
    "husky": "9.1.7",
    "license-checker": "25.0.1",
    "lighthouse": "13.1.0",
    "lint-staged": "16.4.0",
    "npm-check-updates": "21.0.2",
    "npm-run-all": "4.1.5",
    "prettier": "3.8.3",
    "rimraf": "6.1.3",
    "stylelint": "16.26.1",<% if (options.jsCompiler === 'ts') { %>
    "tslib": "2.8.1",
    "typescript": "5.9.3",<% } %>
    "webpack": "5.106.2",
    "webpack-cli": "7.0.2",
    "yo": "7.0.1"
  },
  "browserslist": [
    "> 0.2%",
    "last 1 version",
    "not dead"
  ],
  "postcss": {},
  "lint-staged": {
    "src/**/*.{css,scss}": [
      "prettier --write",
      "stylelint --allow-empty-input"
    ],
    "**/*.json": [
      "prettier --write",
      "npm run lint:data"
    ],
    "src/**/*.{<% if (options.jsCompiler === 'js') { %>js,jsx<% } %><% if (options.jsCompiler === 'ts') { %>ts,tsx<% } %>}": [
      "prettier --write",
      "eslint"
    ],
    "**/*.md": [
      "prettier --write"
    ],
    "**/*.yml": [
      "prettier --write"
    ],
    "package.json": [
      "env-linter --saveExact --dependenciesExactVersion"
    ]
  }
}
