1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-21 11:35:34 +01:00
bitwarden-browser/package.json
Oscar Hinton b55a28f755
[PM-14485] Remove manifest and index.html logic from gulp (#12033)
Refactor the remaining logic from gulp.  Part of the browser build script
refactor effort.

Webpack is now responsible for performing most of the operations previously
done by gulp. This includes: - Setting browser specific class - Building the
manifest file  The `package.json` is modified to include browser specific
commands for `build`, `build:prod`, `build:watch` and `dist`.

# Manifests

Manifests now uses the `copy-webpack-plugin` `transform` feature. The logic is
located in `apps/browser/webpack/manifest.js`. It reads a template, which
supports some basic operations primarily overriding with browser specific
fields using `__browser__`.  The `manifest.json` for both regular and mv3
builds are identical to our existing manifests except:
- `applications` renamed to `browser_specific_settings`.
- `permissions` sorted alphabetically.

# Safari build

Safari requires additional packaging commands. This is implemented as a
powershell script due to the cross-platform nature, and since we generally
require powershell in our distribution pipelines. An alternative would be to
write it in bash, but bash is less powerful and would require some additional
commands like `jq`. Another alternative is to write it using js, but that would
require additional dependencies.
2024-11-19 13:25:30 +00:00

221 lines
6.9 KiB
JSON

{
"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. <hello@bitwarden.com> (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.9",
"@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.9",
"@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.25",
"@electron/notarize": "2.5.0",
"@electron/rebuild": "3.7.0",
"@ngtools/webpack": "17.3.9",
"@storybook/addon-a11y": "8.2.9",
"@storybook/addon-actions": "8.2.9",
"@storybook/addon-designs": "8.0.3",
"@storybook/addon-essentials": "8.2.9",
"@storybook/addon-interactions": "8.2.9",
"@storybook/addon-links": "8.2.9",
"@storybook/angular": "8.2.9",
"@storybook/manager-api": "8.2.9",
"@storybook/theming": "8.2.9",
"@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.0",
"@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.1.3",
"base64-loader": "1.0.0",
"browserslist": "4.23.2",
"chromatic": "11.10.2",
"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.8",
"process": "0.11.10",
"remark-gfm": "4.0.0",
"rimraf": "6.0.1",
"sass": "1.74.1",
"sass-loader": "16.0.1",
"storybook": "8.2.9",
"style-loader": "3.3.4",
"tailwindcss": "3.4.14",
"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.61",
"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"
}
}