{
  "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": ">=18.12.0 <21",
    "npm": ">=8.19.2 <11"
  },
  "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 && <% if (options.themes) { %>npm rebuild node-sass && <% } %>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 --configPath=./tests/lighthouse/lighthouse.config.js --output-path=./public/reports/lighthouse/report.html --view",
    "lint": "npm-run-all lint:*",
    "lint:css": "stylelint src/**/*.*ss --allow-empty-input",
    "lint:data": "nitro-app-validate-pattern-data",
    "lint:html": "gulp lint-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",
    "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=8081 PROXY=8082 npm run dev",
    "start:dark": "cross-env THEME=dark PORT=8083 PROXY=8084 npm run dev"<% } else { %>
    "start": "npm run dev"<% } %>
  },
  "keywords": [
    "frontend",
    "app",
    "nitro",
    "component",
    "pattern",
    "modular"
  ],
  "dependencies": {<% if (options.exampleCode) { %>
    "@gondel/core": "1.2.8",
    "@gondel/plugin-hot": "1.2.8",
    "bootstrap": "5.3.3",<% } %>
    "core-js": "3.39.0"<% if (options.exampleCode) { %>,
    "flatpickr": "4.6.13",
    "handlebars": "4.7.8",
    "jquery": "3.7.1",
    "lazysizes": "5.3.2",
    "lottie-web": "5.12.2",
    "prevent-window-opener-attacks": "0.3.1"<% } %><% if (options.jsCompiler === 'js') { %>,
    "regenerator-runtime": "0.14.1"<% } %><% if (options.exampleCode) { %>,
    "svg4everybody": "2.1.9"<% } %>
  },
  "devDependencies": {<% if (options.jsCompiler === 'js') { %>
    "@babel/eslint-parser": "7.25.9",<% } %>
    "@merkle-open/eslint-config": "4.0.0",
    "@merkle-open/html-validate-config": "1.0.2",
    "@merkle-open/prettier-config": "1.2.1",
    "@merkle-open/stylelint-config": "4.0.2",
    "@merkle-open/ts-config": "1.1.1",
    "@nitro/app": "<%= version %>",
    "@nitro/exporter": "<%= version %>",
    "@nitro/gulp": "<%= version %>",
    "@nitro/webpack": "<%= version %>",
    "@playwright/test": "1.49.1",<% if (options.jsCompiler === 'ts') { %>
    "@types/bootstrap": "5.2.10",<% if (options.exampleCode ) { %>
    "@types/jquery": "3.5.32",<% } %>
    "@types/svg4everybody": "2.1.5",
    "@types/webpack-env": "1.18.5",<% } %>
    "backstopjs": "6.3.25",
    "check-node-version": "4.2.1",
    "commitizen": "4.3.1",
    "config": "3.3.12",<% if (options.themes) { %>
    "cookie-session": "2.1.0",<% } %>
    "cross-env": "7.0.3",
    "cypress": "13.17.0",
    "cz-conventional-changelog": "3.3.0",
    "env-linter": "2.0.0",
    "eslint": "8.57.1",
    "eslint-plugin-import": "2.31.0",
    "extend": "3.0.2",
    "generator-nitro": "<%= version %>",
    "gulp": "5.0.0",
    "html-validate": "7.18.1",
    "husky": "9.1.7",
    "license-checker": "25.0.1",
    "lighthouse": "12.3.0",
    "lint-staged": "15.2.11",<% if (options.themes) { %>
    "node-sass": "9.0.0",<% } %>
    "npm-check-updates": "17.1.11",
    "npm-run-all": "4.1.5",
    "prettier": "3.4.2",
    "rimraf": "5.0.10",
    "stylelint": "16.12.0",<% if (options.jsCompiler === 'ts') { %>
    "typescript": "5.6.3",<% } %>
    "webpack-cli": "4.10.0",
    "yo": "5.1.0"
  },
  "browserslist": [
    "> 0.2%",
    "last 1 version",
    "not dead"
  ],
  "postcss": {},
  "config": {
    "commitizen": {
      "path": "cz-conventional-changelog"
    }
  },
  "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"
    ]
  }
}
