From 60878cd4ed9b1989860a918b62ce72529232560f Mon Sep 17 00:00:00 2001 From: Oscar Hinton Date: Tue, 22 Feb 2022 15:39:11 +0100 Subject: [PATCH] Add eslint (#610) --- .eslintignore | 3 + .eslintrc.json | 23 + angular/package.json | 4 +- .../add-edit-custom-fields.component.ts | 10 +- angular/src/components/add-edit.component.ts | 34 +- .../src/components/attachments.component.ts | 2 - angular/src/components/avatar.component.ts | 3 - angular/src/components/callout.component.ts | 1 - .../components/captchaProtected.component.ts | 2 - .../components/change-password.component.ts | 4 +- angular/src/components/ciphers.component.ts | 9 +- .../src/components/collections.component.ts | 4 +- angular/src/components/export.component.ts | 3 +- .../components/folder-add-edit.component.ts | 3 +- angular/src/components/groupings.component.ts | 21 +- angular/src/components/hint.component.ts | 5 +- angular/src/components/icon.component.ts | 7 +- angular/src/components/lock.component.ts | 26 +- angular/src/components/login.component.ts | 16 +- .../modal/dynamic-modal.component.ts | 3 +- .../password-generator-history.component.ts | 1 - .../password-generator.component.ts | 7 +- .../components/password-history.component.ts | 1 - .../components/password-reprompt.component.ts | 1 + angular/src/components/premium.component.ts | 4 +- angular/src/components/register.component.ts | 22 +- .../components/remove-password.component.ts | 7 +- .../src/components/send/add-edit.component.ts | 11 +- .../components/send/efflux-dates.component.ts | 6 +- angular/src/components/send/send.component.ts | 10 +- .../src/components/set-password.component.ts | 17 +- angular/src/components/set-pin.component.ts | 1 - .../settings/vault-timeout-input.component.ts | 11 +- angular/src/components/share.component.ts | 7 +- angular/src/components/sso.component.ts | 3 - .../two-factor-options.component.ts | 4 +- .../src/components/two-factor.component.ts | 29 +- .../components/update-password.component.ts | 11 +- .../update-temp-password.component.ts | 8 +- .../verify-master-password.component.ts | 8 +- .../view-custom-fields.component.ts | 4 +- angular/src/components/view.component.ts | 13 +- .../src/directives/api-action.directive.ts | 2 +- angular/src/directives/autofocus.directive.ts | 1 - angular/src/directives/box-row.directive.ts | 6 +- .../directives/true-false-value.directive.ts | 2 +- angular/src/pipes/color-password.pipe.ts | 1 + angular/src/pipes/search-ciphers.pipe.ts | 2 +- angular/src/services/jslib-services.module.ts | 72 +- angular/src/services/modal.service.ts | 5 +- .../src/services/passwordReprompt.service.ts | 1 + angular/src/services/validation.service.ts | 1 - common/package.json | 4 +- common/src/abstractions/api.service.ts | 11 +- common/src/abstractions/auth.service.ts | 3 +- common/src/abstractions/cipher.service.ts | 3 - common/src/abstractions/collection.service.ts | 2 - common/src/abstractions/crypto.service.ts | 14 +- common/src/abstractions/folder.service.ts | 2 - .../src/abstractions/keyConnector.service.ts | 1 - .../src/abstractions/organization.service.ts | 1 - common/src/abstractions/policy.service.ts | 5 +- common/src/abstractions/provider.service.ts | 1 - common/src/abstractions/send.service.ts | 2 - common/src/abstractions/state.service.ts | 3 - common/src/abstractions/twoFactor.service.ts | 1 - .../abstractions/userVerification.service.ts | 1 - common/src/factories/stateFactory.ts | 1 + common/src/importers/ascendoCsvImporter.ts | 4 +- common/src/importers/avastCsvImporter.ts | 4 +- common/src/importers/avastJsonImporter.ts | 9 +- common/src/importers/aviraCsvImporter.ts | 4 +- common/src/importers/baseImporter.ts | 26 +- common/src/importers/bitwardenCsvImporter.ts | 26 +- common/src/importers/bitwardenJsonImporter.ts | 10 +- .../bitwardenPasswordProtectedImporter.ts | 12 +- common/src/importers/blackBerryCsvImporter.ts | 4 +- common/src/importers/blurCsvImporter.ts | 4 +- common/src/importers/buttercupCsvImporter.ts | 5 +- common/src/importers/chromeCsvImporter.ts | 4 +- common/src/importers/clipperzHtmlImporter.ts | 8 +- common/src/importers/codebookCsvImporter.ts | 4 +- common/src/importers/dashlaneJsonImporter.ts | 12 +- common/src/importers/encryptrCsvImporter.ts | 8 +- common/src/importers/enpassCsvImporter.ts | 10 +- common/src/importers/enpassJsonImporter.ts | 10 +- common/src/importers/firefoxCsvImporter.ts | 4 +- common/src/importers/fsecureFskImporter.ts | 9 +- common/src/importers/gnomeJsonImporter.ts | 8 +- common/src/importers/kasperskyTxtImporter.ts | 4 +- common/src/importers/keepass2XmlImporter.ts | 10 +- common/src/importers/keepassxCsvImporter.ts | 4 +- .../keeperImporters/keeperCsvImporter.ts | 5 +- .../keeperImporters/keeperJsonImporter.ts | 3 +- common/src/importers/lastpassCsvImporter.ts | 15 +- common/src/importers/logMeOnceCsvImporter.ts | 4 +- common/src/importers/meldiumCsvImporter.ts | 4 +- common/src/importers/msecureCsvImporter.ts | 10 +- common/src/importers/mykiCsvImporter.ts | 8 +- common/src/importers/nordpassCsvImporter.ts | 10 +- .../onepassword1PifImporter.ts | 13 +- .../onepasswordCsvImporter.ts | 7 +- .../onepasswordMacCsvImporter.ts | 7 +- .../onepasswordWinCsvImporter.ts | 8 +- common/src/importers/padlockCsvImporter.ts | 8 +- common/src/importers/passkeepCsvImporter.ts | 4 +- common/src/importers/passmanJsonImporter.ts | 4 +- common/src/importers/passpackCsvImporter.ts | 7 +- .../src/importers/passwordAgentCsvImporter.ts | 4 +- .../src/importers/passwordBossJsonImporter.ts | 9 +- .../importers/passwordDragonXmlImporter.ts | 4 +- .../src/importers/passwordSafeXmlImporter.ts | 4 +- .../importers/passwordWalletTxtImporter.ts | 4 +- common/src/importers/rememBearCsvImporter.ts | 10 +- common/src/importers/roboformCsvImporter.ts | 4 +- common/src/importers/safariCsvImporter.ts | 4 +- .../src/importers/safeInCloudXmlImporter.ts | 17 +- common/src/importers/saferpassCsvImport.ts | 4 +- common/src/importers/secureSafeCsvImporter.ts | 4 +- common/src/importers/splashIdCsvImporter.ts | 6 +- .../importers/stickyPasswordXmlImporter.ts | 4 +- common/src/importers/truekeyCsvImporter.ts | 12 +- common/src/importers/upmCsvImporter.ts | 4 +- common/src/importers/yotiCsvImporter.ts | 4 +- common/src/importers/zohoVaultCsvImporter.ts | 6 +- common/src/misc/captcha_iframe.ts | 1 + common/src/misc/iframe_component.ts | 2 - .../src/misc/linkedFieldOption.decorator.ts | 3 +- .../misc/logInStrategies/apiLogin.strategy.ts | 7 +- .../misc/logInStrategies/logIn.strategy.ts | 38 +- .../logInStrategies/passwordLogin.strategy.ts | 9 +- .../misc/logInStrategies/ssoLogin.strategy.ts | 7 +- common/src/misc/utils.ts | 6 +- common/src/misc/webauthn_iframe.ts | 6 +- common/src/models/api/fieldApi.ts | 3 +- common/src/models/api/loginUriApi.ts | 3 +- common/src/models/api/secureNoteApi.ts | 3 +- common/src/models/data/cipherData.ts | 3 +- common/src/models/data/fieldData.ts | 1 - common/src/models/data/loginUriData.ts | 1 - common/src/models/data/organizationData.ts | 4 +- common/src/models/data/policyData.ts | 3 +- common/src/models/data/providerData.ts | 3 +- common/src/models/data/secureNoteData.ts | 1 - common/src/models/data/sendData.ts | 3 +- common/src/models/domain/account.ts | 21 +- common/src/models/domain/attachment.ts | 9 +- common/src/models/domain/authResult.ts | 7 +- common/src/models/domain/card.ts | 7 +- common/src/models/domain/cipher.ts | 6 +- common/src/models/domain/collection.ts | 3 +- common/src/models/domain/domainBase.ts | 7 +- common/src/models/domain/encString.ts | 4 +- common/src/models/domain/field.ts | 6 +- common/src/models/domain/folder.ts | 3 +- common/src/models/domain/identity.ts | 7 +- common/src/models/domain/logInCredentials.ts | 1 - common/src/models/domain/login.ts | 6 +- common/src/models/domain/loginUri.ts | 4 +- .../domain/masterPasswordPolicyOptions.ts | 12 +- common/src/models/domain/organization.ts | 3 +- common/src/models/domain/password.ts | 5 +- .../domain/passwordGeneratorPolicyOptions.ts | 22 +- common/src/models/domain/policy.ts | 3 +- .../domain/resetPasswordPolicyOptions.ts | 2 +- common/src/models/domain/secureNote.ts | 6 +- common/src/models/domain/send.ts | 6 +- common/src/models/domain/sendAccess.ts | 4 +- common/src/models/domain/sendFile.ts | 9 +- common/src/models/domain/sendText.ts | 9 +- .../src/models/domain/symmetricCryptoKey.ts | 1 - common/src/models/export/card.ts | 3 +- common/src/models/export/cipher.ts | 4 +- common/src/models/export/cipherWithIds.ts | 5 +- common/src/models/export/collection.ts | 3 +- common/src/models/export/collectionWithId.ts | 5 +- common/src/models/export/field.ts | 4 +- common/src/models/export/folder.ts | 3 +- common/src/models/export/folderWithId.ts | 5 +- common/src/models/export/identity.ts | 3 +- common/src/models/export/login.ts | 7 +- common/src/models/export/loginUri.ts | 4 +- common/src/models/export/secureNote.ts | 4 +- .../account/setKeyConnectorKeyRequest.ts | 3 +- .../models/request/cipherBulkShareRequest.ts | 4 +- .../src/models/request/cipherCreateRequest.ts | 4 +- common/src/models/request/cipherRequest.ts | 4 +- .../src/models/request/cipherShareRequest.ts | 4 +- .../src/models/request/cipherWithIdRequest.ts | 4 +- common/src/models/request/deviceRequest.ts | 3 +- .../src/models/request/folderWithIdRequest.ts | 4 +- .../request/identityToken/apiTokenRequest.ts | 4 +- .../identityToken/passwordTokenRequest.ts | 7 +- .../request/identityToken/ssoTokenRequest.ts | 4 +- .../request/identityToken/tokenRequest.ts | 2 +- common/src/models/request/kdfRequest.ts | 4 +- .../organization/organizationSsoRequest.ts | 2 +- .../request/organizationImportRequest.ts | 4 +- .../request/organizationUserInviteRequest.ts | 4 +- .../request/organizationUserUpdateRequest.ts | 4 +- common/src/models/request/registerRequest.ts | 5 +- common/src/models/request/sendRequest.ts | 2 - .../src/models/request/sendWithIdRequest.ts | 4 +- .../src/models/request/setPasswordRequest.ts | 4 +- .../request/twoFactorProviderRequest.ts | 4 +- .../response/attachmentUploadDataResponse.ts | 1 + common/src/models/response/billingResponse.ts | 4 +- common/src/models/response/cipherResponse.ts | 8 +- common/src/models/response/deviceResponse.ts | 4 +- .../response/emergencyAccessResponse.ts | 1 + common/src/models/response/errorResponse.ts | 2 + common/src/models/response/eventResponse.ts | 4 +- .../models/response/identityTokenResponse.ts | 4 +- .../response/identityTwoFactorResponse.ts | 5 +- .../models/response/notificationResponse.ts | 5 +- .../models/response/organizationResponse.ts | 4 +- .../response/organizationUserResponse.ts | 9 +- common/src/models/response/policyResponse.ts | 4 +- .../src/models/response/preloginResponse.ts | 4 +- .../response/profileOrganizationResponse.ts | 4 +- .../response/profileProviderResponse.ts | 5 +- .../response/provider/providerUserResponse.ts | 6 +- .../src/models/response/sendAccessResponse.ts | 5 +- common/src/models/response/sendResponse.ts | 5 +- .../response/twoFactorProviderResponse.ts | 4 +- .../response/twoFactorWebAuthnResponse.ts | 1 + common/src/models/view/attachmentView.ts | 4 +- common/src/models/view/cardView.ts | 11 +- common/src/models/view/cipherView.ts | 2 - common/src/models/view/collectionView.ts | 5 +- common/src/models/view/fieldView.ts | 7 +- common/src/models/view/folderView.ts | 4 +- common/src/models/view/identityView.ts | 14 +- common/src/models/view/itemView.ts | 4 +- common/src/models/view/loginUriView.ts | 8 +- common/src/models/view/loginView.ts | 11 +- common/src/models/view/passwordHistoryView.ts | 4 +- common/src/models/view/secureNoteView.ts | 3 +- common/src/models/view/sendAccessView.ts | 1 - common/src/models/view/sendFileView.ts | 4 +- common/src/models/view/sendTextView.ts | 4 +- common/src/models/view/sendView.ts | 7 +- common/src/services/api.service.ts | 28 +- common/src/services/appId.service.ts | 3 +- common/src/services/audit.service.ts | 2 - common/src/services/auth.service.ts | 33 +- .../src/services/azureFileUpload.service.ts | 3 +- .../services/bitwardenFileUpload.service.ts | 4 +- common/src/services/cipher.service.ts | 55 +- common/src/services/collection.service.ts | 14 +- common/src/services/consoleLog.service.ts | 17 +- common/src/services/crypto.service.ts | 30 +- common/src/services/environment.service.ts | 7 +- common/src/services/event.service.ts | 9 +- common/src/services/export.service.ts | 28 +- common/src/services/fileUpload.service.ts | 9 +- common/src/services/folder.service.ts | 25 +- common/src/services/i18n.service.ts | 5 +- common/src/services/import.service.ts | 27 +- common/src/services/keyConnector.service.ts | 5 - common/src/services/notifications.service.ts | 6 +- common/src/services/organization.service.ts | 4 +- .../services/passwordGeneration.service.ts | 13 +- common/src/services/policy.service.ts | 14 +- common/src/services/provider.service.ts | 4 +- common/src/services/search.service.ts | 7 +- common/src/services/send.service.ts | 33 +- common/src/services/settings.service.ts | 1 + common/src/services/state.service.ts | 42 +- common/src/services/stateMigration.service.ts | 24 +- common/src/services/sync.service.ts | 4 +- common/src/services/system.service.ts | 1 - common/src/services/token.service.ts | 6 +- common/src/services/totp.service.ts | 4 - common/src/services/twoFactor.service.ts | 2 - .../src/services/userVerification.service.ts | 6 +- common/src/services/vaultTimeout.service.ts | 1 - .../src/services/webCryptoFunction.service.ts | 2 - electron/package.json | 4 +- electron/src/baseMenu.ts | 3 +- electron/src/biometric.darwin.main.ts | 3 +- electron/src/biometric.windows.main.ts | 8 +- electron/src/keytarStorageListener.ts | 1 - .../src/services/electronCrypto.service.ts | 5 +- electron/src/services/electronLog.service.ts | 6 +- .../services/electronMainMessaging.service.ts | 5 +- .../services/electronPlatformUtils.service.ts | 11 +- .../electronRendererSecureStorage.service.ts | 1 - .../src/services/electronStorage.service.ts | 6 +- electron/src/tray.main.ts | 5 +- electron/src/updater.main.ts | 8 +- electron/src/window.main.ts | 8 +- node/package.json | 4 +- node/src/cli/baseProgram.ts | 2 +- node/src/cli/commands/login.command.ts | 40 +- node/src/cli/commands/logout.command.ts | 2 - node/src/cli/commands/update.command.ts | 3 +- .../cli/services/cliPlatformUtils.service.ts | 5 +- node/src/cli/services/consoleLog.service.ts | 3 +- node/src/services/lowdbStorage.service.ts | 6 +- node/src/services/nodeApi.service.ts | 3 +- .../services/nodeCryptoFunction.service.ts | 5 +- package-lock.json | 5167 +++++++++++------ package.json | 14 +- shared/eslintrc.json | 29 + ...bitwardenPasswordProtectedImporter.spec.ts | 3 - .../importers/firefoxCsvImporter.spec.ts | 3 +- .../importers/keepass2XmlImporter.spec.ts | 2 +- .../importers/keeperJsonImporter.spec.ts | 3 +- .../importers/lastpassCsvImporter.spec.ts | 8 +- .../importers/nordpassCsvImporter.spec.ts | 3 +- .../onepasswordMacCsvImporter.spec.ts | 3 +- .../onepasswordWinCsvImporter.spec.ts | 3 +- .../onePasswordCsv/creditCard.mac.csv.ts | 1 + .../onePasswordCsv/identity.mac.csv.ts | 1 + .../onePasswordCsv/multipleItems.mac.csv.ts | 1 + .../testData/safeInCloud/testData.xml.ts | 1 + .../logInStrategies/apiLogIn.strategy.spec.ts | 2 - .../logInStrategies/logIn.strategy.spec.ts | 7 +- .../passwordLogIn.strategy.spec.ts | 5 +- .../logInStrategies/ssoLogIn.strategy.spec.ts | 7 +- spec/common/services/cipher.service.spec.ts | 2 - .../services/consoleLog.service.spec.ts | 12 +- spec/common/services/export.service.spec.ts | 12 +- spec/common/services/import.service.spec.ts | 6 +- .../common/services/stateMigration.service.ts | 8 +- spec/helpers.ts | 4 +- spec/node/cli/consoleLog.service.spec.ts | 2 +- .../nodeCryptoFunction.service.spec.ts | 3 +- spec/support/karma.conf.js | 3 +- spec/utils.ts | 3 +- .../webCryptoFunction.service.spec.ts | 4 +- tslint.json | 68 - 333 files changed, 4509 insertions(+), 3043 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 shared/eslintrc.json delete mode 100644 tslint.json diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..92deb474 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +**/dist + +**/node_modules diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..4398e5a7 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,23 @@ +{ + "root": true, + "extends": ["./shared/eslintrc.json"], + "rules": { + "import/order": [ + "error", + { + "alphabetize": { + "order": "asc" + }, + "newlines-between": "always", + "pathGroups": [ + { + "pattern": "jslib-*/**", + "group": "external", + "position": "after" + } + ], + "pathGroupsExcludedImportTypes": ["builtin"] + } + ] + } +} diff --git a/angular/package.json b/angular/package.json index d1d5f64c..54997aaa 100644 --- a/angular/package.json +++ b/angular/package.json @@ -15,9 +15,7 @@ "scripts": { "clean": "rimraf dist/**/*", "build": "npm run clean && tsc", - "build:watch": "npm run clean && tsc -watch", - "lint": "tslint 'src/**/*.ts' 'spec/**/*.ts'", - "lint:fix": "tslint 'src/**/*.ts' 'spec/**/*.ts' --fix" + "build:watch": "npm run clean && tsc -watch" }, "devDependencies": { "@types/duo_web_sdk": "^2.7.1", diff --git a/angular/src/components/add-edit-custom-fields.component.ts b/angular/src/components/add-edit-custom-fields.component.ts index 4107bc27..e6dad6cd 100644 --- a/angular/src/components/add-edit-custom-fields.component.ts +++ b/angular/src/components/add-edit-custom-fields.component.ts @@ -1,18 +1,14 @@ -import { Directive, Input, OnChanges, SimpleChanges } from "@angular/core"; - import { CdkDragDrop, moveItemInArray } from "@angular/cdk/drag-drop"; +import { Directive, Input, OnChanges, SimpleChanges } from "@angular/core"; import { EventService } from "jslib-common/abstractions/event.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; - -import { CipherView } from "jslib-common/models/view/cipherView"; -import { FieldView } from "jslib-common/models/view/fieldView"; - import { CipherType } from "jslib-common/enums/cipherType"; import { EventType } from "jslib-common/enums/eventType"; import { FieldType } from "jslib-common/enums/fieldType"; - import { Utils } from "jslib-common/misc/utils"; +import { CipherView } from "jslib-common/models/view/cipherView"; +import { FieldView } from "jslib-common/models/view/fieldView"; @Directive() export class AddEditCustomFieldsComponent implements OnChanges { diff --git a/angular/src/components/add-edit.component.ts b/angular/src/components/add-edit.component.ts index 4c19588c..193c5720 100644 --- a/angular/src/components/add-edit.component.ts +++ b/angular/src/components/add-edit.component.ts @@ -1,13 +1,5 @@ import { Directive, EventEmitter, Input, OnInit, Output } from "@angular/core"; -import { CipherRepromptType } from "jslib-common/enums/cipherRepromptType"; -import { CipherType } from "jslib-common/enums/cipherType"; -import { EventType } from "jslib-common/enums/eventType"; -import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; -import { PolicyType } from "jslib-common/enums/policyType"; -import { SecureNoteType } from "jslib-common/enums/secureNoteType"; -import { UriMatchType } from "jslib-common/enums/uriMatchType"; - import { AuditService } from "jslib-common/abstractions/audit.service"; import { CipherService } from "jslib-common/abstractions/cipher.service"; import { CollectionService } from "jslib-common/abstractions/collection.service"; @@ -21,9 +13,15 @@ import { PasswordRepromptService } from "jslib-common/abstractions/passwordRepro import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { PolicyService } from "jslib-common/abstractions/policy.service"; import { StateService } from "jslib-common/abstractions/state.service"; - +import { CipherRepromptType } from "jslib-common/enums/cipherRepromptType"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { EventType } from "jslib-common/enums/eventType"; +import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { SecureNoteType } from "jslib-common/enums/secureNoteType"; +import { UriMatchType } from "jslib-common/enums/uriMatchType"; +import { Utils } from "jslib-common/misc/utils"; import { Cipher } from "jslib-common/models/domain/cipher"; - import { CardView } from "jslib-common/models/view/cardView"; import { CipherView } from "jslib-common/models/view/cipherView"; import { CollectionView } from "jslib-common/models/view/collectionView"; @@ -33,11 +31,9 @@ import { LoginUriView } from "jslib-common/models/view/loginUriView"; import { LoginView } from "jslib-common/models/view/loginView"; import { SecureNoteView } from "jslib-common/models/view/secureNoteView"; -import { Utils } from "jslib-common/misc/utils"; - @Directive() export class AddEditComponent implements OnInit { - @Input() cloneMode: boolean = false; + @Input() cloneMode = false; @Input() folderId: string = null; @Input() cipherId: string; @Input() type: CipherType; @@ -52,7 +48,7 @@ export class AddEditComponent implements OnInit { @Output() onEditCollections = new EventEmitter(); @Output() onGeneratePassword = new EventEmitter(); - editMode: boolean = false; + editMode = false; cipher: CipherView; folders: FolderView[]; collections: CollectionView[] = []; @@ -61,9 +57,9 @@ export class AddEditComponent implements OnInit { deletePromise: Promise; restorePromise: Promise; checkPasswordPromise: Promise; - showPassword: boolean = false; - showCardNumber: boolean = false; - showCardCode: boolean = false; + showPassword = false; + showCardNumber = false; + showCardCode = false; cipherType = CipherType; typeOptions: any[]; cardBrandOptions: any[]; @@ -74,8 +70,8 @@ export class AddEditComponent implements OnInit { autofillOnPageLoadOptions: any[]; currentDate = new Date(); allowPersonal = true; - reprompt: boolean = false; - canUseReprompt: boolean = true; + reprompt = false; + canUseReprompt = true; protected writeableCollections: CollectionView[]; private previousCipherId: string; diff --git a/angular/src/components/attachments.component.ts b/angular/src/components/attachments.component.ts index 6506cffc..ff76f6ab 100644 --- a/angular/src/components/attachments.component.ts +++ b/angular/src/components/attachments.component.ts @@ -7,10 +7,8 @@ import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; - import { Cipher } from "jslib-common/models/domain/cipher"; import { ErrorResponse } from "jslib-common/models/response/errorResponse"; - import { AttachmentView } from "jslib-common/models/view/attachmentView"; import { CipherView } from "jslib-common/models/view/cipherView"; diff --git a/angular/src/components/avatar.component.ts b/angular/src/components/avatar.component.ts index d433857a..bc029ea4 100644 --- a/angular/src/components/avatar.component.ts +++ b/angular/src/components/avatar.component.ts @@ -3,7 +3,6 @@ import { DomSanitizer } from "@angular/platform-browser"; import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; import { StateService } from "jslib-common/abstractions/state.service"; - import { Utils } from "jslib-common/misc/utils"; @Component({ @@ -81,12 +80,10 @@ export class AvatarComponent implements OnChanges, OnInit { private stringToColor(str: string): string { let hash = 0; for (let i = 0; i < str.length; i++) { - // tslint:disable-next-line hash = str.charCodeAt(i) + ((hash << 5) - hash); } let color = "#"; for (let i = 0; i < 3; i++) { - // tslint:disable-next-line const value = (hash >> (i * 8)) & 0xff; color += ("00" + value.toString(16)).substr(-2); } diff --git a/angular/src/components/callout.component.ts b/angular/src/components/callout.component.ts index b9685f0e..a1785fe5 100644 --- a/angular/src/components/callout.component.ts +++ b/angular/src/components/callout.component.ts @@ -1,7 +1,6 @@ import { Component, Input, OnInit } from "@angular/core"; import { I18nService } from "jslib-common/abstractions/i18n.service"; - import { MasterPasswordPolicyOptions } from "jslib-common/models/domain/masterPasswordPolicyOptions"; @Component({ diff --git a/angular/src/components/captchaProtected.component.ts b/angular/src/components/captchaProtected.component.ts index d13f7151..998970e4 100644 --- a/angular/src/components/captchaProtected.component.ts +++ b/angular/src/components/captchaProtected.component.ts @@ -3,9 +3,7 @@ import { Directive, Input } from "@angular/core"; import { EnvironmentService } from "jslib-common/abstractions/environment.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - import { CaptchaIFrame } from "jslib-common/misc/captcha_iframe"; - import { Utils } from "jslib-common/misc/utils"; @Directive() diff --git a/angular/src/components/change-password.component.ts b/angular/src/components/change-password.component.ts index 2431ece2..4b2ea619 100644 --- a/angular/src/components/change-password.component.ts +++ b/angular/src/components/change-password.component.ts @@ -7,13 +7,11 @@ import { PasswordGenerationService } from "jslib-common/abstractions/passwordGen import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { PolicyService } from "jslib-common/abstractions/policy.service"; import { StateService } from "jslib-common/abstractions/state.service"; - +import { KdfType } from "jslib-common/enums/kdfType"; import { EncString } from "jslib-common/models/domain/encString"; import { MasterPasswordPolicyOptions } from "jslib-common/models/domain/masterPasswordPolicyOptions"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; -import { KdfType } from "jslib-common/enums/kdfType"; - @Directive() export class ChangePasswordComponent implements OnInit { masterPassword: string; diff --git a/angular/src/components/ciphers.component.ts b/angular/src/components/ciphers.component.ts index 3f724bb5..7f8369ed 100644 --- a/angular/src/components/ciphers.component.ts +++ b/angular/src/components/ciphers.component.ts @@ -1,7 +1,6 @@ import { Directive, EventEmitter, Input, Output } from "@angular/core"; import { SearchService } from "jslib-common/abstractions/search.service"; - import { CipherView } from "jslib-common/models/view/cipherView"; @Directive() @@ -12,12 +11,12 @@ export class CiphersComponent { @Output() onAddCipher = new EventEmitter(); @Output() onAddCipherOptions = new EventEmitter(); - loaded: boolean = false; + loaded = false; ciphers: CipherView[] = []; searchText: string; searchPlaceholder: string = null; filter: (cipher: CipherView) => boolean = null; - deleted: boolean = false; + deleted = false; protected searchPending = false; @@ -25,13 +24,13 @@ export class CiphersComponent { constructor(protected searchService: SearchService) {} - async load(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) { + async load(filter: (cipher: CipherView) => boolean = null, deleted = false) { this.deleted = deleted || false; await this.applyFilter(filter); this.loaded = true; } - async reload(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) { + async reload(filter: (cipher: CipherView) => boolean = null, deleted = false) { this.loaded = false; this.ciphers = []; await this.load(filter, deleted); diff --git a/angular/src/components/collections.component.ts b/angular/src/components/collections.component.ts index 8e55f5e2..284b97db 100644 --- a/angular/src/components/collections.component.ts +++ b/angular/src/components/collections.component.ts @@ -5,12 +5,10 @@ import { CollectionService } from "jslib-common/abstractions/collection.service" import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - +import { Cipher } from "jslib-common/models/domain/cipher"; import { CipherView } from "jslib-common/models/view/cipherView"; import { CollectionView } from "jslib-common/models/view/collectionView"; -import { Cipher } from "jslib-common/models/domain/cipher"; - @Directive() export class CollectionsComponent implements OnInit { @Input() cipherId: string; diff --git a/angular/src/components/export.component.ts b/angular/src/components/export.component.ts index 17a751fc..8f892045 100644 --- a/angular/src/components/export.component.ts +++ b/angular/src/components/export.component.ts @@ -9,7 +9,6 @@ import { LogService } from "jslib-common/abstractions/log.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { PolicyService } from "jslib-common/abstractions/policy.service"; import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; - import { EventType } from "jslib-common/enums/eventType"; import { PolicyType } from "jslib-common/enums/policyType"; @@ -18,7 +17,7 @@ export class ExportComponent implements OnInit { @Output() onSaved = new EventEmitter(); formPromise: Promise; - disabledByPolicy: boolean = false; + disabledByPolicy = false; exportForm = this.formBuilder.group({ format: ["json"], diff --git a/angular/src/components/folder-add-edit.component.ts b/angular/src/components/folder-add-edit.component.ts index a3f0707b..ef1fa111 100644 --- a/angular/src/components/folder-add-edit.component.ts +++ b/angular/src/components/folder-add-edit.component.ts @@ -4,7 +4,6 @@ import { FolderService } from "jslib-common/abstractions/folder.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - import { FolderView } from "jslib-common/models/view/folderView"; @Directive() @@ -13,7 +12,7 @@ export class FolderAddEditComponent implements OnInit { @Output() onSavedFolder = new EventEmitter(); @Output() onDeletedFolder = new EventEmitter(); - editMode: boolean = false; + editMode = false; folder: FolderView = new FolderView(); title: string; formPromise: Promise; diff --git a/angular/src/components/groupings.component.ts b/angular/src/components/groupings.component.ts index 4176e291..aa5a743f 100644 --- a/angular/src/components/groupings.component.ts +++ b/angular/src/components/groupings.component.ts @@ -1,15 +1,12 @@ import { Directive, EventEmitter, Input, Output } from "@angular/core"; -import { CipherType } from "jslib-common/enums/cipherType"; - -import { CollectionView } from "jslib-common/models/view/collectionView"; -import { FolderView } from "jslib-common/models/view/folderView"; - -import { TreeNode } from "jslib-common/models/domain/treeNode"; - import { CollectionService } from "jslib-common/abstractions/collection.service"; import { FolderService } from "jslib-common/abstractions/folder.service"; import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { TreeNode } from "jslib-common/models/domain/treeNode"; +import { CollectionView } from "jslib-common/models/view/collectionView"; +import { FolderView } from "jslib-common/models/view/folderView"; @Directive() export class GroupingsComponent { @@ -31,13 +28,13 @@ export class GroupingsComponent { nestedFolders: TreeNode[]; collections: CollectionView[]; nestedCollections: TreeNode[]; - loaded: boolean = false; + loaded = false; cipherType = CipherType; - selectedAll: boolean = false; - selectedFavorites: boolean = false; - selectedTrash: boolean = false; + selectedAll = false; + selectedFavorites = false; + selectedTrash = false; selectedType: CipherType = null; - selectedFolder: boolean = false; + selectedFolder = false; selectedFolderId: string = null; selectedCollectionId: string = null; diff --git a/angular/src/components/hint.component.ts b/angular/src/components/hint.component.ts index 9a3d7b2f..6ee007e7 100644 --- a/angular/src/components/hint.component.ts +++ b/angular/src/components/hint.component.ts @@ -1,14 +1,13 @@ import { Router } from "@angular/router"; -import { PasswordHintRequest } from "jslib-common/models/request/passwordHintRequest"; - import { ApiService } from "jslib-common/abstractions/api.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PasswordHintRequest } from "jslib-common/models/request/passwordHintRequest"; export class HintComponent { - email: string = ""; + email = ""; formPromise: Promise; protected successRoute = "login"; diff --git a/angular/src/components/icon.component.ts b/angular/src/components/icon.component.ts index c5704f27..9cb8e907 100644 --- a/angular/src/components/icon.component.ts +++ b/angular/src/components/icon.component.ts @@ -1,13 +1,10 @@ import { Component, Input, OnChanges } from "@angular/core"; -import { CipherType } from "jslib-common/enums/cipherType"; - -import { CipherView } from "jslib-common/models/view/cipherView"; - import { EnvironmentService } from "jslib-common/abstractions/environment.service"; import { StateService } from "jslib-common/abstractions/state.service"; - +import { CipherType } from "jslib-common/enums/cipherType"; import { Utils } from "jslib-common/misc/utils"; +import { CipherView } from "jslib-common/models/view/cipherView"; /** * Provides a mapping from supported card brands to diff --git a/angular/src/components/lock.component.ts b/angular/src/components/lock.component.ts index 2f4e639a..11ddba31 100644 --- a/angular/src/components/lock.component.ts +++ b/angular/src/components/lock.component.ts @@ -12,32 +12,28 @@ import { MessagingService } from "jslib-common/abstractions/messaging.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; import { VaultTimeoutService } from "jslib-common/abstractions/vaultTimeout.service"; - -import { EncString } from "jslib-common/models/domain/encString"; -import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; - -import { SecretVerificationRequest } from "jslib-common/models/request/secretVerificationRequest"; - -import { Utils } from "jslib-common/misc/utils"; - import { HashPurpose } from "jslib-common/enums/hashPurpose"; import { KeySuffixOptions } from "jslib-common/enums/keySuffixOptions"; +import { Utils } from "jslib-common/misc/utils"; +import { EncString } from "jslib-common/models/domain/encString"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { SecretVerificationRequest } from "jslib-common/models/request/secretVerificationRequest"; @Directive() export class LockComponent implements OnInit { - masterPassword: string = ""; - pin: string = ""; - showPassword: boolean = false; + masterPassword = ""; + pin = ""; + showPassword = false; email: string; - pinLock: boolean = false; - webVaultHostname: string = ""; + pinLock = false; + webVaultHostname = ""; formPromise: Promise; supportsBiometric: boolean; biometricLock: boolean; biometricText: string; hideInput: boolean; - protected successRoute: string = "vault"; + protected successRoute = "vault"; protected onSuccessfulSubmit: () => Promise; private invalidPinAttempts = 0; @@ -61,7 +57,7 @@ export class LockComponent implements OnInit { async ngOnInit() { // Load the first and observe updates await this.load(); - this.stateService.activeAccount.subscribe(async (_userId) => { + this.stateService.activeAccount.subscribe(async () => { await this.load(); }); } diff --git a/angular/src/components/login.component.ts b/angular/src/components/login.component.ts index f7192671..5d3f7cff 100644 --- a/angular/src/components/login.component.ts +++ b/angular/src/components/login.component.ts @@ -1,12 +1,7 @@ import { Directive, Input, NgZone, OnInit } from "@angular/core"; - import { Router } from "@angular/router"; - import { take } from "rxjs/operators"; -import { AuthResult } from "jslib-common/models/domain/authResult"; -import { PasswordLogInCredentials } from "jslib-common/models/domain/logInCredentials"; - import { AuthService } from "jslib-common/abstractions/auth.service"; import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; import { EnvironmentService } from "jslib-common/abstractions/environment.service"; @@ -15,18 +10,19 @@ import { LogService } from "jslib-common/abstractions/log.service"; import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; - import { Utils } from "jslib-common/misc/utils"; +import { AuthResult } from "jslib-common/models/domain/authResult"; +import { PasswordLogInCredentials } from "jslib-common/models/domain/logInCredentials"; import { CaptchaProtectedComponent } from "./captchaProtected.component"; @Directive() export class LoginComponent extends CaptchaProtectedComponent implements OnInit { - @Input() email: string = ""; + @Input() email = ""; @Input() rememberEmail = true; - masterPassword: string = ""; - showPassword: boolean = false; + masterPassword = ""; + showPassword = false; formPromise: Promise; onSuccessfulLogin: () => Promise; onSuccessfulLoginNavigate: () => Promise; @@ -36,7 +32,7 @@ export class LoginComponent extends CaptchaProtectedComponent implements OnInit protected twoFactorRoute = "2fa"; protected successRoute = "vault"; protected forcePasswordResetRoute = "update-temp-password"; - protected alwaysRememberEmail: boolean = false; + protected alwaysRememberEmail = false; constructor( protected authService: AuthService, diff --git a/angular/src/components/modal/dynamic-modal.component.ts b/angular/src/components/modal/dynamic-modal.component.ts index 4d529f34..46ad38c0 100644 --- a/angular/src/components/modal/dynamic-modal.component.ts +++ b/angular/src/components/modal/dynamic-modal.component.ts @@ -1,3 +1,4 @@ +import { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from "@angular/cdk/a11y"; import { AfterViewInit, ChangeDetectorRef, @@ -10,8 +11,6 @@ import { ViewContainerRef, } from "@angular/core"; -import { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from "@angular/cdk/a11y"; - import { ModalService } from "../../services/modal.service"; import { ModalRef } from "./modal.ref"; diff --git a/angular/src/components/password-generator-history.component.ts b/angular/src/components/password-generator-history.component.ts index 00f73a9f..15e6c7e4 100644 --- a/angular/src/components/password-generator-history.component.ts +++ b/angular/src/components/password-generator-history.component.ts @@ -3,7 +3,6 @@ import { Directive, OnInit } from "@angular/core"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - import { GeneratedPasswordHistory } from "jslib-common/models/domain/generatedPasswordHistory"; @Directive() diff --git a/angular/src/components/password-generator.component.ts b/angular/src/components/password-generator.component.ts index b46cda43..77d1341b 100644 --- a/angular/src/components/password-generator.component.ts +++ b/angular/src/components/password-generator.component.ts @@ -3,17 +3,16 @@ import { Directive, EventEmitter, Input, OnInit, Output } from "@angular/core"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - import { PasswordGeneratorPolicyOptions } from "jslib-common/models/domain/passwordGeneratorPolicyOptions"; @Directive() export class PasswordGeneratorComponent implements OnInit { - @Input() showSelect: boolean = false; + @Input() showSelect = false; @Output() onSelected = new EventEmitter(); passTypeOptions: any[]; options: any = {}; - password: string = "-"; + password = "-"; showOptions = false; avoidAmbiguous = false; enforcedPolicyOptions: PasswordGeneratorPolicyOptions; @@ -50,7 +49,7 @@ export class PasswordGeneratorComponent implements OnInit { this.password = await this.passwordGenerationService.generatePassword(this.options); } - async saveOptions(regenerate: boolean = true) { + async saveOptions(regenerate = true) { this.normalizeOptions(); await this.passwordGenerationService.saveOptions(this.options); diff --git a/angular/src/components/password-history.component.ts b/angular/src/components/password-history.component.ts index d5d83b1c..94eb2f7c 100644 --- a/angular/src/components/password-history.component.ts +++ b/angular/src/components/password-history.component.ts @@ -3,7 +3,6 @@ import { Directive, OnInit } from "@angular/core"; import { CipherService } from "jslib-common/abstractions/cipher.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - import { PasswordHistoryView } from "jslib-common/models/view/passwordHistoryView"; @Directive() diff --git a/angular/src/components/password-reprompt.component.ts b/angular/src/components/password-reprompt.component.ts index f547aace..1220f555 100644 --- a/angular/src/components/password-reprompt.component.ts +++ b/angular/src/components/password-reprompt.component.ts @@ -3,6 +3,7 @@ import { Directive } from "@angular/core"; import { CryptoService } from "jslib-common/abstractions/crypto.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + import { ModalRef } from "./modal/modal.ref"; @Directive() diff --git a/angular/src/components/premium.component.ts b/angular/src/components/premium.component.ts index 62e5d8f1..efad4986 100644 --- a/angular/src/components/premium.component.ts +++ b/angular/src/components/premium.component.ts @@ -8,8 +8,8 @@ import { StateService } from "jslib-common/abstractions/state.service"; @Directive() export class PremiumComponent implements OnInit { - isPremium: boolean = false; - price: number = 10; + isPremium = false; + price = 10; refreshPromise: Promise; constructor( diff --git a/angular/src/components/register.component.ts b/angular/src/components/register.component.ts index 16ccb6ea..f66800c9 100644 --- a/angular/src/components/register.component.ts +++ b/angular/src/components/register.component.ts @@ -1,10 +1,6 @@ import { Directive, OnInit } from "@angular/core"; import { Router } from "@angular/router"; -import { KeysRequest } from "jslib-common/models/request/keysRequest"; -import { ReferenceEventRequest } from "jslib-common/models/request/referenceEventRequest"; -import { RegisterRequest } from "jslib-common/models/request/registerRequest"; - import { ApiService } from "jslib-common/abstractions/api.service"; import { AuthService } from "jslib-common/abstractions/auth.service"; import { CryptoService } from "jslib-common/abstractions/crypto.service"; @@ -14,24 +10,26 @@ import { LogService } from "jslib-common/abstractions/log.service"; import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; - import { KdfType } from "jslib-common/enums/kdfType"; +import { KeysRequest } from "jslib-common/models/request/keysRequest"; +import { ReferenceEventRequest } from "jslib-common/models/request/referenceEventRequest"; +import { RegisterRequest } from "jslib-common/models/request/registerRequest"; import { CaptchaProtectedComponent } from "./captchaProtected.component"; @Directive() export class RegisterComponent extends CaptchaProtectedComponent implements OnInit { - name: string = ""; - email: string = ""; - masterPassword: string = ""; - confirmMasterPassword: string = ""; - hint: string = ""; - showPassword: boolean = false; + name = ""; + email = ""; + masterPassword = ""; + confirmMasterPassword = ""; + hint = ""; + showPassword = false; formPromise: Promise; masterPasswordScore: number; referenceData: ReferenceEventRequest; showTerms = true; - acceptPolicies: boolean = false; + acceptPolicies = false; protected successRoute = "login"; private masterPasswordStrengthTimeout: any; diff --git a/angular/src/components/remove-password.component.ts b/angular/src/components/remove-password.component.ts index 0359ad35..bce481e5 100644 --- a/angular/src/components/remove-password.component.ts +++ b/angular/src/components/remove-password.component.ts @@ -7,16 +7,15 @@ import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.serv import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; import { SyncService } from "jslib-common/abstractions/sync.service"; - import { Organization } from "jslib-common/models/domain/organization"; @Directive() export class RemovePasswordComponent implements OnInit { actionPromise: Promise; - continuing: boolean = false; - leaving: boolean = false; + continuing = false; + leaving = false; - loading: boolean = true; + loading = true; organization: Organization; email: string; diff --git a/angular/src/components/send/add-edit.component.ts b/angular/src/components/send/add-edit.component.ts index 3573260c..382adf35 100644 --- a/angular/src/components/send/add-edit.component.ts +++ b/angular/src/components/send/add-edit.component.ts @@ -1,9 +1,6 @@ import { DatePipe } from "@angular/common"; import { Directive, EventEmitter, Input, OnInit, Output } from "@angular/core"; -import { PolicyType } from "jslib-common/enums/policyType"; -import { SendType } from "jslib-common/enums/sendType"; - import { EnvironmentService } from "jslib-common/abstractions/environment.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; @@ -12,14 +9,14 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { PolicyService } from "jslib-common/abstractions/policy.service"; import { SendService } from "jslib-common/abstractions/send.service"; import { StateService } from "jslib-common/abstractions/state.service"; - +import { PolicyType } from "jslib-common/enums/policyType"; +import { SendType } from "jslib-common/enums/sendType"; +import { EncArrayBuffer } from "jslib-common/models/domain/encArrayBuffer"; +import { Send } from "jslib-common/models/domain/send"; import { SendFileView } from "jslib-common/models/view/sendFileView"; import { SendTextView } from "jslib-common/models/view/sendTextView"; import { SendView } from "jslib-common/models/view/sendView"; -import { EncArrayBuffer } from "jslib-common/models/domain/encArrayBuffer"; -import { Send } from "jslib-common/models/domain/send"; - @Directive() export class AddEditComponent implements OnInit { @Input() sendId: string; diff --git a/angular/src/components/send/efflux-dates.component.ts b/angular/src/components/send/efflux-dates.component.ts index 5f3aae13..15aec8a0 100644 --- a/angular/src/components/send/efflux-dates.component.ts +++ b/angular/src/components/send/efflux-dates.component.ts @@ -133,12 +133,13 @@ export class EffluxDatesComponent implements OnInit { default: return this.defaultDeletionDateTime.value; } - default: + default: { const now = new Date(); const miliseconds = now.setTime( now.getTime() + (this.selectedDeletionDatePreset.value as number) * 60 * 60 * 1000 ); return new Date(miliseconds).toString(); + } } } @@ -163,12 +164,13 @@ export class EffluxDatesComponent implements OnInit { } return this.defaultExpirationDateTime.value; } - default: + default: { const now = new Date(); const miliseconds = now.setTime( now.getTime() + (this.selectedExpirationDatePreset.value as number) * 60 * 60 * 1000 ); return new Date(miliseconds).toString(); + } } } // diff --git a/angular/src/components/send/send.component.ts b/angular/src/components/send/send.component.ts index 20b2c095..63831dcb 100644 --- a/angular/src/components/send/send.component.ts +++ b/angular/src/components/send/send.component.ts @@ -1,10 +1,5 @@ import { Directive, NgZone, OnInit } from "@angular/core"; -import { PolicyType } from "jslib-common/enums/policyType"; -import { SendType } from "jslib-common/enums/sendType"; - -import { SendView } from "jslib-common/models/view/sendView"; - import { EnvironmentService } from "jslib-common/abstractions/environment.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; @@ -12,6 +7,9 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { PolicyService } from "jslib-common/abstractions/policy.service"; import { SearchService } from "jslib-common/abstractions/search.service"; import { SendService } from "jslib-common/abstractions/send.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { SendType } from "jslib-common/enums/sendType"; +import { SendView } from "jslib-common/models/view/sendView"; @Directive() export class SendComponent implements OnInit { @@ -20,7 +18,7 @@ export class SendComponent implements OnInit { loaded = false; loading = true; refreshing = false; - expired: boolean = false; + expired = false; type: SendType = null; sends: SendView[] = []; filteredSends: SendView[] = []; diff --git a/angular/src/components/set-password.component.ts b/angular/src/components/set-password.component.ts index 89f6e520..d87dffee 100644 --- a/angular/src/components/set-password.component.ts +++ b/angular/src/components/set-password.component.ts @@ -1,6 +1,5 @@ import { Directive } from "@angular/core"; import { ActivatedRoute, Router } from "@angular/router"; - import { first } from "rxjs/operators"; import { ApiService } from "jslib-common/abstractions/api.service"; @@ -12,26 +11,22 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { PolicyService } from "jslib-common/abstractions/policy.service"; import { StateService } from "jslib-common/abstractions/state.service"; import { SyncService } from "jslib-common/abstractions/sync.service"; - +import { HashPurpose } from "jslib-common/enums/hashPurpose"; +import { KdfType } from "jslib-common/enums/kdfType"; +import { Utils } from "jslib-common/misc/utils"; import { EncString } from "jslib-common/models/domain/encString"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; - import { KeysRequest } from "jslib-common/models/request/keysRequest"; import { OrganizationUserResetPasswordEnrollmentRequest } from "jslib-common/models/request/organizationUserResetPasswordEnrollmentRequest"; import { SetPasswordRequest } from "jslib-common/models/request/setPasswordRequest"; import { ChangePasswordComponent as BaseChangePasswordComponent } from "./change-password.component"; -import { HashPurpose } from "jslib-common/enums/hashPurpose"; -import { KdfType } from "jslib-common/enums/kdfType"; - -import { Utils } from "jslib-common/misc/utils"; - @Directive() export class SetPasswordComponent extends BaseChangePasswordComponent { - syncLoading: boolean = true; - showPassword: boolean = false; - hint: string = ""; + syncLoading = true; + showPassword = false; + hint = ""; identifier: string = null; orgId: string; resetPasswordAutoEnroll = false; diff --git a/angular/src/components/set-pin.component.ts b/angular/src/components/set-pin.component.ts index bc1e804e..dd10e99d 100644 --- a/angular/src/components/set-pin.component.ts +++ b/angular/src/components/set-pin.component.ts @@ -3,7 +3,6 @@ import { Directive, OnInit } from "@angular/core"; import { CryptoService } from "jslib-common/abstractions/crypto.service"; import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; import { StateService } from "jslib-common/abstractions/state.service"; - import { Utils } from "jslib-common/misc/utils"; import { ModalRef } from "./modal/modal.ref"; diff --git a/angular/src/components/settings/vault-timeout-input.component.ts b/angular/src/components/settings/vault-timeout-input.component.ts index 2f63f97f..f2fe6d52 100644 --- a/angular/src/components/settings/vault-timeout-input.component.ts +++ b/angular/src/components/settings/vault-timeout-input.component.ts @@ -9,7 +9,6 @@ import { import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PolicyService } from "jslib-common/abstractions/policy.service"; - import { PolicyType } from "jslib-common/enums/policyType"; import { Policy } from "jslib-common/models/domain/policy"; @@ -120,11 +119,13 @@ export class VaultTimeoutInputComponent implements ControlValueAccessor, Validat this.onChange = onChange; } - // tslint:disable-next-line - registerOnTouched(onTouched: any): void {} + registerOnTouched(onTouched: any): void { + // Empty + } - // tslint:disable-next-line - setDisabledState?(isDisabled: boolean): void {} + setDisabledState?(isDisabled: boolean): void { + // Empty + } validate(control: AbstractControl): ValidationErrors { if (this.vaultTimeoutPolicy && this.vaultTimeoutPolicy?.data?.minutes < control.value) { diff --git a/angular/src/components/share.component.ts b/angular/src/components/share.component.ts index 6a13e0b2..0b1b3577 100644 --- a/angular/src/components/share.component.ts +++ b/angular/src/components/share.component.ts @@ -1,20 +1,17 @@ import { Directive, EventEmitter, Input, OnInit, Output } from "@angular/core"; -import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; - import { CipherService } from "jslib-common/abstractions/cipher.service"; import { CollectionService } from "jslib-common/abstractions/collection.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { OrganizationService } from "jslib-common/abstractions/organization.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - +import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; +import { Utils } from "jslib-common/misc/utils"; import { Organization } from "jslib-common/models/domain/organization"; import { CipherView } from "jslib-common/models/view/cipherView"; import { CollectionView } from "jslib-common/models/view/collectionView"; -import { Utils } from "jslib-common/misc/utils"; - @Directive() export class ShareComponent implements OnInit { @Input() cipherId: string; diff --git a/angular/src/components/sso.component.ts b/angular/src/components/sso.component.ts index 06d0d037..8ca584be 100644 --- a/angular/src/components/sso.component.ts +++ b/angular/src/components/sso.component.ts @@ -1,6 +1,5 @@ import { Directive } from "@angular/core"; import { ActivatedRoute, Router } from "@angular/router"; - import { first } from "rxjs/operators"; import { ApiService } from "jslib-common/abstractions/api.service"; @@ -12,9 +11,7 @@ import { LogService } from "jslib-common/abstractions/log.service"; import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; - import { Utils } from "jslib-common/misc/utils"; - import { AuthResult } from "jslib-common/models/domain/authResult"; import { SsoLogInCredentials } from "jslib-common/models/domain/logInCredentials"; diff --git a/angular/src/components/two-factor-options.component.ts b/angular/src/components/two-factor-options.component.ts index 48dd7df6..a2aabc71 100644 --- a/angular/src/components/two-factor-options.component.ts +++ b/angular/src/components/two-factor-options.component.ts @@ -1,12 +1,10 @@ import { Directive, EventEmitter, OnInit, Output } from "@angular/core"; import { Router } from "@angular/router"; -import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; - -import { AuthService } from "jslib-common/abstractions/auth.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; @Directive() export class TwoFactorOptionsComponent implements OnInit { diff --git a/angular/src/components/two-factor.component.ts b/angular/src/components/two-factor.component.ts index 16a5873a..d6b8812c 100644 --- a/angular/src/components/two-factor.component.ts +++ b/angular/src/components/two-factor.component.ts @@ -1,15 +1,8 @@ import { Directive, OnDestroy, OnInit } from "@angular/core"; - import { ActivatedRoute, Router } from "@angular/router"; - +import * as DuoWebSDK from "duo_web_sdk"; import { first } from "rxjs/operators"; -import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; - -import { TwoFactorEmailRequest } from "jslib-common/models/request/twoFactorEmailRequest"; - -import { AuthResult } from "jslib-common/models/domain/authResult"; - import { ApiService } from "jslib-common/abstractions/api.service"; import { AuthService } from "jslib-common/abstractions/auth.service"; import { EnvironmentService } from "jslib-common/abstractions/environment.service"; @@ -17,25 +10,25 @@ import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; - -import { TwoFactorProviders } from "jslib-common/services/twoFactor.service"; - -import * as DuoWebSDK from "duo_web_sdk"; import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; import { WebAuthnIFrame } from "jslib-common/misc/webauthn_iframe"; +import { AuthResult } from "jslib-common/models/domain/authResult"; +import { TwoFactorEmailRequest } from "jslib-common/models/request/twoFactorEmailRequest"; +import { TwoFactorProviders } from "jslib-common/services/twoFactor.service"; @Directive() export class TwoFactorComponent implements OnInit, OnDestroy { - token: string = ""; - remember: boolean = false; - webAuthnReady: boolean = false; - webAuthnNewTab: boolean = false; + token = ""; + remember = false; + webAuthnReady = false; + webAuthnNewTab = false; providers = TwoFactorProviders; providerType = TwoFactorProviderType; selectedProviderType: TwoFactorProviderType = TwoFactorProviderType.Authenticator; - webAuthnSupported: boolean = false; + webAuthnSupported = false; webAuthn: WebAuthnIFrame = null; - title: string = ""; + title = ""; twoFactorEmail: string = null; formPromise: Promise; emailPromise: Promise; diff --git a/angular/src/components/update-password.component.ts b/angular/src/components/update-password.component.ts index 909831c5..ce740b96 100644 --- a/angular/src/components/update-password.component.ts +++ b/angular/src/components/update-password.component.ts @@ -11,24 +11,21 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { PolicyService } from "jslib-common/abstractions/policy.service"; import { StateService } from "jslib-common/abstractions/state.service"; import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; - -import { ChangePasswordComponent as BaseChangePasswordComponent } from "./change-password.component"; - +import { VerificationType } from "jslib-common/enums/verificationType"; import { EncString } from "jslib-common/models/domain/encString"; import { MasterPasswordPolicyOptions } from "jslib-common/models/domain/masterPasswordPolicyOptions"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; import { PasswordRequest } from "jslib-common/models/request/passwordRequest"; - -import { VerificationType } from "jslib-common/enums/verificationType"; import { Verification } from "jslib-common/types/verification"; -import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { ChangePasswordComponent as BaseChangePasswordComponent } from "./change-password.component"; @Directive() export class UpdatePasswordComponent extends BaseChangePasswordComponent { hint: string; key: string; enforcedPolicyOptions: MasterPasswordPolicyOptions; - showPassword: boolean = false; + showPassword = false; currentMasterPassword: string; onSuccessfulChangePassword: () => Promise; diff --git a/angular/src/components/update-temp-password.component.ts b/angular/src/components/update-temp-password.component.ts index bff997e7..70f75cb8 100644 --- a/angular/src/components/update-temp-password.component.ts +++ b/angular/src/components/update-temp-password.component.ts @@ -10,21 +10,19 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { PolicyService } from "jslib-common/abstractions/policy.service"; import { StateService } from "jslib-common/abstractions/state.service"; import { SyncService } from "jslib-common/abstractions/sync.service"; - -import { ChangePasswordComponent as BaseChangePasswordComponent } from "./change-password.component"; - import { EncString } from "jslib-common/models/domain/encString"; import { MasterPasswordPolicyOptions } from "jslib-common/models/domain/masterPasswordPolicyOptions"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; - import { UpdateTempPasswordRequest } from "jslib-common/models/request/updateTempPasswordRequest"; +import { ChangePasswordComponent as BaseChangePasswordComponent } from "./change-password.component"; + @Directive() export class UpdateTempPasswordComponent extends BaseChangePasswordComponent { hint: string; key: string; enforcedPolicyOptions: MasterPasswordPolicyOptions; - showPassword: boolean = false; + showPassword = false; onSuccessfulChangePassword: () => Promise; diff --git a/angular/src/components/verify-master-password.component.ts b/angular/src/components/verify-master-password.component.ts index 43b64eb2..45a61581 100644 --- a/angular/src/components/verify-master-password.component.ts +++ b/angular/src/components/verify-master-password.component.ts @@ -4,9 +4,7 @@ import { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from "@angular/f import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; - import { VerificationType } from "jslib-common/enums/verificationType"; - import { Verification } from "jslib-common/types/verification"; @Component({ @@ -26,9 +24,9 @@ import { Verification } from "jslib-common/types/verification"; ], }) export class VerifyMasterPasswordComponent implements ControlValueAccessor, OnInit { - usesKeyConnector: boolean = false; - disableRequestOTP: boolean = false; - sentCode: boolean = false; + usesKeyConnector = false; + disableRequestOTP = false; + sentCode = false; secret = new FormControl(""); diff --git a/angular/src/components/view-custom-fields.component.ts b/angular/src/components/view-custom-fields.component.ts index c955eeb8..0f67aa02 100644 --- a/angular/src/components/view-custom-fields.component.ts +++ b/angular/src/components/view-custom-fields.component.ts @@ -1,10 +1,8 @@ import { Directive, Input } from "@angular/core"; +import { EventService } from "jslib-common/abstractions/event.service"; import { EventType } from "jslib-common/enums/eventType"; import { FieldType } from "jslib-common/enums/fieldType"; - -import { EventService } from "jslib-common/abstractions/event.service"; - import { CipherView } from "jslib-common/models/view/cipherView"; import { FieldView } from "jslib-common/models/view/fieldView"; diff --git a/angular/src/components/view.component.ts b/angular/src/components/view.component.ts index 9e2ea818..c92e0b0c 100644 --- a/angular/src/components/view.component.ts +++ b/angular/src/components/view.component.ts @@ -9,11 +9,6 @@ import { Output, } from "@angular/core"; -import { CipherRepromptType } from "jslib-common/enums/cipherRepromptType"; -import { CipherType } from "jslib-common/enums/cipherType"; -import { EventType } from "jslib-common/enums/eventType"; -import { FieldType } from "jslib-common/enums/fieldType"; - import { ApiService } from "jslib-common/abstractions/api.service"; import { AuditService } from "jslib-common/abstractions/audit.service"; import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; @@ -27,9 +22,11 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { StateService } from "jslib-common/abstractions/state.service"; import { TokenService } from "jslib-common/abstractions/token.service"; import { TotpService } from "jslib-common/abstractions/totp.service"; - +import { CipherRepromptType } from "jslib-common/enums/cipherRepromptType"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { EventType } from "jslib-common/enums/eventType"; +import { FieldType } from "jslib-common/enums/fieldType"; import { ErrorResponse } from "jslib-common/models/response/errorResponse"; - import { AttachmentView } from "jslib-common/models/view/attachmentView"; import { CipherView } from "jslib-common/models/view/cipherView"; import { LoginUriView } from "jslib-common/models/view/loginUriView"; @@ -60,7 +57,7 @@ export class ViewComponent implements OnDestroy, OnInit { private totpInterval: any; private previousCipherId: string; - private passwordReprompted: boolean = false; + private passwordReprompted = false; constructor( protected cipherService: CipherService, diff --git a/angular/src/directives/api-action.directive.ts b/angular/src/directives/api-action.directive.ts index 64f209c9..8fb2574b 100644 --- a/angular/src/directives/api-action.directive.ts +++ b/angular/src/directives/api-action.directive.ts @@ -1,6 +1,6 @@ import { Directive, ElementRef, Input, OnChanges } from "@angular/core"; -import { LogService } from "jslib-common/abstractions/log.service"; +import { LogService } from "jslib-common/abstractions/log.service"; import { ErrorResponse } from "jslib-common/models/response/errorResponse"; import { ValidationService } from "../services/validation.service"; diff --git a/angular/src/directives/autofocus.directive.ts b/angular/src/directives/autofocus.directive.ts index a90a8075..5c5997fa 100644 --- a/angular/src/directives/autofocus.directive.ts +++ b/angular/src/directives/autofocus.directive.ts @@ -1,5 +1,4 @@ import { Directive, ElementRef, Input, NgZone } from "@angular/core"; - import { take } from "rxjs/operators"; import { Utils } from "jslib-common/misc/utils"; diff --git a/angular/src/directives/box-row.directive.ts b/angular/src/directives/box-row.directive.ts index 049f0434..9ae94314 100644 --- a/angular/src/directives/box-row.directive.ts +++ b/angular/src/directives/box-row.directive.ts @@ -7,7 +7,7 @@ export class BoxRowDirective implements OnInit { el: HTMLElement = null; formEls: Element[]; - constructor(private elRef: ElementRef) { + constructor(elRef: ElementRef) { this.el = elRef.nativeElement; } @@ -18,7 +18,7 @@ export class BoxRowDirective implements OnInit { this.formEls.forEach((formEl) => { formEl.addEventListener( "focus", - (event: Event) => { + () => { this.el.classList.add("active"); }, false @@ -26,7 +26,7 @@ export class BoxRowDirective implements OnInit { formEl.addEventListener( "blur", - (event: Event) => { + () => { this.el.classList.remove("active"); }, false diff --git a/angular/src/directives/true-false-value.directive.ts b/angular/src/directives/true-false-value.directive.ts index 6b553c61..9e35e77e 100644 --- a/angular/src/directives/true-false-value.directive.ts +++ b/angular/src/directives/true-false-value.directive.ts @@ -1,5 +1,5 @@ import { Directive, ElementRef, forwardRef, HostListener, Input, Renderer2 } from "@angular/core"; -import { ControlValueAccessor, NgControl, NG_VALUE_ACCESSOR } from "@angular/forms"; +import { ControlValueAccessor, NG_VALUE_ACCESSOR } from "@angular/forms"; // ref: https://juristr.com/blog/2018/02/ng-true-value-directive/ @Directive({ diff --git a/angular/src/pipes/color-password.pipe.ts b/angular/src/pipes/color-password.pipe.ts index f3a87d12..c888c16d 100644 --- a/angular/src/pipes/color-password.pipe.ts +++ b/angular/src/pipes/color-password.pipe.ts @@ -1,4 +1,5 @@ import { Pipe, PipeTransform } from "@angular/core"; + import { Utils } from "jslib-common/misc/utils"; /* diff --git a/angular/src/pipes/search-ciphers.pipe.ts b/angular/src/pipes/search-ciphers.pipe.ts index 0842954c..e8bdd13e 100644 --- a/angular/src/pipes/search-ciphers.pipe.ts +++ b/angular/src/pipes/search-ciphers.pipe.ts @@ -6,7 +6,7 @@ import { CipherView } from "jslib-common/models/view/cipherView"; name: "searchCiphers", }) export class SearchCiphersPipe implements PipeTransform { - transform(ciphers: CipherView[], searchText: string, deleted: boolean = false): CipherView[] { + transform(ciphers: CipherView[], searchText: string, deleted = false): CipherView[] { if (ciphers == null || ciphers.length === 0) { return []; } diff --git a/angular/src/services/jslib-services.module.ts b/angular/src/services/jslib-services.module.ts index 6770ce14..54765078 100644 --- a/angular/src/services/jslib-services.module.ts +++ b/angular/src/services/jslib-services.module.ts @@ -1,37 +1,5 @@ import { Injector, LOCALE_ID, NgModule } from "@angular/core"; -import { ApiService } from "jslib-common/services/api.service"; -import { AppIdService } from "jslib-common/services/appId.service"; -import { AuditService } from "jslib-common/services/audit.service"; -import { AuthService } from "jslib-common/services/auth.service"; -import { CipherService } from "jslib-common/services/cipher.service"; -import { CollectionService } from "jslib-common/services/collection.service"; -import { ConsoleLogService } from "jslib-common/services/consoleLog.service"; -import { CryptoService } from "jslib-common/services/crypto.service"; -import { EnvironmentService } from "jslib-common/services/environment.service"; -import { EventService } from "jslib-common/services/event.service"; -import { ExportService } from "jslib-common/services/export.service"; -import { FileUploadService } from "jslib-common/services/fileUpload.service"; -import { FolderService } from "jslib-common/services/folder.service"; -import { KeyConnectorService } from "jslib-common/services/keyConnector.service"; -import { NotificationsService } from "jslib-common/services/notifications.service"; -import { OrganizationService } from "jslib-common/services/organization.service"; -import { PasswordGenerationService } from "jslib-common/services/passwordGeneration.service"; -import { PolicyService } from "jslib-common/services/policy.service"; -import { ProviderService } from "jslib-common/services/provider.service"; -import { SearchService } from "jslib-common/services/search.service"; -import { SendService } from "jslib-common/services/send.service"; -import { SettingsService } from "jslib-common/services/settings.service"; -import { StateService } from "jslib-common/services/state.service"; -import { StateMigrationService } from "jslib-common/services/stateMigration.service"; -import { SyncService } from "jslib-common/services/sync.service"; -import { TokenService } from "jslib-common/services/token.service"; -import { TotpService } from "jslib-common/services/totp.service"; -import { TwoFactorService } from "jslib-common/services/twoFactor.service"; -import { UserVerificationService } from "jslib-common/services/userVerification.service"; -import { VaultTimeoutService } from "jslib-common/services/vaultTimeout.service"; -import { WebCryptoFunctionService } from "jslib-common/services/webCryptoFunction.service"; - import { ApiService as ApiServiceAbstraction } from "jslib-common/abstractions/api.service"; import { AppIdService as AppIdServiceAbstraction } from "jslib-common/abstractions/appId.service"; import { AuditService as AuditServiceAbstraction } from "jslib-common/abstractions/audit.service"; @@ -69,6 +37,40 @@ import { TotpService as TotpServiceAbstraction } from "jslib-common/abstractions import { TwoFactorService as TwoFactorServiceAbstraction } from "jslib-common/abstractions/twoFactor.service"; import { UserVerificationService as UserVerificationServiceAbstraction } from "jslib-common/abstractions/userVerification.service"; import { VaultTimeoutService as VaultTimeoutServiceAbstraction } from "jslib-common/abstractions/vaultTimeout.service"; +import { StateFactory } from "jslib-common/factories/stateFactory"; +import { Account } from "jslib-common/models/domain/account"; +import { GlobalState } from "jslib-common/models/domain/globalState"; +import { ApiService } from "jslib-common/services/api.service"; +import { AppIdService } from "jslib-common/services/appId.service"; +import { AuditService } from "jslib-common/services/audit.service"; +import { AuthService } from "jslib-common/services/auth.service"; +import { CipherService } from "jslib-common/services/cipher.service"; +import { CollectionService } from "jslib-common/services/collection.service"; +import { ConsoleLogService } from "jslib-common/services/consoleLog.service"; +import { CryptoService } from "jslib-common/services/crypto.service"; +import { EnvironmentService } from "jslib-common/services/environment.service"; +import { EventService } from "jslib-common/services/event.service"; +import { ExportService } from "jslib-common/services/export.service"; +import { FileUploadService } from "jslib-common/services/fileUpload.service"; +import { FolderService } from "jslib-common/services/folder.service"; +import { KeyConnectorService } from "jslib-common/services/keyConnector.service"; +import { NotificationsService } from "jslib-common/services/notifications.service"; +import { OrganizationService } from "jslib-common/services/organization.service"; +import { PasswordGenerationService } from "jslib-common/services/passwordGeneration.service"; +import { PolicyService } from "jslib-common/services/policy.service"; +import { ProviderService } from "jslib-common/services/provider.service"; +import { SearchService } from "jslib-common/services/search.service"; +import { SendService } from "jslib-common/services/send.service"; +import { SettingsService } from "jslib-common/services/settings.service"; +import { StateService } from "jslib-common/services/state.service"; +import { StateMigrationService } from "jslib-common/services/stateMigration.service"; +import { SyncService } from "jslib-common/services/sync.service"; +import { TokenService } from "jslib-common/services/token.service"; +import { TotpService } from "jslib-common/services/totp.service"; +import { TwoFactorService } from "jslib-common/services/twoFactor.service"; +import { UserVerificationService } from "jslib-common/services/userVerification.service"; +import { VaultTimeoutService } from "jslib-common/services/vaultTimeout.service"; +import { WebCryptoFunctionService } from "jslib-common/services/webCryptoFunction.service"; import { AuthGuardService } from "./auth-guard.service"; import { BroadcasterService } from "./broadcaster.service"; @@ -78,12 +80,6 @@ import { PasswordRepromptService } from "./passwordReprompt.service"; import { UnauthGuardService } from "./unauth-guard.service"; import { ValidationService } from "./validation.service"; -import { Account } from "jslib-common/models/domain/account"; -import { GlobalState } from "jslib-common/models/domain/globalState"; - -import { GlobalStateFactory } from "jslib-common/factories/globalStateFactory"; -import { StateFactory } from "jslib-common/factories/stateFactory"; - @NgModule({ declarations: [], providers: [ diff --git a/angular/src/services/modal.service.ts b/angular/src/services/modal.service.ts index f487c579..aecc84c6 100644 --- a/angular/src/services/modal.service.ts +++ b/angular/src/services/modal.service.ts @@ -17,7 +17,7 @@ import { ModalRef } from "../components/modal/modal.ref"; export class ModalConfig { data?: D; - allowMultipleModals: boolean = false; + allowMultipleModals = false; } @Injectable() @@ -68,6 +68,7 @@ export class ModalService { return; } + // eslint-disable-next-line const [modalRef, _] = this.openInternal(componentType, config, true); return modalRef; @@ -145,7 +146,7 @@ export class ModalService { el.querySelectorAll('.modal-backdrop, .modal *[data-dismiss="modal"]') ); for (const closeElement of modals) { - closeElement.addEventListener("click", (event) => { + closeElement.addEventListener("click", () => { modalRef.close(); }); } diff --git a/angular/src/services/passwordReprompt.service.ts b/angular/src/services/passwordReprompt.service.ts index 58ae5190..eb86c85d 100644 --- a/angular/src/services/passwordReprompt.service.ts +++ b/angular/src/services/passwordReprompt.service.ts @@ -4,6 +4,7 @@ import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.serv import { PasswordRepromptService as PasswordRepromptServiceAbstraction } from "jslib-common/abstractions/passwordReprompt.service"; import { PasswordRepromptComponent } from "../components/password-reprompt.component"; + import { ModalService } from "./modal.service"; @Injectable() diff --git a/angular/src/services/validation.service.ts b/angular/src/services/validation.service.ts index 9cb04b38..865f6458 100644 --- a/angular/src/services/validation.service.ts +++ b/angular/src/services/validation.service.ts @@ -2,7 +2,6 @@ import { Injectable } from "@angular/core"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - import { ErrorResponse } from "jslib-common/models/response/errorResponse"; @Injectable() diff --git a/common/package.json b/common/package.json index 95b2f817..d045ceae 100644 --- a/common/package.json +++ b/common/package.json @@ -15,9 +15,7 @@ "scripts": { "clean": "rimraf dist/**/*", "build": "npm run clean && tsc", - "build:watch": "npm run clean && tsc -watch", - "lint": "tslint 'src/**/*.ts' 'spec/**/*.ts'", - "lint:fix": "tslint 'src/**/*.ts' 'spec/**/*.ts' --fix" + "build:watch": "npm run clean && tsc -watch" }, "devDependencies": { "@types/lunr": "^2.3.3", diff --git a/common/src/abstractions/api.service.ts b/common/src/abstractions/api.service.ts index a23b311b..c9970ce8 100644 --- a/common/src/abstractions/api.service.ts +++ b/common/src/abstractions/api.service.ts @@ -1,9 +1,7 @@ import { PolicyType } from "../enums/policyType"; import { SetKeyConnectorKeyRequest } from "../models/request/account/setKeyConnectorKeyRequest"; import { VerifyOTPRequest } from "../models/request/account/verifyOTPRequest"; - import { AttachmentRequest } from "../models/request/attachmentRequest"; - import { BitPayInvoiceRequest } from "../models/request/bitPayInvoiceRequest"; import { CipherBulkDeleteRequest } from "../models/request/cipherBulkDeleteRequest"; import { CipherBulkMoveRequest } from "../models/request/cipherBulkMoveRequest"; @@ -26,6 +24,9 @@ import { EventRequest } from "../models/request/eventRequest"; import { FolderRequest } from "../models/request/folderRequest"; import { GroupRequest } from "../models/request/groupRequest"; import { IapCheckRequest } from "../models/request/iapCheckRequest"; +import { ApiTokenRequest } from "../models/request/identityToken/apiTokenRequest"; +import { PasswordTokenRequest } from "../models/request/identityToken/passwordTokenRequest"; +import { SsoTokenRequest } from "../models/request/identityToken/ssoTokenRequest"; import { ImportCiphersRequest } from "../models/request/importCiphersRequest"; import { ImportDirectoryRequest } from "../models/request/importDirectoryRequest"; import { ImportOrganizationCiphersRequest } from "../models/request/importOrganizationCiphersRequest"; @@ -91,11 +92,6 @@ import { UpdateTwoFactorYubioOtpRequest } from "../models/request/updateTwoFacto import { VerifyBankRequest } from "../models/request/verifyBankRequest"; import { VerifyDeleteRecoverRequest } from "../models/request/verifyDeleteRecoverRequest"; import { VerifyEmailRequest } from "../models/request/verifyEmailRequest"; - -import { ApiTokenRequest } from "../models/request/identityToken/apiTokenRequest"; -import { PasswordTokenRequest } from "../models/request/identityToken/passwordTokenRequest"; -import { SsoTokenRequest } from "../models/request/identityToken/ssoTokenRequest"; - import { ApiKeyResponse } from "../models/response/apiKeyResponse"; import { AttachmentResponse } from "../models/response/attachmentResponse"; import { AttachmentUploadDataResponse } from "../models/response/attachmentUploadDataResponse"; @@ -169,7 +165,6 @@ import { } from "../models/response/twoFactorWebAuthnResponse"; import { TwoFactorYubiKeyResponse } from "../models/response/twoFactorYubiKeyResponse"; import { UserKeyResponse } from "../models/response/userKeyResponse"; - import { SendAccessView } from "../models/view/sendAccessView"; export abstract class ApiService { diff --git a/common/src/abstractions/auth.service.ts b/common/src/abstractions/auth.service.ts index ec36acc8..fddf5651 100644 --- a/common/src/abstractions/auth.service.ts +++ b/common/src/abstractions/auth.service.ts @@ -5,7 +5,6 @@ import { SsoLogInCredentials, } from "../models/domain/logInCredentials"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - import { TokenRequestTwoFactor } from "../models/request/identityToken/tokenRequest"; export abstract class AuthService { @@ -15,7 +14,7 @@ export abstract class AuthService { credentials: ApiLogInCredentials | PasswordLogInCredentials | SsoLogInCredentials ) => Promise; logInTwoFactor: (twoFactor: TokenRequestTwoFactor) => Promise; - logOut: (callback: Function) => void; + logOut: (callback: () => void) => void; makePreloginKey: (masterPassword: string, email: string) => Promise; authingWithApiKey: () => boolean; authingWithSso: () => boolean; diff --git a/common/src/abstractions/cipher.service.ts b/common/src/abstractions/cipher.service.ts index c1c1437a..a87a6f0a 100644 --- a/common/src/abstractions/cipher.service.ts +++ b/common/src/abstractions/cipher.service.ts @@ -1,12 +1,9 @@ import { CipherType } from "../enums/cipherType"; import { UriMatchType } from "../enums/uriMatchType"; - import { CipherData } from "../models/data/cipherData"; - import { Cipher } from "../models/domain/cipher"; import { Field } from "../models/domain/field"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - import { CipherView } from "../models/view/cipherView"; import { FieldView } from "../models/view/fieldView"; diff --git a/common/src/abstractions/collection.service.ts b/common/src/abstractions/collection.service.ts index f5880e47..0673e906 100644 --- a/common/src/abstractions/collection.service.ts +++ b/common/src/abstractions/collection.service.ts @@ -1,8 +1,6 @@ import { CollectionData } from "../models/data/collectionData"; - import { Collection } from "../models/domain/collection"; import { TreeNode } from "../models/domain/treeNode"; - import { CollectionView } from "../models/view/collectionView"; export abstract class CollectionService { diff --git a/common/src/abstractions/crypto.service.ts b/common/src/abstractions/crypto.service.ts index 3397d0d5..bc61ba7e 100644 --- a/common/src/abstractions/crypto.service.ts +++ b/common/src/abstractions/crypto.service.ts @@ -1,14 +1,12 @@ -import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; -import { EncString } from "../models/domain/encString"; -import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - -import { ProfileOrganizationResponse } from "../models/response/profileOrganizationResponse"; -import { ProfileProviderOrganizationResponse } from "../models/response/profileProviderOrganizationResponse"; -import { ProfileProviderResponse } from "../models/response/profileProviderResponse"; - import { HashPurpose } from "../enums/hashPurpose"; import { KdfType } from "../enums/kdfType"; import { KeySuffixOptions } from "../enums/keySuffixOptions"; +import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; +import { EncString } from "../models/domain/encString"; +import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; +import { ProfileOrganizationResponse } from "../models/response/profileOrganizationResponse"; +import { ProfileProviderOrganizationResponse } from "../models/response/profileProviderOrganizationResponse"; +import { ProfileProviderResponse } from "../models/response/profileProviderResponse"; export abstract class CryptoService { setKey: (key: SymmetricCryptoKey) => Promise; diff --git a/common/src/abstractions/folder.service.ts b/common/src/abstractions/folder.service.ts index 139525e0..574cebfc 100644 --- a/common/src/abstractions/folder.service.ts +++ b/common/src/abstractions/folder.service.ts @@ -1,9 +1,7 @@ import { FolderData } from "../models/data/folderData"; - import { Folder } from "../models/domain/folder"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; import { TreeNode } from "../models/domain/treeNode"; - import { FolderView } from "../models/view/folderView"; export abstract class FolderService { diff --git a/common/src/abstractions/keyConnector.service.ts b/common/src/abstractions/keyConnector.service.ts index 5b1ca3a3..b8f3bf7c 100644 --- a/common/src/abstractions/keyConnector.service.ts +++ b/common/src/abstractions/keyConnector.service.ts @@ -1,5 +1,4 @@ import { Organization } from "../models/domain/organization"; - import { IdentityTokenResponse } from "../models/response/identityTokenResponse"; export abstract class KeyConnectorService { diff --git a/common/src/abstractions/organization.service.ts b/common/src/abstractions/organization.service.ts index a878335d..8c252430 100644 --- a/common/src/abstractions/organization.service.ts +++ b/common/src/abstractions/organization.service.ts @@ -1,5 +1,4 @@ import { OrganizationData } from "../models/data/organizationData"; - import { Organization } from "../models/domain/organization"; export abstract class OrganizationService { diff --git a/common/src/abstractions/policy.service.ts b/common/src/abstractions/policy.service.ts index f1f6b4e5..24dcc996 100644 --- a/common/src/abstractions/policy.service.ts +++ b/common/src/abstractions/policy.service.ts @@ -1,14 +1,11 @@ +import { PolicyType } from "../enums/policyType"; import { PolicyData } from "../models/data/policyData"; - import { MasterPasswordPolicyOptions } from "../models/domain/masterPasswordPolicyOptions"; import { Policy } from "../models/domain/policy"; import { ResetPasswordPolicyOptions } from "../models/domain/resetPasswordPolicyOptions"; - import { ListResponse } from "../models/response/listResponse"; import { PolicyResponse } from "../models/response/policyResponse"; -import { PolicyType } from "../enums/policyType"; - export abstract class PolicyService { clearCache: () => void; getAll: (type?: PolicyType, userId?: string) => Promise; diff --git a/common/src/abstractions/provider.service.ts b/common/src/abstractions/provider.service.ts index e3e86a1a..e4746369 100644 --- a/common/src/abstractions/provider.service.ts +++ b/common/src/abstractions/provider.service.ts @@ -1,5 +1,4 @@ import { ProviderData } from "../models/data/providerData"; - import { Provider } from "../models/domain/provider"; export abstract class ProviderService { diff --git a/common/src/abstractions/send.service.ts b/common/src/abstractions/send.service.ts index 37b806f2..3331e41e 100644 --- a/common/src/abstractions/send.service.ts +++ b/common/src/abstractions/send.service.ts @@ -1,9 +1,7 @@ import { SendData } from "../models/data/sendData"; - import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; import { Send } from "../models/domain/send"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - import { SendView } from "../models/view/sendView"; export abstract class SendService { diff --git a/common/src/abstractions/state.service.ts b/common/src/abstractions/state.service.ts index 49d3e2f6..66f4bada 100644 --- a/common/src/abstractions/state.service.ts +++ b/common/src/abstractions/state.service.ts @@ -3,7 +3,6 @@ import { BehaviorSubject } from "rxjs"; import { KdfType } from "../enums/kdfType"; import { ThemeType } from "../enums/themeType"; import { UriMatchType } from "../enums/uriMatchType"; - import { CipherData } from "../models/data/cipherData"; import { CollectionData } from "../models/data/collectionData"; import { EventData } from "../models/data/eventData"; @@ -12,7 +11,6 @@ import { OrganizationData } from "../models/data/organizationData"; import { PolicyData } from "../models/data/policyData"; import { ProviderData } from "../models/data/providerData"; import { SendData } from "../models/data/sendData"; - import { Account } from "../models/domain/account"; import { EncString } from "../models/domain/encString"; import { EnvironmentUrls } from "../models/domain/environmentUrls"; @@ -21,7 +19,6 @@ import { Policy } from "../models/domain/policy"; import { StorageOptions } from "../models/domain/storageOptions"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; import { WindowState } from "../models/domain/windowState"; - import { CipherView } from "../models/view/cipherView"; import { CollectionView } from "../models/view/collectionView"; import { FolderView } from "../models/view/folderView"; diff --git a/common/src/abstractions/twoFactor.service.ts b/common/src/abstractions/twoFactor.service.ts index 071f6e7e..74f09167 100644 --- a/common/src/abstractions/twoFactor.service.ts +++ b/common/src/abstractions/twoFactor.service.ts @@ -1,5 +1,4 @@ import { TwoFactorProviderType } from "../enums/twoFactorProviderType"; - import { IdentityTwoFactorResponse } from "../models/response/identityTwoFactorResponse"; export interface TwoFactorProviderDetails { diff --git a/common/src/abstractions/userVerification.service.ts b/common/src/abstractions/userVerification.service.ts index 42370ae1..ebd7d1f3 100644 --- a/common/src/abstractions/userVerification.service.ts +++ b/common/src/abstractions/userVerification.service.ts @@ -1,5 +1,4 @@ import { SecretVerificationRequest } from "../models/request/secretVerificationRequest"; - import { Verification } from "../types/verification"; export abstract class UserVerificationService { diff --git a/common/src/factories/stateFactory.ts b/common/src/factories/stateFactory.ts index 4672fa59..203ae672 100644 --- a/common/src/factories/stateFactory.ts +++ b/common/src/factories/stateFactory.ts @@ -1,5 +1,6 @@ import { Account } from "../models/domain/account"; import { GlobalState } from "../models/domain/globalState"; + import { AccountFactory } from "./accountFactory"; import { GlobalStateFactory } from "./globalStateFactory"; diff --git a/common/src/importers/ascendoCsvImporter.ts b/common/src/importers/ascendoCsvImporter.ts index aed1c3ab..75191a1c 100644 --- a/common/src/importers/ascendoCsvImporter.ts +++ b/common/src/importers/ascendoCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class AscendoCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/avastCsvImporter.ts b/common/src/importers/avastCsvImporter.ts index 9629fb2f..9bf10639 100644 --- a/common/src/importers/avastCsvImporter.ts +++ b/common/src/importers/avastCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class AvastCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/avastJsonImporter.ts b/common/src/importers/avastJsonImporter.ts index fe853539..0d424a71 100644 --- a/common/src/importers/avastJsonImporter.ts +++ b/common/src/importers/avastJsonImporter.ts @@ -1,10 +1,9 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - -import { ImportResult } from "../models/domain/importResult"; - import { CipherType } from "../enums/cipherType"; import { SecureNoteType } from "../enums/secureNoteType"; +import { ImportResult } from "../models/domain/importResult"; + +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class AvastJsonImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/common/src/importers/aviraCsvImporter.ts b/common/src/importers/aviraCsvImporter.ts index fa983080..f4c578b0 100644 --- a/common/src/importers/aviraCsvImporter.ts +++ b/common/src/importers/aviraCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class AviraCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/baseImporter.ts b/common/src/importers/baseImporter.ts index 65253c71..f24d1f19 100644 --- a/common/src/importers/baseImporter.ts +++ b/common/src/importers/baseImporter.ts @@ -1,25 +1,18 @@ import * as papa from "papaparse"; import { LogService } from "../abstractions/log.service"; - -import { ImportResult } from "../models/domain/importResult"; - -import { CipherView } from "../models/view/cipherView"; -import { CollectionView } from "../models/view/collectionView"; -import { LoginUriView } from "../models/view/loginUriView"; - -import { Utils } from "../misc/utils"; - -import { FieldView } from "../models/view/fieldView"; -import { FolderView } from "../models/view/folderView"; -import { LoginView } from "../models/view/loginView"; -import { SecureNoteView } from "../models/view/secureNoteView"; - -import { CipherRepromptType } from "../enums/cipherRepromptType"; import { CipherType } from "../enums/cipherType"; import { FieldType } from "../enums/fieldType"; import { SecureNoteType } from "../enums/secureNoteType"; - +import { Utils } from "../misc/utils"; +import { ImportResult } from "../models/domain/importResult"; +import { CipherView } from "../models/view/cipherView"; +import { CollectionView } from "../models/view/collectionView"; +import { FieldView } from "../models/view/fieldView"; +import { FolderView } from "../models/view/folderView"; +import { LoginUriView } from "../models/view/loginUriView"; +import { LoginView } from "../models/view/loginView"; +import { SecureNoteView } from "../models/view/secureNoteView"; import { ConsoleLogService } from "../services/consoleLog.service"; export abstract class BaseImporter { @@ -161,7 +154,6 @@ export abstract class BaseImporter { if (result.errors != null && result.errors.length > 0) { result.errors.forEach((e) => { if (e.row != null) { - // tslint:disable-next-line this.logService.warning("Error parsing row " + e.row + ": " + e.message); } }); diff --git a/common/src/importers/bitwardenCsvImporter.ts b/common/src/importers/bitwardenCsvImporter.ts index b7ec11c3..cc5419c3 100644 --- a/common/src/importers/bitwardenCsvImporter.ts +++ b/common/src/importers/bitwardenCsvImporter.ts @@ -1,19 +1,16 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - -import { ImportResult } from "../models/domain/importResult"; - -import { CipherView } from "../models/view/cipherView"; -import { CollectionView } from "../models/view/collectionView"; -import { FieldView } from "../models/view/fieldView"; -import { FolderView } from "../models/view/folderView"; -import { LoginView } from "../models/view/loginView"; -import { SecureNoteView } from "../models/view/secureNoteView"; - import { CipherRepromptType } from "../enums/cipherRepromptType"; import { CipherType } from "../enums/cipherType"; import { FieldType } from "../enums/fieldType"; import { SecureNoteType } from "../enums/secureNoteType"; +import { ImportResult } from "../models/domain/importResult"; +import { CipherView } from "../models/view/cipherView"; +import { CollectionView } from "../models/view/collectionView"; +import { FieldView } from "../models/view/fieldView"; +import { LoginView } from "../models/view/loginView"; +import { SecureNoteView } from "../models/view/secureNoteView"; + +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class BitwardenCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { @@ -63,7 +60,7 @@ export class BitwardenCsvImporter extends BaseImporter implements Importer { 10 ); } catch (e) { - // tslint:disable-next-line + // eslint-disable-next-line console.error("Unable to parse reprompt value", e); cipher.reprompt = CipherRepromptType.None; } @@ -102,7 +99,7 @@ export class BitwardenCsvImporter extends BaseImporter implements Importer { cipher.secureNote = new SecureNoteView(); cipher.secureNote.type = SecureNoteType.Generic; break; - default: + default: { cipher.type = CipherType.Login; cipher.login = new LoginView(); cipher.login.totp = this.getValueOrDefault(value.login_totp || value.totp); @@ -111,6 +108,7 @@ export class BitwardenCsvImporter extends BaseImporter implements Importer { const uris = this.parseSingleRowCsv(value.login_uri || value.uri); cipher.login.uris = this.makeUriArray(uris); break; + } } result.ciphers.push(cipher); diff --git a/common/src/importers/bitwardenJsonImporter.ts b/common/src/importers/bitwardenJsonImporter.ts index bef77860..52a4156b 100644 --- a/common/src/importers/bitwardenJsonImporter.ts +++ b/common/src/importers/bitwardenJsonImporter.ts @@ -1,15 +1,13 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CryptoService } from "../abstractions/crypto.service"; +import { I18nService } from "../abstractions/i18n.service"; import { EncString } from "../models/domain/encString"; import { ImportResult } from "../models/domain/importResult"; - import { CipherWithIds } from "../models/export/cipherWithIds"; import { CollectionWithId } from "../models/export/collectionWithId"; import { FolderWithId } from "../models/export/folderWithId"; -import { CryptoService } from "../abstractions/crypto.service"; -import { I18nService } from "../abstractions/i18n.service"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class BitwardenJsonImporter extends BaseImporter implements Importer { private results: any; diff --git a/common/src/importers/bitwardenPasswordProtectedImporter.ts b/common/src/importers/bitwardenPasswordProtectedImporter.ts index 1e193212..a08b36da 100644 --- a/common/src/importers/bitwardenPasswordProtectedImporter.ts +++ b/common/src/importers/bitwardenPasswordProtectedImporter.ts @@ -1,15 +1,14 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - -import { EncString } from "../models/domain/encString"; -import { ImportResult } from "../models/domain/importResult"; - import { CryptoService } from "../abstractions/crypto.service"; import { I18nService } from "../abstractions/i18n.service"; import { ImportService } from "../abstractions/import.service"; import { KdfType } from "../enums/kdfType"; +import { EncString } from "../models/domain/encString"; +import { ImportResult } from "../models/domain/importResult"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; + class BitwardenPasswordProtectedFileFormat { encrypted: boolean; passwordProtected: boolean; @@ -17,7 +16,6 @@ class BitwardenPasswordProtectedFileFormat { salt: string; kdfIterations: number; kdfType: number; - // tslint:disable-next-line encKeyValidation_DO_NOT_EDIT: string; data: string; } diff --git a/common/src/importers/blackBerryCsvImporter.ts b/common/src/importers/blackBerryCsvImporter.ts index f54593b0..ea3d08eb 100644 --- a/common/src/importers/blackBerryCsvImporter.ts +++ b/common/src/importers/blackBerryCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class BlackBerryCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/blurCsvImporter.ts b/common/src/importers/blurCsvImporter.ts index 449ccb32..ca9ecd1c 100644 --- a/common/src/importers/blurCsvImporter.ts +++ b/common/src/importers/blurCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class BlurCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/buttercupCsvImporter.ts b/common/src/importers/buttercupCsvImporter.ts index 4961adbf..aa3dda2d 100644 --- a/common/src/importers/buttercupCsvImporter.ts +++ b/common/src/importers/buttercupCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - const OfficialProps = ["!group_id", "!group_name", "title", "username", "password", "URL", "id"]; export class ButtercupCsvImporter extends BaseImporter implements Importer { @@ -25,6 +25,7 @@ export class ButtercupCsvImporter extends BaseImporter implements Importer { let processingCustomFields = false; for (const prop in value) { + // eslint-disable-next-line if (value.hasOwnProperty(prop)) { if (!processingCustomFields && OfficialProps.indexOf(prop) === -1) { processingCustomFields = true; diff --git a/common/src/importers/chromeCsvImporter.ts b/common/src/importers/chromeCsvImporter.ts index 41fbc251..35c72ac3 100644 --- a/common/src/importers/chromeCsvImporter.ts +++ b/common/src/importers/chromeCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class ChromeCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/clipperzHtmlImporter.ts b/common/src/importers/clipperzHtmlImporter.ts index 8646b267..c4f0402c 100644 --- a/common/src/importers/clipperzHtmlImporter.ts +++ b/common/src/importers/clipperzHtmlImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class ClipperzHtmlImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); @@ -31,6 +31,7 @@ export class ClipperzHtmlImporter extends BaseImporter implements Importer { if (entry.currentVersion != null && entry.currentVersion.fields != null) { for (const property in entry.currentVersion.fields) { + // eslint-disable-next-line if (!entry.currentVersion.fields.hasOwnProperty(property)) { continue; } @@ -50,7 +51,7 @@ export class ClipperzHtmlImporter extends BaseImporter implements Importer { case "url": cipher.login.uris = this.makeUriArray(field.value); break; - default: + default: { const labelLower = field.label != null ? field.label.toLowerCase() : null; if ( cipher.login.password == null && @@ -71,6 +72,7 @@ export class ClipperzHtmlImporter extends BaseImporter implements Importer { this.processKvp(cipher, field.label, field.value); } break; + } } } } diff --git a/common/src/importers/codebookCsvImporter.ts b/common/src/importers/codebookCsvImporter.ts index 4d7aeab8..f842f21c 100644 --- a/common/src/importers/codebookCsvImporter.ts +++ b/common/src/importers/codebookCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class CodebookCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/dashlaneJsonImporter.ts b/common/src/importers/dashlaneJsonImporter.ts index b3dff318..fea540ef 100644 --- a/common/src/importers/dashlaneJsonImporter.ts +++ b/common/src/importers/dashlaneJsonImporter.ts @@ -1,15 +1,13 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; +import { SecureNoteType } from "../enums/secureNoteType"; import { ImportResult } from "../models/domain/importResult"; - import { CardView } from "../models/view/cardView"; import { CipherView } from "../models/view/cipherView"; import { IdentityView } from "../models/view/identityView"; import { SecureNoteView } from "../models/view/secureNoteView"; -import { CipherType } from "../enums/cipherType"; -import { SecureNoteType } from "../enums/secureNoteType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; const HandledResults = new Set([ "ADDRESS", @@ -53,6 +51,7 @@ export class DashlaneJsonImporter extends BaseImporter implements Importer { } for (const key in results) { + // eslint-disable-next-line if (results.hasOwnProperty(key) && !HandledResults.has(key)) { this.processNote(results[key], null, "Generic Note"); } @@ -161,6 +160,7 @@ export class DashlaneJsonImporter extends BaseImporter implements Importer { cipher.name = this.getValueOrDefault(obj[nameProperty]); } for (const key in obj) { + // eslint-disable-next-line if (obj.hasOwnProperty(key) && key !== nameProperty) { this.processKvp(cipher, key, obj[key].toString()); } diff --git a/common/src/importers/encryptrCsvImporter.ts b/common/src/importers/encryptrCsvImporter.ts index 84f55e09..8c3e9e08 100644 --- a/common/src/importers/encryptrCsvImporter.ts +++ b/common/src/importers/encryptrCsvImporter.ts @@ -1,11 +1,9 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; import { ImportResult } from "../models/domain/importResult"; - import { CardView } from "../models/view/cardView"; -import { CipherType } from "../enums/cipherType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class EncryptrCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/common/src/importers/enpassCsvImporter.ts b/common/src/importers/enpassCsvImporter.ts index 5f9ad54e..b5eb0b60 100644 --- a/common/src/importers/enpassCsvImporter.ts +++ b/common/src/importers/enpassCsvImporter.ts @@ -1,14 +1,12 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - -import { ImportResult } from "../models/domain/importResult"; - import { CipherType } from "../enums/cipherType"; import { SecureNoteType } from "../enums/secureNoteType"; - +import { ImportResult } from "../models/domain/importResult"; import { CardView } from "../models/view/cardView"; import { SecureNoteView } from "../models/view/secureNoteView"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; + export class EnpassCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/enpassJsonImporter.ts b/common/src/importers/enpassJsonImporter.ts index 631fbc51..033c5995 100644 --- a/common/src/importers/enpassJsonImporter.ts +++ b/common/src/importers/enpassJsonImporter.ts @@ -1,14 +1,12 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; +import { FieldType } from "../enums/fieldType"; import { ImportResult } from "../models/domain/importResult"; - import { CardView } from "../models/view/cardView"; import { CipherView } from "../models/view/cipherView"; import { FolderView } from "../models/view/folderView"; -import { CipherType } from "../enums/cipherType"; -import { FieldType } from "../enums/fieldType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class EnpassJsonImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/common/src/importers/firefoxCsvImporter.ts b/common/src/importers/firefoxCsvImporter.ts index 3fc97a63..1b71aac9 100644 --- a/common/src/importers/firefoxCsvImporter.ts +++ b/common/src/importers/firefoxCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class FirefoxCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/fsecureFskImporter.ts b/common/src/importers/fsecureFskImporter.ts index 91564fe1..c81a0820 100644 --- a/common/src/importers/fsecureFskImporter.ts +++ b/common/src/importers/fsecureFskImporter.ts @@ -1,11 +1,9 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; import { ImportResult } from "../models/domain/importResult"; - import { CardView } from "../models/view/cardView"; -import { CipherType } from "../enums/cipherType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class FSecureFskImporter extends BaseImporter implements Importer { parse(data: string): Promise { @@ -17,6 +15,7 @@ export class FSecureFskImporter extends BaseImporter implements Importer { } for (const key in results.data) { + // eslint-disable-next-line if (!results.data.hasOwnProperty(key)) { continue; } diff --git a/common/src/importers/gnomeJsonImporter.ts b/common/src/importers/gnomeJsonImporter.ts index 98dc79b5..1dfac675 100644 --- a/common/src/importers/gnomeJsonImporter.ts +++ b/common/src/importers/gnomeJsonImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class GnomeJsonImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); @@ -14,7 +14,7 @@ export class GnomeJsonImporter extends BaseImporter implements Importer { for (const keyRing in results) { if ( - !results.hasOwnProperty(keyRing) || + !results.hasOwnProperty(keyRing) || // eslint-disable-line this.isNullOrWhitespace(keyRing) || results[keyRing].length === 0 ) { @@ -45,7 +45,7 @@ export class GnomeJsonImporter extends BaseImporter implements Importer { : null; for (const attr in value.attributes) { if ( - !value.attributes.hasOwnProperty(attr) || + !value.attributes.hasOwnProperty(attr) || // eslint-disable-line attr === "username_value" || attr === "xdg:schema" ) { diff --git a/common/src/importers/kasperskyTxtImporter.ts b/common/src/importers/kasperskyTxtImporter.ts index b4745e1d..b049f2bb 100644 --- a/common/src/importers/kasperskyTxtImporter.ts +++ b/common/src/importers/kasperskyTxtImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - const NotesHeader = "Notes\n\n"; const ApplicationsHeader = "Applications\n\n"; const WebsitesHeader = "Websites\n\n"; diff --git a/common/src/importers/keepass2XmlImporter.ts b/common/src/importers/keepass2XmlImporter.ts index f6a61cf8..2ed5d0f9 100644 --- a/common/src/importers/keepass2XmlImporter.ts +++ b/common/src/importers/keepass2XmlImporter.ts @@ -1,12 +1,10 @@ +import { FieldType } from "../enums/fieldType"; +import { ImportResult } from "../models/domain/importResult"; +import { FolderView } from "../models/view/folderView"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { FieldType } from "../enums/fieldType"; - -import { ImportResult } from "../models/domain/importResult"; - -import { FolderView } from "../models/view/folderView"; - export class KeePass2XmlImporter extends BaseImporter implements Importer { result = new ImportResult(); diff --git a/common/src/importers/keepassxCsvImporter.ts b/common/src/importers/keepassxCsvImporter.ts index 6c5812bd..58640d5a 100644 --- a/common/src/importers/keepassxCsvImporter.ts +++ b/common/src/importers/keepassxCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class KeePassXCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/keeperImporters/keeperCsvImporter.ts b/common/src/importers/keeperImporters/keeperCsvImporter.ts index 56861b79..e9c65d71 100644 --- a/common/src/importers/keeperImporters/keeperCsvImporter.ts +++ b/common/src/importers/keeperImporters/keeperCsvImporter.ts @@ -1,10 +1,7 @@ +import { ImportResult } from "../../models/domain/importResult"; import { BaseImporter } from "../baseImporter"; import { Importer } from "../importer"; -import { ImportResult } from "../../models/domain/importResult"; - -import { FolderView } from "../../models/view/folderView"; - export class KeeperCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/keeperImporters/keeperJsonImporter.ts b/common/src/importers/keeperImporters/keeperJsonImporter.ts index 47e41114..7ee80b08 100644 --- a/common/src/importers/keeperImporters/keeperJsonImporter.ts +++ b/common/src/importers/keeperImporters/keeperJsonImporter.ts @@ -1,8 +1,7 @@ +import { ImportResult } from "../../models/domain/importResult"; import { BaseImporter } from "../baseImporter"; import { Importer } from "../importer"; -import { ImportResult } from "../../models/domain/importResult"; - import { KeeperJsonExport, RecordsEntity } from "./types/keeperJsonTypes"; export class KeeperJsonImporter extends BaseImporter implements Importer { diff --git a/common/src/importers/lastpassCsvImporter.ts b/common/src/importers/lastpassCsvImporter.ts index 2b8f0a4b..5c016028 100644 --- a/common/src/importers/lastpassCsvImporter.ts +++ b/common/src/importers/lastpassCsvImporter.ts @@ -1,8 +1,6 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; +import { SecureNoteType } from "../enums/secureNoteType"; import { ImportResult } from "../models/domain/importResult"; - import { CardView } from "../models/view/cardView"; import { CipherView } from "../models/view/cipherView"; import { FolderView } from "../models/view/folderView"; @@ -10,8 +8,8 @@ import { IdentityView } from "../models/view/identityView"; import { LoginView } from "../models/view/loginView"; import { SecureNoteView } from "../models/view/secureNoteView"; -import { CipherType } from "../enums/cipherType"; -import { SecureNoteType } from "../enums/secureNoteType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class LastPassCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { @@ -22,11 +20,12 @@ export class LastPassCsvImporter extends BaseImporter implements Importer { return Promise.resolve(result); } - results.forEach((value, index) => { + results.forEach((value) => { const cipherIndex = result.ciphers.length; let folderIndex = result.folders.length; let grouping = value.grouping; if (grouping != null) { + // eslint-disable-next-line grouping = grouping.replace(/\\/g, "/").replace(/[\x00-\x1F\x7F-\x9F]/g, ""); } const hasFolder = this.getValueOrDefault(grouping, "(none)") !== "(none)"; @@ -90,6 +89,7 @@ export class LastPassCsvImporter extends BaseImporter implements Importer { private buildBaseCipher(value: any) { const cipher = new CipherView(); + // eslint-disable-next-line if (value.hasOwnProperty("profilename") && value.hasOwnProperty("profilelanguage")) { // form fill cipher.favorite = false; @@ -272,6 +272,7 @@ export class LastPassCsvImporter extends BaseImporter implements Importer { cipher.notes = val; } processingNotes = true; + // eslint-disable-next-line } else if (map.hasOwnProperty(key)) { dataObj[map[key]] = val; } else { diff --git a/common/src/importers/logMeOnceCsvImporter.ts b/common/src/importers/logMeOnceCsvImporter.ts index 611058a4..698ebc80 100644 --- a/common/src/importers/logMeOnceCsvImporter.ts +++ b/common/src/importers/logMeOnceCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class LogMeOnceCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/meldiumCsvImporter.ts b/common/src/importers/meldiumCsvImporter.ts index 89d2e0bd..79835a90 100644 --- a/common/src/importers/meldiumCsvImporter.ts +++ b/common/src/importers/meldiumCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class MeldiumCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/msecureCsvImporter.ts b/common/src/importers/msecureCsvImporter.ts index 4ae3ca90..583d13d7 100644 --- a/common/src/importers/msecureCsvImporter.ts +++ b/common/src/importers/msecureCsvImporter.ts @@ -1,13 +1,11 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - -import { ImportResult } from "../models/domain/importResult"; - import { CipherType } from "../enums/cipherType"; import { SecureNoteType } from "../enums/secureNoteType"; - +import { ImportResult } from "../models/domain/importResult"; import { SecureNoteView } from "../models/view/secureNoteView"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; + export class MSecureCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/mykiCsvImporter.ts b/common/src/importers/mykiCsvImporter.ts index da440ad6..a40c9f0b 100644 --- a/common/src/importers/mykiCsvImporter.ts +++ b/common/src/importers/mykiCsvImporter.ts @@ -1,14 +1,12 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - import { CipherType } from "../enums/cipherType"; import { SecureNoteType } from "../enums/secureNoteType"; - +import { ImportResult } from "../models/domain/importResult"; import { CardView } from "../models/view/cardView"; import { IdentityView } from "../models/view/identityView"; import { SecureNoteView } from "../models/view/secureNoteView"; -import { ImportResult } from "../models/domain/importResult"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class MykiCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/common/src/importers/nordpassCsvImporter.ts b/common/src/importers/nordpassCsvImporter.ts index 45e97edf..cca0ef03 100644 --- a/common/src/importers/nordpassCsvImporter.ts +++ b/common/src/importers/nordpassCsvImporter.ts @@ -1,13 +1,11 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; +import { SecureNoteType } from "../enums/secureNoteType"; import { ImportResult } from "../models/domain/importResult"; - import { CipherView } from "../models/view/cipherView"; import { LoginView } from "../models/view/loginView"; -import { CipherType } from "../enums/cipherType"; -import { SecureNoteType } from "../enums/secureNoteType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; type nodePassCsvParsed = { name: string; diff --git a/common/src/importers/onepasswordImporters/onepassword1PifImporter.ts b/common/src/importers/onepasswordImporters/onepassword1PifImporter.ts index fd202ba5..f261140e 100644 --- a/common/src/importers/onepasswordImporters/onepassword1PifImporter.ts +++ b/common/src/importers/onepasswordImporters/onepassword1PifImporter.ts @@ -1,17 +1,14 @@ -import { BaseImporter } from "../baseImporter"; -import { Importer } from "../importer"; - +import { CipherType } from "../../enums/cipherType"; +import { FieldType } from "../../enums/fieldType"; +import { SecureNoteType } from "../../enums/secureNoteType"; import { ImportResult } from "../../models/domain/importResult"; - import { CardView } from "../../models/view/cardView"; import { CipherView } from "../../models/view/cipherView"; import { IdentityView } from "../../models/view/identityView"; import { PasswordHistoryView } from "../../models/view/passwordHistoryView"; import { SecureNoteView } from "../../models/view/secureNoteView"; - -import { CipherType } from "../../enums/cipherType"; -import { FieldType } from "../../enums/fieldType"; -import { SecureNoteType } from "../../enums/secureNoteType"; +import { BaseImporter } from "../baseImporter"; +import { Importer } from "../importer"; export class OnePassword1PifImporter extends BaseImporter implements Importer { result = new ImportResult(); diff --git a/common/src/importers/onepasswordImporters/onepasswordCsvImporter.ts b/common/src/importers/onepasswordImporters/onepasswordCsvImporter.ts index c4234022..d28bdccc 100644 --- a/common/src/importers/onepasswordImporters/onepasswordCsvImporter.ts +++ b/common/src/importers/onepasswordImporters/onepasswordCsvImporter.ts @@ -1,10 +1,10 @@ +import { CipherType } from "../../enums/cipherType"; +import { FieldType } from "../../enums/fieldType"; import { ImportResult } from "../../models/domain/importResult"; +import { CipherView } from "../../models/view/cipherView"; import { BaseImporter } from "../baseImporter"; import { Importer } from "../importer"; -import { CipherType } from "../../enums/cipherType"; -import { FieldType } from "../../enums/fieldType"; -import { CipherView } from "../../models/view/cipherView"; import { CipherImportContext } from "./cipherImportContext"; export const IgnoredProperties = [ @@ -68,6 +68,7 @@ export abstract class OnePasswordCsvImporter extends BaseImporter implements Imp let altUsername: string = null; for (const property in value) { + // eslint-disable-next-line if (!value.hasOwnProperty(property) || this.isNullOrWhitespace(value[property])) { continue; } diff --git a/common/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts b/common/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts index 4d91c1c0..2135c80a 100644 --- a/common/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts +++ b/common/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts @@ -1,10 +1,10 @@ -import { Importer } from "../importer"; -import { IgnoredProperties, OnePasswordCsvImporter } from "./onepasswordCsvImporter"; - import { CipherType } from "../../enums/cipherType"; import { CardView } from "../../models/view/cardView"; import { CipherView } from "../../models/view/cipherView"; import { IdentityView } from "../../models/view/identityView"; +import { Importer } from "../importer"; + +import { IgnoredProperties, OnePasswordCsvImporter } from "./onepasswordCsvImporter"; export class OnePasswordMacCsvImporter extends OnePasswordCsvImporter implements Importer { setCipherType(value: any, cipher: CipherView) { @@ -23,6 +23,7 @@ export class OnePasswordMacCsvImporter extends OnePasswordCsvImporter implements case "Login": case "Secure Note": IgnoredProperties.push("type"); + break; default: break; } diff --git a/common/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts b/common/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts index ebc96b32..3b3d6454 100644 --- a/common/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts +++ b/common/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts @@ -1,12 +1,12 @@ -import { Importer } from "../importer"; -import { CipherImportContext } from "./cipherImportContext"; -import { OnePasswordCsvImporter } from "./onepasswordCsvImporter"; - import { CipherType } from "../../enums/cipherType"; import { CardView } from "../../models/view/cardView"; import { CipherView } from "../../models/view/cipherView"; import { IdentityView } from "../../models/view/identityView"; import { LoginView } from "../../models/view/loginView"; +import { Importer } from "../importer"; + +import { CipherImportContext } from "./cipherImportContext"; +import { OnePasswordCsvImporter } from "./onepasswordCsvImporter"; export class OnePasswordWinCsvImporter extends OnePasswordCsvImporter implements Importer { constructor() { diff --git a/common/src/importers/padlockCsvImporter.ts b/common/src/importers/padlockCsvImporter.ts index 777d9822..821391cf 100644 --- a/common/src/importers/padlockCsvImporter.ts +++ b/common/src/importers/padlockCsvImporter.ts @@ -1,11 +1,9 @@ +import { ImportResult } from "../models/domain/importResult"; +import { CollectionView } from "../models/view/collectionView"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - -import { CollectionView } from "../models/view/collectionView"; -import { FolderView } from "../models/view/folderView"; - export class PadlockCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/passkeepCsvImporter.ts b/common/src/importers/passkeepCsvImporter.ts index 434f7ded..c93b3a42 100644 --- a/common/src/importers/passkeepCsvImporter.ts +++ b/common/src/importers/passkeepCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class PassKeepCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/passmanJsonImporter.ts b/common/src/importers/passmanJsonImporter.ts index 22232aba..f8bc7106 100644 --- a/common/src/importers/passmanJsonImporter.ts +++ b/common/src/importers/passmanJsonImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class PassmanJsonImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/passpackCsvImporter.ts b/common/src/importers/passpackCsvImporter.ts index e1a02707..8efaa3c3 100644 --- a/common/src/importers/passpackCsvImporter.ts +++ b/common/src/importers/passpackCsvImporter.ts @@ -1,10 +1,9 @@ +import { ImportResult } from "../models/domain/importResult"; +import { CollectionView } from "../models/view/collectionView"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - -import { CollectionView } from "../models/view/collectionView"; - export class PasspackCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/passwordAgentCsvImporter.ts b/common/src/importers/passwordAgentCsvImporter.ts index 9b673c3c..cc37f5dd 100644 --- a/common/src/importers/passwordAgentCsvImporter.ts +++ b/common/src/importers/passwordAgentCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class PasswordAgentCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/passwordBossJsonImporter.ts b/common/src/importers/passwordBossJsonImporter.ts index 73f74050..d60a84fb 100644 --- a/common/src/importers/passwordBossJsonImporter.ts +++ b/common/src/importers/passwordBossJsonImporter.ts @@ -1,12 +1,10 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; import { ImportResult } from "../models/domain/importResult"; - import { CardView } from "../models/view/cardView"; import { FolderView } from "../models/view/folderView"; -import { CipherType } from "../enums/cipherType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class PasswordBossJsonImporter extends BaseImporter implements Importer { parse(data: string): Promise { @@ -52,6 +50,7 @@ export class PasswordBossJsonImporter extends BaseImporter implements Importer { } for (const property in value.identifiers) { + // eslint-disable-next-line if (!value.identifiers.hasOwnProperty(property)) { continue; } diff --git a/common/src/importers/passwordDragonXmlImporter.ts b/common/src/importers/passwordDragonXmlImporter.ts index 74cbe960..433950ad 100644 --- a/common/src/importers/passwordDragonXmlImporter.ts +++ b/common/src/importers/passwordDragonXmlImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class PasswordDragonXmlImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/passwordSafeXmlImporter.ts b/common/src/importers/passwordSafeXmlImporter.ts index 55ae93ed..b7aa9358 100644 --- a/common/src/importers/passwordSafeXmlImporter.ts +++ b/common/src/importers/passwordSafeXmlImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class PasswordSafeXmlImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/passwordWalletTxtImporter.ts b/common/src/importers/passwordWalletTxtImporter.ts index eff71957..b5940372 100644 --- a/common/src/importers/passwordWalletTxtImporter.ts +++ b/common/src/importers/passwordWalletTxtImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class PasswordWalletTxtImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/rememBearCsvImporter.ts b/common/src/importers/rememBearCsvImporter.ts index 2df49cfa..3f7dc464 100644 --- a/common/src/importers/rememBearCsvImporter.ts +++ b/common/src/importers/rememBearCsvImporter.ts @@ -1,12 +1,10 @@ +import { CipherType } from "../enums/cipherType"; +import { ImportResult } from "../models/domain/importResult"; +import { CardView } from "../models/view/cardView"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { CipherType } from "../enums/cipherType"; - -import { ImportResult } from "../models/domain/importResult"; - -import { CardView } from "../models/view/cardView"; - export class RememBearCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/roboformCsvImporter.ts b/common/src/importers/roboformCsvImporter.ts index 6c90dbfd..c5279e2b 100644 --- a/common/src/importers/roboformCsvImporter.ts +++ b/common/src/importers/roboformCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class RoboFormCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/safariCsvImporter.ts b/common/src/importers/safariCsvImporter.ts index 1d32c92a..156c2767 100644 --- a/common/src/importers/safariCsvImporter.ts +++ b/common/src/importers/safariCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class SafariCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/safeInCloudXmlImporter.ts b/common/src/importers/safeInCloudXmlImporter.ts index 82514e24..3e5a8199 100644 --- a/common/src/importers/safeInCloudXmlImporter.ts +++ b/common/src/importers/safeInCloudXmlImporter.ts @@ -1,17 +1,14 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; +import { FieldType } from "../enums/fieldType"; +import { SecureNoteType } from "../enums/secureNoteType"; import { ImportResult } from "../models/domain/importResult"; - +import { CipherView } from "../models/view/cipherView"; +import { FieldView } from "../models/view/fieldView"; import { FolderView } from "../models/view/folderView"; import { SecureNoteView } from "../models/view/secureNoteView"; -import { CipherType } from "../enums/cipherType"; -import { SecureNoteType } from "../enums/secureNoteType"; - -import { FieldType } from "../enums/fieldType"; -import { CipherView } from "../models/view/cipherView"; -import { FieldView } from "../models/view/fieldView"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; export class SafeInCloudXmlImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/common/src/importers/saferpassCsvImport.ts b/common/src/importers/saferpassCsvImport.ts index 435a1a37..6d962ba1 100644 --- a/common/src/importers/saferpassCsvImport.ts +++ b/common/src/importers/saferpassCsvImport.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class SaferPassCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/secureSafeCsvImporter.ts b/common/src/importers/secureSafeCsvImporter.ts index 540177a0..8d0ac1fe 100644 --- a/common/src/importers/secureSafeCsvImporter.ts +++ b/common/src/importers/secureSafeCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class SecureSafeCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/splashIdCsvImporter.ts b/common/src/importers/splashIdCsvImporter.ts index b38380a9..df1118d1 100644 --- a/common/src/importers/splashIdCsvImporter.ts +++ b/common/src/importers/splashIdCsvImporter.ts @@ -1,9 +1,9 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - import { ImportResult } from "../models/domain/importResult"; import { CipherView } from "../models/view/cipherView"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; + export class SplashIdCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/stickyPasswordXmlImporter.ts b/common/src/importers/stickyPasswordXmlImporter.ts index 1bfba5b6..caaa3370 100644 --- a/common/src/importers/stickyPasswordXmlImporter.ts +++ b/common/src/importers/stickyPasswordXmlImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class StickyPasswordXmlImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/truekeyCsvImporter.ts b/common/src/importers/truekeyCsvImporter.ts index 622ef89c..d28af7af 100644 --- a/common/src/importers/truekeyCsvImporter.ts +++ b/common/src/importers/truekeyCsvImporter.ts @@ -1,13 +1,11 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - +import { CipherType } from "../enums/cipherType"; +import { SecureNoteType } from "../enums/secureNoteType"; import { ImportResult } from "../models/domain/importResult"; - import { CardView } from "../models/view/cardView"; import { SecureNoteView } from "../models/view/secureNoteView"; -import { CipherType } from "../enums/cipherType"; -import { SecureNoteType } from "../enums/secureNoteType"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; const PropertiesToIgnore = [ "kind", @@ -70,7 +68,7 @@ export class TrueKeyCsvImporter extends BaseImporter implements Importer { } for (const property in value) { if ( - value.hasOwnProperty(property) && + value.hasOwnProperty(property) && // eslint-disable-line PropertiesToIgnore.indexOf(property.toLowerCase()) < 0 && !this.isNullOrWhitespace(value[property]) ) { diff --git a/common/src/importers/upmCsvImporter.ts b/common/src/importers/upmCsvImporter.ts index a13c5be6..ea092ffc 100644 --- a/common/src/importers/upmCsvImporter.ts +++ b/common/src/importers/upmCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class UpmCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/yotiCsvImporter.ts b/common/src/importers/yotiCsvImporter.ts index fedc1c81..526f7d69 100644 --- a/common/src/importers/yotiCsvImporter.ts +++ b/common/src/importers/yotiCsvImporter.ts @@ -1,8 +1,8 @@ +import { ImportResult } from "../models/domain/importResult"; + import { BaseImporter } from "./baseImporter"; import { Importer } from "./importer"; -import { ImportResult } from "../models/domain/importResult"; - export class YotiCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/importers/zohoVaultCsvImporter.ts b/common/src/importers/zohoVaultCsvImporter.ts index 1a3e009c..18008e80 100644 --- a/common/src/importers/zohoVaultCsvImporter.ts +++ b/common/src/importers/zohoVaultCsvImporter.ts @@ -1,9 +1,9 @@ -import { BaseImporter } from "./baseImporter"; -import { Importer } from "./importer"; - import { ImportResult } from "../models/domain/importResult"; import { CipherView } from "../models/view/cipherView"; +import { BaseImporter } from "./baseImporter"; +import { Importer } from "./importer"; + export class ZohoVaultCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { const result = new ImportResult(); diff --git a/common/src/misc/captcha_iframe.ts b/common/src/misc/captcha_iframe.ts index b3b1af92..ca422fc0 100644 --- a/common/src/misc/captcha_iframe.ts +++ b/common/src/misc/captcha_iframe.ts @@ -1,4 +1,5 @@ import { I18nService } from "../abstractions/i18n.service"; + import { IFrameComponent } from "./iframe_component"; export class CaptchaIFrame extends IFrameComponent { diff --git a/common/src/misc/iframe_component.ts b/common/src/misc/iframe_component.ts index 7315e11b..2cd702ad 100644 --- a/common/src/misc/iframe_component.ts +++ b/common/src/misc/iframe_component.ts @@ -1,5 +1,3 @@ -import { I18nService } from "../abstractions/i18n.service"; - export abstract class IFrameComponent { iframe: HTMLIFrameElement; private connectorLink: HTMLAnchorElement; diff --git a/common/src/misc/linkedFieldOption.decorator.ts b/common/src/misc/linkedFieldOption.decorator.ts index 8f10709c..43836318 100644 --- a/common/src/misc/linkedFieldOption.decorator.ts +++ b/common/src/misc/linkedFieldOption.decorator.ts @@ -1,6 +1,5 @@ -import { ItemView } from "../models/view/itemView"; - import { LinkedIdType } from "../enums/linkedIdType"; +import { ItemView } from "../models/view/itemView"; export class LinkedMetadata { constructor(readonly propertyKey: string, private readonly _i18nKey?: string) {} diff --git a/common/src/misc/logInStrategies/apiLogin.strategy.ts b/common/src/misc/logInStrategies/apiLogin.strategy.ts index 65463cc0..89ebc379 100644 --- a/common/src/misc/logInStrategies/apiLogin.strategy.ts +++ b/common/src/misc/logInStrategies/apiLogin.strategy.ts @@ -1,5 +1,3 @@ -import { LogInStrategy } from "./logIn.strategy"; - import { ApiService } from "../../abstractions/api.service"; import { AppIdService } from "../../abstractions/appId.service"; import { CryptoService } from "../../abstractions/crypto.service"; @@ -11,12 +9,11 @@ import { PlatformUtilsService } from "../../abstractions/platformUtils.service"; import { StateService } from "../../abstractions/state.service"; import { TokenService } from "../../abstractions/token.service"; import { TwoFactorService } from "../../abstractions/twoFactor.service"; - +import { ApiLogInCredentials } from "../../models/domain/logInCredentials"; import { ApiTokenRequest } from "../../models/request/identityToken/apiTokenRequest"; - import { IdentityTokenResponse } from "../../models/response/identityTokenResponse"; -import { ApiLogInCredentials } from "../../models/domain/logInCredentials"; +import { LogInStrategy } from "./logIn.strategy"; export class ApiLogInStrategy extends LogInStrategy { tokenRequest: ApiTokenRequest; diff --git a/common/src/misc/logInStrategies/logIn.strategy.ts b/common/src/misc/logInStrategies/logIn.strategy.ts index 9cb18aac..4bd25ac1 100644 --- a/common/src/misc/logInStrategies/logIn.strategy.ts +++ b/common/src/misc/logInStrategies/logIn.strategy.ts @@ -1,24 +1,3 @@ -import { TwoFactorProviderType } from "../../enums/twoFactorProviderType"; - -import { Account, AccountProfile, AccountTokens } from "../../models/domain/account"; -import { AuthResult } from "../../models/domain/authResult"; -import { - ApiLogInCredentials, - PasswordLogInCredentials, - SsoLogInCredentials, -} from "../../models/domain/logInCredentials"; - -import { DeviceRequest } from "../../models/request/deviceRequest"; -import { ApiTokenRequest } from "../../models/request/identityToken/apiTokenRequest"; -import { PasswordTokenRequest } from "../../models/request/identityToken/passwordTokenRequest"; -import { SsoTokenRequest } from "../../models/request/identityToken/ssoTokenRequest"; -import { TokenRequestTwoFactor } from "../../models/request/identityToken/tokenRequest"; -import { KeysRequest } from "../../models/request/keysRequest"; - -import { IdentityCaptchaResponse } from "../../models/response/identityCaptchaResponse"; -import { IdentityTokenResponse } from "../../models/response/identityTokenResponse"; -import { IdentityTwoFactorResponse } from "../../models/response/identityTwoFactorResponse"; - import { ApiService } from "../../abstractions/api.service"; import { AppIdService } from "../../abstractions/appId.service"; import { CryptoService } from "../../abstractions/crypto.service"; @@ -28,6 +7,23 @@ import { PlatformUtilsService } from "../../abstractions/platformUtils.service"; import { StateService } from "../../abstractions/state.service"; import { TokenService } from "../../abstractions/token.service"; import { TwoFactorService } from "../../abstractions/twoFactor.service"; +import { TwoFactorProviderType } from "../../enums/twoFactorProviderType"; +import { Account, AccountProfile, AccountTokens } from "../../models/domain/account"; +import { AuthResult } from "../../models/domain/authResult"; +import { + ApiLogInCredentials, + PasswordLogInCredentials, + SsoLogInCredentials, +} from "../../models/domain/logInCredentials"; +import { DeviceRequest } from "../../models/request/deviceRequest"; +import { ApiTokenRequest } from "../../models/request/identityToken/apiTokenRequest"; +import { PasswordTokenRequest } from "../../models/request/identityToken/passwordTokenRequest"; +import { SsoTokenRequest } from "../../models/request/identityToken/ssoTokenRequest"; +import { TokenRequestTwoFactor } from "../../models/request/identityToken/tokenRequest"; +import { KeysRequest } from "../../models/request/keysRequest"; +import { IdentityCaptchaResponse } from "../../models/response/identityCaptchaResponse"; +import { IdentityTokenResponse } from "../../models/response/identityTokenResponse"; +import { IdentityTwoFactorResponse } from "../../models/response/identityTwoFactorResponse"; export abstract class LogInStrategy { protected abstract tokenRequest: ApiTokenRequest | PasswordTokenRequest | SsoTokenRequest; diff --git a/common/src/misc/logInStrategies/passwordLogin.strategy.ts b/common/src/misc/logInStrategies/passwordLogin.strategy.ts index cdbe3bdc..78e1a317 100644 --- a/common/src/misc/logInStrategies/passwordLogin.strategy.ts +++ b/common/src/misc/logInStrategies/passwordLogin.strategy.ts @@ -1,7 +1,3 @@ -import { LogInStrategy } from "./logIn.strategy"; - -import { PasswordTokenRequest } from "../../models/request/identityToken/passwordTokenRequest"; - import { ApiService } from "../../abstractions/api.service"; import { AppIdService } from "../../abstractions/appId.service"; import { AuthService } from "../../abstractions/auth.service"; @@ -12,11 +8,12 @@ import { PlatformUtilsService } from "../../abstractions/platformUtils.service"; import { StateService } from "../../abstractions/state.service"; import { TokenService } from "../../abstractions/token.service"; import { TwoFactorService } from "../../abstractions/twoFactor.service"; - +import { HashPurpose } from "../../enums/hashPurpose"; import { PasswordLogInCredentials } from "../../models/domain/logInCredentials"; import { SymmetricCryptoKey } from "../../models/domain/symmetricCryptoKey"; +import { PasswordTokenRequest } from "../../models/request/identityToken/passwordTokenRequest"; -import { HashPurpose } from "../../enums/hashPurpose"; +import { LogInStrategy } from "./logIn.strategy"; export class PasswordLogInStrategy extends LogInStrategy { get email() { diff --git a/common/src/misc/logInStrategies/ssoLogin.strategy.ts b/common/src/misc/logInStrategies/ssoLogin.strategy.ts index d946764d..e56bd7a3 100644 --- a/common/src/misc/logInStrategies/ssoLogin.strategy.ts +++ b/common/src/misc/logInStrategies/ssoLogin.strategy.ts @@ -1,5 +1,3 @@ -import { LogInStrategy } from "./logIn.strategy"; - import { ApiService } from "../../abstractions/api.service"; import { AppIdService } from "../../abstractions/appId.service"; import { CryptoService } from "../../abstractions/crypto.service"; @@ -10,13 +8,12 @@ import { PlatformUtilsService } from "../../abstractions/platformUtils.service"; import { StateService } from "../../abstractions/state.service"; import { TokenService } from "../../abstractions/token.service"; import { TwoFactorService } from "../../abstractions/twoFactor.service"; - import { SsoLogInCredentials } from "../../models/domain/logInCredentials"; - import { SsoTokenRequest } from "../../models/request/identityToken/ssoTokenRequest"; - import { IdentityTokenResponse } from "../../models/response/identityTokenResponse"; +import { LogInStrategy } from "./logIn.strategy"; + export class SsoLogInStrategy extends LogInStrategy { tokenRequest: SsoTokenRequest; orgId: string; diff --git a/common/src/misc/utils.ts b/common/src/misc/utils.ts index a91ccd5a..409c4c74 100644 --- a/common/src/misc/utils.ts +++ b/common/src/misc/utils.ts @@ -1,8 +1,8 @@ +/* eslint-disable no-useless-escape */ import * as tldjs from "tldjs"; import { I18nService } from "../abstractions/i18n.service"; -// tslint:disable-next-line const nodeURL = typeof window === "undefined" ? require("url") : null; export class Utils { @@ -176,9 +176,7 @@ export class Utils { // ref: http://stackoverflow.com/a/2117523/1090359 static newGuid(): string { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => { - // tslint:disable-next-line const r = (Math.random() * 16) | 0; - // tslint:disable-next-line const v = c === "x" ? r : (r & 0x3) | 0x8; return v.toString(16); }); @@ -347,7 +345,6 @@ export class Utils { } private static validIpAddress(ipString: string): boolean { - // tslint:disable-next-line const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; return ipRegex.test(ipString); @@ -356,7 +353,6 @@ export class Utils { private static isMobile(win: Window) { let mobile = false; ((a) => { - // tslint:disable-next-line if ( /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test( a diff --git a/common/src/misc/webauthn_iframe.ts b/common/src/misc/webauthn_iframe.ts index 712594ba..969dde04 100644 --- a/common/src/misc/webauthn_iframe.ts +++ b/common/src/misc/webauthn_iframe.ts @@ -12,9 +12,9 @@ export class WebAuthnIFrame { private webAuthnNewTab: boolean, private platformUtilsService: PlatformUtilsService, private i18nService: I18nService, - private successCallback: Function, - private errorCallback: Function, - private infoCallback: Function + private successCallback: Function, // eslint-disable-line + private errorCallback: Function, // eslint-disable-line + private infoCallback: Function // eslint-disable-line ) { this.connectorLink = win.document.createElement("a"); } diff --git a/common/src/models/api/fieldApi.ts b/common/src/models/api/fieldApi.ts index d7e603ea..cabdb7cc 100644 --- a/common/src/models/api/fieldApi.ts +++ b/common/src/models/api/fieldApi.ts @@ -1,7 +1,6 @@ -import { BaseResponse } from "../response/baseResponse"; - import { FieldType } from "../../enums/fieldType"; import { LinkedIdType } from "../../enums/linkedIdType"; +import { BaseResponse } from "../response/baseResponse"; export class FieldApi extends BaseResponse { name: string; diff --git a/common/src/models/api/loginUriApi.ts b/common/src/models/api/loginUriApi.ts index 9da6e0a7..50ffb0da 100644 --- a/common/src/models/api/loginUriApi.ts +++ b/common/src/models/api/loginUriApi.ts @@ -1,6 +1,5 @@ -import { BaseResponse } from "../response/baseResponse"; - import { UriMatchType } from "../../enums/uriMatchType"; +import { BaseResponse } from "../response/baseResponse"; export class LoginUriApi extends BaseResponse { uri: string; diff --git a/common/src/models/api/secureNoteApi.ts b/common/src/models/api/secureNoteApi.ts index dfb25134..80f18c61 100644 --- a/common/src/models/api/secureNoteApi.ts +++ b/common/src/models/api/secureNoteApi.ts @@ -1,6 +1,5 @@ -import { BaseResponse } from "../response/baseResponse"; - import { SecureNoteType } from "../../enums/secureNoteType"; +import { BaseResponse } from "../response/baseResponse"; export class SecureNoteApi extends BaseResponse { type: SecureNoteType; diff --git a/common/src/models/data/cipherData.ts b/common/src/models/data/cipherData.ts index cdda0e46..e541fee3 100644 --- a/common/src/models/data/cipherData.ts +++ b/common/src/models/data/cipherData.ts @@ -1,5 +1,6 @@ import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CipherType } from "../../enums/cipherType"; +import { CipherResponse } from "../response/cipherResponse"; import { AttachmentData } from "./attachmentData"; import { CardData } from "./cardData"; @@ -9,8 +10,6 @@ import { LoginData } from "./loginData"; import { PasswordHistoryData } from "./passwordHistoryData"; import { SecureNoteData } from "./secureNoteData"; -import { CipherResponse } from "../response/cipherResponse"; - export class CipherData { id: string; organizationId: string; diff --git a/common/src/models/data/fieldData.ts b/common/src/models/data/fieldData.ts index 7b9fe197..6bec9def 100644 --- a/common/src/models/data/fieldData.ts +++ b/common/src/models/data/fieldData.ts @@ -1,6 +1,5 @@ import { FieldType } from "../../enums/fieldType"; import { LinkedIdType } from "../../enums/linkedIdType"; - import { FieldApi } from "../api/fieldApi"; export class FieldData { diff --git a/common/src/models/data/loginUriData.ts b/common/src/models/data/loginUriData.ts index 01cad0bf..874db4e8 100644 --- a/common/src/models/data/loginUriData.ts +++ b/common/src/models/data/loginUriData.ts @@ -1,5 +1,4 @@ import { UriMatchType } from "../../enums/uriMatchType"; - import { LoginUriApi } from "../api/loginUriApi"; export class LoginUriData { diff --git a/common/src/models/data/organizationData.ts b/common/src/models/data/organizationData.ts index 3903b0c2..fe190fff 100644 --- a/common/src/models/data/organizationData.ts +++ b/common/src/models/data/organizationData.ts @@ -1,10 +1,8 @@ -import { ProfileOrganizationResponse } from "../response/profileOrganizationResponse"; - import { OrganizationUserStatusType } from "../../enums/organizationUserStatusType"; import { OrganizationUserType } from "../../enums/organizationUserType"; import { ProductType } from "../../enums/productType"; - import { PermissionsApi } from "../api/permissionsApi"; +import { ProfileOrganizationResponse } from "../response/profileOrganizationResponse"; export class OrganizationData { id: string; diff --git a/common/src/models/data/policyData.ts b/common/src/models/data/policyData.ts index 46cbbeb9..c93b4040 100644 --- a/common/src/models/data/policyData.ts +++ b/common/src/models/data/policyData.ts @@ -1,6 +1,5 @@ -import { PolicyResponse } from "../response/policyResponse"; - import { PolicyType } from "../../enums/policyType"; +import { PolicyResponse } from "../response/policyResponse"; export class PolicyData { id: string; diff --git a/common/src/models/data/providerData.ts b/common/src/models/data/providerData.ts index 7efdab05..5d141ed1 100644 --- a/common/src/models/data/providerData.ts +++ b/common/src/models/data/providerData.ts @@ -1,7 +1,6 @@ -import { ProfileProviderResponse } from "../response/profileProviderResponse"; - import { ProviderUserStatusType } from "../../enums/providerUserStatusType"; import { ProviderUserType } from "../../enums/providerUserType"; +import { ProfileProviderResponse } from "../response/profileProviderResponse"; export class ProviderData { id: string; diff --git a/common/src/models/data/secureNoteData.ts b/common/src/models/data/secureNoteData.ts index 119c77b5..f536b2de 100644 --- a/common/src/models/data/secureNoteData.ts +++ b/common/src/models/data/secureNoteData.ts @@ -1,5 +1,4 @@ import { SecureNoteType } from "../../enums/secureNoteType"; - import { SecureNoteApi } from "../api/secureNoteApi"; export class SecureNoteData { diff --git a/common/src/models/data/sendData.ts b/common/src/models/data/sendData.ts index d07dc362..18c007e3 100644 --- a/common/src/models/data/sendData.ts +++ b/common/src/models/data/sendData.ts @@ -1,10 +1,9 @@ import { SendType } from "../../enums/sendType"; +import { SendResponse } from "../response/sendResponse"; import { SendFileData } from "./sendFileData"; import { SendTextData } from "./sendTextData"; -import { SendResponse } from "../response/sendResponse"; - export class SendData { id: string; accessId: string; diff --git a/common/src/models/domain/account.ts b/common/src/models/domain/account.ts index 5c0337e5..3eb28631 100644 --- a/common/src/models/domain/account.ts +++ b/common/src/models/domain/account.ts @@ -1,28 +1,25 @@ -import { OrganizationData } from "../data/organizationData"; - import { AuthenticationStatus } from "../../enums/authenticationStatus"; import { KdfType } from "../../enums/kdfType"; import { UriMatchType } from "../../enums/uriMatchType"; - +import { CipherData } from "../data/cipherData"; +import { CollectionData } from "../data/collectionData"; +import { EventData } from "../data/eventData"; +import { FolderData } from "../data/folderData"; +import { OrganizationData } from "../data/organizationData"; +import { PolicyData } from "../data/policyData"; +import { ProviderData } from "../data/providerData"; +import { SendData } from "../data/sendData"; import { CipherView } from "../view/cipherView"; import { CollectionView } from "../view/collectionView"; import { FolderView } from "../view/folderView"; import { SendView } from "../view/sendView"; import { EncString } from "./encString"; +import { EnvironmentUrls } from "./environmentUrls"; import { GeneratedPasswordHistory } from "./generatedPasswordHistory"; import { Policy } from "./policy"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; -import { CipherData } from "../data/cipherData"; -import { CollectionData } from "../data/collectionData"; -import { EventData } from "../data/eventData"; -import { FolderData } from "../data/folderData"; -import { PolicyData } from "../data/policyData"; -import { ProviderData } from "../data/providerData"; -import { SendData } from "../data/sendData"; -import { EnvironmentUrls } from "./environmentUrls"; - export class EncryptionPair { encrypted?: TEncrypted; decrypted?: TDecrypted; diff --git a/common/src/models/domain/attachment.ts b/common/src/models/domain/attachment.ts index ceafce3e..aded9d25 100644 --- a/common/src/models/domain/attachment.ts +++ b/common/src/models/domain/attachment.ts @@ -1,15 +1,12 @@ +import { CryptoService } from "../../abstractions/crypto.service"; +import { Utils } from "../../misc/utils"; import { AttachmentData } from "../data/attachmentData"; - import { AttachmentView } from "../view/attachmentView"; import Domain from "./domainBase"; import { EncString } from "./encString"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; -import { CryptoService } from "../../abstractions/crypto.service"; - -import { Utils } from "../../misc/utils"; - export class Attachment extends Domain { id: string; url: string; @@ -18,7 +15,7 @@ export class Attachment extends Domain { key: EncString; fileName: EncString; - constructor(obj?: AttachmentData, alreadyEncrypted: boolean = false) { + constructor(obj?: AttachmentData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/authResult.ts b/common/src/models/domain/authResult.ts index bba3f7f3..0781f872 100644 --- a/common/src/models/domain/authResult.ts +++ b/common/src/models/domain/authResult.ts @@ -1,11 +1,10 @@ import { TwoFactorProviderType } from "../../enums/twoFactorProviderType"; - import { Utils } from "../../misc/utils"; export class AuthResult { - captchaSiteKey: string = ""; - resetMasterPassword: boolean = false; - forcePasswordReset: boolean = false; + captchaSiteKey = ""; + resetMasterPassword = false; + forcePasswordReset = false; twoFactorProviders: Map = null; get requiresCaptcha() { diff --git a/common/src/models/domain/card.ts b/common/src/models/domain/card.ts index 62315d63..170b7c1a 100644 --- a/common/src/models/domain/card.ts +++ b/common/src/models/domain/card.ts @@ -1,9 +1,8 @@ import { CardData } from "../data/cardData"; +import { CardView } from "../view/cardView"; import Domain from "./domainBase"; import { EncString } from "./encString"; - -import { CardView } from "../view/cardView"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; export class Card extends Domain { @@ -14,7 +13,7 @@ export class Card extends Domain { expYear: EncString; code: EncString; - constructor(obj?: CardData, alreadyEncrypted: boolean = false) { + constructor(obj?: CardData, alreadyEncrypted = false) { super(); if (obj == null) { return; @@ -38,7 +37,7 @@ export class Card extends Domain { decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise { return this.decryptObj( - new CardView(this), + new CardView(), { cardholderName: null, brand: null, diff --git a/common/src/models/domain/cipher.ts b/common/src/models/domain/cipher.ts index 14a7a14a..d548e673 100644 --- a/common/src/models/domain/cipher.ts +++ b/common/src/models/domain/cipher.ts @@ -1,8 +1,6 @@ import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CipherType } from "../../enums/cipherType"; - import { CipherData } from "../data/cipherData"; - import { CipherView } from "../view/cipherView"; import { Attachment } from "./attachment"; @@ -40,7 +38,7 @@ export class Cipher extends Domain { deletedDate: Date; reprompt: CipherRepromptType; - constructor(obj?: CipherData, alreadyEncrypted: boolean = false, localData: any = null) { + constructor(obj?: CipherData, alreadyEncrypted = false, localData: any = null) { super(); if (obj == null) { return; @@ -81,7 +79,7 @@ export class Cipher extends Domain { this.login = new Login(obj.login, alreadyEncrypted); break; case CipherType.SecureNote: - this.secureNote = new SecureNote(obj.secureNote, alreadyEncrypted); + this.secureNote = new SecureNote(obj.secureNote); break; case CipherType.Card: this.card = new Card(obj.card, alreadyEncrypted); diff --git a/common/src/models/domain/collection.ts b/common/src/models/domain/collection.ts index b08ecd0f..740cada3 100644 --- a/common/src/models/domain/collection.ts +++ b/common/src/models/domain/collection.ts @@ -1,5 +1,4 @@ import { CollectionData } from "../data/collectionData"; - import { CollectionView } from "../view/collectionView"; import Domain from "./domainBase"; @@ -13,7 +12,7 @@ export class Collection extends Domain { readOnly: boolean; hidePasswords: boolean; - constructor(obj?: CollectionData, alreadyEncrypted: boolean = false) { + constructor(obj?: CollectionData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/domainBase.ts b/common/src/models/domain/domainBase.ts index a8c09abe..aa4d97e4 100644 --- a/common/src/models/domain/domainBase.ts +++ b/common/src/models/domain/domainBase.ts @@ -1,7 +1,6 @@ -import { EncString } from "./encString"; - import { View } from "../view/view"; +import { EncString } from "./encString"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; export default class Domain { @@ -13,6 +12,7 @@ export default class Domain { notEncList: any[] = [] ) { for (const prop in map) { + // eslint-disable-next-line if (!map.hasOwnProperty(prop)) { continue; } @@ -32,6 +32,7 @@ export default class Domain { notEncStringList: any[] = [] ) { for (const prop in map) { + // eslint-disable-next-line if (!map.hasOwnProperty(prop)) { continue; } @@ -55,11 +56,11 @@ export default class Domain { const self: any = this; for (const prop in map) { + // eslint-disable-next-line if (!map.hasOwnProperty(prop)) { continue; } - // tslint:disable-next-line (function (theProp) { const p = Promise.resolve() .then(() => { diff --git a/common/src/models/domain/encString.ts b/common/src/models/domain/encString.ts index 9ce1c394..74ae8370 100644 --- a/common/src/models/domain/encString.ts +++ b/common/src/models/domain/encString.ts @@ -1,7 +1,5 @@ -import { EncryptionType } from "../../enums/encryptionType"; - import { CryptoService } from "../../abstractions/crypto.service"; - +import { EncryptionType } from "../../enums/encryptionType"; import { Utils } from "../../misc/utils"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; diff --git a/common/src/models/domain/field.ts b/common/src/models/domain/field.ts index 0aaf2a31..aab53c4b 100644 --- a/common/src/models/domain/field.ts +++ b/common/src/models/domain/field.ts @@ -1,12 +1,10 @@ import { FieldType } from "../../enums/fieldType"; import { LinkedIdType } from "../../enums/linkedIdType"; - import { FieldData } from "../data/fieldData"; +import { FieldView } from "../view/fieldView"; import Domain from "./domainBase"; import { EncString } from "./encString"; - -import { FieldView } from "../view/fieldView"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; export class Field extends Domain { @@ -15,7 +13,7 @@ export class Field extends Domain { type: FieldType; linkedId: LinkedIdType; - constructor(obj?: FieldData, alreadyEncrypted: boolean = false) { + constructor(obj?: FieldData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/folder.ts b/common/src/models/domain/folder.ts index 4e4a08f2..f27d1e5f 100644 --- a/common/src/models/domain/folder.ts +++ b/common/src/models/domain/folder.ts @@ -1,5 +1,4 @@ import { FolderData } from "../data/folderData"; - import { FolderView } from "../view/folderView"; import Domain from "./domainBase"; @@ -10,7 +9,7 @@ export class Folder extends Domain { name: EncString; revisionDate: Date; - constructor(obj?: FolderData, alreadyEncrypted: boolean = false) { + constructor(obj?: FolderData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/identity.ts b/common/src/models/domain/identity.ts index 8584c946..8bc3c8a6 100644 --- a/common/src/models/domain/identity.ts +++ b/common/src/models/domain/identity.ts @@ -1,11 +1,10 @@ import { IdentityData } from "../data/identityData"; +import { IdentityView } from "../view/identityView"; import Domain from "./domainBase"; import { EncString } from "./encString"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; -import { IdentityView } from "../view/identityView"; - export class Identity extends Domain { title: EncString; firstName: EncString; @@ -26,7 +25,7 @@ export class Identity extends Domain { passportNumber: EncString; licenseNumber: EncString; - constructor(obj?: IdentityData, alreadyEncrypted: boolean = false) { + constructor(obj?: IdentityData, alreadyEncrypted = false) { super(); if (obj == null) { return; @@ -62,7 +61,7 @@ export class Identity extends Domain { decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise { return this.decryptObj( - new IdentityView(this), + new IdentityView(), { title: null, firstName: null, diff --git a/common/src/models/domain/logInCredentials.ts b/common/src/models/domain/logInCredentials.ts index 91bb9a76..b89d2bac 100644 --- a/common/src/models/domain/logInCredentials.ts +++ b/common/src/models/domain/logInCredentials.ts @@ -1,5 +1,4 @@ import { AuthenticationType } from "../../enums/authenticationType"; - import { TokenRequestTwoFactor } from "../request/identityToken/tokenRequest"; export class PasswordLogInCredentials { diff --git a/common/src/models/domain/login.ts b/common/src/models/domain/login.ts index 8507e076..4ada7986 100644 --- a/common/src/models/domain/login.ts +++ b/common/src/models/domain/login.ts @@ -1,11 +1,9 @@ -import { LoginUri } from "./loginUri"; - import { LoginData } from "../data/loginData"; - import { LoginView } from "../view/loginView"; import Domain from "./domainBase"; import { EncString } from "./encString"; +import { LoginUri } from "./loginUri"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; export class Login extends Domain { @@ -16,7 +14,7 @@ export class Login extends Domain { totp: EncString; autofillOnPageLoad: boolean; - constructor(obj?: LoginData, alreadyEncrypted: boolean = false) { + constructor(obj?: LoginData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/loginUri.ts b/common/src/models/domain/loginUri.ts index a80f7d0e..15a51319 100644 --- a/common/src/models/domain/loginUri.ts +++ b/common/src/models/domain/loginUri.ts @@ -1,7 +1,5 @@ import { UriMatchType } from "../../enums/uriMatchType"; - import { LoginUriData } from "../data/loginUriData"; - import { LoginUriView } from "../view/loginUriView"; import Domain from "./domainBase"; @@ -12,7 +10,7 @@ export class LoginUri extends Domain { uri: EncString; match: UriMatchType; - constructor(obj?: LoginUriData, alreadyEncrypted: boolean = false) { + constructor(obj?: LoginUriData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/masterPasswordPolicyOptions.ts b/common/src/models/domain/masterPasswordPolicyOptions.ts index 4ffdc91f..2207d00c 100644 --- a/common/src/models/domain/masterPasswordPolicyOptions.ts +++ b/common/src/models/domain/masterPasswordPolicyOptions.ts @@ -1,10 +1,10 @@ import Domain from "./domainBase"; export class MasterPasswordPolicyOptions extends Domain { - minComplexity: number = 0; - minLength: number = 0; - requireUpper: boolean = false; - requireLower: boolean = false; - requireNumbers: boolean = false; - requireSpecial: boolean = false; + minComplexity = 0; + minLength = 0; + requireUpper = false; + requireLower = false; + requireNumbers = false; + requireSpecial = false; } diff --git a/common/src/models/domain/organization.ts b/common/src/models/domain/organization.ts index d21b49b9..8a682212 100644 --- a/common/src/models/domain/organization.ts +++ b/common/src/models/domain/organization.ts @@ -1,9 +1,8 @@ -import { OrganizationData } from "../data/organizationData"; - import { OrganizationUserStatusType } from "../../enums/organizationUserStatusType"; import { OrganizationUserType } from "../../enums/organizationUserType"; import { ProductType } from "../../enums/productType"; import { PermissionsApi } from "../api/permissionsApi"; +import { OrganizationData } from "../data/organizationData"; export class Organization { id: string; diff --git a/common/src/models/domain/password.ts b/common/src/models/domain/password.ts index 94e098c6..0408938a 100644 --- a/common/src/models/domain/password.ts +++ b/common/src/models/domain/password.ts @@ -1,16 +1,15 @@ import { PasswordHistoryData } from "../data/passwordHistoryData"; +import { PasswordHistoryView } from "../view/passwordHistoryView"; import Domain from "./domainBase"; import { EncString } from "./encString"; - -import { PasswordHistoryView } from "../view/passwordHistoryView"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; export class Password extends Domain { password: EncString; lastUsedDate: Date; - constructor(obj?: PasswordHistoryData, alreadyEncrypted: boolean = false) { + constructor(obj?: PasswordHistoryData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/passwordGeneratorPolicyOptions.ts b/common/src/models/domain/passwordGeneratorPolicyOptions.ts index 5e37bcec..19072a9f 100644 --- a/common/src/models/domain/passwordGeneratorPolicyOptions.ts +++ b/common/src/models/domain/passwordGeneratorPolicyOptions.ts @@ -1,17 +1,17 @@ import Domain from "./domainBase"; export class PasswordGeneratorPolicyOptions extends Domain { - defaultType: string = ""; - minLength: number = 0; - useUppercase: boolean = false; - useLowercase: boolean = false; - useNumbers: boolean = false; - numberCount: number = 0; - useSpecial: boolean = false; - specialCount: number = 0; - minNumberWords: number = 0; - capitalize: boolean = false; - includeNumber: boolean = false; + defaultType = ""; + minLength = 0; + useUppercase = false; + useLowercase = false; + useNumbers = false; + numberCount = 0; + useSpecial = false; + specialCount = 0; + minNumberWords = 0; + capitalize = false; + includeNumber = false; inEffect() { return ( diff --git a/common/src/models/domain/policy.ts b/common/src/models/domain/policy.ts index 174c2c7c..c4a113cc 100644 --- a/common/src/models/domain/policy.ts +++ b/common/src/models/domain/policy.ts @@ -1,9 +1,8 @@ +import { PolicyType } from "../../enums/policyType"; import { PolicyData } from "../data/policyData"; import Domain from "./domainBase"; -import { PolicyType } from "../../enums/policyType"; - export class Policy extends Domain { id: string; organizationId: string; diff --git a/common/src/models/domain/resetPasswordPolicyOptions.ts b/common/src/models/domain/resetPasswordPolicyOptions.ts index 8dbde376..2ee11a5c 100644 --- a/common/src/models/domain/resetPasswordPolicyOptions.ts +++ b/common/src/models/domain/resetPasswordPolicyOptions.ts @@ -1,5 +1,5 @@ import Domain from "./domainBase"; export class ResetPasswordPolicyOptions extends Domain { - autoEnrollEnabled: boolean = false; + autoEnrollEnabled = false; } diff --git a/common/src/models/domain/secureNote.ts b/common/src/models/domain/secureNote.ts index 42f31297..8bde3164 100644 --- a/common/src/models/domain/secureNote.ts +++ b/common/src/models/domain/secureNote.ts @@ -1,16 +1,14 @@ import { SecureNoteType } from "../../enums/secureNoteType"; - import { SecureNoteData } from "../data/secureNoteData"; +import { SecureNoteView } from "../view/secureNoteView"; import Domain from "./domainBase"; - -import { SecureNoteView } from "../view/secureNoteView"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; export class SecureNote extends Domain { type: SecureNoteType; - constructor(obj?: SecureNoteData, alreadyEncrypted: boolean = false) { + constructor(obj?: SecureNoteData) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/send.ts b/common/src/models/domain/send.ts index ab217f92..29809b29 100644 --- a/common/src/models/domain/send.ts +++ b/common/src/models/domain/send.ts @@ -1,11 +1,7 @@ import { CryptoService } from "../../abstractions/crypto.service"; - import { SendType } from "../../enums/sendType"; - import { Utils } from "../../misc/utils"; - import { SendData } from "../data/sendData"; - import { SendView } from "../view/sendView"; import Domain from "./domainBase"; @@ -32,7 +28,7 @@ export class Send extends Domain { disabled: boolean; hideEmail: boolean; - constructor(obj?: SendData, alreadyEncrypted: boolean = false) { + constructor(obj?: SendData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/sendAccess.ts b/common/src/models/domain/sendAccess.ts index 05ad9bde..dce6960c 100644 --- a/common/src/models/domain/sendAccess.ts +++ b/common/src/models/domain/sendAccess.ts @@ -1,7 +1,5 @@ import { SendType } from "../../enums/sendType"; - import { SendAccessResponse } from "../response/sendAccessResponse"; - import { SendAccessView } from "../view/sendAccessView"; import Domain from "./domainBase"; @@ -19,7 +17,7 @@ export class SendAccess extends Domain { expirationDate: Date; creatorIdentifier: string; - constructor(obj?: SendAccessResponse, alreadyEncrypted: boolean = false) { + constructor(obj?: SendAccessResponse, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/sendFile.ts b/common/src/models/domain/sendFile.ts index 76c566df..5c954044 100644 --- a/common/src/models/domain/sendFile.ts +++ b/common/src/models/domain/sendFile.ts @@ -1,18 +1,17 @@ +import { SendFileData } from "../data/sendFileData"; +import { SendFileView } from "../view/sendFileView"; + import Domain from "./domainBase"; import { EncString } from "./encString"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; -import { SendFileData } from "../data/sendFileData"; - -import { SendFileView } from "../view/sendFileView"; - export class SendFile extends Domain { id: string; size: string; sizeName: string; fileName: EncString; - constructor(obj?: SendFileData, alreadyEncrypted: boolean = false) { + constructor(obj?: SendFileData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/sendText.ts b/common/src/models/domain/sendText.ts index 7d45332f..a306c6c3 100644 --- a/common/src/models/domain/sendText.ts +++ b/common/src/models/domain/sendText.ts @@ -1,16 +1,15 @@ +import { SendTextData } from "../data/sendTextData"; +import { SendTextView } from "../view/sendTextView"; + import Domain from "./domainBase"; import { EncString } from "./encString"; import { SymmetricCryptoKey } from "./symmetricCryptoKey"; -import { SendTextData } from "../data/sendTextData"; - -import { SendTextView } from "../view/sendTextView"; - export class SendText extends Domain { text: EncString; hidden: boolean; - constructor(obj?: SendTextData, alreadyEncrypted: boolean = false) { + constructor(obj?: SendTextData, alreadyEncrypted = false) { super(); if (obj == null) { return; diff --git a/common/src/models/domain/symmetricCryptoKey.ts b/common/src/models/domain/symmetricCryptoKey.ts index c3c80f06..a58dc6fd 100644 --- a/common/src/models/domain/symmetricCryptoKey.ts +++ b/common/src/models/domain/symmetricCryptoKey.ts @@ -1,5 +1,4 @@ import { EncryptionType } from "../../enums/encryptionType"; - import { Utils } from "../../misc/utils"; export class SymmetricCryptoKey { diff --git a/common/src/models/export/card.ts b/common/src/models/export/card.ts index 853ce64b..b320ec8b 100644 --- a/common/src/models/export/card.ts +++ b/common/src/models/export/card.ts @@ -1,7 +1,6 @@ -import { CardView } from "../view/cardView"; - import { Card as CardDomain } from "../domain/card"; import { EncString } from "../domain/encString"; +import { CardView } from "../view/cardView"; export class Card { static template(): Card { diff --git a/common/src/models/export/cipher.ts b/common/src/models/export/cipher.ts index c433044d..5d650666 100644 --- a/common/src/models/export/cipher.ts +++ b/common/src/models/export/cipher.ts @@ -1,10 +1,8 @@ import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CipherType } from "../../enums/cipherType"; - -import { CipherView } from "../view/cipherView"; - import { Cipher as CipherDomain } from "../domain/cipher"; import { EncString } from "../domain/encString"; +import { CipherView } from "../view/cipherView"; import { Card } from "./card"; import { Field } from "./field"; diff --git a/common/src/models/export/cipherWithIds.ts b/common/src/models/export/cipherWithIds.ts index fccf713e..a5698c6d 100644 --- a/common/src/models/export/cipherWithIds.ts +++ b/common/src/models/export/cipherWithIds.ts @@ -1,8 +1,7 @@ -import { Cipher } from "./cipher"; - +import { Cipher as CipherDomain } from "../domain/cipher"; import { CipherView } from "../view/cipherView"; -import { Cipher as CipherDomain } from "../domain/cipher"; +import { Cipher } from "./cipher"; export class CipherWithIds extends Cipher { id: string; diff --git a/common/src/models/export/collection.ts b/common/src/models/export/collection.ts index 70d52397..fba9af15 100644 --- a/common/src/models/export/collection.ts +++ b/common/src/models/export/collection.ts @@ -1,7 +1,6 @@ -import { CollectionView } from "../view/collectionView"; - import { Collection as CollectionDomain } from "../domain/collection"; import { EncString } from "../domain/encString"; +import { CollectionView } from "../view/collectionView"; export class Collection { static template(): Collection { diff --git a/common/src/models/export/collectionWithId.ts b/common/src/models/export/collectionWithId.ts index d5fcec58..7bc0707a 100644 --- a/common/src/models/export/collectionWithId.ts +++ b/common/src/models/export/collectionWithId.ts @@ -1,8 +1,7 @@ -import { Collection } from "./collection"; - +import { Collection as CollectionDomain } from "../domain/collection"; import { CollectionView } from "../view/collectionView"; -import { Collection as CollectionDomain } from "../domain/collection"; +import { Collection } from "./collection"; export class CollectionWithId extends Collection { id: string; diff --git a/common/src/models/export/field.ts b/common/src/models/export/field.ts index e4353a71..c8ce7581 100644 --- a/common/src/models/export/field.ts +++ b/common/src/models/export/field.ts @@ -1,10 +1,8 @@ import { FieldType } from "../../enums/fieldType"; import { LinkedIdType } from "../../enums/linkedIdType"; - -import { FieldView } from "../view/fieldView"; - import { EncString } from "../domain/encString"; import { Field as FieldDomain } from "../domain/field"; +import { FieldView } from "../view/fieldView"; export class Field { static template(): Field { diff --git a/common/src/models/export/folder.ts b/common/src/models/export/folder.ts index 9f015b56..e770f326 100644 --- a/common/src/models/export/folder.ts +++ b/common/src/models/export/folder.ts @@ -1,7 +1,6 @@ -import { FolderView } from "../view/folderView"; - import { EncString } from "../domain/encString"; import { Folder as FolderDomain } from "../domain/folder"; +import { FolderView } from "../view/folderView"; export class Folder { static template(): Folder { diff --git a/common/src/models/export/folderWithId.ts b/common/src/models/export/folderWithId.ts index 69983cab..a5507d51 100644 --- a/common/src/models/export/folderWithId.ts +++ b/common/src/models/export/folderWithId.ts @@ -1,8 +1,7 @@ -import { Folder } from "./folder"; - +import { Folder as FolderDomain } from "../domain/folder"; import { FolderView } from "../view/folderView"; -import { Folder as FolderDomain } from "../domain/folder"; +import { Folder } from "./folder"; export class FolderWithId extends Folder { id: string; diff --git a/common/src/models/export/identity.ts b/common/src/models/export/identity.ts index 42fb8865..144732db 100644 --- a/common/src/models/export/identity.ts +++ b/common/src/models/export/identity.ts @@ -1,7 +1,6 @@ -import { IdentityView } from "../view/identityView"; - import { EncString } from "../domain/encString"; import { Identity as IdentityDomain } from "../domain/identity"; +import { IdentityView } from "../view/identityView"; export class Identity { static template(): Identity { diff --git a/common/src/models/export/login.ts b/common/src/models/export/login.ts index d64263b3..6a07ff74 100644 --- a/common/src/models/export/login.ts +++ b/common/src/models/export/login.ts @@ -1,9 +1,8 @@ -import { LoginUri } from "./loginUri"; - -import { LoginView } from "../view/loginView"; - import { EncString } from "../domain/encString"; import { Login as LoginDomain } from "../domain/login"; +import { LoginView } from "../view/loginView"; + +import { LoginUri } from "./loginUri"; export class Login { static template(): Login { diff --git a/common/src/models/export/loginUri.ts b/common/src/models/export/loginUri.ts index 445b1a25..3e6d588b 100644 --- a/common/src/models/export/loginUri.ts +++ b/common/src/models/export/loginUri.ts @@ -1,9 +1,7 @@ import { UriMatchType } from "../../enums/uriMatchType"; - -import { LoginUriView } from "../view/loginUriView"; - import { EncString } from "../domain/encString"; import { LoginUri as LoginUriDomain } from "../domain/loginUri"; +import { LoginUriView } from "../view/loginUriView"; export class LoginUri { static template(): LoginUri { diff --git a/common/src/models/export/secureNote.ts b/common/src/models/export/secureNote.ts index 2dc75a9a..851ba8e4 100644 --- a/common/src/models/export/secureNote.ts +++ b/common/src/models/export/secureNote.ts @@ -1,8 +1,6 @@ import { SecureNoteType } from "../../enums/secureNoteType"; - -import { SecureNoteView } from "../view/secureNoteView"; - import { SecureNote as SecureNoteDomain } from "../domain/secureNote"; +import { SecureNoteView } from "../view/secureNoteView"; export class SecureNote { static template(): SecureNote { diff --git a/common/src/models/request/account/setKeyConnectorKeyRequest.ts b/common/src/models/request/account/setKeyConnectorKeyRequest.ts index b71ce290..a84cc7ef 100644 --- a/common/src/models/request/account/setKeyConnectorKeyRequest.ts +++ b/common/src/models/request/account/setKeyConnectorKeyRequest.ts @@ -1,6 +1,5 @@ -import { KeysRequest } from "../keysRequest"; - import { KdfType } from "../../../enums/kdfType"; +import { KeysRequest } from "../keysRequest"; export class SetKeyConnectorKeyRequest { key: string; diff --git a/common/src/models/request/cipherBulkShareRequest.ts b/common/src/models/request/cipherBulkShareRequest.ts index be36da9d..6e77ad56 100644 --- a/common/src/models/request/cipherBulkShareRequest.ts +++ b/common/src/models/request/cipherBulkShareRequest.ts @@ -1,7 +1,7 @@ -import { CipherWithIdRequest } from "./cipherWithIdRequest"; - import { Cipher } from "../domain/cipher"; +import { CipherWithIdRequest } from "./cipherWithIdRequest"; + export class CipherBulkShareRequest { ciphers: CipherWithIdRequest[]; collectionIds: string[]; diff --git a/common/src/models/request/cipherCreateRequest.ts b/common/src/models/request/cipherCreateRequest.ts index 443ef318..d7ff5128 100644 --- a/common/src/models/request/cipherCreateRequest.ts +++ b/common/src/models/request/cipherCreateRequest.ts @@ -1,7 +1,7 @@ -import { CipherRequest } from "./cipherRequest"; - import { Cipher } from "../domain/cipher"; +import { CipherRequest } from "./cipherRequest"; + export class CipherCreateRequest { cipher: CipherRequest; collectionIds: string[]; diff --git a/common/src/models/request/cipherRequest.ts b/common/src/models/request/cipherRequest.ts index c14274d9..4ed58850 100644 --- a/common/src/models/request/cipherRequest.ts +++ b/common/src/models/request/cipherRequest.ts @@ -1,14 +1,12 @@ import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CipherType } from "../../enums/cipherType"; - -import { Cipher } from "../domain/cipher"; - import { CardApi } from "../api/cardApi"; import { FieldApi } from "../api/fieldApi"; import { IdentityApi } from "../api/identityApi"; import { LoginApi } from "../api/loginApi"; import { LoginUriApi } from "../api/loginUriApi"; import { SecureNoteApi } from "../api/secureNoteApi"; +import { Cipher } from "../domain/cipher"; import { AttachmentRequest } from "./attachmentRequest"; import { PasswordHistoryRequest } from "./passwordHistoryRequest"; diff --git a/common/src/models/request/cipherShareRequest.ts b/common/src/models/request/cipherShareRequest.ts index 430e4ef8..4cf6dfde 100644 --- a/common/src/models/request/cipherShareRequest.ts +++ b/common/src/models/request/cipherShareRequest.ts @@ -1,7 +1,7 @@ -import { CipherRequest } from "./cipherRequest"; - import { Cipher } from "../domain/cipher"; +import { CipherRequest } from "./cipherRequest"; + export class CipherShareRequest { cipher: CipherRequest; collectionIds: string[]; diff --git a/common/src/models/request/cipherWithIdRequest.ts b/common/src/models/request/cipherWithIdRequest.ts index a722e4a9..0f22322f 100644 --- a/common/src/models/request/cipherWithIdRequest.ts +++ b/common/src/models/request/cipherWithIdRequest.ts @@ -1,7 +1,7 @@ -import { CipherRequest } from "./cipherRequest"; - import { Cipher } from "../domain/cipher"; +import { CipherRequest } from "./cipherRequest"; + export class CipherWithIdRequest extends CipherRequest { id: string; diff --git a/common/src/models/request/deviceRequest.ts b/common/src/models/request/deviceRequest.ts index 06da38a1..66c17b57 100644 --- a/common/src/models/request/deviceRequest.ts +++ b/common/src/models/request/deviceRequest.ts @@ -1,6 +1,5 @@ -import { DeviceType } from "../../enums/deviceType"; - import { PlatformUtilsService } from "../../abstractions/platformUtils.service"; +import { DeviceType } from "../../enums/deviceType"; export class DeviceRequest { type: DeviceType; diff --git a/common/src/models/request/folderWithIdRequest.ts b/common/src/models/request/folderWithIdRequest.ts index 1c83e73f..a36c2b70 100644 --- a/common/src/models/request/folderWithIdRequest.ts +++ b/common/src/models/request/folderWithIdRequest.ts @@ -1,7 +1,7 @@ -import { FolderRequest } from "./folderRequest"; - import { Folder } from "../domain/folder"; +import { FolderRequest } from "./folderRequest"; + export class FolderWithIdRequest extends FolderRequest { id: string; diff --git a/common/src/models/request/identityToken/apiTokenRequest.ts b/common/src/models/request/identityToken/apiTokenRequest.ts index b8f2c21f..dabaead9 100644 --- a/common/src/models/request/identityToken/apiTokenRequest.ts +++ b/common/src/models/request/identityToken/apiTokenRequest.ts @@ -1,7 +1,7 @@ -import { TokenRequest, TokenRequestTwoFactor } from "./tokenRequest"; - import { DeviceRequest } from "../deviceRequest"; +import { TokenRequest, TokenRequestTwoFactor } from "./tokenRequest"; + export class ApiTokenRequest extends TokenRequest { constructor( public clientId: string, diff --git a/common/src/models/request/identityToken/passwordTokenRequest.ts b/common/src/models/request/identityToken/passwordTokenRequest.ts index 59f28ecd..0cafd147 100644 --- a/common/src/models/request/identityToken/passwordTokenRequest.ts +++ b/common/src/models/request/identityToken/passwordTokenRequest.ts @@ -1,10 +1,9 @@ -import { TokenRequest, TokenRequestTwoFactor } from "./tokenRequest"; - +import { ClientType } from "../../../enums/clientType"; +import { Utils } from "../../../misc/utils"; import { CaptchaProtectedRequest } from "../captchaProtectedRequest"; import { DeviceRequest } from "../deviceRequest"; -import { ClientType } from "../../../enums/clientType"; -import { Utils } from "../../../misc/utils"; +import { TokenRequest, TokenRequestTwoFactor } from "./tokenRequest"; export class PasswordTokenRequest extends TokenRequest implements CaptchaProtectedRequest { constructor( diff --git a/common/src/models/request/identityToken/ssoTokenRequest.ts b/common/src/models/request/identityToken/ssoTokenRequest.ts index 009b8cf8..267de2ed 100644 --- a/common/src/models/request/identityToken/ssoTokenRequest.ts +++ b/common/src/models/request/identityToken/ssoTokenRequest.ts @@ -1,7 +1,7 @@ -import { TokenRequest, TokenRequestTwoFactor } from "./tokenRequest"; - import { DeviceRequest } from "../deviceRequest"; +import { TokenRequest, TokenRequestTwoFactor } from "./tokenRequest"; + export class SsoTokenRequest extends TokenRequest { constructor( public code: string, diff --git a/common/src/models/request/identityToken/tokenRequest.ts b/common/src/models/request/identityToken/tokenRequest.ts index 4e193cc0..36a61e1d 100644 --- a/common/src/models/request/identityToken/tokenRequest.ts +++ b/common/src/models/request/identityToken/tokenRequest.ts @@ -1,5 +1,4 @@ import { TwoFactorProviderType } from "../../../enums/twoFactorProviderType"; - import { DeviceRequest } from "../deviceRequest"; export interface TokenRequestTwoFactor { @@ -15,6 +14,7 @@ export abstract class TokenRequest { this.device = device != null ? device : null; } + // eslint-disable-next-line alterIdentityTokenHeaders(headers: Headers) { // Implemented in subclass if required } diff --git a/common/src/models/request/kdfRequest.ts b/common/src/models/request/kdfRequest.ts index 82a031b1..47c1ce07 100644 --- a/common/src/models/request/kdfRequest.ts +++ b/common/src/models/request/kdfRequest.ts @@ -1,7 +1,7 @@ -import { PasswordRequest } from "./passwordRequest"; - import { KdfType } from "../../enums/kdfType"; +import { PasswordRequest } from "./passwordRequest"; + export class KdfRequest extends PasswordRequest { kdf: KdfType; kdfIterations: number; diff --git a/common/src/models/request/organization/organizationSsoRequest.ts b/common/src/models/request/organization/organizationSsoRequest.ts index 8a2cbab9..e7fdb61c 100644 --- a/common/src/models/request/organization/organizationSsoRequest.ts +++ b/common/src/models/request/organization/organizationSsoRequest.ts @@ -1,6 +1,6 @@ import { SsoConfigApi } from "../../api/ssoConfigApi"; export class OrganizationSsoRequest { - enabled: boolean = false; + enabled = false; data: SsoConfigApi; } diff --git a/common/src/models/request/organizationImportRequest.ts b/common/src/models/request/organizationImportRequest.ts index 4ff23df7..af7db2be 100644 --- a/common/src/models/request/organizationImportRequest.ts +++ b/common/src/models/request/organizationImportRequest.ts @@ -5,8 +5,8 @@ import { OrganizationImportMemberRequest } from "./organizationImportMemberReque export class OrganizationImportRequest { groups: OrganizationImportGroupRequest[] = []; members: OrganizationImportMemberRequest[] = []; - overwriteExisting: boolean = false; - largeImport: boolean = false; + overwriteExisting = false; + largeImport = false; constructor( model: diff --git a/common/src/models/request/organizationUserInviteRequest.ts b/common/src/models/request/organizationUserInviteRequest.ts index 5c4046af..7d037004 100644 --- a/common/src/models/request/organizationUserInviteRequest.ts +++ b/common/src/models/request/organizationUserInviteRequest.ts @@ -1,8 +1,8 @@ -import { SelectionReadOnlyRequest } from "./selectionReadOnlyRequest"; - import { OrganizationUserType } from "../../enums/organizationUserType"; import { PermissionsApi } from "../api/permissionsApi"; +import { SelectionReadOnlyRequest } from "./selectionReadOnlyRequest"; + export class OrganizationUserInviteRequest { emails: string[] = []; type: OrganizationUserType; diff --git a/common/src/models/request/organizationUserUpdateRequest.ts b/common/src/models/request/organizationUserUpdateRequest.ts index 2bd9dd62..ec9ae3bc 100644 --- a/common/src/models/request/organizationUserUpdateRequest.ts +++ b/common/src/models/request/organizationUserUpdateRequest.ts @@ -1,8 +1,8 @@ -import { SelectionReadOnlyRequest } from "./selectionReadOnlyRequest"; - import { OrganizationUserType } from "../../enums/organizationUserType"; import { PermissionsApi } from "../api/permissionsApi"; +import { SelectionReadOnlyRequest } from "./selectionReadOnlyRequest"; + export class OrganizationUserUpdateRequest { type: OrganizationUserType; accessAll: boolean; diff --git a/common/src/models/request/registerRequest.ts b/common/src/models/request/registerRequest.ts index 5c53ce59..8650c5c5 100644 --- a/common/src/models/request/registerRequest.ts +++ b/common/src/models/request/registerRequest.ts @@ -1,9 +1,8 @@ -import { KeysRequest } from "./keysRequest"; -import { ReferenceEventRequest } from "./referenceEventRequest"; - import { KdfType } from "../../enums/kdfType"; import { CaptchaProtectedRequest } from "./captchaProtectedRequest"; +import { KeysRequest } from "./keysRequest"; +import { ReferenceEventRequest } from "./referenceEventRequest"; export class RegisterRequest implements CaptchaProtectedRequest { masterPasswordHint: string; diff --git a/common/src/models/request/sendRequest.ts b/common/src/models/request/sendRequest.ts index 6fa481ee..1c77204c 100644 --- a/common/src/models/request/sendRequest.ts +++ b/common/src/models/request/sendRequest.ts @@ -1,8 +1,6 @@ import { SendType } from "../../enums/sendType"; - import { SendFileApi } from "../api/sendFileApi"; import { SendTextApi } from "../api/sendTextApi"; - import { Send } from "../domain/send"; export class SendRequest { diff --git a/common/src/models/request/sendWithIdRequest.ts b/common/src/models/request/sendWithIdRequest.ts index 903151e3..8591a57e 100644 --- a/common/src/models/request/sendWithIdRequest.ts +++ b/common/src/models/request/sendWithIdRequest.ts @@ -1,7 +1,7 @@ -import { SendRequest } from "./sendRequest"; - import { Send } from "../domain/send"; +import { SendRequest } from "./sendRequest"; + export class SendWithIdRequest extends SendRequest { id: string; diff --git a/common/src/models/request/setPasswordRequest.ts b/common/src/models/request/setPasswordRequest.ts index de3b8489..919a132f 100644 --- a/common/src/models/request/setPasswordRequest.ts +++ b/common/src/models/request/setPasswordRequest.ts @@ -1,7 +1,7 @@ -import { KeysRequest } from "./keysRequest"; - import { KdfType } from "../../enums/kdfType"; +import { KeysRequest } from "./keysRequest"; + export class SetPasswordRequest { masterPasswordHash: string; key: string; diff --git a/common/src/models/request/twoFactorProviderRequest.ts b/common/src/models/request/twoFactorProviderRequest.ts index d80ba5ba..9d606bc9 100644 --- a/common/src/models/request/twoFactorProviderRequest.ts +++ b/common/src/models/request/twoFactorProviderRequest.ts @@ -1,7 +1,7 @@ -import { SecretVerificationRequest } from "./secretVerificationRequest"; - import { TwoFactorProviderType } from "../../enums/twoFactorProviderType"; +import { SecretVerificationRequest } from "./secretVerificationRequest"; + export class TwoFactorProviderRequest extends SecretVerificationRequest { type: TwoFactorProviderType; } diff --git a/common/src/models/response/attachmentUploadDataResponse.ts b/common/src/models/response/attachmentUploadDataResponse.ts index e9651452..4520c309 100644 --- a/common/src/models/response/attachmentUploadDataResponse.ts +++ b/common/src/models/response/attachmentUploadDataResponse.ts @@ -1,4 +1,5 @@ import { FileUploadType } from "../../enums/fileUploadType"; + import { BaseResponse } from "./baseResponse"; import { CipherResponse } from "./cipherResponse"; diff --git a/common/src/models/response/billingResponse.ts b/common/src/models/response/billingResponse.ts index 91905cb2..8d09cf93 100644 --- a/common/src/models/response/billingResponse.ts +++ b/common/src/models/response/billingResponse.ts @@ -1,8 +1,8 @@ -import { BaseResponse } from "./baseResponse"; - import { PaymentMethodType } from "../../enums/paymentMethodType"; import { TransactionType } from "../../enums/transactionType"; +import { BaseResponse } from "./baseResponse"; + export class BillingResponse extends BaseResponse { balance: number; paymentSource: BillingSourceResponse; diff --git a/common/src/models/response/cipherResponse.ts b/common/src/models/response/cipherResponse.ts index 0be26463..5b461438 100644 --- a/common/src/models/response/cipherResponse.ts +++ b/common/src/models/response/cipherResponse.ts @@ -1,7 +1,3 @@ -import { AttachmentResponse } from "./attachmentResponse"; -import { BaseResponse } from "./baseResponse"; -import { PasswordHistoryResponse } from "./passwordHistoryResponse"; - import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CardApi } from "../api/cardApi"; import { FieldApi } from "../api/fieldApi"; @@ -9,6 +5,10 @@ import { IdentityApi } from "../api/identityApi"; import { LoginApi } from "../api/loginApi"; import { SecureNoteApi } from "../api/secureNoteApi"; +import { AttachmentResponse } from "./attachmentResponse"; +import { BaseResponse } from "./baseResponse"; +import { PasswordHistoryResponse } from "./passwordHistoryResponse"; + export class CipherResponse extends BaseResponse { id: string; organizationId: string; diff --git a/common/src/models/response/deviceResponse.ts b/common/src/models/response/deviceResponse.ts index e3857cc1..aac9ac6c 100644 --- a/common/src/models/response/deviceResponse.ts +++ b/common/src/models/response/deviceResponse.ts @@ -1,7 +1,7 @@ -import { BaseResponse } from "./baseResponse"; - import { DeviceType } from "../../enums/deviceType"; +import { BaseResponse } from "./baseResponse"; + export class DeviceResponse extends BaseResponse { id: string; name: number; diff --git a/common/src/models/response/emergencyAccessResponse.ts b/common/src/models/response/emergencyAccessResponse.ts index 703543b2..9ac5380d 100644 --- a/common/src/models/response/emergencyAccessResponse.ts +++ b/common/src/models/response/emergencyAccessResponse.ts @@ -1,6 +1,7 @@ import { EmergencyAccessStatusType } from "../../enums/emergencyAccessStatusType"; import { EmergencyAccessType } from "../../enums/emergencyAccessType"; import { KdfType } from "../../enums/kdfType"; + import { BaseResponse } from "./baseResponse"; import { CipherResponse } from "./cipherResponse"; diff --git a/common/src/models/response/errorResponse.ts b/common/src/models/response/errorResponse.ts index 6e19ace9..3a0d22e6 100644 --- a/common/src/models/response/errorResponse.ts +++ b/common/src/models/response/errorResponse.ts @@ -39,6 +39,7 @@ export class ErrorResponse extends BaseResponse { return this.message; } for (const key in this.validationErrors) { + // eslint-disable-next-line if (!this.validationErrors.hasOwnProperty(key)) { continue; } @@ -55,6 +56,7 @@ export class ErrorResponse extends BaseResponse { return messages; } for (const key in this.validationErrors) { + // eslint-disable-next-line if (!this.validationErrors.hasOwnProperty(key)) { continue; } diff --git a/common/src/models/response/eventResponse.ts b/common/src/models/response/eventResponse.ts index b56e172c..93e31955 100644 --- a/common/src/models/response/eventResponse.ts +++ b/common/src/models/response/eventResponse.ts @@ -1,8 +1,8 @@ -import { BaseResponse } from "./baseResponse"; - import { DeviceType } from "../../enums/deviceType"; import { EventType } from "../../enums/eventType"; +import { BaseResponse } from "./baseResponse"; + export class EventResponse extends BaseResponse { type: EventType; userId: string; diff --git a/common/src/models/response/identityTokenResponse.ts b/common/src/models/response/identityTokenResponse.ts index f17e144a..87b5d396 100644 --- a/common/src/models/response/identityTokenResponse.ts +++ b/common/src/models/response/identityTokenResponse.ts @@ -1,7 +1,7 @@ -import { BaseResponse } from "./baseResponse"; - import { KdfType } from "../../enums/kdfType"; +import { BaseResponse } from "./baseResponse"; + export class IdentityTokenResponse extends BaseResponse { accessToken: string; expiresIn: number; diff --git a/common/src/models/response/identityTwoFactorResponse.ts b/common/src/models/response/identityTwoFactorResponse.ts index bb826537..dc7dfde7 100644 --- a/common/src/models/response/identityTwoFactorResponse.ts +++ b/common/src/models/response/identityTwoFactorResponse.ts @@ -1,7 +1,7 @@ -import { BaseResponse } from "./baseResponse"; - import { TwoFactorProviderType } from "../../enums/twoFactorProviderType"; +import { BaseResponse } from "./baseResponse"; + export class IdentityTwoFactorResponse extends BaseResponse { twoFactorProviders: TwoFactorProviderType[]; twoFactorProviders2 = new Map(); @@ -14,6 +14,7 @@ export class IdentityTwoFactorResponse extends BaseResponse { const twoFactorProviders2 = this.getResponseProperty("TwoFactorProviders2"); if (twoFactorProviders2 != null) { for (const prop in twoFactorProviders2) { + // eslint-disable-next-line if (twoFactorProviders2.hasOwnProperty(prop)) { this.twoFactorProviders2.set(parseInt(prop, null), twoFactorProviders2[prop]); } diff --git a/common/src/models/response/notificationResponse.ts b/common/src/models/response/notificationResponse.ts index 79bbdb0e..f23de8fe 100644 --- a/common/src/models/response/notificationResponse.ts +++ b/common/src/models/response/notificationResponse.ts @@ -1,7 +1,7 @@ -import { BaseResponse } from "./baseResponse"; - import { NotificationType } from "../../enums/notificationType"; +import { BaseResponse } from "./baseResponse"; + export class NotificationResponse extends BaseResponse { contextId: string; type: NotificationType; @@ -36,6 +36,7 @@ export class NotificationResponse extends BaseResponse { case NotificationType.SyncSendUpdate: case NotificationType.SyncSendDelete: this.payload = new SyncSendNotification(payload); + break; default: break; } diff --git a/common/src/models/response/organizationResponse.ts b/common/src/models/response/organizationResponse.ts index c1938253..addb2a28 100644 --- a/common/src/models/response/organizationResponse.ts +++ b/common/src/models/response/organizationResponse.ts @@ -1,8 +1,8 @@ +import { PlanType } from "../../enums/planType"; + import { BaseResponse } from "./baseResponse"; import { PlanResponse } from "./planResponse"; -import { PlanType } from "../../enums/planType"; - export class OrganizationResponse extends BaseResponse { id: string; identifier: string; diff --git a/common/src/models/response/organizationUserResponse.ts b/common/src/models/response/organizationUserResponse.ts index 493d2661..3e49375b 100644 --- a/common/src/models/response/organizationUserResponse.ts +++ b/common/src/models/response/organizationUserResponse.ts @@ -1,11 +1,10 @@ -import { BaseResponse } from "./baseResponse"; -import { SelectionReadOnlyResponse } from "./selectionReadOnlyResponse"; - -import { PermissionsApi } from "../api/permissionsApi"; - import { KdfType } from "../../enums/kdfType"; import { OrganizationUserStatusType } from "../../enums/organizationUserStatusType"; import { OrganizationUserType } from "../../enums/organizationUserType"; +import { PermissionsApi } from "../api/permissionsApi"; + +import { BaseResponse } from "./baseResponse"; +import { SelectionReadOnlyResponse } from "./selectionReadOnlyResponse"; export class OrganizationUserResponse extends BaseResponse { id: string; diff --git a/common/src/models/response/policyResponse.ts b/common/src/models/response/policyResponse.ts index 328491cf..d38375ef 100644 --- a/common/src/models/response/policyResponse.ts +++ b/common/src/models/response/policyResponse.ts @@ -1,7 +1,7 @@ -import { BaseResponse } from "./baseResponse"; - import { PolicyType } from "../../enums/policyType"; +import { BaseResponse } from "./baseResponse"; + export class PolicyResponse extends BaseResponse { id: string; organizationId: string; diff --git a/common/src/models/response/preloginResponse.ts b/common/src/models/response/preloginResponse.ts index d5396830..7756f8ed 100644 --- a/common/src/models/response/preloginResponse.ts +++ b/common/src/models/response/preloginResponse.ts @@ -1,7 +1,7 @@ -import { BaseResponse } from "./baseResponse"; - import { KdfType } from "../../enums/kdfType"; +import { BaseResponse } from "./baseResponse"; + export class PreloginResponse extends BaseResponse { kdf: KdfType; kdfIterations: number; diff --git a/common/src/models/response/profileOrganizationResponse.ts b/common/src/models/response/profileOrganizationResponse.ts index efa2e3f8..9c992e54 100644 --- a/common/src/models/response/profileOrganizationResponse.ts +++ b/common/src/models/response/profileOrganizationResponse.ts @@ -1,10 +1,10 @@ -import { BaseResponse } from "./baseResponse"; - import { OrganizationUserStatusType } from "../../enums/organizationUserStatusType"; import { OrganizationUserType } from "../../enums/organizationUserType"; import { ProductType } from "../../enums/productType"; import { PermissionsApi } from "../api/permissionsApi"; +import { BaseResponse } from "./baseResponse"; + export class ProfileOrganizationResponse extends BaseResponse { id: string; name: string; diff --git a/common/src/models/response/profileProviderResponse.ts b/common/src/models/response/profileProviderResponse.ts index 04610080..84e8bbf6 100644 --- a/common/src/models/response/profileProviderResponse.ts +++ b/common/src/models/response/profileProviderResponse.ts @@ -1,10 +1,9 @@ -import { BaseResponse } from "./baseResponse"; - import { ProviderUserStatusType } from "../../enums/providerUserStatusType"; import { ProviderUserType } from "../../enums/providerUserType"; - import { PermissionsApi } from "../api/permissionsApi"; +import { BaseResponse } from "./baseResponse"; + export class ProfileProviderResponse extends BaseResponse { id: string; name: string; diff --git a/common/src/models/response/provider/providerUserResponse.ts b/common/src/models/response/provider/providerUserResponse.ts index 4aad5814..cf1a181c 100644 --- a/common/src/models/response/provider/providerUserResponse.ts +++ b/common/src/models/response/provider/providerUserResponse.ts @@ -1,9 +1,7 @@ -import { BaseResponse } from "../baseResponse"; - -import { PermissionsApi } from "../../api/permissionsApi"; - import { ProviderUserStatusType } from "../../../enums/providerUserStatusType"; import { ProviderUserType } from "../../../enums/providerUserType"; +import { PermissionsApi } from "../../api/permissionsApi"; +import { BaseResponse } from "../baseResponse"; export class ProviderUserResponse extends BaseResponse { id: string; diff --git a/common/src/models/response/sendAccessResponse.ts b/common/src/models/response/sendAccessResponse.ts index 2742c7f9..e98a9d05 100644 --- a/common/src/models/response/sendAccessResponse.ts +++ b/common/src/models/response/sendAccessResponse.ts @@ -1,10 +1,9 @@ -import { BaseResponse } from "./baseResponse"; - import { SendType } from "../../enums/sendType"; - import { SendFileApi } from "../api/sendFileApi"; import { SendTextApi } from "../api/sendTextApi"; +import { BaseResponse } from "./baseResponse"; + export class SendAccessResponse extends BaseResponse { id: string; type: SendType; diff --git a/common/src/models/response/sendResponse.ts b/common/src/models/response/sendResponse.ts index edb009c3..28750725 100644 --- a/common/src/models/response/sendResponse.ts +++ b/common/src/models/response/sendResponse.ts @@ -1,10 +1,9 @@ -import { BaseResponse } from "./baseResponse"; - import { SendType } from "../../enums/sendType"; - import { SendFileApi } from "../api/sendFileApi"; import { SendTextApi } from "../api/sendTextApi"; +import { BaseResponse } from "./baseResponse"; + export class SendResponse extends BaseResponse { id: string; accessId: string; diff --git a/common/src/models/response/twoFactorProviderResponse.ts b/common/src/models/response/twoFactorProviderResponse.ts index 6f149136..4ccd86cb 100644 --- a/common/src/models/response/twoFactorProviderResponse.ts +++ b/common/src/models/response/twoFactorProviderResponse.ts @@ -1,7 +1,7 @@ -import { BaseResponse } from "./baseResponse"; - import { TwoFactorProviderType } from "../../enums/twoFactorProviderType"; +import { BaseResponse } from "./baseResponse"; + export class TwoFactorProviderResponse extends BaseResponse { enabled: boolean; type: TwoFactorProviderType; diff --git a/common/src/models/response/twoFactorWebAuthnResponse.ts b/common/src/models/response/twoFactorWebAuthnResponse.ts index 9c855b76..21ab66a0 100644 --- a/common/src/models/response/twoFactorWebAuthnResponse.ts +++ b/common/src/models/response/twoFactorWebAuthnResponse.ts @@ -1,4 +1,5 @@ import { Utils } from "../../misc/utils"; + import { BaseResponse } from "./baseResponse"; export class TwoFactorWebAuthnResponse extends BaseResponse { diff --git a/common/src/models/view/attachmentView.ts b/common/src/models/view/attachmentView.ts index 7bf8186f..4ebbec7e 100644 --- a/common/src/models/view/attachmentView.ts +++ b/common/src/models/view/attachmentView.ts @@ -1,8 +1,8 @@ -import { View } from "./view"; - import { Attachment } from "../domain/attachment"; import { SymmetricCryptoKey } from "../domain/symmetricCryptoKey"; +import { View } from "./view"; + export class AttachmentView implements View { id: string = null; url: string = null; diff --git a/common/src/models/view/cardView.ts b/common/src/models/view/cardView.ts index 4aa3a999..769fa440 100644 --- a/common/src/models/view/cardView.ts +++ b/common/src/models/view/cardView.ts @@ -1,11 +1,8 @@ -import { ItemView } from "./itemView"; - -import { Card } from "../domain/card"; - import { CardLinkedId as LinkedId } from "../../enums/linkedIdType"; - import { linkedFieldOption } from "../../misc/linkedFieldOption.decorator"; +import { ItemView } from "./itemView"; + export class CardView extends ItemView { @linkedFieldOption(LinkedId.CardholderName) cardholderName: string = null; @@ -16,13 +13,11 @@ export class CardView extends ItemView { @linkedFieldOption(LinkedId.Code, "securityCode") code: string = null; - // tslint:disable private _brand: string = null; private _number: string = null; private _subTitle: string = null; - // tslint:enable - constructor(c?: Card) { + constructor() { super(); } diff --git a/common/src/models/view/cipherView.ts b/common/src/models/view/cipherView.ts index 073b2a2c..3d1f16c1 100644 --- a/common/src/models/view/cipherView.ts +++ b/common/src/models/view/cipherView.ts @@ -1,14 +1,12 @@ import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CipherType } from "../../enums/cipherType"; import { LinkedIdType } from "../../enums/linkedIdType"; - import { Cipher } from "../domain/cipher"; import { AttachmentView } from "./attachmentView"; import { CardView } from "./cardView"; import { FieldView } from "./fieldView"; import { IdentityView } from "./identityView"; -import { ItemView } from "./itemView"; import { LoginView } from "./loginView"; import { PasswordHistoryView } from "./passwordHistoryView"; import { SecureNoteView } from "./secureNoteView"; diff --git a/common/src/models/view/collectionView.ts b/common/src/models/view/collectionView.ts index 0f580837..d230e591 100644 --- a/common/src/models/view/collectionView.ts +++ b/common/src/models/view/collectionView.ts @@ -1,10 +1,9 @@ -import { View } from "./view"; - import { Collection } from "../domain/collection"; import { ITreeNodeObject } from "../domain/treeNode"; - import { CollectionGroupDetailsResponse } from "../response/collectionResponse"; +import { View } from "./view"; + export class CollectionView implements View, ITreeNodeObject { id: string = null; organizationId: string = null; diff --git a/common/src/models/view/fieldView.ts b/common/src/models/view/fieldView.ts index c1c1b1e4..46d42018 100644 --- a/common/src/models/view/fieldView.ts +++ b/common/src/models/view/fieldView.ts @@ -1,16 +1,15 @@ import { FieldType } from "../../enums/fieldType"; import { LinkedIdType } from "../../enums/linkedIdType"; +import { Field } from "../domain/field"; import { View } from "./view"; -import { Field } from "../domain/field"; - export class FieldView implements View { name: string = null; value: string = null; type: FieldType = null; - newField: boolean = false; // Marks if the field is new and hasn't been saved - showValue: boolean = false; + newField = false; // Marks if the field is new and hasn't been saved + showValue = false; linkedId: LinkedIdType = null; constructor(f?: Field) { diff --git a/common/src/models/view/folderView.ts b/common/src/models/view/folderView.ts index 5ecd8822..731acffb 100644 --- a/common/src/models/view/folderView.ts +++ b/common/src/models/view/folderView.ts @@ -1,8 +1,8 @@ -import { View } from "./view"; - import { Folder } from "../domain/folder"; import { ITreeNodeObject } from "../domain/treeNode"; +import { View } from "./view"; + export class FolderView implements View, ITreeNodeObject { id: string = null; name: string = null; diff --git a/common/src/models/view/identityView.ts b/common/src/models/view/identityView.ts index 10e6616e..26305636 100644 --- a/common/src/models/view/identityView.ts +++ b/common/src/models/view/identityView.ts @@ -1,12 +1,8 @@ -import { ItemView } from "./itemView"; - -import { Identity } from "../domain/identity"; - +import { IdentityLinkedId as LinkedId } from "../../enums/linkedIdType"; +import { linkedFieldOption } from "../../misc/linkedFieldOption.decorator"; import { Utils } from "../../misc/utils"; -import { IdentityLinkedId as LinkedId } from "../../enums/linkedIdType"; - -import { linkedFieldOption } from "../../misc/linkedFieldOption.decorator"; +import { ItemView } from "./itemView"; export class IdentityView extends ItemView { @linkedFieldOption(LinkedId.Title) @@ -42,13 +38,11 @@ export class IdentityView extends ItemView { @linkedFieldOption(LinkedId.LicenseNumber) licenseNumber: string = null; - // tslint:disable private _firstName: string = null; private _lastName: string = null; private _subTitle: string = null; - // tslint:enable - constructor(i?: Identity) { + constructor() { super(); } diff --git a/common/src/models/view/itemView.ts b/common/src/models/view/itemView.ts index edd85b7d..3a557ffa 100644 --- a/common/src/models/view/itemView.ts +++ b/common/src/models/view/itemView.ts @@ -1,7 +1,7 @@ -import { View } from "./view"; - import { LinkedMetadata } from "../../misc/linkedFieldOption.decorator"; +import { View } from "./view"; + export abstract class ItemView implements View { linkedFieldOptions: Map; abstract get subTitle(): string; diff --git a/common/src/models/view/loginUriView.ts b/common/src/models/view/loginUriView.ts index cd5dc2b8..cca9520d 100644 --- a/common/src/models/view/loginUriView.ts +++ b/common/src/models/view/loginUriView.ts @@ -1,10 +1,8 @@ import { UriMatchType } from "../../enums/uriMatchType"; - -import { View } from "./view"; - +import { Utils } from "../../misc/utils"; import { LoginUri } from "../domain/loginUri"; -import { Utils } from "../../misc/utils"; +import { View } from "./view"; const CanLaunchWhitelist = [ "https://", @@ -25,13 +23,11 @@ const CanLaunchWhitelist = [ export class LoginUriView implements View { match: UriMatchType = null; - // tslint:disable private _uri: string = null; private _domain: string = null; private _hostname: string = null; private _host: string = null; private _canLaunch: boolean = null; - // tslint:enable constructor(u?: LoginUri) { if (!u) { diff --git a/common/src/models/view/loginView.ts b/common/src/models/view/loginView.ts index b301f532..e86dd14b 100644 --- a/common/src/models/view/loginView.ts +++ b/common/src/models/view/loginView.ts @@ -1,13 +1,10 @@ -import { ItemView } from "./itemView"; -import { LoginUriView } from "./loginUriView"; - +import { LoginLinkedId as LinkedId } from "../../enums/linkedIdType"; +import { linkedFieldOption } from "../../misc/linkedFieldOption.decorator"; import { Utils } from "../../misc/utils"; - import { Login } from "../domain/login"; -import { LoginLinkedId as LinkedId } from "../../enums/linkedIdType"; - -import { linkedFieldOption } from "../../misc/linkedFieldOption.decorator"; +import { ItemView } from "./itemView"; +import { LoginUriView } from "./loginUriView"; export class LoginView extends ItemView { @linkedFieldOption(LinkedId.Username) diff --git a/common/src/models/view/passwordHistoryView.ts b/common/src/models/view/passwordHistoryView.ts index 637b9b4f..aa780079 100644 --- a/common/src/models/view/passwordHistoryView.ts +++ b/common/src/models/view/passwordHistoryView.ts @@ -1,7 +1,7 @@ -import { View } from "./view"; - import { Password } from "../domain/password"; +import { View } from "./view"; + export class PasswordHistoryView implements View { password: string = null; lastUsedDate: Date = null; diff --git a/common/src/models/view/secureNoteView.ts b/common/src/models/view/secureNoteView.ts index c660ac9f..c324b07e 100644 --- a/common/src/models/view/secureNoteView.ts +++ b/common/src/models/view/secureNoteView.ts @@ -1,9 +1,8 @@ import { SecureNoteType } from "../../enums/secureNoteType"; +import { SecureNote } from "../domain/secureNote"; import { ItemView } from "./itemView"; -import { SecureNote } from "../domain/secureNote"; - export class SecureNoteView extends ItemView { type: SecureNoteType = null; diff --git a/common/src/models/view/sendAccessView.ts b/common/src/models/view/sendAccessView.ts index 1b848169..71e5276a 100644 --- a/common/src/models/view/sendAccessView.ts +++ b/common/src/models/view/sendAccessView.ts @@ -1,5 +1,4 @@ import { SendType } from "../../enums/sendType"; - import { SendAccess } from "../domain/sendAccess"; import { SendFileView } from "./sendFileView"; diff --git a/common/src/models/view/sendFileView.ts b/common/src/models/view/sendFileView.ts index deff8700..7d37f2de 100644 --- a/common/src/models/view/sendFileView.ts +++ b/common/src/models/view/sendFileView.ts @@ -1,7 +1,7 @@ -import { View } from "./view"; - import { SendFile } from "../domain/sendFile"; +import { View } from "./view"; + export class SendFileView implements View { id: string = null; size: string = null; diff --git a/common/src/models/view/sendTextView.ts b/common/src/models/view/sendTextView.ts index 5c1f018e..a2c6b571 100644 --- a/common/src/models/view/sendTextView.ts +++ b/common/src/models/view/sendTextView.ts @@ -1,7 +1,7 @@ -import { View } from "./view"; - import { SendText } from "../domain/sendText"; +import { View } from "./view"; + export class SendTextView implements View { text: string = null; hidden: boolean; diff --git a/common/src/models/view/sendView.ts b/common/src/models/view/sendView.ts index 48aa887e..1a2a214f 100644 --- a/common/src/models/view/sendView.ts +++ b/common/src/models/view/sendView.ts @@ -1,6 +1,5 @@ import { SendType } from "../../enums/sendType"; import { Utils } from "../../misc/utils"; - import { Send } from "../domain/send"; import { SymmetricCryptoKey } from "../domain/symmetricCryptoKey"; @@ -19,13 +18,13 @@ export class SendView implements View { text = new SendTextView(); file = new SendFileView(); maxAccessCount?: number = null; - accessCount: number = 0; + accessCount = 0; revisionDate: Date = null; deletionDate: Date = null; expirationDate: Date = null; password: string = null; - disabled: boolean = false; - hideEmail: boolean = false; + disabled = false; + hideEmail = false; constructor(s?: Send) { if (!s) { diff --git a/common/src/services/api.service.ts b/common/src/services/api.service.ts index 5c51e449..5e51b448 100644 --- a/common/src/services/api.service.ts +++ b/common/src/services/api.service.ts @@ -1,12 +1,12 @@ -import { ClientType } from "../enums/clientType"; -import { DeviceType } from "../enums/deviceType"; -import { PolicyType } from "../enums/policyType"; - import { ApiService as ApiServiceAbstraction } from "../abstractions/api.service"; import { EnvironmentService } from "../abstractions/environment.service"; import { PlatformUtilsService } from "../abstractions/platformUtils.service"; import { TokenService } from "../abstractions/token.service"; - +import { DeviceType } from "../enums/deviceType"; +import { PolicyType } from "../enums/policyType"; +import { Utils } from "../misc/utils"; +import { SetKeyConnectorKeyRequest } from "../models/request/account/setKeyConnectorKeyRequest"; +import { VerifyOTPRequest } from "../models/request/account/verifyOTPRequest"; import { AttachmentRequest } from "../models/request/attachmentRequest"; import { BitPayInvoiceRequest } from "../models/request/bitPayInvoiceRequest"; import { CipherBulkDeleteRequest } from "../models/request/cipherBulkDeleteRequest"; @@ -36,6 +36,7 @@ import { ImportCiphersRequest } from "../models/request/importCiphersRequest"; import { ImportDirectoryRequest } from "../models/request/importDirectoryRequest"; import { ImportOrganizationCiphersRequest } from "../models/request/importOrganizationCiphersRequest"; import { KdfRequest } from "../models/request/kdfRequest"; +import { KeyConnectorUserKeyRequest } from "../models/request/keyConnectorUserKeyRequest"; import { KeysRequest } from "../models/request/keysRequest"; import { OrganizationSponsorshipCreateRequest } from "../models/request/organization/organizationSponsorshipCreateRequest"; import { OrganizationSponsorshipRedeemRequest } from "../models/request/organization/organizationSponsorshipRedeemRequest"; @@ -96,9 +97,6 @@ import { UpdateTwoFactorYubioOtpRequest } from "../models/request/updateTwoFacto import { VerifyBankRequest } from "../models/request/verifyBankRequest"; import { VerifyDeleteRecoverRequest } from "../models/request/verifyDeleteRecoverRequest"; import { VerifyEmailRequest } from "../models/request/verifyEmailRequest"; - -import { Utils } from "../misc/utils"; - import { ApiKeyResponse } from "../models/response/apiKeyResponse"; import { AttachmentResponse } from "../models/response/attachmentResponse"; import { AttachmentUploadDataResponse } from "../models/response/attachmentUploadDataResponse"; @@ -123,6 +121,7 @@ import { GroupDetailsResponse, GroupResponse } from "../models/response/groupRes import { IdentityCaptchaResponse } from "../models/response/identityCaptchaResponse"; import { IdentityTokenResponse } from "../models/response/identityTokenResponse"; import { IdentityTwoFactorResponse } from "../models/response/identityTwoFactorResponse"; +import { KeyConnectorUserKeyResponse } from "../models/response/keyConnectorUserKeyResponse"; import { ListResponse } from "../models/response/listResponse"; import { OrganizationSsoResponse } from "../models/response/organization/organizationSsoResponse"; import { OrganizationAutoEnrollStatusResponse } from "../models/response/organizationAutoEnrollStatusResponse"; @@ -166,15 +165,12 @@ import { TwoFactorDuoResponse } from "../models/response/twoFactorDuoResponse"; import { TwoFactorEmailResponse } from "../models/response/twoFactorEmailResponse"; import { TwoFactorProviderResponse } from "../models/response/twoFactorProviderResponse"; import { TwoFactorRecoverResponse } from "../models/response/twoFactorRescoverResponse"; -import { TwoFactorWebAuthnResponse } from "../models/response/twoFactorWebAuthnResponse"; -import { ChallengeResponse } from "../models/response/twoFactorWebAuthnResponse"; +import { + TwoFactorWebAuthnResponse, + ChallengeResponse, +} from "../models/response/twoFactorWebAuthnResponse"; import { TwoFactorYubiKeyResponse } from "../models/response/twoFactorYubiKeyResponse"; import { UserKeyResponse } from "../models/response/userKeyResponse"; - -import { SetKeyConnectorKeyRequest } from "../models/request/account/setKeyConnectorKeyRequest"; -import { VerifyOTPRequest } from "../models/request/account/verifyOTPRequest"; -import { KeyConnectorUserKeyRequest } from "../models/request/keyConnectorUserKeyRequest"; -import { KeyConnectorUserKeyResponse } from "../models/response/keyConnectorUserKeyResponse"; import { SendAccessView } from "../models/view/sendAccessView"; export class ApiService implements ApiServiceAbstraction { @@ -1620,7 +1616,7 @@ export class ApiService implements ApiServiceAbstraction { id: string, request: EmergencyAccessPasswordRequest ): Promise { - const r = await this.send("POST", "/emergency-access/" + id + "/password", request, true, true); + await this.send("POST", "/emergency-access/" + id + "/password", request, true, true); } async postEmergencyAccessView(id: string): Promise { diff --git a/common/src/services/appId.service.ts b/common/src/services/appId.service.ts index f1841a4c..a6406fdc 100644 --- a/common/src/services/appId.service.ts +++ b/common/src/services/appId.service.ts @@ -1,8 +1,7 @@ -import { Utils } from "../misc/utils"; - import { AppIdService as AppIdServiceAbstraction } from "../abstractions/appId.service"; import { StorageService } from "../abstractions/storage.service"; import { HtmlStorageLocation } from "../enums/htmlStorageLocation"; +import { Utils } from "../misc/utils"; export class AppIdService implements AppIdServiceAbstraction { constructor(private storageService: StorageService) {} diff --git a/common/src/services/audit.service.ts b/common/src/services/audit.service.ts index 2136b442..4ceebf67 100644 --- a/common/src/services/audit.service.ts +++ b/common/src/services/audit.service.ts @@ -1,10 +1,8 @@ import { ApiService } from "../abstractions/api.service"; import { AuditService as AuditServiceAbstraction } from "../abstractions/audit.service"; import { CryptoFunctionService } from "../abstractions/cryptoFunction.service"; - import { throttle } from "../misc/throttle"; import { Utils } from "../misc/utils"; - import { BreachAccountResponse } from "../models/response/breachAccountResponse"; import { ErrorResponse } from "../models/response/errorResponse"; diff --git a/common/src/services/auth.service.ts b/common/src/services/auth.service.ts index 3bd4f34d..44bf539f 100644 --- a/common/src/services/auth.service.ts +++ b/common/src/services/auth.service.ts @@ -1,20 +1,3 @@ -import { KdfType } from "../enums/kdfType"; - -import { ApiLogInStrategy } from "../misc/logInStrategies/apiLogin.strategy"; -import { PasswordLogInStrategy } from "../misc/logInStrategies/passwordLogin.strategy"; -import { SsoLogInStrategy } from "../misc/logInStrategies/ssoLogin.strategy"; -import { AuthResult } from "../models/domain/authResult"; -import { - ApiLogInCredentials, - PasswordLogInCredentials, - SsoLogInCredentials, -} from "../models/domain/logInCredentials"; -import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - -import { PreloginRequest } from "../models/request/preloginRequest"; - -import { TokenRequestTwoFactor } from "../models/request/identityToken/tokenRequest"; - import { ApiService } from "../abstractions/api.service"; import { AppIdService } from "../abstractions/appId.service"; import { AuthService as AuthServiceAbstraction } from "../abstractions/auth.service"; @@ -27,8 +10,20 @@ import { PlatformUtilsService } from "../abstractions/platformUtils.service"; import { StateService } from "../abstractions/state.service"; import { TokenService } from "../abstractions/token.service"; import { TwoFactorService } from "../abstractions/twoFactor.service"; - import { AuthenticationType } from "../enums/authenticationType"; +import { KdfType } from "../enums/kdfType"; +import { ApiLogInStrategy } from "../misc/logInStrategies/apiLogin.strategy"; +import { PasswordLogInStrategy } from "../misc/logInStrategies/passwordLogin.strategy"; +import { SsoLogInStrategy } from "../misc/logInStrategies/ssoLogin.strategy"; +import { AuthResult } from "../models/domain/authResult"; +import { + ApiLogInCredentials, + PasswordLogInCredentials, + SsoLogInCredentials, +} from "../models/domain/logInCredentials"; +import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; +import { TokenRequestTwoFactor } from "../models/request/identityToken/tokenRequest"; +import { PreloginRequest } from "../models/request/preloginRequest"; export class AuthService implements AuthServiceAbstraction { get email(): string { @@ -122,7 +117,7 @@ export class AuthService implements AuthServiceAbstraction { } } - logOut(callback: Function) { + logOut(callback: () => void) { callback(); this.messagingService.send("loggedOut"); } diff --git a/common/src/services/azureFileUpload.service.ts b/common/src/services/azureFileUpload.service.ts index 300ee7b7..d7017bfb 100644 --- a/common/src/services/azureFileUpload.service.ts +++ b/common/src/services/azureFileUpload.service.ts @@ -1,7 +1,5 @@ import { LogService } from "../abstractions/log.service"; - import { Utils } from "../misc/utils"; - import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; const MAX_SINGLE_BLOB_UPLOAD_SIZE = 256 * 1024 * 1024; // 256 MiB @@ -56,6 +54,7 @@ export class AzureFileUploadService { ); } + // eslint-disable-next-line try { while (blockIndex < numBlocks) { url = await this.renewUrlIfNecessary(url, renewalCallback); diff --git a/common/src/services/bitwardenFileUpload.service.ts b/common/src/services/bitwardenFileUpload.service.ts index 3f54f73e..dd189e3e 100644 --- a/common/src/services/bitwardenFileUpload.service.ts +++ b/common/src/services/bitwardenFileUpload.service.ts @@ -1,8 +1,6 @@ import { ApiService } from "../abstractions/api.service"; - -import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; - import { Utils } from "../misc/utils"; +import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; export class BitwardenFileUploadService { constructor(private apiService: ApiService) {} diff --git a/common/src/services/cipher.service.ts b/common/src/services/cipher.service.ts index e9002146..91cfb464 100644 --- a/common/src/services/cipher.service.ts +++ b/common/src/services/cipher.service.ts @@ -1,9 +1,18 @@ +import { ApiService } from "../abstractions/api.service"; +import { CipherService as CipherServiceAbstraction } from "../abstractions/cipher.service"; +import { CryptoService } from "../abstractions/crypto.service"; +import { FileUploadService } from "../abstractions/fileUpload.service"; +import { I18nService } from "../abstractions/i18n.service"; +import { LogService } from "../abstractions/log.service"; +import { SearchService } from "../abstractions/search.service"; +import { SettingsService } from "../abstractions/settings.service"; +import { StateService } from "../abstractions/state.service"; import { CipherType } from "../enums/cipherType"; import { FieldType } from "../enums/fieldType"; import { UriMatchType } from "../enums/uriMatchType"; - +import { sequentialize } from "../misc/sequentialize"; +import { Utils } from "../misc/utils"; import { CipherData } from "../models/data/cipherData"; - import { Attachment } from "../models/domain/attachment"; import { Card } from "../models/domain/card"; import { Cipher } from "../models/domain/cipher"; @@ -16,8 +25,8 @@ import { Login } from "../models/domain/login"; import { LoginUri } from "../models/domain/loginUri"; import { Password } from "../models/domain/password"; import { SecureNote } from "../models/domain/secureNote"; +import { SortedCiphersCache } from "../models/domain/sortedCiphersCache"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - import { AttachmentRequest } from "../models/request/attachmentRequest"; import { CipherBulkDeleteRequest } from "../models/request/cipherBulkDeleteRequest"; import { CipherBulkMoveRequest } from "../models/request/cipherBulkMoveRequest"; @@ -27,31 +36,14 @@ import { CipherCollectionsRequest } from "../models/request/cipherCollectionsReq import { CipherCreateRequest } from "../models/request/cipherCreateRequest"; import { CipherRequest } from "../models/request/cipherRequest"; import { CipherShareRequest } from "../models/request/cipherShareRequest"; - import { CipherResponse } from "../models/response/cipherResponse"; import { ErrorResponse } from "../models/response/errorResponse"; - import { AttachmentView } from "../models/view/attachmentView"; import { CipherView } from "../models/view/cipherView"; import { FieldView } from "../models/view/fieldView"; import { PasswordHistoryView } from "../models/view/passwordHistoryView"; import { View } from "../models/view/view"; -import { SortedCiphersCache } from "../models/domain/sortedCiphersCache"; - -import { ApiService } from "../abstractions/api.service"; -import { CipherService as CipherServiceAbstraction } from "../abstractions/cipher.service"; -import { CryptoService } from "../abstractions/crypto.service"; -import { FileUploadService } from "../abstractions/fileUpload.service"; -import { I18nService } from "../abstractions/i18n.service"; -import { SearchService } from "../abstractions/search.service"; -import { SettingsService } from "../abstractions/settings.service"; -import { StateService } from "../abstractions/state.service"; - -import { LogService } from "../abstractions/log.service"; -import { sequentialize } from "../misc/sequentialize"; -import { Utils } from "../misc/utils"; - const DomainMatchBlacklist = new Map>([ ["google.com", new Set(["script.google.com"])], ]); @@ -308,6 +300,7 @@ export class CipherService implements CipherServiceAbstraction { async get(id: string): Promise { const ciphers = await this.stateService.getEncryptedCiphers(); + // eslint-disable-next-line if (ciphers == null || !ciphers.hasOwnProperty(id)) { return null; } @@ -321,6 +314,7 @@ export class CipherService implements CipherServiceAbstraction { const ciphers = await this.stateService.getEncryptedCiphers(); const response: Cipher[] = []; for (const id in ciphers) { + // eslint-disable-next-line if (ciphers.hasOwnProperty(id)) { response.push(new Cipher(ciphers[id], false, localData ? localData[id] : null)); } @@ -359,10 +353,7 @@ export class CipherService implements CipherServiceAbstraction { return decCiphers; } - async getAllDecryptedForGrouping( - groupingId: string, - folder: boolean = true - ): Promise { + async getAllDecryptedForGrouping(groupingId: string, folder = true): Promise { const ciphers = await this.getAllDecrypted(); return ciphers.filter((cipher) => { @@ -451,12 +442,13 @@ export class CipherService implements CipherServiceAbstraction { } } break; - case UriMatchType.Host: + case UriMatchType.Host: { const urlHost = Utils.getHost(url); if (urlHost != null && urlHost === Utils.getHost(u.uri)) { return true; } break; + } case UriMatchType.Exact: if (url === u.uri) { return true; @@ -506,14 +498,11 @@ export class CipherService implements CipherServiceAbstraction { } } - async getLastUsedForUrl(url: string, autofillOnPageLoad: boolean = false): Promise { + async getLastUsedForUrl(url: string, autofillOnPageLoad = false): Promise { return this.getCipherForUrl(url, true, false, autofillOnPageLoad); } - async getLastLaunchedForUrl( - url: string, - autofillOnPageLoad: boolean = false - ): Promise { + async getLastLaunchedForUrl(url: string, autofillOnPageLoad = false): Promise { return this.getCipherForUrl(url, false, true, autofillOnPageLoad); } @@ -690,7 +679,7 @@ export class CipherService implements CipherServiceAbstraction { reject(e); } }; - reader.onerror = (_evt) => { + reader.onerror = () => { reject("Error reading file."); }; }); @@ -845,6 +834,7 @@ export class CipherService implements CipherServiceAbstraction { } ids.forEach((id) => { + // eslint-disable-next-line if (ciphers.hasOwnProperty(id)) { ciphers[id].folderId = folderId; } @@ -888,6 +878,7 @@ export class CipherService implements CipherServiceAbstraction { async deleteAttachment(id: string, attachmentId: string): Promise { const ciphers = await this.stateService.getEncryptedCiphers(); + // eslint-disable-next-line if (ciphers == null || !ciphers.hasOwnProperty(id) || ciphers[id].attachments == null) { return; } @@ -1119,11 +1110,11 @@ export class CipherService implements CipherServiceAbstraction { const self = this; for (const prop in map) { + // eslint-disable-next-line if (!map.hasOwnProperty(prop)) { continue; } - // tslint:disable-next-line (function (theProp, theObj) { const p = Promise.resolve() .then(() => { diff --git a/common/src/services/collection.service.ts b/common/src/services/collection.service.ts index 7f555e63..4d3563d7 100644 --- a/common/src/services/collection.service.ts +++ b/common/src/services/collection.service.ts @@ -1,17 +1,13 @@ -import { CollectionData } from "../models/data/collectionData"; - -import { Collection } from "../models/domain/collection"; -import { TreeNode } from "../models/domain/treeNode"; - -import { CollectionView } from "../models/view/collectionView"; - import { CollectionService as CollectionServiceAbstraction } from "../abstractions/collection.service"; import { CryptoService } from "../abstractions/crypto.service"; import { I18nService } from "../abstractions/i18n.service"; import { StateService } from "../abstractions/state.service"; - import { ServiceUtils } from "../misc/serviceUtils"; import { Utils } from "../misc/utils"; +import { CollectionData } from "../models/data/collectionData"; +import { Collection } from "../models/domain/collection"; +import { TreeNode } from "../models/domain/treeNode"; +import { CollectionView } from "../models/view/collectionView"; const NestingDelimiter = "/"; @@ -57,6 +53,7 @@ export class CollectionService implements CollectionServiceAbstraction { async get(id: string): Promise { const collections = await this.stateService.getEncryptedCollections(); + // eslint-disable-next-line if (collections == null || !collections.hasOwnProperty(id)) { return null; } @@ -68,6 +65,7 @@ export class CollectionService implements CollectionServiceAbstraction { const collections = await this.stateService.getEncryptedCollections(); const response: Collection[] = []; for (const id in collections) { + // eslint-disable-next-line if (collections.hasOwnProperty(id)) { response.push(new Collection(collections[id])); } diff --git a/common/src/services/consoleLog.service.ts b/common/src/services/consoleLog.service.ts index 1ecd2499..9959ef62 100644 --- a/common/src/services/consoleLog.service.ts +++ b/common/src/services/consoleLog.service.ts @@ -1,8 +1,7 @@ -import { LogLevelType } from "../enums/logLevelType"; +import * as hrtime from "browser-hrtime"; import { LogService as LogServiceAbstraction } from "../abstractions/log.service"; - -import * as hrtime from "browser-hrtime"; +import { LogLevelType } from "../enums/logLevelType"; export class ConsoleLogService implements LogServiceAbstraction { protected timersMap: Map = new Map(); @@ -38,19 +37,19 @@ export class ConsoleLogService implements LogServiceAbstraction { switch (level) { case LogLevelType.Debug: - // tslint:disable-next-line + // eslint-disable-next-line console.log(message); break; case LogLevelType.Info: - // tslint:disable-next-line + // eslint-disable-next-line console.log(message); break; case LogLevelType.Warning: - // tslint:disable-next-line + // eslint-disable-next-line console.warn(message); break; case LogLevelType.Error: - // tslint:disable-next-line + // eslint-disable-next-line console.error(message); break; default: @@ -58,13 +57,13 @@ export class ConsoleLogService implements LogServiceAbstraction { } } - time(label: string = "default") { + time(label = "default") { if (!this.timersMap.has(label)) { this.timersMap.set(label, hrtime()); } } - timeEnd(label: string = "default"): [number, number] { + timeEnd(label = "default"): [number, number] { const elapsed = hrtime(this.timersMap.get(label)); this.timersMap.delete(label); this.write(LogLevelType.Info, `${label}: ${elapsed[0] * 1000 + elapsed[1] / 10e6}ms`); diff --git a/common/src/services/crypto.service.ts b/common/src/services/crypto.service.ts index 654af3bb..c49d7763 100644 --- a/common/src/services/crypto.service.ts +++ b/common/src/services/crypto.service.ts @@ -1,25 +1,21 @@ import * as bigInt from "big-integer"; -import { EncryptionType } from "../enums/encryptionType"; -import { HashPurpose } from "../enums/hashPurpose"; -import { KdfType } from "../enums/kdfType"; -import { KeySuffixOptions } from "../enums/keySuffixOptions"; - -import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; -import { EncryptedObject } from "../models/domain/encryptedObject"; -import { EncString } from "../models/domain/encString"; -import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - import { CryptoService as CryptoServiceAbstraction } from "../abstractions/crypto.service"; import { CryptoFunctionService } from "../abstractions/cryptoFunction.service"; import { LogService } from "../abstractions/log.service"; import { PlatformUtilsService } from "../abstractions/platformUtils.service"; import { StateService } from "../abstractions/state.service"; - +import { EncryptionType } from "../enums/encryptionType"; +import { HashPurpose } from "../enums/hashPurpose"; +import { KdfType } from "../enums/kdfType"; +import { KeySuffixOptions } from "../enums/keySuffixOptions"; import { sequentialize } from "../misc/sequentialize"; import { Utils } from "../misc/utils"; import { EEFLongWordList } from "../misc/wordlist"; - +import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; +import { EncString } from "../models/domain/encString"; +import { EncryptedObject } from "../models/domain/encryptedObject"; +import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; import { ProfileOrganizationResponse } from "../models/response/profileOrganizationResponse"; import { ProfileProviderOrganizationResponse } from "../models/response/profileProviderOrganizationResponse"; import { ProfileProviderResponse } from "../models/response/profileProviderResponse"; @@ -227,6 +223,7 @@ export class CryptoService implements CryptoServiceAbstraction { let setKey = false; for (const orgId in encOrgKeys) { + // eslint-disable-next-line if (!encOrgKeys.hasOwnProperty(orgId)) { continue; } @@ -272,6 +269,7 @@ export class CryptoService implements CryptoServiceAbstraction { let setKey = false; for (const orgId in encProviderKeys) { + // eslint-disable-next-line if (!encProviderKeys.hasOwnProperty(orgId)) { continue; } @@ -328,7 +326,7 @@ export class CryptoService implements CryptoServiceAbstraction { return (await this.stateService.getEncryptedCryptoSymmetricKey()) != null; } - async clearKey(clearSecretStorage: boolean = true, userId?: string): Promise { + async clearKey(clearSecretStorage = true, userId?: string): Promise { await this.stateService.setCryptoMasterKey(null, { userId: userId }); await this.stateService.setLegacyEtmKey(null, { userId: userId }); if (clearSecretStorage) { @@ -574,8 +572,7 @@ export class CryptoService implements CryptoServiceAbstraction { switch (encType) { case EncryptionType.Rsa2048_OaepSha256_B64: case EncryptionType.Rsa2048_OaepSha1_B64: - // HmacSha256 types are deprecated - case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64: + case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64: // HmacSha256 types are deprecated case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64: break; default: @@ -699,7 +696,6 @@ export class CryptoService implements CryptoServiceAbstraction { } // Use & to apply the mask and reduce the number of recursive lookups - // tslint:disable-next-line rval = rval & mask; if (rval >= range) { @@ -894,7 +890,7 @@ export class CryptoService implements CryptoServiceAbstraction { return new SymmetricCryptoKey(newKey.buffer); } - private async hashPhrase(hash: ArrayBuffer, minimumEntropy: number = 64) { + private async hashPhrase(hash: ArrayBuffer, minimumEntropy = 64) { const entropyPerWord = Math.log(EEFLongWordList.length) / Math.log(2); let numWords = Math.ceil(minimumEntropy / entropyPerWord); diff --git a/common/src/services/environment.service.ts b/common/src/services/environment.service.ts index 28caaf47..b13afd59 100644 --- a/common/src/services/environment.service.ts +++ b/common/src/services/environment.service.ts @@ -1,16 +1,15 @@ import { Observable, Subject } from "rxjs"; -import { EnvironmentUrls } from "../models/domain/environmentUrls"; - import { EnvironmentService as EnvironmentServiceAbstraction, Urls, } from "../abstractions/environment.service"; import { StateService } from "../abstractions/state.service"; +import { EnvironmentUrls } from "../models/domain/environmentUrls"; export class EnvironmentService implements EnvironmentServiceAbstraction { private readonly urlsSubject = new Subject(); - urls: Observable = this.urlsSubject; // tslint:disable-line + urls: Observable = this.urlsSubject; private baseUrl: string; private webVaultUrl: string; @@ -22,7 +21,7 @@ export class EnvironmentService implements EnvironmentServiceAbstraction { private keyConnectorUrl: string; constructor(private stateService: StateService) { - this.stateService.activeAccount.subscribe(async (_userId) => { + this.stateService.activeAccount.subscribe(async () => { await this.setUrlsFromStorage(); }); } diff --git a/common/src/services/event.service.ts b/common/src/services/event.service.ts index ca5bb59f..c0024d49 100644 --- a/common/src/services/event.service.ts +++ b/common/src/services/event.service.ts @@ -1,15 +1,12 @@ -import { EventType } from "../enums/eventType"; - -import { EventData } from "../models/data/eventData"; - -import { EventRequest } from "../models/request/eventRequest"; - import { ApiService } from "../abstractions/api.service"; import { CipherService } from "../abstractions/cipher.service"; import { EventService as EventServiceAbstraction } from "../abstractions/event.service"; import { LogService } from "../abstractions/log.service"; import { OrganizationService } from "../abstractions/organization.service"; import { StateService } from "../abstractions/state.service"; +import { EventType } from "../enums/eventType"; +import { EventData } from "../models/data/eventData"; +import { EventRequest } from "../models/request/eventRequest"; export class EventService implements EventServiceAbstraction { private inited = false; diff --git a/common/src/services/export.service.ts b/common/src/services/export.service.ts index cbc18fe4..7bbd574b 100644 --- a/common/src/services/export.service.ts +++ b/common/src/services/export.service.ts @@ -1,34 +1,28 @@ import * as papa from "papaparse"; -import { CipherType } from "../enums/cipherType"; -import { KdfType } from "../enums/kdfType"; - import { ApiService } from "../abstractions/api.service"; import { CipherService } from "../abstractions/cipher.service"; import { CryptoService } from "../abstractions/crypto.service"; import { CryptoFunctionService } from "../abstractions/cryptoFunction.service"; import { ExportService as ExportServiceAbstraction } from "../abstractions/export.service"; import { FolderService } from "../abstractions/folder.service"; - -import { CipherView } from "../models/view/cipherView"; -import { CollectionView } from "../models/view/collectionView"; -import { FolderView } from "../models/view/folderView"; - +import { CipherType } from "../enums/cipherType"; +import { KdfType } from "../enums/kdfType"; +import { Utils } from "../misc/utils"; +import { CipherData } from "../models/data/cipherData"; +import { CollectionData } from "../models/data/collectionData"; import { Cipher } from "../models/domain/cipher"; import { Collection } from "../models/domain/collection"; import { Folder } from "../models/domain/folder"; - -import { CipherData } from "../models/data/cipherData"; -import { CollectionData } from "../models/data/collectionData"; -import { CollectionDetailsResponse } from "../models/response/collectionResponse"; - import { CipherWithIds as CipherExport } from "../models/export/cipherWithIds"; import { CollectionWithId as CollectionExport } from "../models/export/collectionWithId"; import { Event } from "../models/export/event"; import { FolderWithId as FolderExport } from "../models/export/folderWithId"; +import { CollectionDetailsResponse } from "../models/response/collectionResponse"; +import { CipherView } from "../models/view/cipherView"; +import { CollectionView } from "../models/view/collectionView"; import { EventView } from "../models/view/eventView"; - -import { Utils } from "../misc/utils"; +import { FolderView } from "../models/view/folderView"; export class ExportService implements ExportServiceAbstraction { constructor( @@ -97,7 +91,7 @@ export class ExportService implements ExportServiceAbstraction { return papa.unparse(events.map((e) => new Event(e))); } - getFileName(prefix: string = null, extension: string = "csv"): string { + getFileName(prefix: string = null, extension = "csv"): string { const now = new Date(); const dateString = now.getFullYear() + @@ -391,7 +385,7 @@ export class ExportService implements ExportServiceAbstraction { return JSON.stringify(jsonDoc, null, " "); } - private padNumber(num: number, width: number, padCharacter: string = "0"): string { + private padNumber(num: number, width: number, padCharacter = "0"): string { const numString = num.toString(); return numString.length >= width ? numString diff --git a/common/src/services/fileUpload.service.ts b/common/src/services/fileUpload.service.ts index 516011dd..6fc0af35 100644 --- a/common/src/services/fileUpload.service.ts +++ b/common/src/services/fileUpload.service.ts @@ -1,12 +1,9 @@ import { ApiService } from "../abstractions/api.service"; import { FileUploadService as FileUploadServiceAbstraction } from "../abstractions/fileUpload.service"; import { LogService } from "../abstractions/log.service"; - import { FileUploadType } from "../enums/fileUploadType"; - import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; import { EncString } from "../models/domain/encString"; - import { AttachmentUploadDataResponse } from "../models/response/attachmentUploadDataResponse"; import { SendFileUploadDataResponse } from "../models/response/sendFileUploadDataResponse"; @@ -41,7 +38,7 @@ export class FileUploadService implements FileUploadServiceAbstraction { ) ); break; - case FileUploadType.Azure: + case FileUploadType.Azure: { const renewalCallback = async () => { const renewalResponse = await this.apiService.renewSendFileUploadUrl( uploadData.sendResponse.id, @@ -55,6 +52,7 @@ export class FileUploadService implements FileUploadServiceAbstraction { renewalCallback ); break; + } default: throw new Error("Unknown file upload type"); } @@ -80,7 +78,7 @@ export class FileUploadService implements FileUploadServiceAbstraction { (fd) => this.apiService.postAttachmentFile(response.id, uploadData.attachmentId, fd) ); break; - case FileUploadType.Azure: + case FileUploadType.Azure: { const renewalCallback = async () => { const renewalResponse = await this.apiService.renewAttachmentUploadUrl( response.id, @@ -94,6 +92,7 @@ export class FileUploadService implements FileUploadServiceAbstraction { renewalCallback ); break; + } default: throw new Error("Unknown file upload type."); } diff --git a/common/src/services/folder.service.ts b/common/src/services/folder.service.ts index 225c03aa..666ca6d2 100644 --- a/common/src/services/folder.service.ts +++ b/common/src/services/folder.service.ts @@ -1,26 +1,19 @@ -import { FolderData } from "../models/data/folderData"; - -import { Folder } from "../models/domain/folder"; -import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; -import { TreeNode } from "../models/domain/treeNode"; - -import { FolderRequest } from "../models/request/folderRequest"; - -import { FolderResponse } from "../models/response/folderResponse"; - -import { FolderView } from "../models/view/folderView"; - import { ApiService } from "../abstractions/api.service"; import { CipherService } from "../abstractions/cipher.service"; import { CryptoService } from "../abstractions/crypto.service"; import { FolderService as FolderServiceAbstraction } from "../abstractions/folder.service"; import { I18nService } from "../abstractions/i18n.service"; import { StateService } from "../abstractions/state.service"; - -import { CipherData } from "../models/data/cipherData"; - import { ServiceUtils } from "../misc/serviceUtils"; import { Utils } from "../misc/utils"; +import { CipherData } from "../models/data/cipherData"; +import { FolderData } from "../models/data/folderData"; +import { Folder } from "../models/domain/folder"; +import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; +import { TreeNode } from "../models/domain/treeNode"; +import { FolderRequest } from "../models/request/folderRequest"; +import { FolderResponse } from "../models/response/folderResponse"; +import { FolderView } from "../models/view/folderView"; const NestingDelimiter = "/"; @@ -46,6 +39,7 @@ export class FolderService implements FolderServiceAbstraction { async get(id: string): Promise { const folders = await this.stateService.getEncryptedFolders(); + // eslint-disable-next-line if (folders == null || !folders.hasOwnProperty(id)) { return null; } @@ -57,6 +51,7 @@ export class FolderService implements FolderServiceAbstraction { const folders = await this.stateService.getEncryptedFolders(); const response: Folder[] = []; for (const id in folders) { + // eslint-disable-next-line if (folders.hasOwnProperty(id)) { response.push(new Folder(folders[id])); } diff --git a/common/src/services/i18n.service.ts b/common/src/services/i18n.service.ts index 698bc297..1fdea202 100644 --- a/common/src/services/i18n.service.ts +++ b/common/src/services/i18n.service.ts @@ -103,8 +103,10 @@ export class I18nService implements I18nServiceAbstraction { translate(id: string, p1?: string, p2?: string, p3?: string): string { let result: string; + // eslint-disable-next-line if (this.localeMessages.hasOwnProperty(id) && this.localeMessages[id]) { result = this.localeMessages[id]; + // eslint-disable-next-line } else if (this.defaultMessages.hasOwnProperty(id) && this.defaultMessages[id]) { result = this.defaultMessages[id]; } else { @@ -130,6 +132,7 @@ export class I18nService implements I18nServiceAbstraction { const formattedLocale = locale.replace("-", "_"); const locales = await this.getLocalesJson(formattedLocale); for (const prop in locales) { + // eslint-disable-next-line if (!locales.hasOwnProperty(prop)) { continue; } @@ -138,7 +141,7 @@ export class I18nService implements I18nServiceAbstraction { if (locales[prop].placeholders) { for (const placeProp in locales[prop].placeholders) { if ( - !locales[prop].placeholders.hasOwnProperty(placeProp) || + !locales[prop].placeholders.hasOwnProperty(placeProp) || // eslint-disable-line !locales[prop].placeholders[placeProp].content ) { continue; diff --git a/common/src/services/import.service.ts b/common/src/services/import.service.ts index 332e5815..4e122932 100644 --- a/common/src/services/import.service.ts +++ b/common/src/services/import.service.ts @@ -9,23 +9,7 @@ import { ImportService as ImportServiceAbstraction, } from "../abstractions/import.service"; import { PlatformUtilsService } from "../abstractions/platformUtils.service"; - -import { ImportResult } from "../models/domain/importResult"; - import { CipherType } from "../enums/cipherType"; - -import { Utils } from "../misc/utils"; - -import { CipherRequest } from "../models/request/cipherRequest"; -import { CollectionRequest } from "../models/request/collectionRequest"; -import { FolderRequest } from "../models/request/folderRequest"; -import { ImportCiphersRequest } from "../models/request/importCiphersRequest"; -import { ImportOrganizationCiphersRequest } from "../models/request/importOrganizationCiphersRequest"; -import { KvpRequest } from "../models/request/kvpRequest"; - -import { ErrorResponse } from "../models/response/errorResponse"; -import { CipherView } from "../models/view/cipherView"; - import { AscendoCsvImporter } from "../importers/ascendoCsvImporter"; import { AvastCsvImporter } from "../importers/avastCsvImporter"; import { AvastJsonImporter } from "../importers/avastJsonImporter"; @@ -51,7 +35,6 @@ import { KasperskyTxtImporter } from "../importers/kasperskyTxtImporter"; import { KeePass2XmlImporter } from "../importers/keepass2XmlImporter"; import { KeePassXCsvImporter } from "../importers/keepassxCsvImporter"; import { KeeperCsvImporter } from "../importers/keeperImporters/keeperCsvImporter"; -import { KeeperJsonImporter } from "../importers/keeperImporters/keeperJsonImporter"; import { LastPassCsvImporter } from "../importers/lastpassCsvImporter"; import { LogMeOnceCsvImporter } from "../importers/logMeOnceCsvImporter"; import { MeldiumCsvImporter } from "../importers/meldiumCsvImporter"; @@ -82,6 +65,16 @@ import { TrueKeyCsvImporter } from "../importers/truekeyCsvImporter"; import { UpmCsvImporter } from "../importers/upmCsvImporter"; import { YotiCsvImporter } from "../importers/yotiCsvImporter"; import { ZohoVaultCsvImporter } from "../importers/zohoVaultCsvImporter"; +import { Utils } from "../misc/utils"; +import { ImportResult } from "../models/domain/importResult"; +import { CipherRequest } from "../models/request/cipherRequest"; +import { CollectionRequest } from "../models/request/collectionRequest"; +import { FolderRequest } from "../models/request/folderRequest"; +import { ImportCiphersRequest } from "../models/request/importCiphersRequest"; +import { ImportOrganizationCiphersRequest } from "../models/request/importOrganizationCiphersRequest"; +import { KvpRequest } from "../models/request/kvpRequest"; +import { ErrorResponse } from "../models/response/errorResponse"; +import { CipherView } from "../models/view/cipherView"; const featuredImportOptions = [ { id: "bitwardenjson", name: "Bitwarden (json)" }, diff --git a/common/src/services/keyConnector.service.ts b/common/src/services/keyConnector.service.ts index 847f4862..c7e8b991 100644 --- a/common/src/services/keyConnector.service.ts +++ b/common/src/services/keyConnector.service.ts @@ -6,17 +6,12 @@ import { LogService } from "../abstractions/log.service"; import { OrganizationService } from "../abstractions/organization.service"; import { StateService } from "../abstractions/state.service"; import { TokenService } from "../abstractions/token.service"; - import { OrganizationUserType } from "../enums/organizationUserType"; - import { Utils } from "../misc/utils"; - import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - import { SetKeyConnectorKeyRequest } from "../models/request/account/setKeyConnectorKeyRequest"; import { KeyConnectorUserKeyRequest } from "../models/request/keyConnectorUserKeyRequest"; import { KeysRequest } from "../models/request/keysRequest"; - import { IdentityTokenResponse } from "../models/response/identityTokenResponse"; export class KeyConnectorService implements KeyConnectorServiceAbstraction { diff --git a/common/src/services/notifications.service.ts b/common/src/services/notifications.service.ts index 4974b282..d4e3fef4 100644 --- a/common/src/services/notifications.service.ts +++ b/common/src/services/notifications.service.ts @@ -1,8 +1,6 @@ import * as signalR from "@microsoft/signalr"; import * as signalRMsgPack from "@microsoft/signalr-protocol-msgpack"; -import { NotificationType } from "../enums/notificationType"; - import { ApiService } from "../abstractions/api.service"; import { AppIdService } from "../abstractions/appId.service"; import { EnvironmentService } from "../abstractions/environment.service"; @@ -11,7 +9,7 @@ import { NotificationsService as NotificationsServiceAbstraction } from "../abst import { StateService } from "../abstractions/state.service"; import { SyncService } from "../abstractions/sync.service"; import { VaultTimeoutService } from "../abstractions/vaultTimeout.service"; - +import { NotificationType } from "../enums/notificationType"; import { NotificationResponse, SyncCipherNotification, @@ -77,6 +75,7 @@ export class NotificationsService implements NotificationsServiceAbstraction { this.signalrConnection.on("ReceiveMessage", (data: any) => this.processNotification(new NotificationResponse(data)) ); + // eslint-disable-next-line this.signalrConnection.on("Heartbeat", (data: any) => { /*console.log('Heartbeat!');*/ }); @@ -182,6 +181,7 @@ export class NotificationsService implements NotificationsServiceAbstraction { break; case NotificationType.SyncSendDelete: await this.syncService.syncDeleteSend(notification.payload as SyncSendNotification); + break; default: break; } diff --git a/common/src/services/organization.service.ts b/common/src/services/organization.service.ts index 10a86632..08adb072 100644 --- a/common/src/services/organization.service.ts +++ b/common/src/services/organization.service.ts @@ -1,8 +1,6 @@ import { OrganizationService as OrganizationServiceAbstraction } from "../abstractions/organization.service"; import { StateService } from "../abstractions/state.service"; - import { OrganizationData } from "../models/data/organizationData"; - import { Organization } from "../models/domain/organization"; export class OrganizationService implements OrganizationServiceAbstraction { @@ -10,6 +8,7 @@ export class OrganizationService implements OrganizationServiceAbstraction { async get(id: string): Promise { const organizations = await this.stateService.getOrganizations(); + // eslint-disable-next-line if (organizations == null || !organizations.hasOwnProperty(id)) { return null; } @@ -30,6 +29,7 @@ export class OrganizationService implements OrganizationServiceAbstraction { const organizations = await this.stateService.getOrganizations({ userId: userId }); const response: Organization[] = []; for (const id in organizations) { + // eslint-disable-next-line if (organizations.hasOwnProperty(id) && !organizations[id].isProviderUser) { response.push(new Organization(organizations[id])); } diff --git a/common/src/services/passwordGeneration.service.ts b/common/src/services/passwordGeneration.service.ts index 2cc6f6d0..fa03446f 100644 --- a/common/src/services/passwordGeneration.service.ts +++ b/common/src/services/passwordGeneration.service.ts @@ -1,18 +1,15 @@ import * as zxcvbn from "zxcvbn"; -import { EncString } from "../models/domain/encString"; -import { GeneratedPasswordHistory } from "../models/domain/generatedPasswordHistory"; -import { PasswordGeneratorPolicyOptions } from "../models/domain/passwordGeneratorPolicyOptions"; -import { Policy } from "../models/domain/policy"; - import { CryptoService } from "../abstractions/crypto.service"; import { PasswordGenerationService as PasswordGenerationServiceAbstraction } from "../abstractions/passwordGeneration.service"; import { PolicyService } from "../abstractions/policy.service"; import { StateService } from "../abstractions/state.service"; - -import { EEFLongWordList } from "../misc/wordlist"; - import { PolicyType } from "../enums/policyType"; +import { EEFLongWordList } from "../misc/wordlist"; +import { EncString } from "../models/domain/encString"; +import { GeneratedPasswordHistory } from "../models/domain/generatedPasswordHistory"; +import { PasswordGeneratorPolicyOptions } from "../models/domain/passwordGeneratorPolicyOptions"; +import { Policy } from "../models/domain/policy"; const DefaultOptions = { length: 14, diff --git a/common/src/services/policy.service.ts b/common/src/services/policy.service.ts index dce9af6f..91ab864b 100644 --- a/common/src/services/policy.service.ts +++ b/common/src/services/policy.service.ts @@ -1,19 +1,15 @@ +import { ApiService } from "../abstractions/api.service"; import { OrganizationService } from "../abstractions/organization.service"; import { PolicyService as PolicyServiceAbstraction } from "../abstractions/policy.service"; import { StateService } from "../abstractions/state.service"; - +import { OrganizationUserStatusType } from "../enums/organizationUserStatusType"; +import { OrganizationUserType } from "../enums/organizationUserType"; +import { PolicyType } from "../enums/policyType"; import { PolicyData } from "../models/data/policyData"; - import { MasterPasswordPolicyOptions } from "../models/domain/masterPasswordPolicyOptions"; import { Organization } from "../models/domain/organization"; import { Policy } from "../models/domain/policy"; import { ResetPasswordPolicyOptions } from "../models/domain/resetPasswordPolicyOptions"; - -import { OrganizationUserStatusType } from "../enums/organizationUserStatusType"; -import { OrganizationUserType } from "../enums/organizationUserType"; -import { PolicyType } from "../enums/policyType"; - -import { ApiService } from "../abstractions/api.service"; import { ListResponse } from "../models/response/listResponse"; import { PolicyResponse } from "../models/response/policyResponse"; @@ -38,6 +34,7 @@ export class PolicyService implements PolicyServiceAbstraction { } else { const diskPolicies = await this.stateService.getEncryptedPolicies({ userId: userId }); for (const id in diskPolicies) { + // eslint-disable-next-line if (diskPolicies.hasOwnProperty(id)) { response.push(new Policy(diskPolicies[id])); } @@ -178,6 +175,7 @@ export class PolicyService implements PolicyServiceAbstraction { return false; } + // eslint-disable-next-line if (enforcedPolicyOptions.requireSpecial && !/[!@#$%\^&*]/g.test(newPassword)) { return false; } diff --git a/common/src/services/provider.service.ts b/common/src/services/provider.service.ts index 349e2082..53f09542 100644 --- a/common/src/services/provider.service.ts +++ b/common/src/services/provider.service.ts @@ -1,8 +1,6 @@ import { ProviderService as ProviderServiceAbstraction } from "../abstractions/provider.service"; import { StateService } from "../abstractions/state.service"; - import { ProviderData } from "../models/data/providerData"; - import { Provider } from "../models/domain/provider"; export class ProviderService implements ProviderServiceAbstraction { @@ -10,6 +8,7 @@ export class ProviderService implements ProviderServiceAbstraction { async get(id: string): Promise { const providers = await this.stateService.getProviders(); + // eslint-disable-next-line if (providers == null || !providers.hasOwnProperty(id)) { return null; } @@ -21,6 +20,7 @@ export class ProviderService implements ProviderServiceAbstraction { const providers = await this.stateService.getProviders(); const response: Provider[] = []; for (const id in providers) { + // eslint-disable-next-line if (providers.hasOwnProperty(id)) { response.push(new Provider(providers[id])); } diff --git a/common/src/services/search.service.ts b/common/src/services/search.service.ts index 97b0d247..e1c54ceb 100644 --- a/common/src/services/search.service.ts +++ b/common/src/services/search.service.ts @@ -1,15 +1,13 @@ import * as lunr from "lunr"; -import { CipherView } from "../models/view/cipherView"; - import { CipherService } from "../abstractions/cipher.service"; import { I18nService } from "../abstractions/i18n.service"; import { LogService } from "../abstractions/log.service"; import { SearchService as SearchServiceAbstraction } from "../abstractions/search.service"; - import { CipherType } from "../enums/cipherType"; import { FieldType } from "../enums/fieldType"; import { UriMatchType } from "../enums/uriMatchType"; +import { CipherView } from "../models/view/cipherView"; import { SendView } from "../models/view/sendView"; export class SearchService implements SearchServiceAbstraction { @@ -139,7 +137,6 @@ export class SearchService implements SearchServiceAbstraction { this.logService.error(e); } } else { - // tslint:disable-next-line const soWild = lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING; searchResults = index.query((q) => { lunr.tokenizer(query).forEach((token) => { @@ -162,7 +159,7 @@ export class SearchService implements SearchServiceAbstraction { return results; } - searchCiphersBasic(ciphers: CipherView[], query: string, deleted: boolean = false) { + searchCiphersBasic(ciphers: CipherView[], query: string, deleted = false) { query = query.trim().toLowerCase(); return ciphers.filter((c) => { if (deleted !== c.isDeleted) { diff --git a/common/src/services/send.service.ts b/common/src/services/send.service.ts index 630511d4..2baf45d9 100644 --- a/common/src/services/send.service.ts +++ b/common/src/services/send.service.ts @@ -1,21 +1,3 @@ -import { SendData } from "../models/data/sendData"; - -import { SendRequest } from "../models/request/sendRequest"; - -import { ErrorResponse } from "../models/response/errorResponse"; -import { SendResponse } from "../models/response/sendResponse"; - -import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; -import { EncString } from "../models/domain/encString"; -import { Send } from "../models/domain/send"; -import { SendFile } from "../models/domain/sendFile"; -import { SendText } from "../models/domain/sendText"; -import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - -import { SendType } from "../enums/sendType"; - -import { SendView } from "../models/view/sendView"; - import { ApiService } from "../abstractions/api.service"; import { CryptoService } from "../abstractions/crypto.service"; import { CryptoFunctionService } from "../abstractions/cryptoFunction.service"; @@ -23,8 +5,19 @@ import { FileUploadService } from "../abstractions/fileUpload.service"; import { I18nService } from "../abstractions/i18n.service"; import { SendService as SendServiceAbstraction } from "../abstractions/send.service"; import { StateService } from "../abstractions/state.service"; - +import { SendType } from "../enums/sendType"; import { Utils } from "../misc/utils"; +import { SendData } from "../models/data/sendData"; +import { EncArrayBuffer } from "../models/domain/encArrayBuffer"; +import { EncString } from "../models/domain/encString"; +import { Send } from "../models/domain/send"; +import { SendFile } from "../models/domain/sendFile"; +import { SendText } from "../models/domain/sendText"; +import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; +import { SendRequest } from "../models/request/sendRequest"; +import { ErrorResponse } from "../models/response/errorResponse"; +import { SendResponse } from "../models/response/sendResponse"; +import { SendView } from "../models/view/sendView"; export class SendService implements SendServiceAbstraction { constructor( @@ -95,6 +88,7 @@ export class SendService implements SendServiceAbstraction { async get(id: string): Promise { const sends = await this.stateService.getEncryptedSends(); + // eslint-disable-next-line if (sends == null || !sends.hasOwnProperty(id)) { return null; } @@ -106,6 +100,7 @@ export class SendService implements SendServiceAbstraction { const sends = await this.stateService.getEncryptedSends(); const response: Send[] = []; for (const id in sends) { + // eslint-disable-next-line if (sends.hasOwnProperty(id)) { response.push(new Send(sends[id])); } diff --git a/common/src/services/settings.service.ts b/common/src/services/settings.service.ts index a8fdf333..7f5131b0 100644 --- a/common/src/services/settings.service.ts +++ b/common/src/services/settings.service.ts @@ -30,6 +30,7 @@ export class SettingsService implements SettingsServiceAbstraction { private async getSettings(): Promise { const settings = await this.stateService.getSettings(); if (settings == null) { + // eslint-disable-next-line const userId = await this.stateService.getUserId(); } return settings; diff --git a/common/src/services/state.service.ts b/common/src/services/state.service.ts index 30f908f7..6a27d224 100644 --- a/common/src/services/state.service.ts +++ b/common/src/services/state.service.ts @@ -1,29 +1,15 @@ -import { StateService as StateServiceAbstraction } from "../abstractions/state.service"; - -import { Account, AccountData } from "../models/domain/account"; +import { BehaviorSubject } from "rxjs"; import { LogService } from "../abstractions/log.service"; +import { StateService as StateServiceAbstraction } from "../abstractions/state.service"; +import { StateMigrationService } from "../abstractions/stateMigration.service"; import { StorageService } from "../abstractions/storage.service"; - import { HtmlStorageLocation } from "../enums/htmlStorageLocation"; import { KdfType } from "../enums/kdfType"; import { StorageLocation } from "../enums/storageLocation"; import { ThemeType } from "../enums/themeType"; import { UriMatchType } from "../enums/uriMatchType"; - -import { CipherView } from "../models/view/cipherView"; -import { CollectionView } from "../models/view/collectionView"; -import { FolderView } from "../models/view/folderView"; -import { SendView } from "../models/view/sendView"; - -import { EncString } from "../models/domain/encString"; -import { GeneratedPasswordHistory } from "../models/domain/generatedPasswordHistory"; -import { GlobalState } from "../models/domain/globalState"; -import { Policy } from "../models/domain/policy"; -import { State } from "../models/domain/state"; -import { StorageOptions } from "../models/domain/storageOptions"; -import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; - +import { StateFactory } from "../factories/stateFactory"; import { CipherData } from "../models/data/cipherData"; import { CollectionData } from "../models/data/collectionData"; import { EventData } from "../models/data/eventData"; @@ -32,14 +18,20 @@ import { OrganizationData } from "../models/data/organizationData"; import { PolicyData } from "../models/data/policyData"; import { ProviderData } from "../models/data/providerData"; import { SendData } from "../models/data/sendData"; - -import { BehaviorSubject } from "rxjs"; - -import { StateMigrationService } from "../abstractions/stateMigration.service"; +import { Account, AccountData } from "../models/domain/account"; +import { EncString } from "../models/domain/encString"; import { EnvironmentUrls } from "../models/domain/environmentUrls"; +import { GeneratedPasswordHistory } from "../models/domain/generatedPasswordHistory"; +import { GlobalState } from "../models/domain/globalState"; +import { Policy } from "../models/domain/policy"; +import { State } from "../models/domain/state"; +import { StorageOptions } from "../models/domain/storageOptions"; +import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; import { WindowState } from "../models/domain/windowState"; - -import { StateFactory } from "../factories/stateFactory"; +import { CipherView } from "../models/view/cipherView"; +import { CollectionView } from "../models/view/collectionView"; +import { FolderView } from "../models/view/folderView"; +import { SendView } from "../models/view/sendView"; const keys = { global: "global", @@ -67,7 +59,7 @@ export class StateService< this.createGlobals() ); - private hasBeenInited: boolean = false; + private hasBeenInited = false; private accountDiskCache: Map; diff --git a/common/src/services/stateMigration.service.ts b/common/src/services/stateMigration.service.ts index f585b0cd..584173d4 100644 --- a/common/src/services/stateMigration.service.ts +++ b/common/src/services/stateMigration.service.ts @@ -1,9 +1,9 @@ import { StorageService } from "../abstractions/storage.service"; - -import { GeneratedPasswordHistory } from "../models/domain/generatedPasswordHistory"; -import { GlobalState } from "../models/domain/globalState"; -import { StorageOptions } from "../models/domain/storageOptions"; - +import { HtmlStorageLocation } from "../enums/htmlStorageLocation"; +import { KdfType } from "../enums/kdfType"; +import { StateVersion } from "../enums/stateVersion"; +import { ThemeType } from "../enums/themeType"; +import { StateFactory } from "../factories/stateFactory"; import { CipherData } from "../models/data/cipherData"; import { CollectionData } from "../models/data/collectionData"; import { EventData } from "../models/data/eventData"; @@ -12,17 +12,11 @@ import { OrganizationData } from "../models/data/organizationData"; import { PolicyData } from "../models/data/policyData"; import { ProviderData } from "../models/data/providerData"; import { SendData } from "../models/data/sendData"; - -import { HtmlStorageLocation } from "../enums/htmlStorageLocation"; -import { KdfType } from "../enums/kdfType"; -import { StateVersion } from "../enums/stateVersion"; -import { ThemeType } from "../enums/themeType"; - -import { EnvironmentUrls } from "../models/domain/environmentUrls"; - -import { GlobalStateFactory } from "../factories/globalStateFactory"; -import { StateFactory } from "../factories/stateFactory"; import { Account, AccountSettings } from "../models/domain/account"; +import { EnvironmentUrls } from "../models/domain/environmentUrls"; +import { GeneratedPasswordHistory } from "../models/domain/generatedPasswordHistory"; +import { GlobalState } from "../models/domain/globalState"; +import { StorageOptions } from "../models/domain/storageOptions"; import { TokenService } from "./token.service"; diff --git a/common/src/services/sync.service.ts b/common/src/services/sync.service.ts index 17895326..cc512e50 100644 --- a/common/src/services/sync.service.ts +++ b/common/src/services/sync.service.ts @@ -13,7 +13,6 @@ import { SendService } from "../abstractions/send.service"; import { SettingsService } from "../abstractions/settings.service"; import { StateService } from "../abstractions/state.service"; import { SyncService as SyncServiceAbstraction } from "../abstractions/sync.service"; - import { CipherData } from "../models/data/cipherData"; import { CollectionData } from "../models/data/collectionData"; import { FolderData } from "../models/data/folderData"; @@ -21,7 +20,6 @@ import { OrganizationData } from "../models/data/organizationData"; import { PolicyData } from "../models/data/policyData"; import { ProviderData } from "../models/data/providerData"; import { SendData } from "../models/data/sendData"; - import { CipherResponse } from "../models/response/cipherResponse"; import { CollectionDetailsResponse } from "../models/response/collectionResponse"; import { DomainsResponse } from "../models/response/domainsResponse"; @@ -36,7 +34,7 @@ import { ProfileResponse } from "../models/response/profileResponse"; import { SendResponse } from "../models/response/sendResponse"; export class SyncService implements SyncServiceAbstraction { - syncInProgress: boolean = false; + syncInProgress = false; constructor( private apiService: ApiService, diff --git a/common/src/services/system.service.ts b/common/src/services/system.service.ts index 4c84b792..949b8ca4 100644 --- a/common/src/services/system.service.ts +++ b/common/src/services/system.service.ts @@ -2,7 +2,6 @@ import { MessagingService } from "../abstractions/messaging.service"; import { PlatformUtilsService } from "../abstractions/platformUtils.service"; import { StateService } from "../abstractions/state.service"; import { SystemService as SystemServiceAbstraction } from "../abstractions/system.service"; - import { Utils } from "../misc/utils"; export class SystemService implements SystemServiceAbstraction { diff --git a/common/src/services/token.service.ts b/common/src/services/token.service.ts index ad39aed5..a47cca7c 100644 --- a/common/src/services/token.service.ts +++ b/common/src/services/token.service.ts @@ -1,8 +1,6 @@ import { StateService } from "../abstractions/state.service"; import { TokenService as TokenServiceAbstraction } from "../abstractions/token.service"; - import { Utils } from "../misc/utils"; - import { IdentityTokenResponse } from "../models/response/identityTokenResponse"; export class TokenService implements TokenServiceAbstraction { @@ -120,7 +118,7 @@ export class TokenService implements TokenServiceAbstraction { return d; } - async tokenSecondsRemaining(offsetSeconds: number = 0): Promise { + async tokenSecondsRemaining(offsetSeconds = 0): Promise { const d = await this.getTokenExpirationDate(); if (d == null) { return 0; @@ -130,7 +128,7 @@ export class TokenService implements TokenServiceAbstraction { return Math.round(msRemaining / 1000); } - async tokenNeedsRefresh(minutes: number = 5): Promise { + async tokenNeedsRefresh(minutes = 5): Promise { const sRemaining = await this.tokenSecondsRemaining(); return sRemaining < 60 * minutes; } diff --git a/common/src/services/totp.service.ts b/common/src/services/totp.service.ts index e3d653c0..730587c7 100644 --- a/common/src/services/totp.service.ts +++ b/common/src/services/totp.service.ts @@ -2,7 +2,6 @@ import { CryptoFunctionService } from "../abstractions/cryptoFunction.service"; import { LogService } from "../abstractions/log.service"; import { StateService } from "../abstractions/state.service"; import { TotpService as TotpServiceAbstraction } from "../abstractions/totp.service"; - import { Utils } from "../misc/utils"; const B32Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; @@ -77,18 +76,15 @@ export class TotpService implements TotpServiceAbstraction { return null; } - /* tslint:disable */ const offset = hash[hash.length - 1] & 0xf; const binary = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) | ((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff); - /* tslint:enable */ let otp = ""; if (isSteamAuth) { - // tslint:disable-next-line let fullCode = binary & 0x7fffffff; for (let i = 0; i < digits; i++) { otp += SteamChars[fullCode % SteamChars.length]; diff --git a/common/src/services/twoFactor.service.ts b/common/src/services/twoFactor.service.ts index facd8510..7720d9be 100644 --- a/common/src/services/twoFactor.service.ts +++ b/common/src/services/twoFactor.service.ts @@ -4,9 +4,7 @@ import { TwoFactorProviderDetails, TwoFactorService as TwoFactorServiceAbstraction, } from "../abstractions/twoFactor.service"; - import { TwoFactorProviderType } from "../enums/twoFactorProviderType"; - import { IdentityTwoFactorResponse } from "../models/response/identityTwoFactorResponse"; export const TwoFactorProviders: Partial> = diff --git a/common/src/services/userVerification.service.ts b/common/src/services/userVerification.service.ts index f5189a4d..68f44019 100644 --- a/common/src/services/userVerification.service.ts +++ b/common/src/services/userVerification.service.ts @@ -1,14 +1,10 @@ -import { UserVerificationService as UserVerificationServiceAbstraction } from "../abstractions/userVerification.service"; - import { ApiService } from "../abstractions/api.service"; import { CryptoService } from "../abstractions/crypto.service"; import { I18nService } from "../abstractions/i18n.service"; - +import { UserVerificationService as UserVerificationServiceAbstraction } from "../abstractions/userVerification.service"; import { VerificationType } from "../enums/verificationType"; - import { VerifyOTPRequest } from "../models/request/account/verifyOTPRequest"; import { SecretVerificationRequest } from "../models/request/secretVerificationRequest"; - import { Verification } from "../types/verification"; export class UserVerificationService implements UserVerificationServiceAbstraction { diff --git a/common/src/services/vaultTimeout.service.ts b/common/src/services/vaultTimeout.service.ts index 65654bca..a6513d65 100644 --- a/common/src/services/vaultTimeout.service.ts +++ b/common/src/services/vaultTimeout.service.ts @@ -11,7 +11,6 @@ import { StateService } from "../abstractions/state.service"; import { TokenService } from "../abstractions/token.service"; import { VaultTimeoutService as VaultTimeoutServiceAbstraction } from "../abstractions/vaultTimeout.service"; import { KeySuffixOptions } from "../enums/keySuffixOptions"; - import { PolicyType } from "../enums/policyType"; export class VaultTimeoutService implements VaultTimeoutServiceAbstraction { diff --git a/common/src/services/webCryptoFunction.service.ts b/common/src/services/webCryptoFunction.service.ts index 8f7a8019..c90f06f6 100644 --- a/common/src/services/webCryptoFunction.service.ts +++ b/common/src/services/webCryptoFunction.service.ts @@ -2,9 +2,7 @@ import * as forge from "node-forge"; import { CryptoFunctionService } from "../abstractions/cryptoFunction.service"; import { PlatformUtilsService } from "../abstractions/platformUtils.service"; - import { Utils } from "../misc/utils"; - import { DecryptParameters } from "../models/domain/decryptParameters"; import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey"; diff --git a/electron/package.json b/electron/package.json index 88bedfb9..f4b3cdac 100644 --- a/electron/package.json +++ b/electron/package.json @@ -15,9 +15,7 @@ "scripts": { "clean": "rimraf dist/**/*", "build": "npm run clean && tsc", - "build:watch": "npm run clean && tsc -watch", - "lint": "tslint 'src/**/*.ts' 'spec/**/*.ts'", - "lint:fix": "tslint 'src/**/*.ts' 'spec/**/*.ts' --fix" + "build:watch": "npm run clean && tsc -watch" }, "devDependencies": { "@types/node": "^16.11.12", diff --git a/electron/src/baseMenu.ts b/electron/src/baseMenu.ts index f52db2a5..09d47f7e 100644 --- a/electron/src/baseMenu.ts +++ b/electron/src/baseMenu.ts @@ -1,6 +1,7 @@ -import { app, clipboard, dialog, Menu, MenuItemConstructorOptions } from "electron"; +import { Menu, MenuItemConstructorOptions } from "electron"; import { I18nService } from "jslib-common/abstractions/i18n.service"; + import { WindowMain } from "./window.main"; export class BaseMenu { diff --git a/electron/src/biometric.darwin.main.ts b/electron/src/biometric.darwin.main.ts index 15588ac0..c270e1cc 100644 --- a/electron/src/biometric.darwin.main.ts +++ b/electron/src/biometric.darwin.main.ts @@ -5,7 +5,7 @@ import { I18nService } from "jslib-common/abstractions/i18n.service"; import { StateService } from "jslib-common/abstractions/state.service"; export default class BiometricDarwinMain implements BiometricMain { - isError: boolean = false; + isError = false; constructor(private i18nservice: I18nService, private stateService: StateService) {} @@ -14,6 +14,7 @@ export default class BiometricDarwinMain implements BiometricMain { await this.stateService.setBiometricText("unlockWithTouchId"); await this.stateService.setNoAutoPromptBiometricsText("noAutoPromptTouchId"); + // eslint-disable-next-line ipcMain.on("biometric", async (event: any, message: any) => { event.returnValue = await this.authenticateBiometric(); }); diff --git a/electron/src/biometric.windows.main.ts b/electron/src/biometric.windows.main.ts index bb6288b8..d99668f9 100644 --- a/electron/src/biometric.windows.main.ts +++ b/electron/src/biometric.windows.main.ts @@ -1,15 +1,15 @@ import { ipcMain } from "electron"; import forceFocus from "forcefocus"; -import { WindowMain } from "./window.main"; - import { BiometricMain } from "jslib-common/abstractions/biometric.main"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { LogService } from "jslib-common/abstractions/log.service"; import { StateService } from "jslib-common/abstractions/state.service"; +import { WindowMain } from "./window.main"; + export default class BiometricWindowsMain implements BiometricMain { - isError: boolean = false; + isError = false; private windowsSecurityCredentialsUiModule: any; @@ -72,6 +72,7 @@ export default class BiometricWindowsMain implements BiometricMain { async checkAvailabilityAsync(): Promise { const module = this.getWindowsSecurityCredentialsUiModule(); if (module != null) { + // eslint-disable-next-line return new Promise((resolve, reject) => { try { module.UserConsentVerifier.checkAvailabilityAsync((error: Error, result: any) => { @@ -134,6 +135,7 @@ export default class BiometricWindowsMain implements BiometricMain { return -1; } try { + // eslint-disable-next-line const version = require("os").release(); return Number.parseInt(version.split(".")[0], 10); } catch { diff --git a/electron/src/keytarStorageListener.ts b/electron/src/keytarStorageListener.ts index a8e8ec4a..566045e4 100644 --- a/electron/src/keytarStorageListener.ts +++ b/electron/src/keytarStorageListener.ts @@ -1,5 +1,4 @@ import { ipcMain } from "electron"; - import { deletePassword, getPassword, setPassword } from "keytar"; import { BiometricMain } from "jslib-common/abstractions/biometric.main"; diff --git a/electron/src/services/electronCrypto.service.ts b/electron/src/services/electronCrypto.service.ts index 7eb01e49..36ea8132 100644 --- a/electron/src/services/electronCrypto.service.ts +++ b/electron/src/services/electronCrypto.service.ts @@ -2,12 +2,9 @@ import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction. import { LogService } from "jslib-common/abstractions/log.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; - -import { CryptoService } from "jslib-common/services/crypto.service"; - import { KeySuffixOptions } from "jslib-common/enums/keySuffixOptions"; -import { StorageLocation } from "jslib-common/enums/storageLocation"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { CryptoService } from "jslib-common/services/crypto.service"; export class ElectronCryptoService extends CryptoService { constructor( diff --git a/electron/src/services/electronLog.service.ts b/electron/src/services/electronLog.service.ts index 008678ae..c6195416 100644 --- a/electron/src/services/electronLog.service.ts +++ b/electron/src/services/electronLog.service.ts @@ -1,12 +1,12 @@ -import log from "electron-log"; import * as path from "path"; -import { isDev } from "../utils"; +import log from "electron-log"; import { LogLevelType } from "jslib-common/enums/logLevelType"; - import { ConsoleLogService as BaseLogService } from "jslib-common/services/consoleLog.service"; +import { isDev } from "../utils"; + export class ElectronLogService extends BaseLogService { constructor(protected filter: (level: LogLevelType) => boolean = null, logDir: string = null) { super(isDev(), filter); diff --git a/electron/src/services/electronMainMessaging.service.ts b/electron/src/services/electronMainMessaging.service.ts index 99dd5b32..a868d710 100644 --- a/electron/src/services/electronMainMessaging.service.ts +++ b/electron/src/services/electronMainMessaging.service.ts @@ -1,10 +1,9 @@ import { app, dialog, ipcMain, Menu, MenuItem, nativeTheme } from "electron"; -import { promises as fs } from "fs"; -import { MessagingService } from "jslib-common/abstractions/messaging.service"; -import { RendererMenuItem } from "../utils"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; import { ThemeType } from "jslib-common/enums/themeType"; +import { RendererMenuItem } from "../utils"; import { WindowMain } from "../window.main"; export class ElectronMainMessagingService implements MessagingService { diff --git a/electron/src/services/electronPlatformUtils.service.ts b/electron/src/services/electronPlatformUtils.service.ts index 8e4632b6..7e089d89 100644 --- a/electron/src/services/electronPlatformUtils.service.ts +++ b/electron/src/services/electronPlatformUtils.service.ts @@ -1,15 +1,14 @@ import { clipboard, ipcRenderer, shell } from "electron"; -import { isDev, isMacAppStore } from "../utils"; - -import { ClientType } from "jslib-common/enums/clientType"; -import { DeviceType } from "jslib-common/enums/deviceType"; -import { ThemeType } from "jslib-common/enums/themeType"; - import { I18nService } from "jslib-common/abstractions/i18n.service"; import { MessagingService } from "jslib-common/abstractions/messaging.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; +import { ClientType } from "jslib-common/enums/clientType"; +import { DeviceType } from "jslib-common/enums/deviceType"; +import { ThemeType } from "jslib-common/enums/themeType"; + +import { isDev, isMacAppStore } from "../utils"; export class ElectronPlatformUtilsService implements PlatformUtilsService { private clientType: ClientType; diff --git a/electron/src/services/electronRendererSecureStorage.service.ts b/electron/src/services/electronRendererSecureStorage.service.ts index 5d293350..5c3f3c74 100644 --- a/electron/src/services/electronRendererSecureStorage.service.ts +++ b/electron/src/services/electronRendererSecureStorage.service.ts @@ -1,7 +1,6 @@ import { ipcRenderer } from "electron"; import { StorageService } from "jslib-common/abstractions/storage.service"; - import { StorageOptions } from "jslib-common/models/domain/storageOptions"; export class ElectronRendererSecureStorageService implements StorageService { diff --git a/electron/src/services/electronStorage.service.ts b/electron/src/services/electronStorage.service.ts index 08d49ed0..fdabf2a2 100644 --- a/electron/src/services/electronStorage.service.ts +++ b/electron/src/services/electronStorage.service.ts @@ -1,11 +1,11 @@ -import { ipcMain, ipcRenderer } from "electron"; import * as fs from "fs"; -import { StorageService } from "jslib-common/abstractions/storage.service"; +import { ipcMain } from "electron"; +import { StorageService } from "jslib-common/abstractions/storage.service"; import { NodeUtils } from "jslib-common/misc/nodeUtils"; -// tslint:disable-next-line +// eslint-disable-next-line const Store = require("electron-store"); export class ElectronStorageService implements StorageService { diff --git a/electron/src/tray.main.ts b/electron/src/tray.main.ts index c5c3f661..ebbc5687 100644 --- a/electron/src/tray.main.ts +++ b/electron/src/tray.main.ts @@ -1,6 +1,7 @@ -import { app, BrowserWindow, Menu, MenuItemConstructorOptions, nativeImage, Tray } from "electron"; import * as path from "path"; +import { app, BrowserWindow, Menu, MenuItemConstructorOptions, nativeImage, Tray } from "electron"; + import { I18nService } from "jslib-common/abstractions/i18n.service"; import { StateService } from "jslib-common/abstractions/state.service"; @@ -75,7 +76,7 @@ export class TrayMain { } }); - win.on("show", async (e: Event) => { + win.on("show", async () => { const enableTray = await this.stateService.getEnableTray(); if (!enableTray) { setTimeout(() => this.removeTray(false), 100); diff --git a/electron/src/updater.main.ts b/electron/src/updater.main.ts index bc0fb4b4..66779f6b 100644 --- a/electron/src/updater.main.ts +++ b/electron/src/updater.main.ts @@ -1,10 +1,10 @@ -import { dialog, Menu, MenuItem, shell } from "electron"; +import { dialog, shell } from "electron"; import log from "electron-log"; import { autoUpdater } from "electron-updater"; -import { isAppImage, isDev, isMacAppStore, isWindowsPortable, isWindowsStore } from "./utils"; - import { I18nService } from "jslib-common/abstractions/i18n.service"; + +import { isAppImage, isDev, isMacAppStore, isWindowsPortable, isWindowsStore } from "./utils"; import { WindowMain } from "./window.main"; const UpdaterCheckInitalDelay = 5 * 1000; // 5 seconds @@ -123,7 +123,7 @@ export class UpdaterMain { }); } - async checkForUpdate(withFeedback: boolean = false) { + async checkForUpdate(withFeedback = false) { if (this.doingUpdateCheck || isDev()) { return; } diff --git a/electron/src/window.main.ts b/electron/src/window.main.ts index 2dc1709e..66d4c780 100644 --- a/electron/src/window.main.ts +++ b/electron/src/window.main.ts @@ -1,7 +1,8 @@ -import { app, BrowserWindow, screen } from "electron"; import * as path from "path"; import * as url from "url"; +import { app, BrowserWindow, screen } from "electron"; + import { LogService } from "jslib-common/abstractions/log.service"; import { StateService } from "jslib-common/abstractions/state.service"; @@ -11,11 +12,11 @@ const mainWindowSizeKey = "mainWindowSize"; const WindowEventHandlingDelay = 100; export class WindowMain { win: BrowserWindow; - isQuitting: boolean = false; + isQuitting = false; private windowStateChangeTimer: NodeJS.Timer; private windowStates: { [key: string]: any } = {}; - private enableAlwaysOnTop: boolean = false; + private enableAlwaysOnTop = false; constructor( private stateService: StateService, @@ -36,6 +37,7 @@ export class WindowMain { app.quit(); return; } else { + // eslint-disable-next-line app.on("second-instance", (event, argv, workingDirectory) => { // Someone tried to run a second instance, we should focus our window. if (this.win != null) { diff --git a/node/package.json b/node/package.json index af6c0e3a..b5c6c225 100644 --- a/node/package.json +++ b/node/package.json @@ -15,9 +15,7 @@ "scripts": { "clean": "rimraf dist/**/*", "build": "npm run clean && tsc", - "build:watch": "npm run clean && tsc -watch", - "lint": "tslint 'src/**/*.ts' 'spec/**/*.ts'", - "lint:fix": "tslint 'src/**/*.ts' 'spec/**/*.ts' --fix" + "build:watch": "npm run clean && tsc -watch" }, "devDependencies": { "@types/inquirer": "^7.3.1", diff --git a/node/src/cli/baseProgram.ts b/node/src/cli/baseProgram.ts index b2ddd22f..4a2ec904 100644 --- a/node/src/cli/baseProgram.ts +++ b/node/src/cli/baseProgram.ts @@ -79,7 +79,7 @@ export abstract class BaseProgram { return message.raw; } - let out: string = ""; + let out = ""; if (message.title != null) { if (message.noColor) { out = message.title; diff --git a/node/src/cli/commands/login.command.ts b/node/src/cli/commands/login.command.ts index 61c30777..01df0cea 100644 --- a/node/src/cli/commands/login.command.ts +++ b/node/src/cli/commands/login.command.ts @@ -1,17 +1,8 @@ -import * as program from "commander"; import * as http from "http"; + +import * as program from "commander"; import * as inquirer from "inquirer"; - -import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; - -import { AuthResult } from "jslib-common/models/domain/authResult"; -import { - ApiLogInCredentials, - PasswordLogInCredentials, - SsoLogInCredentials, -} from "jslib-common/models/domain/logInCredentials"; -import { TwoFactorEmailRequest } from "jslib-common/models/request/twoFactorEmailRequest"; -import { ErrorResponse } from "jslib-common/models/response/errorResponse"; +import Separator from "inquirer/lib/objects/separator"; import { ApiService } from "jslib-common/abstractions/api.service"; import { AuthService } from "jslib-common/abstractions/auth.service"; @@ -24,20 +15,21 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { PolicyService } from "jslib-common/abstractions/policy.service"; import { StateService } from "jslib-common/abstractions/state.service"; import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; - -import { Response } from "../models/response"; - -import { UpdateTempPasswordRequest } from "jslib-common/models/request/updateTempPasswordRequest"; - -import { MessageResponse } from "../models/response/messageResponse"; - +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; import { NodeUtils } from "jslib-common/misc/nodeUtils"; import { Utils } from "jslib-common/misc/utils"; +import { AuthResult } from "jslib-common/models/domain/authResult"; +import { + ApiLogInCredentials, + PasswordLogInCredentials, + SsoLogInCredentials, +} from "jslib-common/models/domain/logInCredentials"; +import { TwoFactorEmailRequest } from "jslib-common/models/request/twoFactorEmailRequest"; +import { UpdateTempPasswordRequest } from "jslib-common/models/request/updateTempPasswordRequest"; +import { ErrorResponse } from "jslib-common/models/response/errorResponse"; -import Separator from "inquirer/lib/objects/separator"; - -// tslint:disable-next-line -const open = require("open"); +import { Response } from "../models/response"; +import { MessageResponse } from "../models/response/messageResponse"; export class LoginCommand { protected validatedParams: () => Promise; @@ -482,7 +474,7 @@ export class LoginCommand { return clientId; } - private async apiClientSecret(isAdditionalAuthentication: boolean = false): Promise { + private async apiClientSecret(isAdditionalAuthentication = false): Promise { const additionalAuthenticationMessage = "Additional authentication required.\nAPI key "; let clientSecret: string = null; diff --git a/node/src/cli/commands/logout.command.ts b/node/src/cli/commands/logout.command.ts index 752d142d..6074ba9c 100644 --- a/node/src/cli/commands/logout.command.ts +++ b/node/src/cli/commands/logout.command.ts @@ -1,5 +1,3 @@ -import * as program from "commander"; - import { AuthService } from "jslib-common/abstractions/auth.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; diff --git a/node/src/cli/commands/update.command.ts b/node/src/cli/commands/update.command.ts index 147a4694..1b9408a3 100644 --- a/node/src/cli/commands/update.command.ts +++ b/node/src/cli/commands/update.command.ts @@ -1,4 +1,3 @@ -import * as program from "commander"; import * as fetch from "node-fetch"; import { I18nService } from "jslib-common/abstractions/i18n.service"; @@ -8,7 +7,7 @@ import { Response } from "../models/response"; import { MessageResponse } from "../models/response/messageResponse"; export class UpdateCommand { - inPkg: boolean = false; + inPkg = false; constructor( private platformUtilsService: PlatformUtilsService, diff --git a/node/src/cli/services/cliPlatformUtils.service.ts b/node/src/cli/services/cliPlatformUtils.service.ts index 43350308..6d40f07e 100644 --- a/node/src/cli/services/cliPlatformUtils.service.ts +++ b/node/src/cli/services/cliPlatformUtils.service.ts @@ -1,12 +1,11 @@ import * as child_process from "child_process"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { ClientType } from "jslib-common/enums/clientType"; import { DeviceType } from "jslib-common/enums/deviceType"; import { ThemeType } from "jslib-common/enums/themeType"; -import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - -// tslint:disable-next-line +// eslint-disable-next-line const open = require("open"); export class CliPlatformUtilsService implements PlatformUtilsService { diff --git a/node/src/cli/services/consoleLog.service.ts b/node/src/cli/services/consoleLog.service.ts index f55e2d7d..73dfcc55 100644 --- a/node/src/cli/services/consoleLog.service.ts +++ b/node/src/cli/services/consoleLog.service.ts @@ -1,5 +1,4 @@ import { LogLevelType } from "jslib-common/enums/logLevelType"; - import { ConsoleLogService as BaseConsoleLogService } from "jslib-common/services/consoleLog.service"; export class ConsoleLogService extends BaseConsoleLogService { @@ -13,7 +12,7 @@ export class ConsoleLogService extends BaseConsoleLogService { } if (process.env.BW_RESPONSE === "true") { - // tslint:disable-next-line + // eslint-disable-next-line console.error(message); return; } diff --git a/node/src/services/lowdbStorage.service.ts b/node/src/services/lowdbStorage.service.ts index 05396115..e78fe2e4 100644 --- a/node/src/services/lowdbStorage.service.ts +++ b/node/src/services/lowdbStorage.service.ts @@ -1,11 +1,11 @@ import * as fs from "fs"; +import * as path from "path"; + import * as lowdb from "lowdb"; import * as FileSync from "lowdb/adapters/FileSync"; -import * as path from "path"; import { LogService } from "jslib-common/abstractions/log.service"; import { StorageService } from "jslib-common/abstractions/storage.service"; - import { NodeUtils } from "jslib-common/misc/nodeUtils"; import { sequentialize } from "jslib-common/misc/sequentialize"; import { Utils } from "jslib-common/misc/utils"; @@ -66,7 +66,7 @@ export class LowdbStorageService implements StorageService { if (fs.existsSync(this.dataFilePath)) { const backupPath = this.dataFilePath + ".bak"; this.logService.warning(`Writing backup of data file to ${backupPath}`); - await fs.copyFile(this.dataFilePath, backupPath, (err) => { + await fs.copyFile(this.dataFilePath, backupPath, () => { this.logService.warning( `Error while creating data file backup, "${e.message}". No backup may have been created.` ); diff --git a/node/src/services/nodeApi.service.ts b/node/src/services/nodeApi.service.ts index 08d85449..9ffafe3c 100644 --- a/node/src/services/nodeApi.service.ts +++ b/node/src/services/nodeApi.service.ts @@ -2,11 +2,10 @@ import * as FormData from "form-data"; import { HttpsProxyAgent } from "https-proxy-agent"; import * as fe from "node-fetch"; -import { ApiService } from "jslib-common/services/api.service"; - import { EnvironmentService } from "jslib-common/abstractions/environment.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { TokenService } from "jslib-common/abstractions/token.service"; +import { ApiService } from "jslib-common/services/api.service"; (global as any).fetch = fe.default; (global as any).Request = fe.Request; diff --git a/node/src/services/nodeCryptoFunction.service.ts b/node/src/services/nodeCryptoFunction.service.ts index dae6fa68..6d510855 100644 --- a/node/src/services/nodeCryptoFunction.service.ts +++ b/node/src/services/nodeCryptoFunction.service.ts @@ -1,13 +1,12 @@ import * as crypto from "crypto"; + import * as forge from "node-forge"; import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; - +import { Utils } from "jslib-common/misc/utils"; import { DecryptParameters } from "jslib-common/models/domain/decryptParameters"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; -import { Utils } from "jslib-common/misc/utils"; - export class NodeCryptoFunctionService implements CryptoFunctionService { pbkdf2( password: string | ArrayBuffer, diff --git a/package-lock.json b/package-lock.json index 2ca4e006..1b7ad74f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,8 +18,14 @@ "@fluffy-spoon/substitute": "^1.202.0", "@types/jasmine": "^3.7.6", "@types/node": "^16.11.12", + "@typescript-eslint/eslint-plugin": "^5.10.1", + "@typescript-eslint/parser": "^5.10.1", "commander": "7.2.0", "concurrently": "^6.1.0", + "eslint": "^8.7.0", + "eslint-config-prettier": "^8.3.0", + "eslint-import-resolver-typescript": "^2.5.0", + "eslint-plugin-import": "^2.25.4", "form-data": "4.0.0", "husky": "^7.0.4", "jasmine": "^3.7.0", @@ -44,7 +50,6 @@ "ts-loader": "^8.1.0", "ts-node": "^10.4.0", "tsconfig-paths": "^3.12.0", - "tslint": "^6.1.3", "ttypescript": "^1.5.12", "typemoq": "^2.1.0", "typescript": "4.3.5", @@ -83,7 +88,6 @@ } }, "common": { - "name": "@bitwarden/jslib-common", "version": "0.0.0", "license": "GPL-3.0", "dependencies": { @@ -110,7 +114,6 @@ } }, "electron": { - "name": "@bitwarden/jslib-electron", "version": "0.0.0", "license": "GPL-3.0", "dependencies": { @@ -130,7 +133,6 @@ } }, "node": { - "name": "@bitwarden/jslib-node", "version": "0.0.0", "license": "GPL-3.0", "dependencies": { @@ -153,9 +155,9 @@ } }, "node_modules/@angular/animations": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-12.2.14.tgz", - "integrity": "sha512-1BR5u32auVePvXNNP96DB2008V+Ku0OGqeZQl2h4XA9xzES/Zk5WllIJZXqRmWMRBVARfXsfb0RdMty9gcaVjA==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-12.2.16.tgz", + "integrity": "sha512-Kf6C7Ta+fCMq5DvT9JNVhBkcECrqFa3wumiC6ssGo5sNaEzXz+tlep9ZgEbqfxSn7gAN7L1DgsbS9u0O6tbUkg==", "dependencies": { "tslib": "^2.2.0" }, @@ -163,14 +165,9 @@ "node": "^12.14.1 || >=14.0.0" }, "peerDependencies": { - "@angular/core": "12.2.14" + "@angular/core": "12.2.16" } }, - "node_modules/@angular/animations/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/@angular/cdk": { "version": "12.2.13", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.2.13.tgz", @@ -193,15 +190,10 @@ "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "optional": true }, - "node_modules/@angular/cdk/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/@angular/common": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.14.tgz", - "integrity": "sha512-ffYUYdwZETmFJw0AcWY30WsaWBhJxj/zSmFXWjgEGEGZH56zwbbNwfMZOYZ1jz4haAVxGu+TdXsOl2yMGzN7jQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.16.tgz", + "integrity": "sha512-FEqTXTEsnbDInqV1yFlm97Tz1OFqZS5t0TUkm8gzXRgpIce/F/jLwAg0u1VQkgOsno6cNm0xTWPoZgu85NI4ug==", "dependencies": { "tslib": "^2.2.0" }, @@ -209,19 +201,14 @@ "node": "^12.14.1 || >=14.0.0" }, "peerDependencies": { - "@angular/core": "12.2.14", + "@angular/core": "12.2.16", "rxjs": "^6.5.3 || ^7.0.0" } }, - "node_modules/@angular/common/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/@angular/compiler": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.14.tgz", - "integrity": "sha512-dwmZi+n66IUzRFlGWu9mjXq170ZEsaDvlNLZzaPgs6vZTa4Kt7PWvIF/Y7TMvnVv/uqNG6kOhfmOkf6rfz1Gjg==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.16.tgz", + "integrity": "sha512-nsYEw+yu8QyeqPf9nAmG419i1mtGM4v8+U+S3eQHQFXTgJzLymMykWHYu2ETdjUpNSLK6xcIQDBWtWnWSfJjAA==", "dependencies": { "tslib": "^2.2.0" }, @@ -229,15 +216,10 @@ "node": "^12.14.1 || >=14.0.0" } }, - "node_modules/@angular/compiler/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/@angular/core": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.14.tgz", - "integrity": "sha512-dlVk7yqUHL2R/eCmM8LsWuxhEBfzg0y1zHt0UqCuFwlCoiw+IG4HFy4OlZEUw9NUEZJSv0aDv3sWqxLkvK5vvg==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.16.tgz", + "integrity": "sha512-jsmvaRdAfng99z2a9mAmkfcsCE1wm+tBYVDxnc5JquSXznwtncjzcoc2X0J0dzrkCDvzFfpTsZ9vehylytBc+A==", "dependencies": { "tslib": "^2.2.0" }, @@ -249,15 +231,10 @@ "zone.js": "~0.11.4" } }, - "node_modules/@angular/core/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/@angular/forms": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.14.tgz", - "integrity": "sha512-/9/gSJUBXVRVdRnzgJnALAQZYJATuGDMkFC9ms9DEMG4PMAhe9x4if1lJjN6noz5RAom3qNuVBNWaYAPUxlcBQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.16.tgz", + "integrity": "sha512-sb+gpNun5aN7CZfHXS6X7vJcd/0A1P/gRBZpYtQTzBYnqEFCOFIvR62eb05aHQ4JhgKaSPpIXrbz/bAwY/njZw==", "dependencies": { "tslib": "^2.2.0" }, @@ -265,21 +242,16 @@ "node": "^12.14.1 || >=14.0.0" }, "peerDependencies": { - "@angular/common": "12.2.14", - "@angular/core": "12.2.14", - "@angular/platform-browser": "12.2.14", + "@angular/common": "12.2.16", + "@angular/core": "12.2.16", + "@angular/platform-browser": "12.2.16", "rxjs": "^6.5.3 || ^7.0.0" } }, - "node_modules/@angular/forms/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/@angular/platform-browser": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.14.tgz", - "integrity": "sha512-fWcE2rnJ3ZCISa1oPfsIDV7FBZBoLFEdDuMXAiDYqDPKvF/E5U5nHrS+K4SlLAi094bMobtTOReNWl/Ienniyw==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.16.tgz", + "integrity": "sha512-T855ppLeQO6hRHi7lGf5fwPoUVt+c0h2rgkV5jHElc3ylaGnhecmZc6fnWLX4pw82TMJUgUV88CY8JCFabJWwg==", "dependencies": { "tslib": "^2.2.0" }, @@ -287,9 +259,9 @@ "node": "^12.14.1 || >=14.0.0" }, "peerDependencies": { - "@angular/animations": "12.2.14", - "@angular/common": "12.2.14", - "@angular/core": "12.2.14" + "@angular/animations": "12.2.16", + "@angular/common": "12.2.16", + "@angular/core": "12.2.16" }, "peerDependenciesMeta": { "@angular/animations": { @@ -298,9 +270,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.14.tgz", - "integrity": "sha512-0NPF7mS91Tct8rBmOLZPmnLSuS4kbLHXo6eTgrg80OC0vlzBiQwGDVW4X3KncCoX9CpevaGJCdSMc+uPNsFOUQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.16.tgz", + "integrity": "sha512-XGxoACAMW/bc3atiVRpaiYwU4LkobYwVzwlxTT/BxOfsdt8ILb5wU8Fx1TMKNECOQHSGdK0qqhch4pTBZ3cb2g==", "dependencies": { "tslib": "^2.2.0" }, @@ -308,26 +280,16 @@ "node": "^12.14.1 || >=14.0.0" }, "peerDependencies": { - "@angular/common": "12.2.14", - "@angular/compiler": "12.2.14", - "@angular/core": "12.2.14", - "@angular/platform-browser": "12.2.14" + "@angular/common": "12.2.16", + "@angular/compiler": "12.2.16", + "@angular/core": "12.2.16", + "@angular/platform-browser": "12.2.16" } }, - "node_modules/@angular/platform-browser-dynamic/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@angular/platform-browser/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/@angular/router": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.14.tgz", - "integrity": "sha512-yP5grSnqBvc4vNhtYdcxDgDYIebUKs5f0xyFkUJM5030UnQ0CV45tBsSxHMkQbPZucIfOuxpRy8xy5+4GizuwQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.16.tgz", + "integrity": "sha512-LuFXSMIvX/VrB4jbYhigG2Y2pGQ9ULsSBUwDWwQCf4kr0eVI37LBJ2Vr74GBEznjgQ0UmWE89E+XYI80UhERTw==", "dependencies": { "tslib": "^2.2.0" }, @@ -335,114 +297,12 @@ "node": "^12.14.1 || >=14.0.0" }, "peerDependencies": { - "@angular/common": "12.2.14", - "@angular/core": "12.2.14", - "@angular/platform-browser": "12.2.14", + "@angular/common": "12.2.16", + "@angular/core": "12.2.16", + "@angular/platform-browser": "12.2.16", "rxjs": "^6.5.3 || ^7.0.0" } }, - "node_modules/@angular/router/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@bitwarden/jslib-angular": { "resolved": "angular", "link": true @@ -501,6 +361,27 @@ "global-tunnel-ng": "^2.7.1" } }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/@electron/get/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -509,6 +390,43 @@ "semver": "bin/semver.js" } }, + "node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.2.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/@fluffy-spoon/substitute": { "version": "1.208.0", "resolved": "https://registry.npmjs.org/@fluffy-spoon/substitute/-/substitute-1.208.0.tgz", @@ -522,6 +440,26 @@ "url": "https://opencollective.com/substitute-js#section-contribute" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "node_modules/@microsoft/signalr": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-5.0.10.tgz", @@ -551,6 +489,41 @@ "async-limiter": "~1.0.0" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@nodert-win10-rs4/windows.security.credentials.ui": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.security.credentials.ui/-/windows.security.credentials.ui-0.4.4.tgz", @@ -568,6 +541,15 @@ "node": ">=6" } }, + "node_modules/@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", @@ -665,9 +647,15 @@ "dev": true }, "node_modules/@types/jasmine": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.2.tgz", - "integrity": "sha512-qs4xjVm4V/XjM6owGm/x6TNmhGl5iKX8dkTdsgdgl9oFnqgzxLepnS7rN9Tdo7kDmnFD/VEqKrW57cGD2odbEg==", + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.3.tgz", + "integrity": "sha512-SWyMrjgdAUHNQmutvDcKablrJhkDLy4wunTme8oYLjKp41GnHGxMRXr2MQMvy/qy8H3LdzwQk9gH4hZ6T++H8g==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "node_modules/@types/json5": { @@ -698,9 +686,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.13.tgz", - "integrity": "sha512-eUXZzHLHoZqj1frtUetNkUetYoJ6X55UmrVnFD4DMhVeAmwLjniZhtBmsRiemQh4uq4G3vUra/Ws/hs9vEvL3Q==", + "version": "16.11.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.22.tgz", + "integrity": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==", "dev": true }, "node_modules/@types/node-fetch": { @@ -737,9 +725,9 @@ } }, "node_modules/@types/papaparse": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.1.tgz", - "integrity": "sha512-1lbngk9wty2kCyQB42LjqSa12SEop3t9wcEC7/xYr3ujTSTmv7HWKjKYXly0GkMfQ42PRb2lFPFEibDOiMXS0g==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.2.tgz", + "integrity": "sha512-BNbCHJkTE4RwmAFkCxEalET4mDvGr/1ld7ZtQ4i/laWI/iiVt+GL07stdvufle4KfywyvloqqpIiJscXNCrKxA==", "dev": true, "dependencies": { "@types/node": "*" @@ -771,6 +759,190 @@ "integrity": "sha512-3NoqvZC2W5gAC5DZbTpCeJ251vGQmgcWIHQJGq2J240HY6ErQ9aWKkwfoKJlHLx+A83WPNTZ9+3cd2ILxbvr1w==", "dev": true }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.2.tgz", + "integrity": "sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/type-utils": "5.10.2", + "@typescript-eslint/utils": "5.10.2", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.2.tgz", + "integrity": "sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz", + "integrity": "sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.10.2.tgz", + "integrity": "sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.10.2", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.2.tgz", + "integrity": "sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz", + "integrity": "sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.10.2.tgz", + "integrity": "sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz", + "integrity": "sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.10.2", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -982,22 +1154,22 @@ } }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" } }, "node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1028,6 +1200,15 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", @@ -1103,9 +1284,9 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -1170,9 +1351,9 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true, "engines": { "node": ">=6" @@ -1192,6 +1373,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1248,13 +1440,9 @@ "dev": true }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/arr-diff": { "version": "4.0.0", @@ -1283,6 +1471,34 @@ "node": ">=0.10.0" } }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -1292,6 +1508,23 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -1464,15 +1697,6 @@ "node": ">=0.10.0" } }, - "node_modules/base64-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", - "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1649,18 +1873,6 @@ "node": ">=8" } }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1849,15 +2061,6 @@ "node": ">=12.0.0" } }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -1896,6 +2099,15 @@ "y18n": "^4.0.0" } }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/cacache/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -1908,6 +2120,12 @@ "rimraf": "bin.js" } }, + "node_modules/cacache/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1967,10 +2185,32 @@ "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { "node": ">=10" @@ -2011,10 +2251,16 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2031,6 +2277,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -2305,9 +2563,9 @@ } }, "node_modules/concurrently": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.4.0.tgz", - "integrity": "sha512-HZ3D0RTQMH3oS4gvtYj1P+NBc6PzE2McEra6yEFcQKrUQ9HvtTGU4Dbne083F034p+LRb7kWU0tPRNvSGs1UCQ==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", + "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -2368,9 +2626,9 @@ } }, "node_modules/conf/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -2401,36 +2659,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, - "node_modules/conf/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conf/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conf/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -2521,9 +2749,9 @@ } }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, "engines": { "node": ">= 0.6" @@ -2645,21 +2873,6 @@ "node": ">= 8" } }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -2742,9 +2955,9 @@ } }, "node_modules/date-fns": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.27.0.tgz", - "integrity": "sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", "dev": true, "engines": { "node": ">=0.11" @@ -2755,9 +2968,9 @@ } }, "node_modules/date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true, "engines": { "node": ">=4.0" @@ -2850,7 +3063,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "optional": true, + "devOptional": true, "dependencies": { "object-keys": "^1.0.12" }, @@ -2951,6 +3164,30 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", @@ -3028,6 +3265,12 @@ "stream-shift": "^1.0.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3094,88 +3337,10 @@ "semver": "^7.3.5" } }, - "node_modules/electron-updater/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/electron-updater/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-updater/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/electron-updater/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-updater/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-updater/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-updater/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/electron-updater/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/electron/node_modules/@types/node": { - "version": "14.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz", - "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==" + "version": "14.18.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.10.tgz", + "integrity": "sha512-6iihJ/Pp5fsFJ/aEDGyvT4pHGmCpq7ToQ/yf4bl5SbVAvwpspYJ+v3jO7n8UyjhQVHTy+KNszOozDdv+O6sovQ==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -3231,9 +3396,9 @@ } }, "node_modules/engine.io": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz", - "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", + "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -3252,12 +3417,12 @@ } }, "node_modules/engine.io-parser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", - "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "dependencies": { - "base64-arraybuffer": "~1.0.1" + "@socket.io/base64-arraybuffer": "~1.0.2" }, "engines": { "node": ">=10.0.0" @@ -3298,18 +3463,6 @@ "node": ">=6.9.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", @@ -3345,6 +3498,57 @@ "stackframe": "^1.1.1" } }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es6-denodeify": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-denodeify/-/es6-denodeify-0.1.5.tgz", @@ -3381,11 +3585,15 @@ "dev": true }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "devOptional": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escodegen": { @@ -3410,6 +3618,54 @@ "source-map": "~0.6.1" } }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3420,28 +3676,282 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "dependencies": { - "esrecurse": "^4.1.0", + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", + "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.2.0", + "espree": "^9.3.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz", + "integrity": "sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.1", + "glob": "^7.1.7", + "is-glob": "^4.0.1", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { - "node": ">=4.0.0" + "node": ">=8.0.0" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" } }, + "node_modules/espree": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -3455,6 +3965,27 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3467,7 +3998,7 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { + "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -3476,6 +4007,15 @@ "node": ">=4.0" } }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -3736,6 +4276,34 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3748,6 +4316,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -3797,6 +4374,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -3874,30 +4471,44 @@ "node": ">=6" } }, - "node_modules/find-cache-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "node_modules/find-cache-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "engines": { - "node": ">=6" + "bin": { + "semver": "bin/semver" } }, "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^2.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "node_modules/flush-write-stream": { @@ -3911,9 +4522,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", "dev": true, "funding": [ { @@ -3993,16 +4604,16 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=12" } }, "node_modules/fs-write-stream-atomic": { @@ -4043,6 +4654,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -4110,6 +4727,20 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -4122,6 +4753,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -4157,15 +4804,15 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/global-agent": { @@ -4185,39 +4832,6 @@ "node": ">=10.0" } }, - "node_modules/global-agent/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/global-agent/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/global-agent/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", @@ -4248,6 +4862,21 @@ "node": ">=0.10" } }, + "node_modules/globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globalthis": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", @@ -4263,6 +4892,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -4296,9 +4945,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "node_modules/has": { "version": "1.0.3", @@ -4312,6 +4961,15 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4320,6 +4978,33 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -4605,12 +5290,37 @@ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -4733,6 +5443,20 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -4757,6 +5481,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4769,12 +5505,40 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -4788,9 +5552,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -4823,6 +5587,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -4919,6 +5698,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-npm": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", @@ -4940,6 +5731,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -4980,6 +5786,31 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -4992,12 +5823,54 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -5058,22 +5931,22 @@ } }, "node_modules/jasmine": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.10.0.tgz", - "integrity": "sha512-2Y42VsC+3CQCTzTwJezOvji4qLORmKIE0kwowWC+934Krn6ZXNQYljiwK5st9V3PVx96BSiDYXSB60VVah3IlQ==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.99.0.tgz", + "integrity": "sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==", "dev": true, "dependencies": { "glob": "^7.1.6", - "jasmine-core": "~3.10.0" + "jasmine-core": "~3.99.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.10.1.tgz", - "integrity": "sha512-ooZWSDVAdh79Rrj4/nnfklL3NQVra0BcuhcuWoAwwi+znLDoUeH87AFfeX8s+YeYi6xlv5nveRyaA1v7CintfA==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.0.tgz", + "integrity": "sha512-+ZDaJlEfRopINQqgE+hvzRyDIQDeKfqqTvF8RzXsvU1yE3pBDRud2+Qfh9WvGgRpuzqxyQJVI6Amy5XQ11r/3w==", "dev": true }, "node_modules/jasmine-ts": { @@ -5170,20 +6043,12 @@ "node": ">=12" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -5271,6 +6136,12 @@ "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -5290,23 +6161,26 @@ } }, "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/karma": { - "version": "6.3.9", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz", - "integrity": "sha512-E/MqdLM9uVIhfuyVnrhlGBu4miafBdXEAEqCmwdEMh3n17C7UWC/8Kvm3AYKr91gc7scutekZ0xv6rxRaUCtnw==", + "version": "6.3.13", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.13.tgz", + "integrity": "sha512-64lbtHBnM/sG7XKvitSQVlImKYNugyjw4K2e8cZYrlZm0GwoWrfsrkzgS/KWY/r3+fVM/2xvT/JN6MyfdttxLw==", "dev": true, "dependencies": { "body-parser": "^1.19.0", "braces": "^3.0.2", "chokidar": "^3.5.1", - "colors": "^1.4.0", + "colors": "1.4.0", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", @@ -5315,7 +6189,7 @@ "http-proxy": "^1.18.1", "isbinaryfile": "^4.0.8", "lodash": "^4.17.21", - "log4js": "^6.3.0", + "log4js": "^6.4.1", "mime": "^2.5.2", "minimatch": "^3.0.4", "qjobs": "^1.2.0", @@ -5343,6 +6217,18 @@ "which": "^1.2.1" } }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/karma-cli": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-2.0.0.tgz", @@ -5367,6 +6253,18 @@ "which": "^1.2.4" } }, + "node_modules/karma-detect-browsers/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/karma-firefox-launcher": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", @@ -5377,21 +6275,6 @@ "which": "^2.0.1" } }, - "node_modules/karma-firefox-launcher/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/karma-jasmine": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", @@ -5536,13 +6419,13 @@ "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" }, "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -5558,24 +6441,23 @@ } }, "node_modules/lint-staged": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz", - "integrity": "sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==", + "version": "12.3.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.3.tgz", + "integrity": "sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag==", "dev": true, "dependencies": { "cli-truncate": "^3.1.0", "colorette": "^2.0.16", "commander": "^8.3.0", - "debug": "^4.3.2", - "enquirer": "^2.3.6", + "debug": "^4.3.3", "execa": "^5.1.1", "lilconfig": "2.0.4", - "listr2": "^3.13.3", + "listr2": "^4.0.1", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", - "object-inspect": "^1.11.0", + "object-inspect": "^1.12.0", "string-argv": "^0.3.1", - "supports-color": "^9.0.2", + "supports-color": "^9.2.1", "yaml": "^1.10.2" }, "bin": { @@ -5610,9 +6492,9 @@ } }, "node_modules/listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.2.tgz", + "integrity": "sha512-YcgwfCWpvPbj9FLUGqvdFvd3hrFWKpOeuXznRgfWEJ7RNr8b/IKKIKZABHx3aU+4CWN/iSAFFSReziQG6vTeIA==", "dev": true, "dependencies": { "cli-truncate": "^2.1.0", @@ -5620,12 +6502,12 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rfdc": "^1.3.0", - "rxjs": "^7.4.0", + "rxjs": "^7.5.2", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=12" }, "peerDependencies": { "enquirer": ">= 2.3.0 < 3" @@ -5719,15 +6601,16 @@ } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "dependencies": { - "p-locate": "^3.0.0", + "p-locate": "^2.0.0", "path-exists": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/lodash": { @@ -5745,6 +6628,12 @@ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -5824,16 +6713,16 @@ } }, "node_modules/log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "dev": true, "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" }, "engines": { "node": ">=8.0" @@ -5854,6 +6743,14 @@ "node": ">=4" } }, + "node_modules/lowdb/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "engines": { + "node": ">=4" + } + }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -5863,12 +6760,14 @@ } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/lunr": { @@ -5939,18 +6838,6 @@ "node": ">=10" } }, - "node_modules/matcher/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -5990,6 +6877,15 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -6315,10 +7211,16 @@ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" @@ -6338,20 +7240,36 @@ "semver": "^5.4.1" } }, + "node_modules/node-abi/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/node-addon-api": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, "node_modules/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { "whatwg-url": "^5.0.0" }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-fetch/node_modules/tr46": { @@ -6465,6 +7383,15 @@ "node": ">=4" } }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/nodemon/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -6527,6 +7454,15 @@ "node": ">=4" } }, + "node_modules/npm-conf/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "optional": true, + "engines": { + "node": ">=4" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -6599,9 +7535,9 @@ } }, "node_modules/object-inspect": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", - "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6611,7 +7547,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true, + "devOptional": true, "engines": { "node": ">= 0.4" } @@ -6628,6 +7564,24 @@ "node": ">=0.10.0" } }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -6640,6 +7594,23 @@ "node": ">=0.10.0" } }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -6675,17 +7646,17 @@ } }, "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" }, "engines": { "node": ">= 0.8.0" @@ -6722,28 +7693,27 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "dependencies": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^1.1.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/p-map": { @@ -6762,11 +7732,12 @@ } }, "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/package-json": { @@ -6815,6 +7786,18 @@ "readable-stream": "^2.1.5" } }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", @@ -6897,6 +7880,15 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -6919,9 +7911,9 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -6931,11 +7923,12 @@ } }, "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/pkg-dir": { @@ -6950,6 +7943,67 @@ "node": ">=6" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/pkg-up": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", @@ -6961,6 +8015,62 @@ "node": ">=8" } }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -7009,9 +8119,9 @@ } }, "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -7203,6 +8313,26 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -7265,6 +8395,14 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -7329,6 +8467,18 @@ "node": ">=0.10.0" } }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, "node_modules/registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -7401,18 +8551,31 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -7449,6 +8612,16 @@ "node": ">=0.12" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", @@ -7497,12 +8670,6 @@ "node": ">=8.0" } }, - "node_modules/roarr/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "optional": true - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -7511,6 +8678,29 @@ "node": ">=0.12.0" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -7521,11 +8711,11 @@ } }, "node_modules/rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", + "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", "dependencies": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { @@ -7579,11 +8769,17 @@ } }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/semver-compare": { @@ -7727,6 +8923,20 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", @@ -7752,9 +8962,9 @@ ] }, "node_modules/simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", "dependencies": { "decompress-response": "^4.2.0", "once": "^1.3.1", @@ -7783,6 +8993,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -7934,9 +9153,9 @@ "dev": true }, "node_modules/socket.io": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz", - "integrity": "sha512-bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -7989,6 +9208,7 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.2", @@ -8021,6 +9241,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, "node_modules/spawn-command": { @@ -8067,10 +9288,10 @@ } }, "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true }, "node_modules/ssri": { "version": "6.0.2", @@ -8157,28 +9378,19 @@ "dev": true }, "node_modules/streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", + "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", "dev": true, "dependencies": { - "date-format": "^2.1.0", + "date-format": "^4.0.3", "debug": "^4.1.1", - "fs-extra": "^8.1.0" + "fs-extra": "^10.0.0" }, "engines": { "node": ">=8.0" } }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8197,13 +9409,13 @@ } }, "node_modules/string-width": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", - "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz", + "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==", "dev": true, "dependencies": { + "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", - "is-fullwidth-code-point": "^4.0.0", "strip-ansi": "^7.0.1" }, "engines": { @@ -8240,6 +9452,32 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -8270,11 +9508,15 @@ } }, "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/sumchecker": { @@ -8303,6 +9545,18 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -8463,6 +9717,12 @@ "node": ">=0.10.0" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -8695,6 +9955,15 @@ "node": ">=6" } }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/tr46": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", @@ -8765,39 +10034,6 @@ "node": ">=8.9.0" } }, - "node_modules/ts-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/ts-node": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", @@ -8861,127 +10097,31 @@ } }, "node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/tslint/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/tslint/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/tslint/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tslint/node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { "tslib": "^1.8.1" }, + "engines": { + "node": ">= 6" + }, "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -9026,21 +10166,22 @@ } }, "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { "node": ">=10" }, @@ -9134,6 +10275,21 @@ "node": "*" } }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -9186,11 +10342,11 @@ } }, "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "engines": { - "node": ">= 4.0.0" + "node": ">= 10.0.0" } }, "node_modules/unpipe": { @@ -9289,39 +10445,6 @@ "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/update-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -9348,9 +10471,9 @@ } }, "node_modules/url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", + "integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -9421,6 +10544,12 @@ "uuid": "bin/uuid" } }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -9550,7 +10679,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, "optional": true, "dependencies": { @@ -9904,15 +11033,6 @@ "node": ">= 6" } }, - "node_modules/webpack-log/node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -9978,6 +11098,19 @@ "node": ">=0.10.0" } }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/webpack/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -10157,15 +11290,34 @@ } }, "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { - "which": "bin/which" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-pm-runs": { @@ -10387,10 +11539,9 @@ "dev": true }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yaml": { "version": "1.10.2", @@ -10500,18 +11651,11 @@ }, "dependencies": { "@angular/animations": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-12.2.14.tgz", - "integrity": "sha512-1BR5u32auVePvXNNP96DB2008V+Ku0OGqeZQl2h4XA9xzES/Zk5WllIJZXqRmWMRBVARfXsfb0RdMty9gcaVjA==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-12.2.16.tgz", + "integrity": "sha512-Kf6C7Ta+fCMq5DvT9JNVhBkcECrqFa3wumiC6ssGo5sNaEzXz+tlep9ZgEbqfxSn7gAN7L1DgsbS9u0O6tbUkg==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "@angular/cdk": { @@ -10528,195 +11672,63 @@ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "optional": true - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, "@angular/common": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.14.tgz", - "integrity": "sha512-ffYUYdwZETmFJw0AcWY30WsaWBhJxj/zSmFXWjgEGEGZH56zwbbNwfMZOYZ1jz4haAVxGu+TdXsOl2yMGzN7jQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.16.tgz", + "integrity": "sha512-FEqTXTEsnbDInqV1yFlm97Tz1OFqZS5t0TUkm8gzXRgpIce/F/jLwAg0u1VQkgOsno6cNm0xTWPoZgu85NI4ug==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "@angular/compiler": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.14.tgz", - "integrity": "sha512-dwmZi+n66IUzRFlGWu9mjXq170ZEsaDvlNLZzaPgs6vZTa4Kt7PWvIF/Y7TMvnVv/uqNG6kOhfmOkf6rfz1Gjg==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.16.tgz", + "integrity": "sha512-nsYEw+yu8QyeqPf9nAmG419i1mtGM4v8+U+S3eQHQFXTgJzLymMykWHYu2ETdjUpNSLK6xcIQDBWtWnWSfJjAA==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "@angular/core": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.14.tgz", - "integrity": "sha512-dlVk7yqUHL2R/eCmM8LsWuxhEBfzg0y1zHt0UqCuFwlCoiw+IG4HFy4OlZEUw9NUEZJSv0aDv3sWqxLkvK5vvg==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.16.tgz", + "integrity": "sha512-jsmvaRdAfng99z2a9mAmkfcsCE1wm+tBYVDxnc5JquSXznwtncjzcoc2X0J0dzrkCDvzFfpTsZ9vehylytBc+A==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "@angular/forms": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.14.tgz", - "integrity": "sha512-/9/gSJUBXVRVdRnzgJnALAQZYJATuGDMkFC9ms9DEMG4PMAhe9x4if1lJjN6noz5RAom3qNuVBNWaYAPUxlcBQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.16.tgz", + "integrity": "sha512-sb+gpNun5aN7CZfHXS6X7vJcd/0A1P/gRBZpYtQTzBYnqEFCOFIvR62eb05aHQ4JhgKaSPpIXrbz/bAwY/njZw==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "@angular/platform-browser": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.14.tgz", - "integrity": "sha512-fWcE2rnJ3ZCISa1oPfsIDV7FBZBoLFEdDuMXAiDYqDPKvF/E5U5nHrS+K4SlLAi094bMobtTOReNWl/Ienniyw==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.16.tgz", + "integrity": "sha512-T855ppLeQO6hRHi7lGf5fwPoUVt+c0h2rgkV5jHElc3ylaGnhecmZc6fnWLX4pw82TMJUgUV88CY8JCFabJWwg==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "@angular/platform-browser-dynamic": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.14.tgz", - "integrity": "sha512-0NPF7mS91Tct8rBmOLZPmnLSuS4kbLHXo6eTgrg80OC0vlzBiQwGDVW4X3KncCoX9CpevaGJCdSMc+uPNsFOUQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.16.tgz", + "integrity": "sha512-XGxoACAMW/bc3atiVRpaiYwU4LkobYwVzwlxTT/BxOfsdt8ILb5wU8Fx1TMKNECOQHSGdK0qqhch4pTBZ3cb2g==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "@angular/router": { - "version": "12.2.14", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.14.tgz", - "integrity": "sha512-yP5grSnqBvc4vNhtYdcxDgDYIebUKs5f0xyFkUJM5030UnQ0CV45tBsSxHMkQbPZucIfOuxpRy8xy5+4GizuwQ==", + "version": "12.2.16", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.16.tgz", + "integrity": "sha512-LuFXSMIvX/VrB4jbYhigG2Y2pGQ9ULsSBUwDWwQCf4kr0eVI37LBJ2Vr74GBEznjgQ0UmWE89E+XYI80UhERTw==", "requires": { "tslib": "^2.2.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@bitwarden/jslib-angular": { @@ -10830,10 +11842,58 @@ "sumchecker": "^3.0.1" }, "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "@eslint/eslintrc": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.2.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true } } }, @@ -10843,6 +11903,23 @@ "integrity": "sha512-BU5vKRoK4OYlKzDtyg4HbtWnUNLOvV0ntqEZIphz+mq2G0HlVFywwJ7M+FbIcnJVDbUReS01FyL5x8R01r7zBg==", "dev": true }, + "@humanwhocodes/config-array": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@microsoft/signalr": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-5.0.10.tgz", @@ -10874,6 +11951,32 @@ "msgpack5": "^4.5.0" } }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, "@nodert-win10-rs4/windows.security.credentials.ui": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.security.credentials.ui/-/windows.security.credentials.ui-0.4.4.tgz", @@ -10887,6 +11990,12 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true + }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", @@ -10977,9 +12086,15 @@ } }, "@types/jasmine": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.2.tgz", - "integrity": "sha512-qs4xjVm4V/XjM6owGm/x6TNmhGl5iKX8dkTdsgdgl9oFnqgzxLepnS7rN9Tdo7kDmnFD/VEqKrW57cGD2odbEg==", + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.3.tgz", + "integrity": "sha512-SWyMrjgdAUHNQmutvDcKablrJhkDLy4wunTme8oYLjKp41GnHGxMRXr2MQMvy/qy8H3LdzwQk9gH4hZ6T++H8g==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/json5": { @@ -11010,9 +12125,9 @@ "dev": true }, "@types/node": { - "version": "16.11.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.13.tgz", - "integrity": "sha512-eUXZzHLHoZqj1frtUetNkUetYoJ6X55UmrVnFD4DMhVeAmwLjniZhtBmsRiemQh4uq4G3vUra/Ws/hs9vEvL3Q==", + "version": "16.11.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.22.tgz", + "integrity": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==", "dev": true }, "@types/node-fetch": { @@ -11048,9 +12163,9 @@ } }, "@types/papaparse": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.1.tgz", - "integrity": "sha512-1lbngk9wty2kCyQB42LjqSa12SEop3t9wcEC7/xYr3ujTSTmv7HWKjKYXly0GkMfQ42PRb2lFPFEibDOiMXS0g==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.2.tgz", + "integrity": "sha512-BNbCHJkTE4RwmAFkCxEalET4mDvGr/1ld7ZtQ4i/laWI/iiVt+GL07stdvufle4KfywyvloqqpIiJscXNCrKxA==", "dev": true, "requires": { "@types/node": "*" @@ -11082,6 +12197,101 @@ "integrity": "sha512-3NoqvZC2W5gAC5DZbTpCeJ251vGQmgcWIHQJGq2J240HY6ErQ9aWKkwfoKJlHLx+A83WPNTZ9+3cd2ILxbvr1w==", "dev": true }, + "@typescript-eslint/eslint-plugin": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.2.tgz", + "integrity": "sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/type-utils": "5.10.2", + "@typescript-eslint/utils": "5.10.2", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.2.tgz", + "integrity": "sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz", + "integrity": "sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.10.2.tgz", + "integrity": "sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.10.2", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.2.tgz", + "integrity": "sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz", + "integrity": "sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/visitor-keys": "5.10.2", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.10.2.tgz", + "integrity": "sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.10.2", + "@typescript-eslint/types": "5.10.2", + "@typescript-eslint/typescript-estree": "5.10.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz", + "integrity": "sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.10.2", + "eslint-visitor-keys": "^3.0.0" + } + }, "@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -11290,19 +12500,19 @@ } }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "acorn-globals": { @@ -11323,6 +12533,13 @@ } } }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, "acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", @@ -11375,9 +12592,9 @@ }, "dependencies": { "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -11434,9 +12651,9 @@ } }, "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, "ansi-escapes": { @@ -11445,6 +12662,13 @@ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } } }, "ansi-regex": { @@ -11491,13 +12715,9 @@ "dev": true }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "arr-diff": { "version": "4.0.0", @@ -11517,12 +12737,42 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, "asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -11671,12 +12921,6 @@ } } }, - "base64-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", - "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", - "dev": true - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -11813,12 +13057,6 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true } } }, @@ -11986,12 +13224,6 @@ "sax": "^1.2.4" } }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -12027,6 +13259,15 @@ "y18n": "^4.0.0" }, "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -12035,6 +13276,12 @@ "requires": { "glob": "^7.1.3" } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -12084,10 +13331,26 @@ } } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "chalk": { @@ -12115,9 +13378,9 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -12128,6 +13391,17 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "chownr": { @@ -12348,9 +13622,9 @@ } }, "concurrently": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.4.0.tgz", - "integrity": "sha512-HZ3D0RTQMH3oS4gvtYj1P+NBc6PzE2McEra6yEFcQKrUQ9HvtTGU4Dbne083F034p+LRb7kWU0tPRNvSGs1UCQ==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", + "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -12398,9 +13672,9 @@ }, "dependencies": { "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -12420,27 +13694,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -12529,9 +13782,9 @@ "dev": true }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, "copy-concurrently": { @@ -12640,17 +13893,6 @@ "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } } }, "crypto-browserify": { @@ -12725,15 +13967,15 @@ } }, "date-fns": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.27.0.tgz", - "integrity": "sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", "dev": true }, "date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true }, "debounce-fn": { @@ -12799,7 +14041,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "optional": true, + "devOptional": true, "requires": { "object-keys": "^1.0.12" } @@ -12881,6 +14123,24 @@ } } }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", @@ -12946,6 +14206,12 @@ "stream-shift": "^1.0.0" } }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -12963,9 +14229,9 @@ }, "dependencies": { "@types/node": { - "version": "14.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz", - "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==" + "version": "14.18.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.10.tgz", + "integrity": "sha512-6iihJ/Pp5fsFJ/aEDGyvT4pHGmCpq7ToQ/yf4bl5SbVAvwpspYJ+v3jO7n8UyjhQVHTy+KNszOozDdv+O6sovQ==" } } }, @@ -13003,66 +14269,6 @@ "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", "semver": "^7.3.5" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } } }, "elliptic": { @@ -13115,9 +14321,9 @@ } }, "engine.io": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz", - "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", + "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -13142,12 +14348,12 @@ } }, "engine.io-parser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", - "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "requires": { - "base64-arraybuffer": "~1.0.1" + "@socket.io/base64-arraybuffer": "~1.0.2" } }, "enhanced-resolve": { @@ -13161,15 +14367,6 @@ "tapable": "^1.0.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", @@ -13199,6 +14396,45 @@ "stackframe": "^1.1.1" } }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "es6-denodeify": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-denodeify/-/es6-denodeify-0.1.5.tgz", @@ -13229,9 +14465,10 @@ "dev": true }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "devOptional": true }, "escodegen": { "version": "2.0.0", @@ -13246,39 +14483,297 @@ "source-map": "~0.6.1" }, "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", + "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.2.0", + "espree": "^9.3.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-import-resolver-typescript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz", + "integrity": "sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==", + "dev": true, + "requires": { + "debug": "^4.3.1", + "glob": "^7.1.7", + "is-glob": "^4.0.1", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, + "eslint-visitor-keys": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "dev": true + }, + "espree": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "dev": true, + "requires": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -13286,12 +14781,20 @@ "dev": true, "requires": { "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -13511,6 +15014,30 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -13523,6 +15050,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -13563,6 +15099,22 @@ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" } }, "file-uri-to-path": { @@ -13632,26 +15184,37 @@ "semver": "^5.6.0" } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "flush-write-stream": { @@ -13665,9 +15228,9 @@ } }, "follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", "dev": true }, "for-in": { @@ -13720,13 +15283,13 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "fs-write-stream-atomic": { @@ -13760,6 +15323,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -13814,12 +15383,33 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -13846,12 +15436,12 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "global-agent": { @@ -13866,32 +15456,6 @@ "roarr": "^2.15.3", "semver": "^7.3.2", "serialize-error": "^7.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - } } }, "global-dirs": { @@ -13915,6 +15479,15 @@ "tunnel": "^0.0.6" } }, + "globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, "globalthis": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", @@ -13924,6 +15497,20 @@ "define-properties": "^1.1.3" } }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -13953,9 +15540,9 @@ } }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "has": { "version": "1.0.3", @@ -13966,11 +15553,32 @@ "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -14180,12 +15788,28 @@ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -14286,6 +15910,17 @@ } } }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -14306,6 +15941,15 @@ } } }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -14315,12 +15959,28 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -14331,9 +15991,9 @@ } }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" @@ -14359,6 +16019,15 @@ } } }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -14421,6 +16090,12 @@ "is-path-inside": "^3.0.2" } }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, "is-npm": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", @@ -14433,6 +16108,15 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -14464,18 +16148,61 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -14521,19 +16248,19 @@ "dev": true }, "jasmine": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.10.0.tgz", - "integrity": "sha512-2Y42VsC+3CQCTzTwJezOvji4qLORmKIE0kwowWC+934Krn6ZXNQYljiwK5st9V3PVx96BSiDYXSB60VVah3IlQ==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.99.0.tgz", + "integrity": "sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==", "dev": true, "requires": { "glob": "^7.1.6", - "jasmine-core": "~3.10.0" + "jasmine-core": "~3.99.0" } }, "jasmine-core": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.10.1.tgz", - "integrity": "sha512-ooZWSDVAdh79Rrj4/nnfklL3NQVra0BcuhcuWoAwwi+znLDoUeH87AFfeX8s+YeYi6xlv5nveRyaA1v7CintfA==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.0.tgz", + "integrity": "sha512-+ZDaJlEfRopINQqgE+hvzRyDIQDeKfqqTvF8RzXsvU1yE3pBDRud2+Qfh9WvGgRpuzqxyQJVI6Amy5XQ11r/3w==", "dev": true }, "jasmine-ts": { @@ -14609,20 +16336,12 @@ "source-map-resolve": "^0.5.0" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsdom": { @@ -14695,6 +16414,12 @@ "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -14711,23 +16436,24 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "karma": { - "version": "6.3.9", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz", - "integrity": "sha512-E/MqdLM9uVIhfuyVnrhlGBu4miafBdXEAEqCmwdEMh3n17C7UWC/8Kvm3AYKr91gc7scutekZ0xv6rxRaUCtnw==", + "version": "6.3.13", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.13.tgz", + "integrity": "sha512-64lbtHBnM/sG7XKvitSQVlImKYNugyjw4K2e8cZYrlZm0GwoWrfsrkzgS/KWY/r3+fVM/2xvT/JN6MyfdttxLw==", "dev": true, "requires": { "body-parser": "^1.19.0", "braces": "^3.0.2", "chokidar": "^3.5.1", - "colors": "^1.4.0", + "colors": "1.4.0", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", @@ -14736,7 +16462,7 @@ "http-proxy": "^1.18.1", "isbinaryfile": "^4.0.8", "lodash": "^4.17.21", - "log4js": "^6.3.0", + "log4js": "^6.4.1", "mime": "^2.5.2", "minimatch": "^3.0.4", "qjobs": "^1.2.0", @@ -14764,6 +16490,17 @@ "dev": true, "requires": { "which": "^1.2.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "karma-cli": { @@ -14782,6 +16519,17 @@ "dev": true, "requires": { "which": "^1.2.4" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "karma-firefox-launcher": { @@ -14792,17 +16540,6 @@ "requires": { "is-wsl": "^2.2.0", "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } } }, "karma-jasmine": { @@ -14910,13 +16647,13 @@ "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "lilconfig": { @@ -14926,24 +16663,23 @@ "dev": true }, "lint-staged": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz", - "integrity": "sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==", + "version": "12.3.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.3.tgz", + "integrity": "sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag==", "dev": true, "requires": { "cli-truncate": "^3.1.0", "colorette": "^2.0.16", "commander": "^8.3.0", - "debug": "^4.3.2", - "enquirer": "^2.3.6", + "debug": "^4.3.3", "execa": "^5.1.1", "lilconfig": "2.0.4", - "listr2": "^3.13.3", + "listr2": "^4.0.1", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", - "object-inspect": "^1.11.0", + "object-inspect": "^1.12.0", "string-argv": "^0.3.1", - "supports-color": "^9.0.2", + "supports-color": "^9.2.1", "yaml": "^1.10.2" }, "dependencies": { @@ -14962,9 +16698,9 @@ } }, "listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.2.tgz", + "integrity": "sha512-YcgwfCWpvPbj9FLUGqvdFvd3hrFWKpOeuXznRgfWEJ7RNr8b/IKKIKZABHx3aU+4CWN/iSAFFSReziQG6vTeIA==", "dev": true, "requires": { "cli-truncate": "^2.1.0", @@ -14972,7 +16708,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rfdc": "^1.3.0", - "rxjs": "^7.4.0", + "rxjs": "^7.5.2", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, @@ -15041,11 +16777,12 @@ } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "requires": { - "p-locate": "^3.0.0", + "p-locate": "^2.0.0", "path-exists": "^3.0.0" } }, @@ -15064,6 +16801,12 @@ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -15124,16 +16867,16 @@ } }, "log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "dev": true, "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" } }, "lowdb": { @@ -15146,6 +16889,13 @@ "lodash": "4", "pify": "^3.0.0", "steno": "^0.4.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "lowercase-keys": { @@ -15154,12 +16904,11 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "lunr": { @@ -15212,14 +16961,6 @@ "optional": true, "requires": { "escape-string-regexp": "^4.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "optional": true - } } }, "md5.js": { @@ -15255,6 +16996,12 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -15525,10 +17272,16 @@ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, "neo-async": { @@ -15543,6 +17296,13 @@ "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", "requires": { "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "node-addon-api": { @@ -15551,9 +17311,9 @@ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" }, @@ -15656,6 +17416,12 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -15700,6 +17466,14 @@ "requires": { "config-chain": "^1.1.11", "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "optional": true + } } }, "npm-run-path": { @@ -15761,16 +17535,16 @@ } }, "object-inspect": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", - "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true + "devOptional": true }, "object-visit": { "version": "1.0.1", @@ -15781,6 +17555,18 @@ "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -15790,6 +17576,17 @@ "isobject": "^3.0.1" } }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -15816,17 +17613,17 @@ } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, "original": { @@ -15854,19 +17651,21 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -15879,9 +17678,10 @@ } }, "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, "package-json": { "version": "6.5.0", @@ -15925,6 +17725,15 @@ "readable-stream": "^2.1.5" } }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", @@ -15992,6 +17801,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -16011,15 +17826,16 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true }, "pkg-dir": { "version": "3.0.0", @@ -16028,6 +17844,51 @@ "dev": true, "requires": { "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + } } }, "pkg-up": { @@ -16036,6 +17897,46 @@ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + } } }, "posix-character-classes": { @@ -16073,9 +17974,9 @@ } }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prepend-http": { @@ -16231,6 +18132,12 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -16283,6 +18190,11 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } }, @@ -16340,6 +18252,12 @@ } } }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -16394,15 +18312,22 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -16432,6 +18357,12 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", @@ -16469,14 +18400,6 @@ "json-stringify-safe": "^5.0.1", "semver-compare": "^1.0.0", "sprintf-js": "^1.1.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "optional": true - } } }, "run-async": { @@ -16484,6 +18407,15 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -16494,11 +18426,11 @@ } }, "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", + "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", "requires": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, "safe-buffer": { @@ -16546,9 +18478,12 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-compare": { "version": "1.0.0", @@ -16662,6 +18597,17 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", @@ -16673,9 +18619,9 @@ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", "requires": { "decompress-response": "^4.2.0", "once": "^1.3.1", @@ -16697,6 +18643,12 @@ } } }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -16820,9 +18772,9 @@ } }, "socket.io": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz", - "integrity": "sha512-bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "requires": { "accepts": "~1.3.4", @@ -16936,10 +18888,10 @@ } }, "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true }, "ssri": { "version": "6.0.2", @@ -17020,22 +18972,14 @@ "dev": true }, "streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", + "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", "dev": true, "requires": { - "date-format": "^2.1.0", + "date-format": "^4.0.3", "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - } + "fs-extra": "^10.0.0" } }, "string_decoder": { @@ -17053,13 +18997,13 @@ "dev": true }, "string-width": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", - "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz", + "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==", "dev": true, "requires": { + "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", - "is-fullwidth-code-point": "^4.0.0", "strip-ansi": "^7.0.1" }, "dependencies": { @@ -17080,6 +19024,26 @@ } } }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -17101,9 +19065,10 @@ "dev": true }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "sumchecker": { "version": "3.0.1", @@ -17122,6 +19087,12 @@ "has-flag": "^4.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -17244,6 +19215,12 @@ } } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -17428,6 +19405,14 @@ "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } } }, "tr46": { @@ -17477,30 +19462,6 @@ "emojis-list": "^3.0.0", "json5": "^2.1.2" } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } }, @@ -17545,101 +19506,24 @@ } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" + "tslib": "^1.8.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, @@ -17673,18 +19557,19 @@ } }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true }, "type-is": { "version": "1.6.18", @@ -17742,6 +19627,18 @@ "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -17788,9 +19685,9 @@ } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unpipe": { "version": "1.0.0", @@ -17865,32 +19762,6 @@ "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "uri-js": { @@ -17926,9 +19797,9 @@ } }, "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", + "integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -17982,6 +19853,12 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -18373,6 +20250,16 @@ "isobject": "^3.0.1" } }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -18531,14 +20418,6 @@ "requires": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - } } }, "webpack-sources": { @@ -18586,14 +20465,27 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", @@ -18769,10 +20661,9 @@ "dev": true }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yaml": { "version": "1.10.2", diff --git a/package.json b/package.json index ef9d5ccd..a2161100 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,8 @@ "clean": "rimraf dist/**/*", "build": "npm run clean && ttsc", "build:watch": "npm run clean && ttsc -watch", - "lint": "tslint '*/src/**/*.ts' 'spec/**/*.ts' && prettier --check .", - "lint:fix": "tslint '*/src/**/*.ts' 'spec/**/*.ts' --fix", + "lint": "eslint . && prettier --check .", + "lint:fix": "eslint . --fix", "prettier": "prettier --write .", "test": "karma start ./spec/support/karma.conf.js --single-run", "test:watch": "karma start ./spec/support/karma.conf.js", @@ -29,8 +29,14 @@ "@fluffy-spoon/substitute": "^1.202.0", "@types/jasmine": "^3.7.6", "@types/node": "^16.11.12", + "@typescript-eslint/eslint-plugin": "^5.10.1", + "@typescript-eslint/parser": "^5.10.1", "commander": "7.2.0", "concurrently": "^6.1.0", + "eslint": "^8.7.0", + "eslint-config-prettier": "^8.3.0", + "eslint-import-resolver-typescript": "^2.5.0", + "eslint-plugin-import": "^2.25.4", "form-data": "4.0.0", "husky": "^7.0.4", "jasmine": "^3.7.0", @@ -55,7 +61,6 @@ "ts-loader": "^8.1.0", "ts-node": "^10.4.0", "tsconfig-paths": "^3.12.0", - "tslint": "^6.1.3", "ttypescript": "^1.5.12", "typemoq": "^2.1.0", "typescript": "4.3.5", @@ -73,6 +78,7 @@ "npm": "~8" }, "lint-staged": { - "*": "prettier --ignore-unknown --write" + "*": "prettier --ignore-unknown --write", + "*.ts": "eslint --fix" } } diff --git a/shared/eslintrc.json b/shared/eslintrc.json new file mode 100644 index 00000000..70c61bc7 --- /dev/null +++ b/shared/eslintrc.json @@ -0,0 +1,29 @@ +{ + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:import/recommended", + "plugin:import/typescript", + "prettier" + ], + "rules": { + "@typescript-eslint/no-explicit-any": "off", // TODO: This should be re-enabled + "@typescript-eslint/no-unused-vars": ["warn", { "args": "none" }], + "@typescript-eslint/explicit-member-accessibility": [ + "error", + { + "accessibility": "no-public" + } + ], + "@typescript-eslint/no-this-alias": [ + "error", + { + "allowedNames": ["self"] + } + ], + "no-console": "warn", + "import/no-unresolved": "off" // TODO: Look into turning off once each package is an actual package. + } +} diff --git a/spec/common/importers/bitwardenPasswordProtectedImporter.spec.ts b/spec/common/importers/bitwardenPasswordProtectedImporter.spec.ts index 77e16bc3..cacfa3d2 100644 --- a/spec/common/importers/bitwardenPasswordProtectedImporter.spec.ts +++ b/spec/common/importers/bitwardenPasswordProtectedImporter.spec.ts @@ -3,12 +3,9 @@ import Substitute, { Arg, SubstituteOf } from "@fluffy-spoon/substitute"; import { CryptoService } from "jslib-common/abstractions/crypto.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { ImportService } from "jslib-common/abstractions/import.service"; - import { KdfType } from "jslib-common/enums/kdfType"; - import { BitwardenPasswordProtectedImporter } from "jslib-common/importers/bitwardenPasswordProtectedImporter"; import { Importer } from "jslib-common/importers/importer"; - import { Utils } from "jslib-common/misc/utils"; import { ImportResult } from "jslib-common/models/domain/importResult"; diff --git a/spec/common/importers/firefoxCsvImporter.spec.ts b/spec/common/importers/firefoxCsvImporter.spec.ts index fc42c6ec..e15b86e9 100644 --- a/spec/common/importers/firefoxCsvImporter.spec.ts +++ b/spec/common/importers/firefoxCsvImporter.spec.ts @@ -1,5 +1,4 @@ import { FirefoxCsvImporter as Importer } from "jslib-common/importers/firefoxCsvImporter"; - import { CipherView } from "jslib-common/models/view/cipherView"; import { LoginUriView } from "jslib-common/models/view/loginUriView"; import { LoginView } from "jslib-common/models/view/loginView"; @@ -63,7 +62,9 @@ describe("Firefox CSV Importer", () => { const cipher = result.ciphers.shift(); let property: keyof typeof data.expected; for (property in data.expected) { + // eslint-disable-next-line if (data.expected.hasOwnProperty(property)) { + // eslint-disable-next-line expect(cipher.hasOwnProperty(property)).toBe(true); expect(cipher[property]).toEqual(data.expected[property]); } diff --git a/spec/common/importers/keepass2XmlImporter.spec.ts b/spec/common/importers/keepass2XmlImporter.spec.ts index ff0f2d14..6b539468 100644 --- a/spec/common/importers/keepass2XmlImporter.spec.ts +++ b/spec/common/importers/keepass2XmlImporter.spec.ts @@ -1,6 +1,6 @@ import { KeePass2XmlImporter as Importer } from "jslib-common/importers/keepass2XmlImporter"; -const TestData: string = ` +const TestData = ` KeePass diff --git a/spec/common/importers/keeperJsonImporter.spec.ts b/spec/common/importers/keeperJsonImporter.spec.ts index 3a4f34c2..3da6ac48 100644 --- a/spec/common/importers/keeperJsonImporter.spec.ts +++ b/spec/common/importers/keeperJsonImporter.spec.ts @@ -1,6 +1,5 @@ -import { Utils } from "jslib-common/misc/utils"; - import { KeeperJsonImporter as Importer } from "jslib-common/importers/keeperImporters/keeperJsonImporter"; +import { Utils } from "jslib-common/misc/utils"; import { testData as TestData } from "./testData/keeperJson/testData"; diff --git a/spec/common/importers/lastpassCsvImporter.spec.ts b/spec/common/importers/lastpassCsvImporter.spec.ts index 935db38c..9cca6c4f 100644 --- a/spec/common/importers/lastpassCsvImporter.spec.ts +++ b/spec/common/importers/lastpassCsvImporter.spec.ts @@ -1,12 +1,10 @@ +import { CipherType } from "jslib-common/enums/cipherType"; +import { FieldType } from "jslib-common/enums/fieldType"; import { LastPassCsvImporter as Importer } from "jslib-common/importers/lastpassCsvImporter"; - import { ImportResult } from "jslib-common/models/domain/importResult"; import { CipherView } from "jslib-common/models/view/cipherView"; import { FieldView } from "jslib-common/models/view/fieldView"; -import { CipherType } from "jslib-common/enums/cipherType"; -import { FieldType } from "jslib-common/enums/fieldType"; - function baseExcept(result: ImportResult) { expect(result).not.toBeNull(); expect(result.success).toBe(true); @@ -180,7 +178,9 @@ describe("Lastpass CSV Importer", () => { const cipher = result.ciphers.shift(); let property: keyof typeof data.expected; for (property in data.expected) { + // eslint-disable-next-line if (data.expected.hasOwnProperty(property)) { + // eslint-disable-next-line expect(cipher.hasOwnProperty(property)).toBe(true); expect(cipher[property]).toEqual(data.expected[property]); } diff --git a/spec/common/importers/nordpassCsvImporter.spec.ts b/spec/common/importers/nordpassCsvImporter.spec.ts index 7ac99bd2..4022b7e3 100644 --- a/spec/common/importers/nordpassCsvImporter.spec.ts +++ b/spec/common/importers/nordpassCsvImporter.spec.ts @@ -1,7 +1,6 @@ -import { NordPassCsvImporter as Importer } from "jslib-common/importers/nordpassCsvImporter"; - import { CipherType } from "jslib-common/enums/cipherType"; import { SecureNoteType } from "jslib-common/enums/secureNoteType"; +import { NordPassCsvImporter as Importer } from "jslib-common/importers/nordpassCsvImporter"; import { CipherView } from "jslib-common/models/view/cipherView"; import { IdentityView } from "jslib-common/models/view/identityView"; diff --git a/spec/common/importers/onepasswordMacCsvImporter.spec.ts b/spec/common/importers/onepasswordMacCsvImporter.spec.ts index ed643c8d..07268682 100644 --- a/spec/common/importers/onepasswordMacCsvImporter.spec.ts +++ b/spec/common/importers/onepasswordMacCsvImporter.spec.ts @@ -1,6 +1,5 @@ -import { OnePasswordMacCsvImporter as Importer } from "jslib-common/importers/onepasswordImporters/onepasswordMacCsvImporter"; - import { CipherType } from "jslib-common/enums/cipherType"; +import { OnePasswordMacCsvImporter as Importer } from "jslib-common/importers/onepasswordImporters/onepasswordMacCsvImporter"; import { CipherView } from "jslib-common/models/view/cipherView"; import { data as creditCardData } from "./testData/onePasswordCsv/creditCard.mac.csv"; diff --git a/spec/common/importers/onepasswordWinCsvImporter.spec.ts b/spec/common/importers/onepasswordWinCsvImporter.spec.ts index a8415d73..503aa3f5 100644 --- a/spec/common/importers/onepasswordWinCsvImporter.spec.ts +++ b/spec/common/importers/onepasswordWinCsvImporter.spec.ts @@ -1,7 +1,6 @@ -import { OnePasswordWinCsvImporter as Importer } from "jslib-common/importers/onepasswordImporters/onepasswordWinCsvImporter"; - import { CipherType } from "jslib-common/enums/cipherType"; import { FieldType } from "jslib-common/enums/fieldType"; +import { OnePasswordWinCsvImporter as Importer } from "jslib-common/importers/onepasswordImporters/onepasswordWinCsvImporter"; import { CipherView } from "jslib-common/models/view/cipherView"; import { FieldView } from "jslib-common/models/view/fieldView"; diff --git a/spec/common/importers/testData/onePasswordCsv/creditCard.mac.csv.ts b/spec/common/importers/testData/onePasswordCsv/creditCard.mac.csv.ts index 3062c067..167b025f 100644 --- a/spec/common/importers/testData/onePasswordCsv/creditCard.mac.csv.ts +++ b/spec/common/importers/testData/onePasswordCsv/creditCard.mac.csv.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ export const data = `"account number(accountNo)","address(address)","address(branchAddress)","admin console URL(admin_console_url)","admin console username(admin_console_username)","AirPort ID(airport_id)","alias(alias)","AOL/AIM(aim)","approved wildlife(game)","attached storage password(disk_password)","auth​ method(pop_authentication)","auth​ method(smtp_authentication)","bank name(bankName)","base station name(name)","base station password(password)","birth date(birthdate)","business(busphone)","cardholder name(cardholder)","cash withdrawal limit(cashLimit)","cell(cellphone)","company name(company_name)","company(company)","conditions / restrictions(conditions)","connection options(options)","console password(admin_console_password)","country(country)","Created Date","credit limit(creditLimit)","customer service phone(customer_service_phone)","database(database)","date of birth(birthdate)","default phone(defphone)","department(department)","download page(download_link)","email(email)","expires(expires)","expiry date(expiry_date)","expiry date(expiry)","first name(firstname)","forum signature(forumsig)","full name(fullname)","full name(name)","group(org_name)","height(height)","home(homephone)","IBAN(iban)","ICQ(icq)","initial(initial)","interest rate(interest)","issue number(issuenumber)","issued on(issue_date)","issuing authority(issuing_authority)","issuing bank(bank)","issuing country(issuing_country)","job title(jobtitle)","last name(lastname)","license class(class)","license key(reg_code)","licensed to(reg_name)","maximum quota(quota)","member ID (additional)(additional_no)","member ID(membership_no)","member name(member_name)","member since(member_since)","Modified Date","MSN(msn)","name on account(owner)","name(name)","nationality(nationality)","network name(network_name)","Notes","number(ccnum)","number(number)","occupation(occupation)","order number(order_number)","order total(order_total)","Password","password(password)","password(pop_password)","password(smtp_password)","phone (intl)(phoneIntl)","phone (local)(phone_local)","phone (local)(phoneLocal)","phone (toll free)(phone_tollfree)","phone (toll free)(phoneTollFree)","phone for reserva​tions(reservations_phone)","phone(branchPhone)","PIN(pin)","PIN(telephonePin)","place of birth(birthplace)","port number(pop_port)","port number(smtp_port)","port(port)","provider's website(provider_website)","provider(provider)","publisher(publisher_name)","purchase date(order_date)","registered email(reg_email)","reminder answer(remindera)","reminder question(reminderq)","retail price(retail_price)","routing number(routingNo)","Scope","security(pop_security)","security(smtp_security)","server / IP address(server)","server(hostname)","server(pop_server)","sex(sex)","SID(sid)","skype(skype)","SMTP server(smtp_server)","state(state)","support email(support_email)","support phone(support_contact_phone)","support URL(support_contact_url)","SWIFT(swift)","Tags","telephone(phone)","Title","Type","type(accountType)","type(database_type)","type(pop_type)","type(type)","URL","URL(url)","Username","username(pop_username)","username(smtp_username)","username(username)","valid from(valid_from)","valid from(validFrom)","verification number(cvv)","version(product_version)","website(publisher_website)","website(website)","wireless network password(wireless_password)","wireless security(wireless_security)","Yahoo(yahoo)", ,,,,,,,,,,,,,,,,,"test",,,,,,,,,"1606923869",,,,,,,,,,,"01/2030",,,,,,,,,,,,,,,,,,,,,,,,,,,"1606924056",,,,,,"","4111111111111111",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{( )}",,"test card","Credit Card",,,,"laser",,,,,,,,,"111",,,,,,,`; diff --git a/spec/common/importers/testData/onePasswordCsv/identity.mac.csv.ts b/spec/common/importers/testData/onePasswordCsv/identity.mac.csv.ts index e02aed52..48ea6ebd 100644 --- a/spec/common/importers/testData/onePasswordCsv/identity.mac.csv.ts +++ b/spec/common/importers/testData/onePasswordCsv/identity.mac.csv.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ export const data = `"account number(accountNo)","address(address)","address(branchAddress)","admin console URL(admin_console_url)","admin console username(admin_console_username)","AirPort ID(airport_id)","alias(alias)","AOL/AIM(aim)","approved wildlife(game)","attached storage password(disk_password)","auth​ method(pop_authentication)","auth​ method(smtp_authentication)","bank name(bankName)","base station name(name)","base station password(password)","birth date(birthdate)","business(busphone)","cardholder name(cardholder)","cash withdrawal limit(cashLimit)","cell(cellphone)","company name(company_name)","company(company)","conditions / restrictions(conditions)","connection options(options)","console password(admin_console_password)","country(country)","Created Date","credit limit(creditLimit)","customer service phone(customer_service_phone)","database(database)","date of birth(birthdate)","default phone(defphone)","department(department)","download page(download_link)","email(email)","expires(expires)","expiry date(expiry_date)","expiry date(expiry)","first name(firstname)","forum signature(forumsig)","full name(fullname)","full name(name)","group(org_name)","height(height)","home(homephone)","IBAN(iban)","ICQ(icq)","initial(initial)","interest rate(interest)","issue number(issuenumber)","issued on(issue_date)","issuing authority(issuing_authority)","issuing bank(bank)","issuing country(issuing_country)","job title(jobtitle)","last name(lastname)","license class(class)","license key(reg_code)","licensed to(reg_name)","maximum quota(quota)","member ID (additional)(additional_no)","member ID(membership_no)","member name(member_name)","member since(member_since)","Modified Date","MSN(msn)","name on account(owner)","name(name)","nationality(nationality)","network name(network_name)","Notes","number(ccnum)","number(number)","occupation(occupation)","order number(order_number)","order total(order_total)","Password","password(password)","password(pop_password)","password(smtp_password)","phone (intl)(phoneIntl)","phone (local)(phone_local)","phone (local)(phoneLocal)","phone (toll free)(phone_tollfree)","phone (toll free)(phoneTollFree)","phone for reserva​tions(reservations_phone)","phone(branchPhone)","PIN(pin)","PIN(telephonePin)","place of birth(birthplace)","port number(pop_port)","port number(smtp_port)","port(port)","provider's website(provider_website)","provider(provider)","publisher(publisher_name)","purchase date(order_date)","registered email(reg_email)","reminder answer(remindera)","reminder question(reminderq)","retail price(retail_price)","routing number(routingNo)","Scope","security(pop_security)","security(smtp_security)","server / IP address(server)","server(hostname)","server(pop_server)","sex(sex)","SID(sid)","skype(skype)","SMTP server(smtp_server)","state(state)","support email(support_email)","support phone(support_contact_phone)","support URL(support_contact_url)","SWIFT(swift)","Tags","telephone(phone)","Title","Type","type(accountType)","type(database_type)","type(pop_type)","type(type)","URL","URL(url)","Username","username(pop_username)","username(smtp_username)","username(username)","valid from(valid_from)","valid from(validFrom)","verification number(cvv)","version(product_version)","website(publisher_website)","website(website)","wireless network password(wireless_password)","wireless security(wireless_security)","Yahoo(yahoo)", ,"address city state zip diff --git a/spec/common/importers/testData/onePasswordCsv/multipleItems.mac.csv.ts b/spec/common/importers/testData/onePasswordCsv/multipleItems.mac.csv.ts index e994b1af..055b2e2a 100644 --- a/spec/common/importers/testData/onePasswordCsv/multipleItems.mac.csv.ts +++ b/spec/common/importers/testData/onePasswordCsv/multipleItems.mac.csv.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ export const data = `"account number(accountNo)","address(address)","address(branchAddress)","admin console URL(admin_console_url)","admin console username(admin_console_username)","AirPort ID(airport_id)","alias(alias)","AOL/AIM(aim)","approved wildlife(game)","attached storage password(disk_password)","auth​ method(pop_authentication)","auth​ method(smtp_authentication)","bank name(bankName)","base station name(name)","base station password(password)","birth date(birthdate)","business(busphone)","cardholder name(cardholder)","cash withdrawal limit(cashLimit)","cell(cellphone)","company name(company_name)","company(company)","conditions / restrictions(conditions)","connection options(options)","console password(admin_console_password)","country(country)","Created Date","credit limit(creditLimit)","customer service phone(customer_service_phone)","database(database)","date of birth(birthdate)","default phone(defphone)","department(department)","download page(download_link)","email(email)","expires(expires)","expiry date(expiry_date)","expiry date(expiry)","first name(firstname)","forum signature(forumsig)","full name(fullname)","full name(name)","group(org_name)","height(height)","home(homephone)","IBAN(iban)","ICQ(icq)","initial(initial)","interest rate(interest)","issue number(issuenumber)","issued on(issue_date)","issuing authority(issuing_authority)","issuing bank(bank)","issuing country(issuing_country)","job title(jobtitle)","last name(lastname)","license class(class)","license key(reg_code)","licensed to(reg_name)","maximum quota(quota)","member ID (additional)(additional_no)","member ID(membership_no)","member name(member_name)","member since(member_since)","Modified Date","MSN(msn)","name on account(owner)","name(name)","nationality(nationality)","network name(network_name)","Notes","number(ccnum)","number(number)","occupation(occupation)","order number(order_number)","order total(order_total)","Password","password(password)","password(pop_password)","password(smtp_password)","phone (intl)(phoneIntl)","phone (local)(phone_local)","phone (local)(phoneLocal)","phone (toll free)(phone_tollfree)","phone (toll free)(phoneTollFree)","phone for reserva​tions(reservations_phone)","phone(branchPhone)","PIN(pin)","PIN(telephonePin)","place of birth(birthplace)","port number(pop_port)","port number(smtp_port)","port(port)","provider's website(provider_website)","provider(provider)","publisher(publisher_name)","purchase date(order_date)","registered email(reg_email)","reminder answer(remindera)","reminder question(reminderq)","retail price(retail_price)","routing number(routingNo)","Scope","security(pop_security)","security(smtp_security)","server / IP address(server)","server(hostname)","server(pop_server)","sex(sex)","SID(sid)","skype(skype)","SMTP server(smtp_server)","state(state)","support email(support_email)","support phone(support_contact_phone)","support URL(support_contact_url)","SWIFT(swift)","Tags","telephone(phone)","Title","Type","type(accountType)","type(database_type)","type(pop_type)","type(type)","URL","URL(url)","Username","username(pop_username)","username(smtp_username)","username(username)","valid from(valid_from)","valid from(validFrom)","verification number(cvv)","version(product_version)","website(publisher_website)","website(website)","wireless network password(wireless_password)","wireless security(wireless_security)","Yahoo(yahoo)", ,,,,,,,,,,,,,,,,,,,,,,,,,,"1606923754",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1606923754",,,,,,"Follow these steps to get started.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{( \\"Starter Kit\\" diff --git a/spec/common/importers/testData/safeInCloud/testData.xml.ts b/spec/common/importers/testData/safeInCloud/testData.xml.ts index 4c3d7b77..efac9783 100644 --- a/spec/common/importers/testData/safeInCloud/testData.xml.ts +++ b/spec/common/importers/testData/safeInCloud/testData.xml.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ export const data = ` diff --git a/spec/common/misc/logInStrategies/apiLogIn.strategy.spec.ts b/spec/common/misc/logInStrategies/apiLogIn.strategy.spec.ts index 6ce8b4c9..2f4fe6c3 100644 --- a/spec/common/misc/logInStrategies/apiLogIn.strategy.spec.ts +++ b/spec/common/misc/logInStrategies/apiLogIn.strategy.spec.ts @@ -11,10 +11,8 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { StateService } from "jslib-common/abstractions/state.service"; import { TokenService } from "jslib-common/abstractions/token.service"; import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; - import { ApiLogInStrategy } from "jslib-common/misc/logInStrategies/apiLogin.strategy"; import { Utils } from "jslib-common/misc/utils"; - import { ApiLogInCredentials } from "jslib-common/models/domain/logInCredentials"; import { identityTokenResponseFactory } from "./logIn.strategy.spec"; diff --git a/spec/common/misc/logInStrategies/logIn.strategy.spec.ts b/spec/common/misc/logInStrategies/logIn.strategy.spec.ts index c3d97f3d..308091e9 100644 --- a/spec/common/misc/logInStrategies/logIn.strategy.spec.ts +++ b/spec/common/misc/logInStrategies/logIn.strategy.spec.ts @@ -10,23 +10,18 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { StateService } from "jslib-common/abstractions/state.service"; import { TokenService } from "jslib-common/abstractions/token.service"; import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; - +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; import { PasswordLogInStrategy } from "jslib-common/misc/logInStrategies/passwordLogin.strategy"; import { Utils } from "jslib-common/misc/utils"; - import { Account, AccountProfile, AccountTokens } from "jslib-common/models/domain/account"; import { AuthResult } from "jslib-common/models/domain/authResult"; import { EncString } from "jslib-common/models/domain/encString"; import { PasswordLogInCredentials } from "jslib-common/models/domain/logInCredentials"; - import { PasswordTokenRequest } from "jslib-common/models/request/identityToken/passwordTokenRequest"; - import { IdentityCaptchaResponse } from "jslib-common/models/response/identityCaptchaResponse"; import { IdentityTokenResponse } from "jslib-common/models/response/identityTokenResponse"; import { IdentityTwoFactorResponse } from "jslib-common/models/response/identityTwoFactorResponse"; -import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; - const email = "hello@world.com"; const masterPassword = "password"; diff --git a/spec/common/misc/logInStrategies/passwordLogIn.strategy.spec.ts b/spec/common/misc/logInStrategies/passwordLogIn.strategy.spec.ts index 4d4aa1dd..65bf5367 100644 --- a/spec/common/misc/logInStrategies/passwordLogIn.strategy.spec.ts +++ b/spec/common/misc/logInStrategies/passwordLogIn.strategy.spec.ts @@ -10,15 +10,12 @@ import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.se import { StateService } from "jslib-common/abstractions/state.service"; import { TokenService } from "jslib-common/abstractions/token.service"; import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; - +import { HashPurpose } from "jslib-common/enums/hashPurpose"; import { PasswordLogInStrategy } from "jslib-common/misc/logInStrategies/passwordLogin.strategy"; import { Utils } from "jslib-common/misc/utils"; - import { PasswordLogInCredentials } from "jslib-common/models/domain/logInCredentials"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; -import { HashPurpose } from "jslib-common/enums/hashPurpose"; - import { identityTokenResponseFactory } from "./logIn.strategy.spec"; const email = "hello@world.com"; diff --git a/spec/common/misc/logInStrategies/ssoLogIn.strategy.spec.ts b/spec/common/misc/logInStrategies/ssoLogIn.strategy.spec.ts index fdb20330..826a16a5 100644 --- a/spec/common/misc/logInStrategies/ssoLogIn.strategy.spec.ts +++ b/spec/common/misc/logInStrategies/ssoLogIn.strategy.spec.ts @@ -9,16 +9,13 @@ import { MessagingService } from "jslib-common/abstractions/messaging.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { StateService } from "jslib-common/abstractions/state.service"; import { TokenService } from "jslib-common/abstractions/token.service"; - +import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; import { SsoLogInStrategy } from "jslib-common/misc/logInStrategies/ssoLogin.strategy"; import { Utils } from "jslib-common/misc/utils"; - -import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; +import { SsoLogInCredentials } from "jslib-common/models/domain/logInCredentials"; import { identityTokenResponseFactory } from "./logIn.strategy.spec"; -import { SsoLogInCredentials } from "jslib-common/models/domain/logInCredentials"; - describe("SsoLogInStrategy", () => { let cryptoService: SubstituteOf; let apiService: SubstituteOf; diff --git a/spec/common/services/cipher.service.spec.ts b/spec/common/services/cipher.service.spec.ts index e1bf461c..79b75787 100644 --- a/spec/common/services/cipher.service.spec.ts +++ b/spec/common/services/cipher.service.spec.ts @@ -8,13 +8,11 @@ import { LogService } from "jslib-common/abstractions/log.service"; import { SearchService } from "jslib-common/abstractions/search.service"; import { SettingsService } from "jslib-common/abstractions/settings.service"; import { StateService } from "jslib-common/abstractions/state.service"; - import { Utils } from "jslib-common/misc/utils"; import { Cipher } from "jslib-common/models/domain/cipher"; import { EncArrayBuffer } from "jslib-common/models/domain/encArrayBuffer"; import { EncString } from "jslib-common/models/domain/encString"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; - import { CipherService } from "jslib-common/services/cipher.service"; const ENCRYPTED_TEXT = "This data has been encrypted"; diff --git a/spec/common/services/consoleLog.service.spec.ts b/spec/common/services/consoleLog.service.spec.ts index a7f7eddb..120888e8 100644 --- a/spec/common/services/consoleLog.service.spec.ts +++ b/spec/common/services/consoleLog.service.spec.ts @@ -3,20 +3,20 @@ import { ConsoleLogService } from "jslib-common/services/consoleLog.service"; const originalConsole = console; let caughtMessage: any; -declare var console: any; +declare let console: any; export function interceptConsole(interceptions: any): object { console = { - // tslint:disable-next-line log: function () { + // eslint-disable-next-line interceptions.log = arguments; }, - // tslint:disable-next-line warn: function () { + // eslint-disable-next-line interceptions.warn = arguments; }, - // tslint:disable-next-line error: function () { + // eslint-disable-next-line interceptions.error = arguments; }, }; @@ -40,7 +40,7 @@ describe("ConsoleLogService", () => { }); it("filters messages below the set threshold", () => { - logService = new ConsoleLogService(true, (level) => true); + logService = new ConsoleLogService(true, () => true); logService.debug("debug"); logService.info("info"); logService.warning("warning"); @@ -93,7 +93,7 @@ describe("ConsoleLogService", () => { }); it("filters time output", async () => { - logService = new ConsoleLogService(true, (level) => true); + logService = new ConsoleLogService(true, () => true); logService.time(); logService.timeEnd(); diff --git a/spec/common/services/export.service.spec.ts b/spec/common/services/export.service.spec.ts index cb093261..e0d01994 100644 --- a/spec/common/services/export.service.spec.ts +++ b/spec/common/services/export.service.spec.ts @@ -5,20 +5,16 @@ import { CipherService } from "jslib-common/abstractions/cipher.service"; import { CryptoService } from "jslib-common/abstractions/crypto.service"; import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; import { FolderService } from "jslib-common/abstractions/folder.service"; - -import { ExportService } from "jslib-common/services/export.service"; - +import { CipherType } from "jslib-common/enums/cipherType"; +import { KdfType } from "jslib-common/enums/kdfType"; +import { Utils } from "jslib-common/misc/utils"; import { Cipher } from "jslib-common/models/domain/cipher"; import { EncString } from "jslib-common/models/domain/encString"; import { Login } from "jslib-common/models/domain/login"; import { CipherWithIds as CipherExport } from "jslib-common/models/export/cipherWithIds"; - -import { CipherType } from "jslib-common/enums/cipherType"; -import { KdfType } from "jslib-common/enums/kdfType"; - -import { Utils } from "jslib-common/misc/utils"; import { CipherView } from "jslib-common/models/view/cipherView"; import { LoginView } from "jslib-common/models/view/loginView"; +import { ExportService } from "jslib-common/services/export.service"; import { BuildTestObject, GetUniqueString } from "../../utils"; diff --git a/spec/common/services/import.service.spec.ts b/spec/common/services/import.service.spec.ts index 602cbc20..c0d3d034 100644 --- a/spec/common/services/import.service.spec.ts +++ b/spec/common/services/import.service.spec.ts @@ -1,6 +1,6 @@ -import Substitute, { Arg, SubstituteOf } from "@fluffy-spoon/substitute"; -import { ApiService } from "jslib-common/abstractions/api.service"; +import Substitute, { SubstituteOf } from "@fluffy-spoon/substitute"; +import { ApiService } from "jslib-common/abstractions/api.service"; import { CipherService } from "jslib-common/abstractions/cipher.service"; import { CollectionService } from "jslib-common/abstractions/collection.service"; import { CryptoService } from "jslib-common/abstractions/crypto.service"; @@ -8,10 +8,8 @@ import { FolderService } from "jslib-common/abstractions/folder.service"; import { I18nService } from "jslib-common/abstractions/i18n.service"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; import { BitwardenPasswordProtectedImporter } from "jslib-common/importers/bitwardenPasswordProtectedImporter"; - import { Importer } from "jslib-common/importers/importer"; import { Utils } from "jslib-common/misc/utils"; - import { ImportService } from "jslib-common/services/import.service"; describe("ImportService", () => { diff --git a/spec/common/services/stateMigration.service.ts b/spec/common/services/stateMigration.service.ts index 1f488b12..d325585a 100644 --- a/spec/common/services/stateMigration.service.ts +++ b/spec/common/services/stateMigration.service.ts @@ -1,15 +1,11 @@ import { Arg, Substitute, SubstituteOf } from "@fluffy-spoon/substitute"; import { StorageService } from "jslib-common/abstractions/storage.service"; - -import { StateMigrationService } from "jslib-common/services/stateMigration.service"; - +import { StateVersion } from "jslib-common/enums/stateVersion"; import { StateFactory } from "jslib-common/factories/stateFactory"; - import { Account } from "jslib-common/models/domain/account"; import { GlobalState } from "jslib-common/models/domain/globalState"; - -import { StateVersion } from "jslib-common/enums/stateVersion"; +import { StateMigrationService } from "jslib-common/services/stateMigration.service"; const userId = "USER_ID"; diff --git a/spec/helpers.ts b/spec/helpers.ts index 3d7aaa73..f73acc36 100644 --- a/spec/helpers.ts +++ b/spec/helpers.ts @@ -1,9 +1,9 @@ -// tslint:disable-next-line +// eslint-disable-next-line const TSConsoleReporter = require("jasmine-ts-console-reporter"); jasmine.getEnv().clearReporters(); // Clear default console reporter jasmine.getEnv().addReporter(new TSConsoleReporter()); // Polyfills -// tslint:disable-next-line +// eslint-disable-next-line const jsdom: any = require("jsdom"); (global as any).DOMParser = new jsdom.JSDOM().window.DOMParser; diff --git a/spec/node/cli/consoleLog.service.spec.ts b/spec/node/cli/consoleLog.service.spec.ts index a6d4529c..46d392b1 100644 --- a/spec/node/cli/consoleLog.service.spec.ts +++ b/spec/node/cli/consoleLog.service.spec.ts @@ -1,7 +1,7 @@ import { ConsoleLogService } from "jslib-node/cli/services/consoleLog.service"; + import { interceptConsole, restoreConsole } from "../../common/services/consoleLog.service.spec"; -const originalConsole = console; let caughtMessage: any = {}; describe("CLI Console log service", () => { diff --git a/spec/node/services/nodeCryptoFunction.service.spec.ts b/spec/node/services/nodeCryptoFunction.service.spec.ts index 43849b74..2173523f 100644 --- a/spec/node/services/nodeCryptoFunction.service.spec.ts +++ b/spec/node/services/nodeCryptoFunction.service.spec.ts @@ -1,7 +1,6 @@ -import { NodeCryptoFunctionService } from "jslib-node/services/nodeCryptoFunction.service"; - import { Utils } from "jslib-common/misc/utils"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { NodeCryptoFunctionService } from "jslib-node/services/nodeCryptoFunction.service"; const RsaPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl0Vawl/toXzkEvB82FEtqHP" + diff --git a/spec/support/karma.conf.js b/spec/support/karma.conf.js index 3b5baa28..ab8fe6e2 100644 --- a/spec/support/karma.conf.js +++ b/spec/support/karma.conf.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line module.exports = (config) => { config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) @@ -85,7 +86,7 @@ module.exports = (config) => { removeBrowser("SafariTechPreview"); var githubAction = - process.env.GITHUB_WORKFLOW != null && process.env.GITHUB_WORKFLOW !== ""; + process.env.GITHUB_WORKFLOW != null && process.env.GITHUB_WORKFLOW !== ""; // eslint-disable-line if (githubAction) { removeBrowser("Firefox"); removeBrowser("Safari"); diff --git a/spec/utils.ts b/spec/utils.ts index 00cdcd3f..bd47af7a 100644 --- a/spec/utils.ts +++ b/spec/utils.ts @@ -1,13 +1,12 @@ function newGuid() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => { - // tslint:disable:no-bitwise const r = (Math.random() * 16) | 0; const v = c === "x" ? r : (r & 0x3) | 0x8; return v.toString(16); }); } -export function GetUniqueString(prefix: string = "") { +export function GetUniqueString(prefix = "") { return prefix + "_" + newGuid(); } diff --git a/spec/web/services/webCryptoFunction.service.spec.ts b/spec/web/services/webCryptoFunction.service.spec.ts index 88ea3c0d..98691993 100644 --- a/spec/web/services/webCryptoFunction.service.spec.ts +++ b/spec/web/services/webCryptoFunction.service.spec.ts @@ -1,11 +1,9 @@ import Substitute from "@fluffy-spoon/substitute"; import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; - -import { WebCryptoFunctionService } from "jslib-common/services/webCryptoFunction.service"; - import { Utils } from "jslib-common/misc/utils"; import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { WebCryptoFunctionService } from "jslib-common/services/webCryptoFunction.service"; const RsaPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl0Vawl/toXzkEvB82FEtqHP" + diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 4df19690..00000000 --- a/tslint.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "extends": "tslint:recommended", - "rules": { - "interface-name": [false], - "align": [true, "statements", "members"], - "ban-types": { - "options": [ - ["Object", "Avoid using the `Object` type. Did you mean `object`?"], - ["Boolean", "Avoid using the `Boolean` type. Did you mean `boolean`?"], - ["Number", "Avoid using the `Number` type. Did you mean `number`?"], - ["String", "Avoid using the `String` type. Did you mean `string`?"], - ["Symbol", "Avoid using the `Symbol` type. Did you mean `symbol`?"] - ] - }, - "member-access": [true, "no-public"], - "member-ordering": [ - true, - { - "order": [ - "public-static-field", - "public-static-method", - "protected-static-field", - "protected-static-method", - "private-static-field", - "private-static-method", - "public-instance-field", - "protected-instance-field", - "private-instance-field", - "public-constructor", - "protected-constructor", - "private-constructor", - "public-instance-method", - "protected-instance-method", - "private-instance-method" - ] - } - ], - "no-empty": [true], - "object-literal-sort-keys": false, - "object-literal-shorthand": [true, "never"], - "ordered-imports": true, - "prefer-for-of": false, - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-module", - "check-operator", - "check-preblock", - "check-separator", - "check-type" - ], - "max-classes-per-file": false, - "arrow-parens": [true], - "trailing-comma": [ - true, - { - "multiline": { - "objects": "always", - "arrays": "always", - "functions": "ignore", - "typeLiterals": "ignore" - }, - "singleline": "never" - } - ] - } -}