1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-12-22 16:29:09 +01:00

Bump dependencies (#1792)

* Bump dependencies
This commit is contained in:
Oscar Hinton 2021-04-23 10:45:20 +02:00 committed by GitHub
parent 2844a95183
commit d252fd1740
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 4258 additions and 7952 deletions

2
jslib

@ -1 +1 @@
Subproject commit 11fff06b8cd10468ffac617ab8674ba7ea6651a9
Subproject commit aca098645a21eef496e21d7c3a942cf6a83ff7bc

View File

@ -1,3 +1,5 @@
const path = require('path');
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
@ -5,35 +7,26 @@ module.exports = function(config) {
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine', 'karma-typescript'],
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'jslib/src/abstractions/**/*.ts',
'jslib/src/enums/**/*.ts',
'jslib/src/models/**/*.ts',
'jslib/src/services/**/*.ts',
'jslib/src/misc/**/*.ts',
'src/browser/**/*.ts',
'src/services/**/*.ts'
{ pattern: 'src/**/*.spec.ts', watch: false },
],
// list of files to exclude
exclude: [
"jslib/src/services/nodeApi.service.ts",
"jslib/src/services/lowdbStorage.service.ts"
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'**/*.ts': 'karma-typescript'
'src/**/*.ts': 'webpack'
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress', 'karma-typescript', 'kjhtml'],
reporters: ['progress', 'kjhtml'],
// web server port
port: 9876,
@ -57,14 +50,26 @@ module.exports = function(config) {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
karmaTypescriptConfig: {
tsconfig: './tsconfig.json',
compilerOptions: {
module: 'CommonJS'
webpack: {
mode: 'production',
resolve: {
extensions: ['.js', '.ts', '.tsx'],
alias: {
jslib: path.join(__dirname, 'jslib/src'),
},
bundlerOptions: {
entrypoints: /\.spec\.ts$/
}
},
module: {
rules: [
{test: /\.tsx?$/, loader: 'ts-loader'}
]
},
stats: {
colors: true,
modules: true,
reasons: true,
errorDetails: true
},
devtool: 'inline-source-map',
},
})
}

11841
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -27,89 +27,86 @@
"test:watch": "karma start"
},
"devDependencies": {
"@angular/compiler-cli": "^9.1.12",
"@ngtools/webpack": "^9.1.12",
"@types/chrome": "^0.0.73",
"@types/firefox-webext-browser": "^78.0.1",
"@types/jasmine": "^3.3.12",
"@angular/compiler-cli": "^11.2.11",
"@ngtools/webpack": "^11.2.10",
"@types/chrome": "^0.0.135",
"@types/firefox-webext-browser": "^82.0.0",
"@types/jasmine": "^3.6.0",
"@types/lunr": "^2.3.3",
"@types/mousetrap": "^1.6.0",
"@types/mousetrap": "^1.6.7",
"@types/node-forge": "^0.9.7",
"@types/papaparse": "^5.2.0",
"@types/safari-extension": "^0.0.27",
"@types/safari-extension-content": "^0.0.14",
"@types/source-map": "0.5.2",
"@types/tldjs": "^2.3.0",
"@types/webcrypto": "^0.0.28",
"@types/webpack": "^4.4.11",
"@types/zxcvbn": "4.4.0",
"angular2-template-loader": "^0.6.2",
"clean-webpack-plugin": "^0.1.19",
"copy-webpack-plugin": "^5.1.1",
"cross-env": "^5.2.0",
"css-loader": "^1.0.0",
"del": "^3.0.0",
"file-loader": "^2.0.0",
"gulp": "^4.0.0",
"gulp-filter": "^5.1.0",
"gulp-google-webfonts": "^2.0.0",
"gulp-if": "^2.0.2",
"gulp-json-editor": "^2.4.2",
"gulp-replace": "^1.0.0",
"gulp-zip": "^4.2.0",
"html-loader": "^0.5.5",
"html-webpack-plugin": "^3.2.0",
"jasmine-core": "^3.3.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^4.0.1",
"karma-chrome-launcher": "^2.2.0",
"@types/webpack": "^4.41.27",
"@types/zxcvbn": "^4.4.1",
"clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^6.4.0",
"cross-env": "^7.0.3",
"css-loader": "^5.2.4",
"del": "^6.0.0",
"file-loader": "^6.2.0",
"gulp": "^4.0.2",
"gulp-filter": "^6.0.0",
"gulp-google-webfonts": "^4.0.0",
"gulp-if": "^3.0.0",
"gulp-json-editor": "^2.5.5",
"gulp-replace": "^1.1.0",
"gulp-zip": "^5.1.0",
"html-loader": "^1.3.2",
"html-webpack-plugin": "^4.5.1",
"jasmine-core": "^3.7.1",
"jasmine-spec-reporter": "^7.0.0",
"karma": "^6.3.2",
"karma-chrome-launcher": "^3.1.0",
"karma-cli": "^2.0.0",
"karma-coverage-istanbul-reporter": "^2.0.5",
"karma-jasmine": "^2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"karma-typescript": "^4.0.0",
"mini-css-extract-plugin": "^0.9.0",
"node-sass": "^4.13.1",
"sass-loader": "^7.1.0",
"style-loader": "^0.23.0",
"ts-loader": "^8.0.2",
"tslint": "^6.1.3",
"karma-jasmine": "^4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"karma-webpack": "^4.0.2",
"mini-css-extract-plugin": "^1.5.0",
"sass-loader": "^10.1.1",
"style-loader": "^2.0.0",
"tapable": "^1.1.3",
"ts-loader": "^8.1.0",
"tslint": "^6.1.0",
"tslint-loader": "^3.5.4",
"typescript": "3.8.3",
"webpack": "^4.29.0",
"webpack-cli": "^3.2.1"
"typescript": "4.1.5",
"webpack": "^4.46.0",
"webpack-cli": "^4.6.0"
},
"dependencies": {
"@angular/animations": "9.1.12",
"@angular/cdk": "9.2.4",
"@angular/common": "9.1.12",
"@angular/compiler": "9.1.12",
"@angular/core": "9.1.12",
"@angular/forms": "9.1.12",
"@angular/platform-browser": "9.1.12",
"@angular/platform-browser-dynamic": "9.1.12",
"@angular/router": "9.1.12",
"@angular/animations": "^11.2.11",
"@angular/cdk": "^11.2.10",
"@angular/common": "^11.2.11",
"@angular/compiler": "^11.2.11",
"@angular/core": "^11.2.11",
"@angular/forms": "^11.2.11",
"@angular/localize": "^11.2.11",
"@angular/platform-browser": "^11.2.11",
"@angular/platform-browser-dynamic": "^11.2.11",
"@angular/router": "^11.2.11",
"@microsoft/signalr": "3.1.13",
"@microsoft/signalr-protocol-msgpack": "3.1.13",
"angular2-toaster": "8.0.0",
"@types/papaparse": "^5.2.5",
"angular2-toaster": "^11.0.1",
"big-integer": "1.6.48",
"browser-hrtime": "^1.1.8",
"core-js": "2.6.2",
"core-js": "^3.11.0",
"date-input-polyfill": "^2.14.0",
"duo_web_sdk": "git+https://github.com/duosecurity/duo_web_sdk.git",
"font-awesome": "4.7.0",
"lunr": "2.3.3",
"mousetrap": "1.6.2",
"ngx-infinite-scroll": "7.0.1",
"lunr": "^2.3.9",
"mousetrap": "^1.6.5",
"ngx-infinite-scroll": "^10.0.1",
"node-forge": "0.10.0",
"nord": "^0.2.1",
"papaparse": "5.2.0",
"rxjs": "6.6.2",
"sweetalert2": "10.15.3",
"papaparse": "^5.3.0",
"rxjs": "^6.6.7",
"sass": "^1.32.11",
"sweetalert2": "^10.16.6",
"tldjs": "2.3.1",
"tslib": "^2.0.1",
"web-animations-js": "2.3.1",
"zone.js": "0.10.3",
"tslib": "^2.0.0",
"web-animations-js": "^2.3.2",
"zone.js": "^0.11.4",
"zxcvbn": "4.4.2"
}
}

