{ "name": "intershop-pwa", "description": "Intershop Progressive Web App", "version": "12.1.0", "license": "Intershop Standard Software End User License Agreement Intershop 7", "keywords": [ "intershop" ], "engines": { "node": "24.19.0", "npm": "11.17.0" }, "private": true, "scripts": { "prepare": "husky", "update-dockerignore": "node scripts/update-dockerignore", "init-development-environment": "node scripts/init-development-environment", "check-file-synchronization": "node scripts/check-file-synchronization", "postinstall": "npm-run-all --silent build:eslint-rules build:schematics synchronize-lazy-components init-development-environment", "build:eslint-rules": "cd eslint-rules && npm run build", "build:schematics": "cd schematics && npm run build", "ng": "ng", "test": "jest --ci", "test:watch": "jest --watch -i", "test:eslint-rules": "cd eslint-rules && npm run test -- --ci", "test:schematics": "cd schematics && npm run test -- --ci", "e2e": "cd e2e && npm install && node open-cypress", "lint": "ng lint", "lint-hard": "node scripts/eslint-hard", "sort-i18n": "node scripts/sort-i18n.mjs", "format": "node docs/check-sentence-newline && stylelint \"**/*.{css,scss}\" --fix && prettier --log-level warn --write \"**/*.*\" && npm run sort-i18n", "compile": "tsc --project tsconfig.all.json --noEmit", "dead-code": "npx ts-node scripts/find-dead-code.ts", "clean-localizations": "node scripts/clean-up-localizations", "cleanup-testbed": "node scripts/cleanup-testbed.mjs", "spell-check": "cspell lint --no-summary --no-progress \"{src,projects,docs}/**/*{.{html,scss,md},en_US.json}\"", "clean": "git clean -xdf -e \"*environment.local.ts\" -e \"*environment.development.ts\" -e \"*node_modules\"", "postclean": "npm ci --prefer-offline --no-audit", "check": "npm-run-all \"lint -- --fix\" format compile build:multi test dead-code update-dockerignore clean-localizations", "clean-check": "npm-run-all clean check", "check-no-changes": "git diff --exit-code --raw -p --stat", "show-ignored-files": "git ls-files . --exclude-standard --others --ignored --directory", "changelog": "conventional-changelog --config intershop-changelog.js", "3rd-party-licenses": "npm ci && npx license-checker --csv --out 3rd-party-licenses.txt --customPath 3rd-party-licenses_format.json", "3rd-party-licenses:summary": "npx license-checker --summary", "docs": "npx markserv -a localhost docs/README.md", "synchronize-lazy-components": "ng g lazy-components", "build:watch": "npm run build client -- --watch", "build": "node scripts/build-pwa", "build:multi": "node scripts/build-multi-pwa", "analyze": "npm run build client -- --stats-json && npx webpack-bundle-analyzer --host 0.0.0.0 dist/browser/stats.json dist/browser", "serve": "node dist/server/main.js", "start": "npm-run-all build serve", "dev:ssr": "ng run intershop-pwa:serve-ssr", "xliff": "node scripts/convert-to-xliff.js", "audit": "better-npm-audit audit" }, "dependencies": { "@angular-devkit/schematics": "^20.3.36", "@angular/animations": "^20.3.30", "@angular/cdk": "^20.2.14", "@angular/common": "^20.3.30", "@angular/compiler": "^20.3.30", "@angular/core": "^20.3.30", "@angular/forms": "^20.3.30", "@angular/localize": "^20.3.30", "@angular/platform-browser": "^20.3.30", "@angular/platform-browser-dynamic": "^20.3.30", "@angular/platform-server": "^20.3.30", "@angular/router": "^20.3.30", "@angular/ssr": "^20.3.34", "@elastic/ecs-pino-format": "^1.5.0", "@googlemaps/js-api-loader": "1.16.8", "@ng-bootstrap/ng-bootstrap": "^19.0.1", "@ng-select/ng-select": "^20.7.0", "@ngrx/effects": "^20.1.0", "@ngrx/entity": "^20.1.0", "@ngrx/operators": "^20.1.0", "@ngrx/router-store": "^20.1.0", "@ngrx/store": "^20.1.0", "@ngrx/store-devtools": "^20.1.0", "@ngx-formly/core": "^7.1.0", "@ngx-translate/core": "^18.0.0", "@popperjs/core": "^2.11.8", "@rx-angular/state": "^20.1.0", "angular-oauth2-oidc": "^20.0.3", "angulartics2": "^14.1.0", "bootstrap": "^5.3.8", "bootstrap-icons": "^1.13.1", "date-fns": "^4.4.0", "express": "^5.2.1", "express-http-proxy": "^2.1.2", "express-robots-txt": "^1.0.0", "file-replace-loader": "^1.4.3", "js-yaml": "^5.4.1", "lodash-es": "^4.18.1", "ng-recaptcha-2": "^16.0.1", "ngx-infinite-scroll": "^20.0.0", "ngx-mask": "^20.0.3", "ngx-toastr": "^19.1.0", "pino": "^10.3.1", "pino-pretty": "^13.1.3", "pm2": "^7.0.4", "prom-client": "^15.1.3", "rxjs": "~7.8.2", "swiper": "^14.2.0", "tslib": "^2.8.1", "typeface-roboto": "^1.1.13", "typeface-roboto-condensed": "^1.1.13", "undici": "^8.10.2", "uuid": "^14.0.2", "zone.js": "~0.15.1" }, "devDependencies": { "@angular-builders/custom-webpack": "^20.0.0", "@angular-devkit/build-angular": "^20.3.34", "@angular-eslint/builder": "^20.7.0", "@angular-eslint/eslint-plugin": "^20.7.0", "@angular-eslint/eslint-plugin-template": "^20.7.0", "@angular-eslint/schematics": "^20.7.0", "@angular-eslint/template-parser": "^20.7.0", "@angular/cli": "^20.3.36", "@angular/compiler-cli": "^20.3.30", "@angular/language-service": "^20.3.30", "@babel/plugin-proposal-decorators": "^7.29.7", "@babel/plugin-transform-class-properties": "^7.29.7", "@babel/plugin-transform-private-methods": "^7.29.7", "@commitlint/cli": "^21.2.2", "@commitlint/config-conventional": "^21.2.2", "@commitlint/cz-commitlint": "^21.2.2", "@cspell/eslint-plugin": "^10.2.2", "@lhci/cli": "^0.15.1", "@ngrx/eslint-plugin": "^20.1.0", "@phenomnomnominal/tsquery": "^6.2.0", "@prettier/sync": "^0.6.1", "@schematics/angular": "^20.3.36", "@smarttools/eslint-plugin-rxjs": "^1.0.22", "@types/eslint": "^9.6.1", "@types/estree": "^1.0.9", "@types/express-http-proxy": "^1.6.7", "@types/google.maps": "^3.66.2", "@types/jest": "^30.0.0", "@types/lodash-es": "^4.17.12", "@types/node": "^24.13.3", "@types/webpack": "^5.28.5", "@typescript-eslint/rule-tester": "^8.69.0", "better-npm-audit": "^3.11.0", "browser-sync": "^3.0.4", "comment-json": "^5.0.0", "conventional-changelog": "^8.1.3", "cross-spawn": "^7.0.6", "cspell": "^10.2.2", "eslint": "^9.39.5", "eslint-config-prettier": "^10.1.8", "eslint-plugin-ban": "^2.0.0", "eslint-plugin-ish-custom-rules": "file:eslint-rules", "eslint-plugin-jest": "^29.16.6", "eslint-plugin-jsdoc": "^64.3.6", "eslint-plugin-perfectionist": "^5.11.0", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-rxjs-angular-x": "^0.1.2", "eslint-plugin-unicorn": "^65.0.1", "eslint-plugin-unused-imports": "^4.4.1", "glob": "^13.0.6", "husky": "^9.1.7", "intershop-schematics": "file:schematics", "jasmine-marbles": "^0.9.2", "jest": "^30.5.1", "jest-environment-jsdom": "^30.5.1", "jest-extended": "^7.0.0", "jest-jasmine2": "^30.5.1", "jest-preset-angular": "^17.0.0", "json-schema-to-typescript": "^16.0.0", "lint-staged": "^17.5.0", "ng-mocks": "^14.17.5", "npm-run-all2": "^9.0.3", "prettier": "^3.9.6", "purgecss-webpack-plugin": "^8.0.0", "sort-json": "^2.0.1", "stylelint": "^17.15.0", "stylelint-config-recess-order": "^7.8.0", "stylelint-config-recommended-scss": "^17.0.1", "stylelint-config-standard": "^40.0.0", "stylelint-order": "^8.1.1", "stylelint-prettier": "^5.0.3", "stylelint-scss": "^7.2.0", "treeify": "^1.1.0", "ts-jest": "^29.4.12", "ts-mockito": "^2.6.1", "ts-morph": "^28.0.0", "ts-node": "~10.9.2", "typescript": "~5.9.3", "typescript-eslint": "^8.69.0", "xliff": "^6.4.0" }, "overrides": { "express-robots-txt": { "express": "^5.2.1" }, "glob@>=9.0.0": "^13.0.6", "ng-morph": { "minimatch": "^10.2.5" } }, "lint-staged": { "docs/**/*.md": [ "node docs/check-kb-labels", "node docs/check-dead-links.mjs fast", "node docs/check-documentation-overview", "node docs/check-sentence-newline", "cspell lint --no-summary --no-progress" ], "*.{scss,css}": [ "stylelint --fix", "cspell lint --no-summary --no-progress" ], "*": [ "prettier --log-level warn --write" ], "*.{html,js,mjs}": [ "eslint --fix --max-warnings 0" ], "*.ts": [ "eslint --fix --max-warnings 0", "jest --ci --bail --findRelatedTests --passWithNoTests" ], "src/assets/i18n/*.json": [ "npm run sort-i18n" ] }, "activeThemes": "b2b,b2c", "allowScripts": { "esbuild": true, "fsevents": true, "lmdb": true, "msgpackr-extract": true, "unrs-resolver": true, "@parcel/watcher": true } }