mirror of
https://github.com/bitwarden/browser
synced 2025-12-23 11:43:46 +00:00
Merge branch 'main' into ps/PM-8297-improve-updater
This commit is contained in:
@@ -664,6 +664,10 @@ export class BrowserApi {
|
|||||||
* Identifies if the browser autofill settings are overridden by the extension.
|
* Identifies if the browser autofill settings are overridden by the extension.
|
||||||
*/
|
*/
|
||||||
static async browserAutofillSettingsOverridden(): Promise<boolean> {
|
static async browserAutofillSettingsOverridden(): Promise<boolean> {
|
||||||
|
if (!(await BrowserApi.permissionsGranted(["privacy"]))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const checkOverrideStatus = (details: chrome.types.ChromeSettingGetResult<boolean>) =>
|
const checkOverrideStatus = (details: chrome.types.ChromeSettingGetResult<boolean>) =>
|
||||||
details.levelOfControl === "controlled_by_this_extension" && !details.value;
|
details.levelOfControl === "controlled_by_this_extension" && !details.value;
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@koa/multer": "3.0.2",
|
"@koa/multer": "3.1.0",
|
||||||
"@koa/router": "13.1.0",
|
"@koa/router": "13.1.0",
|
||||||
"argon2": "0.41.1",
|
"argon2": "0.41.1",
|
||||||
"big-integer": "1.6.52",
|
"big-integer": "1.6.52",
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
"koa-json": "2.0.2",
|
"koa-json": "2.0.2",
|
||||||
"lowdb": "1.0.0",
|
"lowdb": "1.0.0",
|
||||||
"lunr": "2.3.9",
|
"lunr": "2.3.9",
|
||||||
"multer": "1.4.5-lts.1",
|
"multer": "1.4.5-lts.2",
|
||||||
"node-fetch": "2.6.12",
|
"node-fetch": "2.6.12",
|
||||||
"node-forge": "1.3.1",
|
"node-forge": "1.3.1",
|
||||||
"open": "8.4.2",
|
"open": "8.4.2",
|
||||||
|
|||||||
@@ -23,12 +23,10 @@ import { AuthRequest } from "@bitwarden/common/auth/models/request/auth.request"
|
|||||||
import { AuthRequestResponse } from "@bitwarden/common/auth/models/response/auth-request.response";
|
import { AuthRequestResponse } from "@bitwarden/common/auth/models/response/auth-request.response";
|
||||||
import { LoginViaAuthRequestView } from "@bitwarden/common/auth/models/view/login-via-auth-request.view";
|
import { LoginViaAuthRequestView } from "@bitwarden/common/auth/models/view/login-via-auth-request.view";
|
||||||
import { ClientType, HttpStatusCode } from "@bitwarden/common/enums";
|
import { ClientType, HttpStatusCode } from "@bitwarden/common/enums";
|
||||||
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
|
||||||
import { CryptoFunctionService } from "@bitwarden/common/key-management/crypto/abstractions/crypto-function.service";
|
import { CryptoFunctionService } from "@bitwarden/common/key-management/crypto/abstractions/crypto-function.service";
|
||||||
import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/device-trust/abstractions/device-trust.service.abstraction";
|
import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/device-trust/abstractions/device-trust.service.abstraction";
|
||||||
import { ErrorResponse } from "@bitwarden/common/models/response/error.response";
|
import { ErrorResponse } from "@bitwarden/common/models/response/error.response";
|
||||||
import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service";
|
import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service";
|
||||||
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
|
||||||
import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
|
import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
||||||
@@ -101,7 +99,6 @@ export class LoginViaAuthRequestComponent implements OnInit, OnDestroy {
|
|||||||
private validationService: ValidationService,
|
private validationService: ValidationService,
|
||||||
private loginSuccessHandlerService: LoginSuccessHandlerService,
|
private loginSuccessHandlerService: LoginSuccessHandlerService,
|
||||||
private loginViaAuthRequestCacheService: LoginViaAuthRequestCacheService,
|
private loginViaAuthRequestCacheService: LoginViaAuthRequestCacheService,
|
||||||
private configService: ConfigService,
|
|
||||||
) {
|
) {
|
||||||
this.clientType = this.platformUtilsService.getClientType();
|
this.clientType = this.platformUtilsService.getClientType();
|
||||||
|
|
||||||
@@ -132,7 +129,6 @@ export class LoginViaAuthRequestComponent implements OnInit, OnDestroy {
|
|||||||
async ngOnInit(): Promise<void> {
|
async ngOnInit(): Promise<void> {
|
||||||
// Get the authStatus early because we use it in both flows
|
// Get the authStatus early because we use it in both flows
|
||||||
this.authStatus = await firstValueFrom(this.authService.activeAccountStatus$);
|
this.authStatus = await firstValueFrom(this.authService.activeAccountStatus$);
|
||||||
await this.loginViaAuthRequestCacheService.init();
|
|
||||||
|
|
||||||
const userHasAuthenticatedViaSSO = this.authStatus === AuthenticationStatus.Locked;
|
const userHasAuthenticatedViaSSO = this.authStatus === AuthenticationStatus.Locked;
|
||||||
|
|
||||||
@@ -410,7 +406,6 @@ export class LoginViaAuthRequestComponent implements OnInit, OnDestroy {
|
|||||||
const authRequestResponse: AuthRequestResponse =
|
const authRequestResponse: AuthRequestResponse =
|
||||||
await this.authRequestApiService.postAuthRequest(authRequest);
|
await this.authRequestApiService.postAuthRequest(authRequest);
|
||||||
|
|
||||||
if (await this.configService.getFeatureFlag(FeatureFlag.PM9112_DeviceApprovalPersistence)) {
|
|
||||||
if (!this.authRequestKeyPair.privateKey) {
|
if (!this.authRequestKeyPair.privateKey) {
|
||||||
this.logService.error("No private key when trying to cache the login view.");
|
this.logService.error("No private key when trying to cache the login view.");
|
||||||
return;
|
return;
|
||||||
@@ -426,7 +421,6 @@ export class LoginViaAuthRequestComponent implements OnInit, OnDestroy {
|
|||||||
this.authRequestKeyPair.privateKey,
|
this.authRequestKeyPair.privateKey,
|
||||||
this.accessCode,
|
this.accessCode,
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
if (authRequestResponse.id) {
|
if (authRequestResponse.id) {
|
||||||
await this.anonymousHubService.createHubConnection(authRequestResponse.id);
|
await this.anonymousHubService.createHubConnection(authRequestResponse.id);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { TestBed } from "@angular/core/testing";
|
|||||||
|
|
||||||
import { ViewCacheService } from "@bitwarden/angular/platform/view-cache";
|
import { ViewCacheService } from "@bitwarden/angular/platform/view-cache";
|
||||||
import { LoginViaAuthRequestView } from "@bitwarden/common/auth/models/view/login-via-auth-request.view";
|
import { LoginViaAuthRequestView } from "@bitwarden/common/auth/models/view/login-via-auth-request.view";
|
||||||
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
|
||||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||||
|
|
||||||
import { LoginViaAuthRequestCacheService } from "./default-login-via-auth-request-cache.service";
|
import { LoginViaAuthRequestCacheService } from "./default-login-via-auth-request-cache.service";
|
||||||
@@ -14,32 +13,23 @@ describe("LoginViaAuthRequestCache", () => {
|
|||||||
|
|
||||||
const cacheSignal = signal<LoginViaAuthRequestView | null>(null);
|
const cacheSignal = signal<LoginViaAuthRequestView | null>(null);
|
||||||
const getCacheSignal = jest.fn().mockReturnValue(cacheSignal);
|
const getCacheSignal = jest.fn().mockReturnValue(cacheSignal);
|
||||||
const getFeatureFlag = jest.fn().mockResolvedValue(false);
|
|
||||||
const cacheSetMock = jest.spyOn(cacheSignal, "set");
|
const cacheSetMock = jest.spyOn(cacheSignal, "set");
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
getCacheSignal.mockClear();
|
getCacheSignal.mockClear();
|
||||||
getFeatureFlag.mockClear();
|
|
||||||
cacheSetMock.mockClear();
|
cacheSetMock.mockClear();
|
||||||
|
|
||||||
testBed = TestBed.configureTestingModule({
|
testBed = TestBed.configureTestingModule({
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: ViewCacheService, useValue: { signal: getCacheSignal } },
|
{ provide: ViewCacheService, useValue: { signal: getCacheSignal } },
|
||||||
{ provide: ConfigService, useValue: { getFeatureFlag } },
|
|
||||||
LoginViaAuthRequestCacheService,
|
LoginViaAuthRequestCacheService,
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("feature enabled", () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
getFeatureFlag.mockResolvedValue(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("`getCachedLoginViaAuthRequestView` returns the cached data", async () => {
|
it("`getCachedLoginViaAuthRequestView` returns the cached data", async () => {
|
||||||
cacheSignal.set({ ...buildMockState() });
|
cacheSignal.set({ ...buildMockState() });
|
||||||
service = testBed.inject(LoginViaAuthRequestCacheService);
|
service = testBed.inject(LoginViaAuthRequestCacheService);
|
||||||
await service.init();
|
|
||||||
|
|
||||||
expect(service.getCachedLoginViaAuthRequestView()).toEqual({
|
expect(service.getCachedLoginViaAuthRequestView()).toEqual({
|
||||||
...buildMockState(),
|
...buildMockState(),
|
||||||
@@ -48,7 +38,6 @@ describe("LoginViaAuthRequestCache", () => {
|
|||||||
|
|
||||||
it("updates the signal value", async () => {
|
it("updates the signal value", async () => {
|
||||||
service = testBed.inject(LoginViaAuthRequestCacheService);
|
service = testBed.inject(LoginViaAuthRequestCacheService);
|
||||||
await service.init();
|
|
||||||
|
|
||||||
const parameters = buildAuthenticMockAuthView();
|
const parameters = buildAuthenticMockAuthView();
|
||||||
|
|
||||||
@@ -60,30 +49,6 @@ describe("LoginViaAuthRequestCache", () => {
|
|||||||
accessCode: parameters.accessCode,
|
accessCode: parameters.accessCode,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe("feature disabled", () => {
|
|
||||||
beforeEach(async () => {
|
|
||||||
cacheSignal.set({ ...buildMockState() } as LoginViaAuthRequestView);
|
|
||||||
getFeatureFlag.mockResolvedValue(false);
|
|
||||||
cacheSetMock.mockClear();
|
|
||||||
|
|
||||||
service = testBed.inject(LoginViaAuthRequestCacheService);
|
|
||||||
await service.init();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("`getCachedCipherView` returns null", () => {
|
|
||||||
expect(service.getCachedLoginViaAuthRequestView()).toBeNull();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not update the signal value", () => {
|
|
||||||
const params = buildAuthenticMockAuthView();
|
|
||||||
|
|
||||||
service.cacheLoginView(params.id, params.privateKey, params.accessCode);
|
|
||||||
|
|
||||||
expect(cacheSignal.set).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const buildAuthenticMockAuthView = () => {
|
const buildAuthenticMockAuthView = () => {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ import { inject, Injectable, WritableSignal } from "@angular/core";
|
|||||||
|
|
||||||
import { ViewCacheService } from "@bitwarden/angular/platform/view-cache";
|
import { ViewCacheService } from "@bitwarden/angular/platform/view-cache";
|
||||||
import { LoginViaAuthRequestView } from "@bitwarden/common/auth/models/view/login-via-auth-request.view";
|
import { LoginViaAuthRequestView } from "@bitwarden/common/auth/models/view/login-via-auth-request.view";
|
||||||
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
|
||||||
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
|
||||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||||
|
|
||||||
const LOGIN_VIA_AUTH_CACHE_KEY = "login-via-auth-request-form-cache";
|
const LOGIN_VIA_AUTH_CACHE_KEY = "login-via-auth-request-form-cache";
|
||||||
@@ -17,10 +15,6 @@ const LOGIN_VIA_AUTH_CACHE_KEY = "login-via-auth-request-form-cache";
|
|||||||
@Injectable()
|
@Injectable()
|
||||||
export class LoginViaAuthRequestCacheService {
|
export class LoginViaAuthRequestCacheService {
|
||||||
private viewCacheService: ViewCacheService = inject(ViewCacheService);
|
private viewCacheService: ViewCacheService = inject(ViewCacheService);
|
||||||
private configService: ConfigService = inject(ConfigService);
|
|
||||||
|
|
||||||
/** True when the `PM9112_DeviceApproval` flag is enabled */
|
|
||||||
private featureEnabled: boolean = false;
|
|
||||||
|
|
||||||
private defaultLoginViaAuthRequestCache: WritableSignal<LoginViaAuthRequestView | null> =
|
private defaultLoginViaAuthRequestCache: WritableSignal<LoginViaAuthRequestView | null> =
|
||||||
this.viewCacheService.signal<LoginViaAuthRequestView | null>({
|
this.viewCacheService.signal<LoginViaAuthRequestView | null>({
|
||||||
@@ -31,23 +25,10 @@ export class LoginViaAuthRequestCacheService {
|
|||||||
|
|
||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
||||||
/**
|
|
||||||
* Must be called once before interacting with the cached data, otherwise methods will be noop.
|
|
||||||
*/
|
|
||||||
async init() {
|
|
||||||
this.featureEnabled = await this.configService.getFeatureFlag(
|
|
||||||
FeatureFlag.PM9112_DeviceApprovalPersistence,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the cache with the new LoginView.
|
* Update the cache with the new LoginView.
|
||||||
*/
|
*/
|
||||||
cacheLoginView(id: string, privateKey: Uint8Array, accessCode: string): void {
|
cacheLoginView(id: string, privateKey: Uint8Array, accessCode: string): void {
|
||||||
if (!this.featureEnabled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// When the keys get stored they should be converted to a B64 string to ensure
|
// When the keys get stored they should be converted to a B64 string to ensure
|
||||||
// data can be properly formed when json-ified. If not done, they are not stored properly and
|
// data can be properly formed when json-ified. If not done, they are not stored properly and
|
||||||
// will not be parsable by the cryptography library after coming out of storage.
|
// will not be parsable by the cryptography library after coming out of storage.
|
||||||
@@ -59,10 +40,6 @@ export class LoginViaAuthRequestCacheService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
clearCacheLoginView(): void {
|
clearCacheLoginView(): void {
|
||||||
if (!this.featureEnabled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.defaultLoginViaAuthRequestCache.set(null);
|
this.defaultLoginViaAuthRequestCache.set(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,10 +47,6 @@ export class LoginViaAuthRequestCacheService {
|
|||||||
* Returns the cached LoginViaAuthRequestView when available.
|
* Returns the cached LoginViaAuthRequestView when available.
|
||||||
*/
|
*/
|
||||||
getCachedLoginViaAuthRequestView(): LoginViaAuthRequestView | null {
|
getCachedLoginViaAuthRequestView(): LoginViaAuthRequestView | null {
|
||||||
if (!this.featureEnabled) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.defaultLoginViaAuthRequestCache();
|
return this.defaultLoginViaAuthRequestCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ export enum FeatureFlag {
|
|||||||
SeparateCustomRolePermissions = "pm-19917-separate-custom-role-permissions",
|
SeparateCustomRolePermissions = "pm-19917-separate-custom-role-permissions",
|
||||||
|
|
||||||
/* Auth */
|
/* Auth */
|
||||||
PM9112_DeviceApprovalPersistence = "pm-9112-device-approval-persistence",
|
|
||||||
PM9115_TwoFactorExtensionDataPersistence = "pm-9115-two-factor-extension-data-persistence",
|
PM9115_TwoFactorExtensionDataPersistence = "pm-9115-two-factor-extension-data-persistence",
|
||||||
|
|
||||||
/* Autofill */
|
/* Autofill */
|
||||||
@@ -55,7 +54,6 @@ export enum FeatureFlag {
|
|||||||
/* Vault */
|
/* Vault */
|
||||||
PM8851_BrowserOnboardingNudge = "pm-8851-browser-onboarding-nudge",
|
PM8851_BrowserOnboardingNudge = "pm-8851-browser-onboarding-nudge",
|
||||||
PM9111ExtensionPersistAddEditForm = "pm-9111-extension-persist-add-edit-form",
|
PM9111ExtensionPersistAddEditForm = "pm-9111-extension-persist-add-edit-form",
|
||||||
VaultBulkManagementAction = "vault-bulk-management-action",
|
|
||||||
SecurityTasks = "security-tasks",
|
SecurityTasks = "security-tasks",
|
||||||
CipherKeyEncryption = "cipher-key-encryption",
|
CipherKeyEncryption = "cipher-key-encryption",
|
||||||
PM18520_UpdateDesktopCipherForm = "pm-18520-desktop-cipher-forms",
|
PM18520_UpdateDesktopCipherForm = "pm-18520-desktop-cipher-forms",
|
||||||
@@ -107,14 +105,12 @@ export const DefaultFeatureFlagValue = {
|
|||||||
/* Vault */
|
/* Vault */
|
||||||
[FeatureFlag.PM8851_BrowserOnboardingNudge]: FALSE,
|
[FeatureFlag.PM8851_BrowserOnboardingNudge]: FALSE,
|
||||||
[FeatureFlag.PM9111ExtensionPersistAddEditForm]: FALSE,
|
[FeatureFlag.PM9111ExtensionPersistAddEditForm]: FALSE,
|
||||||
[FeatureFlag.VaultBulkManagementAction]: FALSE,
|
|
||||||
[FeatureFlag.SecurityTasks]: FALSE,
|
[FeatureFlag.SecurityTasks]: FALSE,
|
||||||
[FeatureFlag.CipherKeyEncryption]: FALSE,
|
[FeatureFlag.CipherKeyEncryption]: FALSE,
|
||||||
[FeatureFlag.PM18520_UpdateDesktopCipherForm]: FALSE,
|
[FeatureFlag.PM18520_UpdateDesktopCipherForm]: FALSE,
|
||||||
[FeatureFlag.EndUserNotifications]: FALSE,
|
[FeatureFlag.EndUserNotifications]: FALSE,
|
||||||
|
|
||||||
/* Auth */
|
/* Auth */
|
||||||
[FeatureFlag.PM9112_DeviceApprovalPersistence]: FALSE,
|
|
||||||
[FeatureFlag.PM9115_TwoFactorExtensionDataPersistence]: FALSE,
|
[FeatureFlag.PM9115_TwoFactorExtensionDataPersistence]: FALSE,
|
||||||
|
|
||||||
/* Billing */
|
/* Billing */
|
||||||
|
|||||||
78
package-lock.json
generated
78
package-lock.json
generated
@@ -27,7 +27,7 @@
|
|||||||
"@bitwarden/sdk-internal": "0.2.0-main.159",
|
"@bitwarden/sdk-internal": "0.2.0-main.159",
|
||||||
"@electron/fuses": "1.8.0",
|
"@electron/fuses": "1.8.0",
|
||||||
"@emotion/css": "11.13.5",
|
"@emotion/css": "11.13.5",
|
||||||
"@koa/multer": "3.0.2",
|
"@koa/multer": "3.1.0",
|
||||||
"@koa/router": "13.1.0",
|
"@koa/router": "13.1.0",
|
||||||
"@microsoft/signalr": "8.0.7",
|
"@microsoft/signalr": "8.0.7",
|
||||||
"@microsoft/signalr-protocol-msgpack": "8.0.7",
|
"@microsoft/signalr-protocol-msgpack": "8.0.7",
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
"lit": "3.2.1",
|
"lit": "3.2.1",
|
||||||
"lowdb": "1.0.0",
|
"lowdb": "1.0.0",
|
||||||
"lunr": "2.3.9",
|
"lunr": "2.3.9",
|
||||||
"multer": "1.4.5-lts.1",
|
"multer": "1.4.5-lts.2",
|
||||||
"ngx-toastr": "19.0.0",
|
"ngx-toastr": "19.0.0",
|
||||||
"node-fetch": "2.6.12",
|
"node-fetch": "2.6.12",
|
||||||
"node-forge": "1.3.1",
|
"node-forge": "1.3.1",
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
"version": "2025.4.0",
|
"version": "2025.4.0",
|
||||||
"license": "SEE LICENSE IN LICENSE.txt",
|
"license": "SEE LICENSE IN LICENSE.txt",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@koa/multer": "3.0.2",
|
"@koa/multer": "3.1.0",
|
||||||
"@koa/router": "13.1.0",
|
"@koa/router": "13.1.0",
|
||||||
"argon2": "0.41.1",
|
"argon2": "0.41.1",
|
||||||
"big-integer": "1.6.52",
|
"big-integer": "1.6.52",
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
"koa-json": "2.0.2",
|
"koa-json": "2.0.2",
|
||||||
"lowdb": "1.0.0",
|
"lowdb": "1.0.0",
|
||||||
"lunr": "2.3.9",
|
"lunr": "2.3.9",
|
||||||
"multer": "1.4.5-lts.1",
|
"multer": "1.4.5-lts.2",
|
||||||
"node-fetch": "2.6.12",
|
"node-fetch": "2.6.12",
|
||||||
"node-forge": "1.3.1",
|
"node-forge": "1.3.1",
|
||||||
"open": "8.4.2",
|
"open": "8.4.2",
|
||||||
@@ -389,6 +389,7 @@
|
|||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
|
||||||
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
|
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
|
||||||
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/gen-mapping": "^0.3.5",
|
"@jridgewell/gen-mapping": "^0.3.5",
|
||||||
@@ -2745,6 +2746,7 @@
|
|||||||
"version": "7.26.8",
|
"version": "7.26.8",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz",
|
||||||
"integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
|
"integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
@@ -2754,6 +2756,7 @@
|
|||||||
"version": "7.24.9",
|
"version": "7.24.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz",
|
||||||
"integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==",
|
"integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ampproject/remapping": "^2.2.0",
|
"@ampproject/remapping": "^2.2.0",
|
||||||
@@ -2784,12 +2787,14 @@
|
|||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
||||||
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@babel/core/node_modules/semver": {
|
"node_modules/@babel/core/node_modules/semver": {
|
||||||
"version": "6.3.1",
|
"version": "6.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||||
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bin": {
|
"bin": {
|
||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
@@ -2799,6 +2804,7 @@
|
|||||||
"version": "7.26.10",
|
"version": "7.26.10",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz",
|
||||||
"integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==",
|
"integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.26.10",
|
"@babel/parser": "^7.26.10",
|
||||||
@@ -2828,6 +2834,7 @@
|
|||||||
"version": "7.26.5",
|
"version": "7.26.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
|
||||||
"integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
|
"integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/compat-data": "^7.26.5",
|
"@babel/compat-data": "^7.26.5",
|
||||||
@@ -2844,6 +2851,7 @@
|
|||||||
"version": "4.24.4",
|
"version": "4.24.4",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
|
||||||
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
|
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
|
||||||
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -2876,6 +2884,7 @@
|
|||||||
"version": "6.3.1",
|
"version": "6.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||||
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bin": {
|
"bin": {
|
||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
@@ -3015,6 +3024,7 @@
|
|||||||
"version": "7.26.0",
|
"version": "7.26.0",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
|
||||||
"integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
|
"integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-module-imports": "^7.25.9",
|
"@babel/helper-module-imports": "^7.25.9",
|
||||||
@@ -3045,6 +3055,7 @@
|
|||||||
"version": "7.27.1",
|
"version": "7.27.1",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
|
||||||
"integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
|
"integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
@@ -3148,6 +3159,7 @@
|
|||||||
"version": "7.25.9",
|
"version": "7.25.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
|
||||||
"integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
|
"integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
@@ -3172,6 +3184,7 @@
|
|||||||
"version": "7.27.1",
|
"version": "7.27.1",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz",
|
||||||
"integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==",
|
"integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/template": "^7.27.1",
|
"@babel/template": "^7.27.1",
|
||||||
@@ -3280,23 +3293,6 @@
|
|||||||
"@babel/core": "^7.0.0"
|
"@babel/core": "^7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/plugin-proposal-export-namespace-from": {
|
|
||||||
"version": "7.18.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
|
|
||||||
"integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
|
|
||||||
"deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-plugin-utils": "^7.18.9",
|
|
||||||
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@babel/core": "^7.0.0-0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/plugin-proposal-private-property-in-object": {
|
"node_modules/@babel/plugin-proposal-private-property-in-object": {
|
||||||
"version": "7.21.0-placeholder-for-preset-env.2",
|
"version": "7.21.0-placeholder-for-preset-env.2",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
|
||||||
@@ -3382,6 +3378,7 @@
|
|||||||
"version": "7.8.3",
|
"version": "7.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
|
||||||
"integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
|
"integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-plugin-utils": "^7.8.3"
|
"@babel/helper-plugin-utils": "^7.8.3"
|
||||||
@@ -4010,6 +4007,7 @@
|
|||||||
"version": "7.26.3",
|
"version": "7.26.3",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
|
||||||
"integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
|
"integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-module-transforms": "^7.26.0",
|
"@babel/helper-module-transforms": "^7.26.0",
|
||||||
@@ -7855,15 +7853,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@koa/multer": {
|
"node_modules/@koa/multer": {
|
||||||
"version": "3.0.2",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@koa/multer/-/multer-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@koa/multer/-/multer-3.1.0.tgz",
|
||||||
"integrity": "sha512-Q6WfPpE06mJWyZD1fzxM6zWywaoo+zocAn2YA9QYz4RsecoASr1h/kSzG0c5seDpFVKCMZM9raEfuM7XfqbRLw==",
|
"integrity": "sha512-ETf4OLpOew9XE9lyU+5HIqk3TCmdGAw9pUXgxzrlYip+PkxLGoU4meiVTxiW4B6lxdBNijb3DFQ7M2woLcDL1g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
|
||||||
"fix-esm": "1.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 8"
|
"node": ">= 14"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"multer": "*"
|
"multer": "*"
|
||||||
@@ -15362,6 +15357,7 @@
|
|||||||
"version": "4.23.2",
|
"version": "4.23.2",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz",
|
||||||
"integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
|
"integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==",
|
||||||
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -15951,6 +15947,7 @@
|
|||||||
"version": "1.0.30001717",
|
"version": "1.0.30001717",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz",
|
||||||
"integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==",
|
"integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==",
|
||||||
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -18482,6 +18479,7 @@
|
|||||||
"version": "1.5.151",
|
"version": "1.5.151",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz",
|
||||||
"integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==",
|
"integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/electron-updater": {
|
"node_modules/electron-updater": {
|
||||||
@@ -18965,6 +18963,7 @@
|
|||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
||||||
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
@@ -20387,17 +20386,6 @@
|
|||||||
"micromatch": "^4.0.2"
|
"micromatch": "^4.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fix-esm": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/fix-esm/-/fix-esm-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-EZtb7wPXZS54GaGxaWxMlhd1DUDCnAg5srlYdu/1ZVeW+7wwR3Tp59nu52dXByFs3MBRq+SByx1wDOJpRvLEXw==",
|
|
||||||
"license": "WTFPL OR CC0-1.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/core": "^7.14.6",
|
|
||||||
"@babel/plugin-proposal-export-namespace-from": "^7.14.5",
|
|
||||||
"@babel/plugin-transform-modules-commonjs": "^7.14.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/flat": {
|
"node_modules/flat": {
|
||||||
"version": "5.0.2",
|
"version": "5.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
|
||||||
@@ -21084,6 +21072,7 @@
|
|||||||
"version": "1.0.0-beta.2",
|
"version": "1.0.0-beta.2",
|
||||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||||
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
|
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
@@ -25452,6 +25441,7 @@
|
|||||||
"version": "2.2.3",
|
"version": "2.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||||
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"json5": "lib/cli.js"
|
"json5": "lib/cli.js"
|
||||||
@@ -27032,6 +27022,7 @@
|
|||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||||
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
|
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"yallist": "^3.0.2"
|
"yallist": "^3.0.2"
|
||||||
@@ -28598,9 +28589,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/multer": {
|
"node_modules/multer": {
|
||||||
"version": "1.4.5-lts.1",
|
"version": "1.4.5-lts.2",
|
||||||
"resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
|
"resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.2.tgz",
|
||||||
"integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
|
"integrity": "sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"append-field": "^1.0.0",
|
"append-field": "^1.0.0",
|
||||||
@@ -29278,6 +29269,7 @@
|
|||||||
"version": "2.0.19",
|
"version": "2.0.19",
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
||||||
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
|
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/nopt": {
|
"node_modules/nopt": {
|
||||||
@@ -37088,6 +37080,7 @@
|
|||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
|
||||||
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
|
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
|
||||||
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -38970,6 +38963,7 @@
|
|||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/yaml": {
|
"node_modules/yaml": {
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
"@bitwarden/sdk-internal": "0.2.0-main.159",
|
"@bitwarden/sdk-internal": "0.2.0-main.159",
|
||||||
"@electron/fuses": "1.8.0",
|
"@electron/fuses": "1.8.0",
|
||||||
"@emotion/css": "11.13.5",
|
"@emotion/css": "11.13.5",
|
||||||
"@koa/multer": "3.0.2",
|
"@koa/multer": "3.1.0",
|
||||||
"@koa/router": "13.1.0",
|
"@koa/router": "13.1.0",
|
||||||
"@microsoft/signalr": "8.0.7",
|
"@microsoft/signalr": "8.0.7",
|
||||||
"@microsoft/signalr-protocol-msgpack": "8.0.7",
|
"@microsoft/signalr-protocol-msgpack": "8.0.7",
|
||||||
@@ -190,7 +190,7 @@
|
|||||||
"lit": "3.2.1",
|
"lit": "3.2.1",
|
||||||
"lowdb": "1.0.0",
|
"lowdb": "1.0.0",
|
||||||
"lunr": "2.3.9",
|
"lunr": "2.3.9",
|
||||||
"multer": "1.4.5-lts.1",
|
"multer": "1.4.5-lts.2",
|
||||||
"ngx-toastr": "19.0.0",
|
"ngx-toastr": "19.0.0",
|
||||||
"node-fetch": "2.6.12",
|
"node-fetch": "2.6.12",
|
||||||
"node-forge": "1.3.1",
|
"node-forge": "1.3.1",
|
||||||
|
|||||||
Reference in New Issue
Block a user