{ "name": "@bitwarden/clients", "version": "0.0.0", "description": "Bitwarden Client Applications", "repository": { "type": "git", "url": "git+https://github.com/bitwarden/clients.git" }, "author": "Bitwarden Inc. (https://bitwarden.com)", "license": "GPL-3.0", "bugs": { "url": "https://github.com/bitwarden/clients/issues" }, "homepage": "https://bitwarden.com", "scripts": { "prepare": "husky", "lint": "eslint . --cache --cache-strategy content && prettier --check .", "lint:fix": "eslint . --cache --cache-strategy content --fix", "lint:clear": "rimraf .eslintcache", "prettier": "prettier --cache --write .", "test": "jest", "test:watch": "jest --clearCache && jest --watch", "test:watch:all": "jest --watchAll", "test:types": "node ./scripts/test-types.js", "test:locales": "tsc --project ./scripts/tsconfig.json && node ./scripts/dist/test-locales.js", "docs:json": "compodoc -p ./tsconfig.json -e json -d . --disableRoutesGraph", "storybook": "ng run components:storybook", "build-storybook": "ng run components:build-storybook", "build-storybook:ci": "ng run components:build-storybook --webpack-stats-json", "postinstall": "patch-package" }, "workspaces": [ "apps/*", "apps/desktop/desktop_native/napi", "libs/*" ], "devDependencies": { "@angular-devkit/build-angular": "17.3.11", "@angular-eslint/eslint-plugin": "17.5.3", "@angular-eslint/eslint-plugin-template": "17.5.3", "@angular-eslint/schematics": "17.5.3", "@angular-eslint/template-parser": "17.5.3", "@angular/cli": "17.3.11", "@angular/compiler-cli": "17.3.12", "@angular/elements": "17.3.12", "@babel/core": "7.24.9", "@babel/preset-env": "7.24.8", "@compodoc/compodoc": "1.1.26", "@electron/notarize": "2.5.0", "@electron/rebuild": "3.7.1", "@ngtools/webpack": "17.3.11", "@storybook/addon-a11y": "8.4.5", "@storybook/addon-actions": "8.4.5", "@storybook/addon-designs": "8.0.4", "@storybook/addon-essentials": "8.4.5", "@storybook/addon-interactions": "8.4.5", "@storybook/addon-links": "8.4.5", "@storybook/angular": "8.4.5", "@storybook/manager-api": "8.4.5", "@storybook/theming": "8.4.5", "@types/argon2-browser": "1.18.4", "@types/chrome": "0.0.280", "@types/firefox-webext-browser": "120.0.4", "@types/inquirer": "8.2.10", "@types/jest": "29.5.12", "@types/jquery": "3.5.32", "@types/jsdom": "21.1.7", "@types/koa": "2.15.0", "@types/koa__multer": "2.0.7", "@types/koa__router": "12.0.4", "@types/koa-bodyparser": "4.3.7", "@types/koa-json": "2.0.23", "@types/lowdb": "1.0.15", "@types/lunr": "2.3.7", "@types/node": "22.9.3", "@types/node-fetch": "2.6.4", "@types/node-forge": "1.3.11", "@types/node-ipc": "9.2.3", "@types/papaparse": "5.3.15", "@types/proper-lockfile": "4.1.4", "@types/retry": "0.12.5", "@types/zxcvbn": "4.4.5", "@typescript-eslint/eslint-plugin": "7.16.1", "@typescript-eslint/parser": "7.16.1", "@webcomponents/custom-elements": "1.6.0", "@yao-pkg/pkg": "5.16.1", "autoprefixer": "10.4.20", "babel-loader": "9.2.1", "base64-loader": "1.0.0", "browserslist": "4.23.2", "chromatic": "11.19.0", "concurrently": "9.1.0", "copy-webpack-plugin": "12.0.2", "cross-env": "7.0.3", "css-loader": "7.1.2", "electron": "32.1.1", "electron-builder": "24.13.3", "electron-log": "5.2.2", "electron-reload": "2.0.0-alpha.1", "electron-store": "8.2.0", "electron-updater": "6.3.9", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-import": "2.29.1", "eslint-plugin-rxjs": "5.0.3", "eslint-plugin-rxjs-angular": "2.0.1", "eslint-plugin-storybook": "0.8.0", "eslint-plugin-tailwindcss": "3.17.4", "html-loader": "5.1.0", "html-webpack-injector": "1.1.4", "html-webpack-plugin": "5.6.3", "husky": "9.1.4", "jest-extended": "4.0.2", "jest-junit": "16.0.0", "jest-mock-extended": "3.0.7", "jest-preset-angular": "14.1.1", "lint-staged": "15.2.8", "mini-css-extract-plugin": "2.9.1", "node-ipc": "9.2.1", "postcss": "8.4.47", "postcss-loader": "8.1.1", "prettier": "3.3.3", "prettier-plugin-tailwindcss": "0.6.9", "process": "0.11.10", "remark-gfm": "4.0.0", "rimraf": "6.0.1", "sass": "1.74.1", "sass-loader": "16.0.1", "storybook": "8.4.5", "style-loader": "3.3.4", "tailwindcss": "3.4.15", "ts-jest": "29.2.2", "ts-loader": "9.5.1", "tsconfig-paths-webpack-plugin": "4.1.0", "type-fest": "2.19.0", "typescript": "5.4.2", "url": "0.11.4", "util": "0.12.5", "wait-on": "8.0.1", "webpack": "5.96.1", "webpack-cli": "5.1.4", "webpack-dev-server": "5.0.4", "webpack-node-externals": "3.0.0" }, "dependencies": { "@angular/animations": "17.3.12", "@angular/cdk": "17.3.10", "@angular/common": "17.3.12", "@angular/compiler": "17.3.12", "@angular/core": "17.3.12", "@angular/forms": "17.3.12", "@angular/platform-browser": "17.3.12", "@angular/platform-browser-dynamic": "17.3.12", "@angular/router": "17.3.12", "@bitwarden/sdk-internal": "0.2.0-main.3", "@electron/fuses": "1.8.0", "@koa/multer": "3.0.2", "@koa/router": "13.1.0", "@microsoft/signalr": "8.0.7", "@microsoft/signalr-protocol-msgpack": "8.0.7", "@ng-select/ng-select": "12.0.7", "argon2": "0.41.1", "argon2-browser": "1.18.0", "big-integer": "1.6.52", "bootstrap": "4.6.0", "braintree-web-drop-in": "1.43.0", "buffer": "6.0.3", "bufferutil": "4.0.8", "chalk": "4.1.2", "commander": "11.1.0", "core-js": "3.39.0", "form-data": "4.0.0", "https-proxy-agent": "7.0.5", "inquirer": "8.2.6", "jquery": "3.7.1", "jsdom": "25.0.1", "jszip": "3.10.1", "koa": "2.15.3", "koa-bodyparser": "4.4.1", "koa-json": "2.0.2", "lowdb": "1.0.0", "lunr": "2.3.9", "multer": "1.4.5-lts.1", "ngx-infinite-scroll": "17.0.1", "ngx-toastr": "18.0.0", "node-fetch": "2.6.12", "node-forge": "1.3.1", "nord": "0.2.1", "oidc-client-ts": "2.4.1", "open": "8.4.2", "papaparse": "5.4.1", "patch-package": "8.0.0", "popper.js": "1.16.1", "proper-lockfile": "4.1.2", "qrcode-parser": "2.1.3", "qrious": "4.0.2", "rxjs": "7.8.1", "tabbable": "6.2.0", "tldts": "6.1.64", "utf-8-validate": "6.0.5", "zone.js": "0.14.10", "zxcvbn": "4.4.2" }, "overrides": { "tailwindcss": "$tailwindcss", "@storybook/angular": { "zone.js": "$zone.js" }, "replacestream": "4.0.3" }, "lint-staged": { "*": "prettier --cache --ignore-unknown --write", "*.ts": "eslint --cache --cache-strategy content --fix" }, "engines": { "node": "~20", "npm": "~10" } }