mirror of
https://github.com/bitwarden/browser.git
synced 2024-09-28 04:08:47 +02:00
Merge branch 'main' into feature/HideCreateAccountButton
This commit is contained in:
commit
d1370c586f
37
.github/workflows/build-web.yml
vendored
37
.github/workflows/build-web.yml
vendored
@ -292,6 +292,39 @@ jobs:
|
|||||||
upload_sources: true
|
upload_sources: true
|
||||||
upload_translations: false
|
upload_translations: false
|
||||||
|
|
||||||
|
trigger-web-vault-deploy:
|
||||||
|
name: Trigger web vault deploy
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
needs: build-artifacts
|
||||||
|
steps:
|
||||||
|
- name: Login to Azure - CI Subscription
|
||||||
|
uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.7
|
||||||
|
with:
|
||||||
|
creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||||
|
|
||||||
|
- name: Retrieve github PAT secrets
|
||||||
|
id: retrieve-secret-pat
|
||||||
|
uses: bitwarden/gh-actions/get-keyvault-secrets@main
|
||||||
|
with:
|
||||||
|
keyvault: "bitwarden-ci"
|
||||||
|
secrets: "github-pat-bitwarden-devops-bot-repo-scope"
|
||||||
|
|
||||||
|
- name: Trigger web vault deploy
|
||||||
|
uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6.4.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ steps.retrieve-secret-pat.outputs.github-pat-bitwarden-devops-bot-repo-scope }}
|
||||||
|
script: |
|
||||||
|
await github.rest.actions.createWorkflowDispatch({
|
||||||
|
owner: 'bitwarden',
|
||||||
|
repo: 'clients',
|
||||||
|
workflow_id: 'deploy-web.yml',
|
||||||
|
ref: 'main',
|
||||||
|
inputs: {
|
||||||
|
environment: 'USDEV',
|
||||||
|
tag: 'main'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
check-failures:
|
check-failures:
|
||||||
name: Check for failures
|
name: Check for failures
|
||||||
@ -303,6 +336,7 @@ jobs:
|
|||||||
- build-artifacts
|
- build-artifacts
|
||||||
- build-containers
|
- build-containers
|
||||||
- crowdin-push
|
- crowdin-push
|
||||||
|
- trigger-web-vault-deploy
|
||||||
steps:
|
steps:
|
||||||
- name: Check if any job failed
|
- name: Check if any job failed
|
||||||
if: ${{ (github.ref == 'refs/heads/main') || (github.ref == 'refs/heads/rc') }}
|
if: ${{ (github.ref == 'refs/heads/main') || (github.ref == 'refs/heads/rc') }}
|
||||||
@ -312,6 +346,7 @@ jobs:
|
|||||||
ARTIFACT_STATUS: ${{ needs.build-artifacts.result }}
|
ARTIFACT_STATUS: ${{ needs.build-artifacts.result }}
|
||||||
BUILD_CONTAINERS_STATUS: ${{ needs.build-containers.result }}
|
BUILD_CONTAINERS_STATUS: ${{ needs.build-containers.result }}
|
||||||
CROWDIN_PUSH_STATUS: ${{ needs.crowdin-push.result }}
|
CROWDIN_PUSH_STATUS: ${{ needs.crowdin-push.result }}
|
||||||
|
TRIGGER_WEB_VAULT_DEPLOY_STATUS: ${{ needs.trigger-web-vault-deploy.result }}
|
||||||
run: |
|
run: |
|
||||||
if [ "$CLOC_STATUS" = "failure" ]; then
|
if [ "$CLOC_STATUS" = "failure" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
@ -325,6 +360,8 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
elif [ "$CROWDIN_PUSH_STATUS" = "failure" ]; then
|
elif [ "$CROWDIN_PUSH_STATUS" = "failure" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
|
elif [ "$TRIGGER_WEB_VAULT_DEPLOY_STATUS" = "failure" ]; then
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Login to Azure - Prod Subscription
|
- name: Login to Azure - Prod Subscription
|
||||||
|
@ -326,6 +326,9 @@
|
|||||||
"password": {
|
"password": {
|
||||||
"message": "Password"
|
"message": "Password"
|
||||||
},
|
},
|
||||||
|
"totp": {
|
||||||
|
"message": "Authenticator secret"
|
||||||
|
},
|
||||||
"passphrase": {
|
"passphrase": {
|
||||||
"message": "Passphrase"
|
"message": "Passphrase"
|
||||||
},
|
},
|
||||||
@ -512,6 +515,18 @@
|
|||||||
"autofillError": {
|
"autofillError": {
|
||||||
"message": "Unable to auto-fill the selected item on this page. Copy and paste the information instead."
|
"message": "Unable to auto-fill the selected item on this page. Copy and paste the information instead."
|
||||||
},
|
},
|
||||||
|
"totpCaptureError": {
|
||||||
|
"message": "Unable to scan QR code from the current webpage"
|
||||||
|
},
|
||||||
|
"totpCaptureSuccess": {
|
||||||
|
"message": "Authenticator key added"
|
||||||
|
},
|
||||||
|
"totpCapture": {
|
||||||
|
"message": "Scan authenticator QR code from current webpage"
|
||||||
|
},
|
||||||
|
"copyTOTP": {
|
||||||
|
"message": "Copy Authenticator key (TOTP)"
|
||||||
|
},
|
||||||
"loggedOut": {
|
"loggedOut": {
|
||||||
"message": "Logged out"
|
"message": "Logged out"
|
||||||
},
|
},
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
"default_popup": "popup/index.html"
|
"default_popup": "popup/index.html"
|
||||||
},
|
},
|
||||||
"permissions": [
|
"permissions": [
|
||||||
|
"<all_urls>",
|
||||||
"tabs",
|
"tabs",
|
||||||
"contextMenus",
|
"contextMenus",
|
||||||
"storage",
|
"storage",
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
"default_popup": "popup/index.html"
|
"default_popup": "popup/index.html"
|
||||||
},
|
},
|
||||||
"permissions": [
|
"permissions": [
|
||||||
|
"<all_urls>",
|
||||||
"tabs",
|
"tabs",
|
||||||
"contextMenus",
|
"contextMenus",
|
||||||
"storage",
|
"storage",
|
||||||
|
@ -413,6 +413,12 @@ export class BrowserApi {
|
|||||||
return win.opr?.sidebarAction || browser.sidebarAction;
|
return win.opr?.sidebarAction || browser.sidebarAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static captureVisibleTab(): Promise<string> {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
chrome.tabs.captureVisibleTab(null, { format: "png" }, resolve);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension API helper method used to execute a script in a tab.
|
* Extension API helper method used to execute a script in a tab.
|
||||||
* @see https://developer.chrome.com/docs/extensions/reference/tabs/#method-executeScript
|
* @see https://developer.chrome.com/docs/extensions/reference/tabs/#method-executeScript
|
||||||
|
@ -146,7 +146,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="box-content-row" appBoxRow>
|
<div class="box-content-row box-content-row-flex" appBoxRow>
|
||||||
|
<div class="row-main">
|
||||||
<label for="loginTotp">{{ "authenticatorKeyTotp" | i18n }}</label>
|
<label for="loginTotp">{{ "authenticatorKeyTotp" | i18n }}</label>
|
||||||
<input
|
<input
|
||||||
id="loginTotp"
|
id="loginTotp"
|
||||||
@ -159,7 +160,31 @@
|
|||||||
[readonly]="!cipher.edit && editMode"
|
[readonly]="!cipher.edit && editMode"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="row-btn"
|
||||||
|
appStopClick
|
||||||
|
appA11yTitle="{{ 'copyTOTP' | i18n }}"
|
||||||
|
(click)="copy(cipher.login.totp, 'totp', 'TOTP')"
|
||||||
|
*ngIf="cipher.viewPassword"
|
||||||
|
>
|
||||||
|
<i class="bwi bwi-lg bwi-clone" aria-hidden="true"></i>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="row-btn"
|
||||||
|
appStopClick
|
||||||
|
appA11yTitle="{{ 'totpCapture' | i18n }}"
|
||||||
|
(click)="captureTOTPFromTab()"
|
||||||
|
*ngIf="!(!cipher.edit && editMode)"
|
||||||
|
>
|
||||||
|
<i class="bwi bwi-lg bwi-camera" aria-hidden="true"></i>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Card -->
|
<!-- Card -->
|
||||||
<div *ngIf="cipher.type === cipherType.Card">
|
<div *ngIf="cipher.type === cipherType.Card">
|
||||||
<div class="box-content-row" appBoxRow>
|
<div class="box-content-row" appBoxRow>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { DatePipe, Location } from "@angular/common";
|
import { DatePipe, Location } from "@angular/common";
|
||||||
import { Component } from "@angular/core";
|
import { Component } from "@angular/core";
|
||||||
import { ActivatedRoute, Router } from "@angular/router";
|
import { ActivatedRoute, Router } from "@angular/router";
|
||||||
|
import qrcodeParser from "qrcode-parser";
|
||||||
import { firstValueFrom } from "rxjs";
|
import { firstValueFrom } from "rxjs";
|
||||||
import { first } from "rxjs/operators";
|
import { first } from "rxjs/operators";
|
||||||
|
|
||||||
@ -84,6 +85,7 @@ export class AddEditComponent extends BaseAddEditComponent {
|
|||||||
organizationService,
|
organizationService,
|
||||||
sendApiService,
|
sendApiService,
|
||||||
dialogService,
|
dialogService,
|
||||||
|
window,
|
||||||
datePipe,
|
datePipe,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -342,4 +344,26 @@ export class AddEditComponent extends BaseAddEditComponent {
|
|||||||
this.singleActionKey || VaultPopoutType.addEditVaultItem,
|
this.singleActionKey || VaultPopoutType.addEditVaultItem,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async captureTOTPFromTab() {
|
||||||
|
try {
|
||||||
|
const screenshot = await BrowserApi.captureVisibleTab();
|
||||||
|
const data = await qrcodeParser(screenshot);
|
||||||
|
const url = new URL(data.toString());
|
||||||
|
if (url.protocol == "otpauth:" && url.searchParams.has("secret")) {
|
||||||
|
this.cipher.login.totp = data.toString();
|
||||||
|
this.platformUtilsService.showToast(
|
||||||
|
"success",
|
||||||
|
null,
|
||||||
|
this.i18nService.t("totpCaptureSuccess"),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.platformUtilsService.showToast(
|
||||||
|
"error",
|
||||||
|
this.i18nService.t("errorOccurred"),
|
||||||
|
this.i18nService.t("totpCaptureError"),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"**/node_modules/@bitwarden/desktop-native/index.js",
|
"**/node_modules/@bitwarden/desktop-native/index.js",
|
||||||
"**/node_modules/@bitwarden/desktop-native/desktop_native.${platform}-${arch}*.node"
|
"**/node_modules/@bitwarden/desktop-native/desktop_native.${platform}-${arch}*.node"
|
||||||
],
|
],
|
||||||
"electronVersion": "27.2.0",
|
"electronVersion": "28.1.0",
|
||||||
"generateUpdatesFilesForAllChannels": true,
|
"generateUpdatesFilesForAllChannels": true,
|
||||||
"publish": {
|
"publish": {
|
||||||
"provider": "generic",
|
"provider": "generic",
|
||||||
|
@ -47,6 +47,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnChanges,
|
|||||||
organizationService: OrganizationService,
|
organizationService: OrganizationService,
|
||||||
sendApiService: SendApiService,
|
sendApiService: SendApiService,
|
||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
|
window: Window,
|
||||||
datePipe: DatePipe,
|
datePipe: DatePipe,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
@ -65,6 +66,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnChanges,
|
|||||||
organizationService,
|
organizationService,
|
||||||
sendApiService,
|
sendApiService,
|
||||||
dialogService,
|
dialogService,
|
||||||
|
window,
|
||||||
datePipe,
|
datePipe,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,7 @@ export class EmergencyAddEditCipherComponent extends BaseAddEditComponent {
|
|||||||
logService: LogService,
|
logService: LogService,
|
||||||
sendApiService: SendApiService,
|
sendApiService: SendApiService,
|
||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
|
window: Window,
|
||||||
datePipe: DatePipe,
|
datePipe: DatePipe,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
@ -69,6 +70,7 @@ export class EmergencyAddEditCipherComponent extends BaseAddEditComponent {
|
|||||||
passwordRepromptService,
|
passwordRepromptService,
|
||||||
sendApiService,
|
sendApiService,
|
||||||
dialogService,
|
dialogService,
|
||||||
|
window,
|
||||||
datePipe,
|
datePipe,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit, On
|
|||||||
passwordRepromptService: PasswordRepromptService,
|
passwordRepromptService: PasswordRepromptService,
|
||||||
sendApiService: SendApiService,
|
sendApiService: SendApiService,
|
||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
|
window: Window,
|
||||||
datePipe: DatePipe,
|
datePipe: DatePipe,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
@ -79,6 +80,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit, On
|
|||||||
organizationService,
|
organizationService,
|
||||||
sendApiService,
|
sendApiService,
|
||||||
dialogService,
|
dialogService,
|
||||||
|
window,
|
||||||
datePipe,
|
datePipe,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -142,9 +144,9 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit, On
|
|||||||
this.platformUtilsService.launchUri(uri.launchUri);
|
this.platformUtilsService.launchUri(uri.launchUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
copy(value: string, typeI18nKey: string, aType: string) {
|
async copy(value: string, typeI18nKey: string, aType: string): Promise<boolean> {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.platformUtilsService.copyToClipboard(value, { window: window });
|
this.platformUtilsService.copyToClipboard(value, { window: window });
|
||||||
@ -166,6 +168,8 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit, On
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async generatePassword(): Promise<boolean> {
|
async generatePassword(): Promise<boolean> {
|
||||||
|
@ -51,6 +51,7 @@ export class AddEditComponent extends BaseAddEditComponent {
|
|||||||
organizationService: OrganizationService,
|
organizationService: OrganizationService,
|
||||||
sendApiService: SendApiService,
|
sendApiService: SendApiService,
|
||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
|
window: Window,
|
||||||
datePipe: DatePipe,
|
datePipe: DatePipe,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
@ -71,6 +72,7 @@ export class AddEditComponent extends BaseAddEditComponent {
|
|||||||
passwordRepromptService,
|
passwordRepromptService,
|
||||||
sendApiService,
|
sendApiService,
|
||||||
dialogService,
|
dialogService,
|
||||||
|
window,
|
||||||
datePipe,
|
datePipe,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -111,6 +111,7 @@ export class AddEditComponent implements OnInit, OnDestroy {
|
|||||||
private organizationService: OrganizationService,
|
private organizationService: OrganizationService,
|
||||||
protected sendApiService: SendApiService,
|
protected sendApiService: SendApiService,
|
||||||
protected dialogService: DialogService,
|
protected dialogService: DialogService,
|
||||||
|
protected win: Window,
|
||||||
protected datePipe: DatePipe,
|
protected datePipe: DatePipe,
|
||||||
) {
|
) {
|
||||||
this.typeOptions = [
|
this.typeOptions = [
|
||||||
@ -653,4 +654,28 @@ export class AddEditComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
return loadedSavedInfo;
|
return loadedSavedInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async copy(value: string, typeI18nKey: string, aType: string): Promise<boolean> {
|
||||||
|
if (value == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const copyOptions = this.win != null ? { window: this.win } : null;
|
||||||
|
this.platformUtilsService.copyToClipboard(value, copyOptions);
|
||||||
|
this.platformUtilsService.showToast(
|
||||||
|
"info",
|
||||||
|
null,
|
||||||
|
this.i18nService.t("valueCopied", this.i18nService.t(typeI18nKey)),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (typeI18nKey === "password") {
|
||||||
|
this.eventCollectionService.collect(EventType.Cipher_ClientCopiedPassword, this.cipherId);
|
||||||
|
} else if (typeI18nKey === "securityCode") {
|
||||||
|
this.eventCollectionService.collect(EventType.Cipher_ClientCopiedCardCode, this.cipherId);
|
||||||
|
} else if (aType === "H_Field") {
|
||||||
|
this.eventCollectionService.collect(EventType.Cipher_ClientCopiedHiddenField, this.cipherId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
152
package-lock.json
generated
152
package-lock.json
generated
@ -62,6 +62,7 @@
|
|||||||
"patch-package": "8.0.0",
|
"patch-package": "8.0.0",
|
||||||
"popper.js": "1.16.1",
|
"popper.js": "1.16.1",
|
||||||
"proper-lockfile": "4.1.2",
|
"proper-lockfile": "4.1.2",
|
||||||
|
"qrcode-parser": "^2.1.3",
|
||||||
"qrious": "4.0.2",
|
"qrious": "4.0.2",
|
||||||
"rxjs": "7.8.1",
|
"rxjs": "7.8.1",
|
||||||
"tabbable": "6.2.0",
|
"tabbable": "6.2.0",
|
||||||
@ -115,8 +116,8 @@
|
|||||||
"@types/react": "16.14.54",
|
"@types/react": "16.14.54",
|
||||||
"@types/retry": "0.12.2",
|
"@types/retry": "0.12.2",
|
||||||
"@types/zxcvbn": "4.4.4",
|
"@types/zxcvbn": "4.4.4",
|
||||||
"@typescript-eslint/eslint-plugin": "6.16.0",
|
"@typescript-eslint/eslint-plugin": "6.17.0",
|
||||||
"@typescript-eslint/parser": "6.16.0",
|
"@typescript-eslint/parser": "6.17.0",
|
||||||
"@webcomponents/custom-elements": "1.6.0",
|
"@webcomponents/custom-elements": "1.6.0",
|
||||||
"autoprefixer": "10.4.16",
|
"autoprefixer": "10.4.16",
|
||||||
"base64-loader": "1.0.0",
|
"base64-loader": "1.0.0",
|
||||||
@ -127,7 +128,7 @@
|
|||||||
"copy-webpack-plugin": "11.0.0",
|
"copy-webpack-plugin": "11.0.0",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"css-loader": "6.8.1",
|
"css-loader": "6.8.1",
|
||||||
"electron": "27.2.0",
|
"electron": "28.1.0",
|
||||||
"electron-builder": "23.6.0",
|
"electron-builder": "23.6.0",
|
||||||
"electron-log": "5.0.1",
|
"electron-log": "5.0.1",
|
||||||
"electron-reload": "2.0.0-alpha.1",
|
"electron-reload": "2.0.0-alpha.1",
|
||||||
@ -140,7 +141,7 @@
|
|||||||
"eslint-plugin-rxjs": "5.0.3",
|
"eslint-plugin-rxjs": "5.0.3",
|
||||||
"eslint-plugin-rxjs-angular": "2.0.1",
|
"eslint-plugin-rxjs-angular": "2.0.1",
|
||||||
"eslint-plugin-storybook": "0.6.15",
|
"eslint-plugin-storybook": "0.6.15",
|
||||||
"eslint-plugin-tailwindcss": "3.13.0",
|
"eslint-plugin-tailwindcss": "3.13.1",
|
||||||
"gulp": "4.0.2",
|
"gulp": "4.0.2",
|
||||||
"gulp-filter": "9.0.1",
|
"gulp-filter": "9.0.1",
|
||||||
"gulp-if": "3.0.0",
|
"gulp-if": "3.0.0",
|
||||||
@ -13454,16 +13455,16 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.17.0.tgz",
|
||||||
"integrity": "sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==",
|
"integrity": "sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/regexpp": "^4.5.1",
|
"@eslint-community/regexpp": "^4.5.1",
|
||||||
"@typescript-eslint/scope-manager": "6.16.0",
|
"@typescript-eslint/scope-manager": "6.17.0",
|
||||||
"@typescript-eslint/type-utils": "6.16.0",
|
"@typescript-eslint/type-utils": "6.17.0",
|
||||||
"@typescript-eslint/utils": "6.16.0",
|
"@typescript-eslint/utils": "6.17.0",
|
||||||
"@typescript-eslint/visitor-keys": "6.16.0",
|
"@typescript-eslint/visitor-keys": "6.17.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"graphemer": "^1.4.0",
|
"graphemer": "^1.4.0",
|
||||||
"ignore": "^5.2.4",
|
"ignore": "^5.2.4",
|
||||||
@ -13489,13 +13490,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
|
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.17.0.tgz",
|
||||||
"integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==",
|
"integrity": "sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"@typescript-eslint/visitor-keys": "6.16.0"
|
"@typescript-eslint/visitor-keys": "6.17.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^16.0.0 || >=18.0.0"
|
"node": "^16.0.0 || >=18.0.0"
|
||||||
@ -13506,13 +13507,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": {
|
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.17.0.tgz",
|
||||||
"integrity": "sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==",
|
"integrity": "sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/typescript-estree": "6.16.0",
|
"@typescript-eslint/typescript-estree": "6.17.0",
|
||||||
"@typescript-eslint/utils": "6.16.0",
|
"@typescript-eslint/utils": "6.17.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"ts-api-utils": "^1.0.1"
|
"ts-api-utils": "^1.0.1"
|
||||||
},
|
},
|
||||||
@ -13533,9 +13534,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
|
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.17.0.tgz",
|
||||||
"integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==",
|
"integrity": "sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^16.0.0 || >=18.0.0"
|
"node": "^16.0.0 || >=18.0.0"
|
||||||
@ -13546,13 +13547,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.17.0.tgz",
|
||||||
"integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==",
|
"integrity": "sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"@typescript-eslint/visitor-keys": "6.16.0",
|
"@typescript-eslint/visitor-keys": "6.17.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"globby": "^11.1.0",
|
"globby": "^11.1.0",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
@ -13574,17 +13575,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
|
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.17.0.tgz",
|
||||||
"integrity": "sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==",
|
"integrity": "sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.4.0",
|
"@eslint-community/eslint-utils": "^4.4.0",
|
||||||
"@types/json-schema": "^7.0.12",
|
"@types/json-schema": "^7.0.12",
|
||||||
"@types/semver": "^7.5.0",
|
"@types/semver": "^7.5.0",
|
||||||
"@typescript-eslint/scope-manager": "6.16.0",
|
"@typescript-eslint/scope-manager": "6.17.0",
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"@typescript-eslint/typescript-estree": "6.16.0",
|
"@typescript-eslint/typescript-estree": "6.17.0",
|
||||||
"semver": "^7.5.4"
|
"semver": "^7.5.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -13599,12 +13600,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
|
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.17.0.tgz",
|
||||||
"integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==",
|
"integrity": "sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"eslint-visitor-keys": "^3.4.1"
|
"eslint-visitor-keys": "^3.4.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -13707,15 +13708,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser": {
|
"node_modules/@typescript-eslint/parser": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.17.0.tgz",
|
||||||
"integrity": "sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==",
|
"integrity": "sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "6.16.0",
|
"@typescript-eslint/scope-manager": "6.17.0",
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"@typescript-eslint/typescript-estree": "6.16.0",
|
"@typescript-eslint/typescript-estree": "6.17.0",
|
||||||
"@typescript-eslint/visitor-keys": "6.16.0",
|
"@typescript-eslint/visitor-keys": "6.17.0",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -13735,13 +13736,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
|
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.17.0.tgz",
|
||||||
"integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==",
|
"integrity": "sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"@typescript-eslint/visitor-keys": "6.16.0"
|
"@typescript-eslint/visitor-keys": "6.17.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^16.0.0 || >=18.0.0"
|
"node": "^16.0.0 || >=18.0.0"
|
||||||
@ -13752,9 +13753,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
|
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.17.0.tgz",
|
||||||
"integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==",
|
"integrity": "sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^16.0.0 || >=18.0.0"
|
"node": "^16.0.0 || >=18.0.0"
|
||||||
@ -13765,13 +13766,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.17.0.tgz",
|
||||||
"integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==",
|
"integrity": "sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"@typescript-eslint/visitor-keys": "6.16.0",
|
"@typescript-eslint/visitor-keys": "6.17.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"globby": "^11.1.0",
|
"globby": "^11.1.0",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
@ -13793,12 +13794,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
|
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
|
||||||
"version": "6.16.0",
|
"version": "6.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.17.0.tgz",
|
||||||
"integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==",
|
"integrity": "sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "6.16.0",
|
"@typescript-eslint/types": "6.17.0",
|
||||||
"eslint-visitor-keys": "^3.4.1"
|
"eslint-visitor-keys": "^3.4.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -19203,9 +19204,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron": {
|
"node_modules/electron": {
|
||||||
"version": "27.2.0",
|
"version": "28.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/electron/-/electron-27.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/electron/-/electron-28.1.0.tgz",
|
||||||
"integrity": "sha512-no/iMICVLI/5G0IqgKFbB89HDN88DWwKeRO+dPfJPkpJISdEX8Cx/sMEOFuuRa4VNInNe5CKCqRWExK5z3AdcQ==",
|
"integrity": "sha512-82Y7o4PSWPn1o/aVwYPsgmBw6Gyf2lVHpaBu3Ef8LrLWXxytg7ZRZr/RtDqEMOzQp3+mcuy3huH84MyjdmP50Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -20200,9 +20201,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-tailwindcss": {
|
"node_modules/eslint-plugin-tailwindcss": {
|
||||||
"version": "3.13.0",
|
"version": "3.13.1",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.13.1.tgz",
|
||||||
"integrity": "sha512-Fcep4KDRLWaK3KmkQbdyKHG0P4GdXFmXdDaweTIPcgOP60OOuWFbh1++dufRT28Q4zpKTKaHwTsXPJ4O/EjU2Q==",
|
"integrity": "sha512-2Nlgr9doO6vFAG9w4iGU0sspWXuzypfng10HTF+dFS2NterhweWtgdRvf/f7aaoOUUxVZM8wMIXzazrZ7CxyeA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fast-glob": "^3.2.5",
|
"fast-glob": "^3.2.5",
|
||||||
@ -26776,6 +26777,11 @@
|
|||||||
"node >= 0.2.0"
|
"node >= 0.2.0"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/jsqr": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A=="
|
||||||
|
},
|
||||||
"node_modules/jszip": {
|
"node_modules/jszip": {
|
||||||
"version": "3.10.1",
|
"version": "3.10.1",
|
||||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
|
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
|
||||||
@ -32998,6 +33004,14 @@
|
|||||||
],
|
],
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/qrcode-parser": {
|
||||||
|
"version": "2.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/qrcode-parser/-/qrcode-parser-2.1.3.tgz",
|
||||||
|
"integrity": "sha512-tyakoHUQXCjH1+RGiqxH3/6XqbQuXuSaW0CkUp1AlYT0+XA4ndG7bxxyyWpdnr0Z2Vuv0GRwgKSq6sOzNiQfog==",
|
||||||
|
"dependencies": {
|
||||||
|
"jsqr": "^1.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/qrious": {
|
"node_modules/qrious": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/qrious/-/qrious-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/qrious/-/qrious-4.0.2.tgz",
|
||||||
|
@ -78,8 +78,8 @@
|
|||||||
"@types/react": "16.14.54",
|
"@types/react": "16.14.54",
|
||||||
"@types/retry": "0.12.2",
|
"@types/retry": "0.12.2",
|
||||||
"@types/zxcvbn": "4.4.4",
|
"@types/zxcvbn": "4.4.4",
|
||||||
"@typescript-eslint/eslint-plugin": "6.16.0",
|
"@typescript-eslint/eslint-plugin": "6.17.0",
|
||||||
"@typescript-eslint/parser": "6.16.0",
|
"@typescript-eslint/parser": "6.17.0",
|
||||||
"@webcomponents/custom-elements": "1.6.0",
|
"@webcomponents/custom-elements": "1.6.0",
|
||||||
"autoprefixer": "10.4.16",
|
"autoprefixer": "10.4.16",
|
||||||
"base64-loader": "1.0.0",
|
"base64-loader": "1.0.0",
|
||||||
@ -90,7 +90,7 @@
|
|||||||
"copy-webpack-plugin": "11.0.0",
|
"copy-webpack-plugin": "11.0.0",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"css-loader": "6.8.1",
|
"css-loader": "6.8.1",
|
||||||
"electron": "27.2.0",
|
"electron": "28.1.0",
|
||||||
"electron-builder": "23.6.0",
|
"electron-builder": "23.6.0",
|
||||||
"electron-log": "5.0.1",
|
"electron-log": "5.0.1",
|
||||||
"electron-reload": "2.0.0-alpha.1",
|
"electron-reload": "2.0.0-alpha.1",
|
||||||
@ -103,7 +103,7 @@
|
|||||||
"eslint-plugin-rxjs": "5.0.3",
|
"eslint-plugin-rxjs": "5.0.3",
|
||||||
"eslint-plugin-rxjs-angular": "2.0.1",
|
"eslint-plugin-rxjs-angular": "2.0.1",
|
||||||
"eslint-plugin-storybook": "0.6.15",
|
"eslint-plugin-storybook": "0.6.15",
|
||||||
"eslint-plugin-tailwindcss": "3.13.0",
|
"eslint-plugin-tailwindcss": "3.13.1",
|
||||||
"gulp": "4.0.2",
|
"gulp": "4.0.2",
|
||||||
"gulp-filter": "9.0.1",
|
"gulp-filter": "9.0.1",
|
||||||
"gulp-if": "3.0.0",
|
"gulp-if": "3.0.0",
|
||||||
@ -197,6 +197,7 @@
|
|||||||
"patch-package": "8.0.0",
|
"patch-package": "8.0.0",
|
||||||
"popper.js": "1.16.1",
|
"popper.js": "1.16.1",
|
||||||
"proper-lockfile": "4.1.2",
|
"proper-lockfile": "4.1.2",
|
||||||
|
"qrcode-parser": "^2.1.3",
|
||||||
"qrious": "4.0.2",
|
"qrious": "4.0.2",
|
||||||
"rxjs": "7.8.1",
|
"rxjs": "7.8.1",
|
||||||
"tabbable": "6.2.0",
|
"tabbable": "6.2.0",
|
||||||
|
Loading…
Reference in New Issue
Block a user