View File

@ -65,7 +65,7 @@ export class BrowserApi {
return;
}
return new Promise(resolve => {
return new Promise<void>(resolve => {
chrome.tabs.sendMessage(tab.id, obj, options, () => {
if (chrome.runtime.lastError) {
// Some error happened
@ -181,7 +181,7 @@ export class BrowserApi {
if (BrowserApi.isWebExtensionsApi) {
return browser.runtime.getPlatformInfo();
}
return new Promise((resolve) => {
return new Promise(resolve => {
chrome.runtime.getPlatformInfo(resolve);
});
}

View File

@ -118,6 +118,6 @@ export class TwoFactorComponent extends BaseTwoFactorComponent {
}
async isLinux() {
return (await BrowserApi.getPlatformInfo()).os === "linux";
return (await BrowserApi.getPlatformInfo()).os === 'linux';
}
}

View File

@ -1,6 +1,3 @@
import 'core-js';
import 'zone.js/dist/zone';
import { DragDropModule } from '@angular/cdk/drag-drop';
import { ToasterModule } from 'angular2-toaster';
import { InfiniteScrollModule } from 'ngx-infinite-scroll';

View File

@ -1,8 +1,5 @@
import 'core-js/es7/reflect';
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import 'web-animations-js';
// tslint:disable-next-line
require('./scss/popup.scss');

View File

@ -1,3 +1,6 @@
/* tslint:disable */
require('date-input-polyfill');
import 'core-js/stable';
import 'date-input-polyfill';
import 'web-animations-js';
import 'zone.js/dist/zone';
/* tslint:enable */

View File

@ -353,6 +353,6 @@ input[type="password"]::-ms-reveal {
// option elements will not render background-color correctly if identical to parent background-color
select option {
@include themify($themes) {
background-color: adjust-color(themed('inputBackgroundColor'), +1);
background-color: darken(themed('inputBackgroundColor'), +1);
}
}

View File

@ -206,7 +206,7 @@ $fa-font-path: "~font-awesome/fonts";
@extend .btn;
&.swal2-confirm {
@extend .btn.primary;
@extend .btn, .primary;
font-weight: bold;
}
}

View File

@ -171,6 +171,13 @@ export class CurrentTabComponent implements OnInit, OnDestroy {
}, 200);
}
closeOnEsc(e: KeyboardEvent) {
// If input not empty, use browser default behavior of clearing input instead
if (e.key === 'Escape' && (this.searchText == null || this.searchText === '')) {
BrowserApi.closePopup(window);
}
}
private async load() {
const tab = await BrowserApi.getTabFromCurrentWindow();
if (tab != null) {
@ -226,11 +233,4 @@ export class CurrentTabComponent implements OnInit, OnDestroy {
this.loginCiphers = this.loginCiphers.sort((a, b) => this.cipherService.sortCiphersByLastUsedThenName(a, b));
this.loaded = true;
}
closeOnEsc(e: KeyboardEvent) {
// If input not empty, use browser default behavior of clearing input instead
if (e.key === 'Escape' && (this.searchText == null || this.searchText === '')) {
BrowserApi.closePopup(window);
}
}
}

View File

@ -43,6 +43,15 @@ const ScopeStateId = ComponentId + 'Scope';
templateUrl: 'groupings.component.html',
})
export class GroupingsComponent extends BaseGroupingsComponent implements OnInit, OnDestroy {
get showNoFolderCiphers(): boolean {
return this.noFolderCiphers != null && this.noFolderCiphers.length < this.noFolderListSize &&
this.collections.length === 0;
}
get folderCount(): number {
return this.nestedFolders.length - (this.showNoFolderCiphers ? 0 : 1);
}
ciphers: CipherView[];
favoriteCiphers: CipherView[];
noFolderCiphers: CipherView[];
@ -78,15 +87,6 @@ export class GroupingsComponent extends BaseGroupingsComponent implements OnInit
this.noFolderListSize = 100;
}
get showNoFolderCiphers(): boolean {
return this.noFolderCiphers != null && this.noFolderCiphers.length < this.noFolderListSize &&
this.collections.length === 0;
}
get folderCount(): number {
return this.nestedFolders.length - (this.showNoFolderCiphers ? 0 : 1);
}
async ngOnInit() {
this.searchTypeSearch = !this.platformUtilsService.isSafari();
this.showLeftHeader = !(this.popupUtils.inSidebar(window) && this.platformUtilsService.isFirefox());
@ -296,6 +296,13 @@ export class GroupingsComponent extends BaseGroupingsComponent implements OnInit
return this.hasSearched || (!this.searchPending && this.searchService.isSearchable(this.searchText));
}
closeOnEsc(e: KeyboardEvent) {
// If input not empty, use browser default behavior of clearing input instead
if (e.key === 'Escape' && (this.searchText == null || this.searchText === '')) {
BrowserApi.closePopup(window);
}
}
private async saveState() {
this.state = {
scrollY: this.popupUtils.getContentScrollY(window),
@ -353,11 +360,4 @@ export class GroupingsComponent extends BaseGroupingsComponent implements OnInit
return true;
}
closeOnEsc(e: KeyboardEvent) {
// If input not empty, use browser default behavior of clearing input instead
if (e.key === 'Escape' && (this.searchText == null || this.searchText === '')) {
BrowserApi.closePopup(window);
}
}
}

View File

@ -22,7 +22,7 @@ export default class BrowserStorageService implements StorageService {
async save(key: string, obj: any): Promise<any> {
if (obj == null) {
// Fix safari not liking null in set
return new Promise(resolve => {
return new Promise<void>(resolve => {
this.chromeStorageApi.remove(key, () => {
resolve();
});
@ -30,7 +30,7 @@ export default class BrowserStorageService implements StorageService {
}
const keyedObj = { [key]: obj };
return new Promise(resolve => {
return new Promise<void>(resolve => {
this.chromeStorageApi.set(keyedObj, () => {
resolve();
});
@ -38,7 +38,7 @@ export default class BrowserStorageService implements StorageService {
}
async remove(key: string): Promise<any> {
return new Promise(resolve => {
return new Promise<void>(resolve => {
this.chromeStorageApi.remove(key, () => {
resolve();
});

View File

@ -1,6 +1,6 @@
const path = require('path');
const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
@ -63,37 +63,40 @@ const moduleRules = [
test: /[\/\\]@angular[\/\\].+\.js$/,
parser: { system: true },
},
{
test: /(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/,
loader: '@ngtools/webpack',
}
];
const plugins = [
new CleanWebpackPlugin([
path.resolve(__dirname, 'build/*'),
]),
// ref: https://github.com/angular/angular/issues/20357
new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)fesm5/,
path.resolve(__dirname, './src')),
new HtmlWebpackPlugin({
template: './src/popup/index.html',
filename: 'popup/index.html',
chunks: ['popup/polyfills', 'popup/vendor-angular', 'popup/vendor', 'popup/main'],
cache: false, // Remove after upgrading to Webpack 5
}),
new HtmlWebpackPlugin({
template: './src/background.html',
filename: 'background.html',
chunks: ['vendor', 'background'],
cache: false, // Remove after upgrading to Webpack 5
}),
new HtmlWebpackPlugin({
template: './src/notification/bar.html',
filename: 'notification/bar.html',
chunks: ['notification/bar']
chunks: ['notification/bar'],
cache: false, // Remove after upgrading to Webpack 5
}),
new CopyWebpackPlugin([
new CopyWebpackPlugin({
patterns: [
'./src/manifest.json',
{ from: './src/_locales', to: '_locales' },
{ from: './src/images', to: 'images' },
{ from: './src/popup/images', to: 'popup/images' },
{ from: './src/content/autofill.css', to: 'content' },
]),
]
}),
new webpack.SourceMapDevToolPlugin({
include: ['popup/main.js', 'background.js'],
}),
@ -106,25 +109,16 @@ const plugins = [
'ENV': JSON.stringify(ENV)
}
}),
];
if (ENV === 'production') {
moduleRules.push({
test: /(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/,
loader: '@ngtools/webpack',
});
plugins.push(new AngularCompilerPlugin({
new AngularCompilerPlugin({
tsConfigPath: 'tsconfig.json',
entryModule: 'src/popup/app.module#AppModule',
sourceMap: true,
}));
} else {
moduleRules.push({
test: /\.ts$/,
loaders: ['ts-loader', 'angular2-template-loader'],
exclude: path.resolve(__dirname, 'node_modules'),
});
}
}),
new CleanWebpackPlugin({
cleanAfterEveryBuildPatterns: ['!popup/fonts/**/*'],
}),
];
const config = {
mode: ENV,