mirror of
https://github.com/bitwarden/browser
synced 2025-12-13 23:03:32 +00:00
Merge branch 'master' into ac/ac-1139/deprecate-custom-collection-perm
This commit is contained in:
@@ -22,3 +22,6 @@
|
|||||||
193434461dbd9c48fe5dcbad95693470aec422ac
|
193434461dbd9c48fe5dcbad95693470aec422ac
|
||||||
# Jslib: Monorepository https://github.com/bitwarden/clients/pull/2824/commits/d7492e3cf320410e74ebd0e0675ab994e64bd01a
|
# Jslib: Monorepository https://github.com/bitwarden/clients/pull/2824/commits/d7492e3cf320410e74ebd0e0675ab994e64bd01a
|
||||||
d7492e3cf320410e74ebd0e0675ab994e64bd01a
|
d7492e3cf320410e74ebd0e0675ab994e64bd01a
|
||||||
|
|
||||||
|
# All Clients: Apply Prettier https://github.com/bitwarden/clients/pull/7014
|
||||||
|
28de9439beb87133c8683434df952a0c0be94100
|
||||||
|
|||||||
8
.github/whitelist-capital-letters.txt
vendored
8
.github/whitelist-capital-letters.txt
vendored
@@ -40,14 +40,6 @@
|
|||||||
./apps/browser/README.md
|
./apps/browser/README.md
|
||||||
./apps/browser/store/windows/AppxManifest.xml
|
./apps/browser/store/windows/AppxManifest.xml
|
||||||
./apps/browser/src/background/nativeMessaging.background.ts
|
./apps/browser/src/background/nativeMessaging.background.ts
|
||||||
./apps/browser/src/background/models/addLoginRuntimeMessage.ts
|
|
||||||
./apps/browser/src/background/models/addChangePasswordQueueMessage.ts
|
|
||||||
./apps/browser/src/background/models/addLoginQueueMessage.ts
|
|
||||||
./apps/browser/src/background/models/changePasswordRuntimeMessage.ts
|
|
||||||
./apps/browser/src/background/models/notificationQueueMessage.ts
|
|
||||||
./apps/browser/src/background/models/notificationQueueMessageType.ts
|
|
||||||
./apps/browser/src/background/models/lockedVaultPendingNotificationsItem.ts
|
|
||||||
./apps/browser/src/background/webRequest.background.ts
|
|
||||||
./apps/browser/src/popup/services/debounceNavigationService.ts
|
./apps/browser/src/popup/services/debounceNavigationService.ts
|
||||||
./apps/browser/src/models/browserComponentState.ts
|
./apps/browser/src/models/browserComponentState.ts
|
||||||
./apps/browser/src/models/browserSendComponentState.ts
|
./apps/browser/src/models/browserSendComponentState.ts
|
||||||
|
|||||||
6
.github/workflows/build-browser.yml
vendored
6
.github/workflows/build-browser.yml
vendored
@@ -136,16 +136,10 @@ jobs:
|
|||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: ${{ env._NODE_VERSION }}
|
node-version: ${{ env._NODE_VERSION }}
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Print environment
|
- name: Print environment
|
||||||
run: |
|
run: |
|
||||||
node --version
|
node --version
|
||||||
npm --version
|
npm --version
|
||||||
node-gyp --version
|
|
||||||
|
|
||||||
- name: Build sources for reviewers
|
- name: Build sources for reviewers
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
10
.github/workflows/build-cli.yml
vendored
10
.github/workflows/build-cli.yml
vendored
@@ -104,11 +104,6 @@ jobs:
|
|||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: ${{ env._NODE_VERSION }}
|
node-version: ${{ env._NODE_VERSION }}
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
run: npm ci
|
run: npm ci
|
||||||
working-directory: ./
|
working-directory: ./
|
||||||
@@ -179,11 +174,6 @@ jobs:
|
|||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
node-version: ${{ env._NODE_VERSION }}
|
node-version: ${{ env._NODE_VERSION }}
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Get pkg-fetch
|
- name: Get pkg-fetch
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
30
.github/workflows/build-desktop.yml
vendored
30
.github/workflows/build-desktop.yml
vendored
@@ -162,11 +162,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Set up environment
|
- name: Set up environment
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
@@ -279,11 +274,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Install AST
|
- name: Install AST
|
||||||
run: dotnet tool install --global AzureSignTool --version 4.0.1
|
run: dotnet tool install --global AzureSignTool --version 4.0.1
|
||||||
|
|
||||||
@@ -493,11 +483,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Rust
|
- name: Rust
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: rustup target install aarch64-apple-darwin
|
run: rustup target install aarch64-apple-darwin
|
||||||
@@ -646,11 +631,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Rust
|
- name: Rust
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: rustup target install aarch64-apple-darwin
|
run: rustup target install aarch64-apple-darwin
|
||||||
@@ -844,11 +824,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Rust
|
- name: Rust
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: rustup target install aarch64-apple-darwin
|
run: rustup target install aarch64-apple-darwin
|
||||||
@@ -1034,11 +1009,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Print environment
|
- name: Print environment
|
||||||
run: |
|
run: |
|
||||||
node --version
|
node --version
|
||||||
|
|||||||
18
.github/workflows/deploy-eu-qa-web.yml
vendored
18
.github/workflows/deploy-eu-qa-web.yml
vendored
@@ -11,6 +11,21 @@ on:
|
|||||||
default: master
|
default: master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
notify-start:
|
||||||
|
name: Notify Slack with start message
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: always()
|
||||||
|
steps:
|
||||||
|
- uses: bitwarden/gh-actions/report-deployment-status-to-slack@main
|
||||||
|
with:
|
||||||
|
project: Web
|
||||||
|
environment: EU QA Cloud
|
||||||
|
tag: ${{ github.ref_name }}
|
||||||
|
slack-channel: team-eng-qa-devops
|
||||||
|
event: 'start'
|
||||||
|
url: https://github.com/bitwarden/clients/actions/runs/${{ github.run_id }}
|
||||||
|
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||||
|
|
||||||
azure-deploy:
|
azure-deploy:
|
||||||
name: Deploy to Azure
|
name: Deploy to Azure
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
@@ -71,5 +86,6 @@ jobs:
|
|||||||
environment: EU QA Cloud
|
environment: EU QA Cloud
|
||||||
tag: ${{ github.event.inputs.tag }}
|
tag: ${{ github.event.inputs.tag }}
|
||||||
slack-channel: team-eng-qa-devops
|
slack-channel: team-eng-qa-devops
|
||||||
failure: ${{ needs.azure-deploy.result == 'failure' }}
|
event: ${{ needs.azure-deploy.result }}
|
||||||
|
url: https://github.com/bitwarden/devops/actions/runs/${{ github.run_id }}
|
||||||
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||||
|
|||||||
18
.github/workflows/deploy-non-prod-web.yml
vendored
18
.github/workflows/deploy-non-prod-web.yml
vendored
@@ -57,6 +57,21 @@ jobs:
|
|||||||
echo "environment-artifact=web-*-cloud-COMMERCIAL.zip" >> $GITHUB_OUTPUT
|
echo "environment-artifact=web-*-cloud-COMMERCIAL.zip" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
notify-start:
|
||||||
|
name: Notify Slack with start message
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: always()
|
||||||
|
steps:
|
||||||
|
- uses: bitwarden/gh-actions/report-deployment-status-to-slack@main
|
||||||
|
with:
|
||||||
|
project: Web
|
||||||
|
environment: US ${{ inputs.environment }} Cloud
|
||||||
|
tag: ${{ github.ref_name }}
|
||||||
|
slack-channel: team-eng-qa-devops
|
||||||
|
event: 'start'
|
||||||
|
url: https://github.com/bitwarden/clients/actions/runs/${{ github.run_id }}
|
||||||
|
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||||
|
|
||||||
artifact-check:
|
artifact-check:
|
||||||
name: Check if Web artifact is present
|
name: Check if Web artifact is present
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
@@ -253,5 +268,6 @@ jobs:
|
|||||||
environment: US ${{ inputs.environment }} Cloud
|
environment: US ${{ inputs.environment }} Cloud
|
||||||
tag: ${{ github.ref_name }}
|
tag: ${{ github.ref_name }}
|
||||||
slack-channel: team-eng-qa-devops
|
slack-channel: team-eng-qa-devops
|
||||||
failure: ${{ needs.cfpages-deploy.result == 'failure' }}
|
event: ${{ needs.cfpages-deploy.result }}
|
||||||
|
url: https://github.com/bitwarden/clients/actions/runs/${{ github.run_id }}
|
||||||
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||||
|
|||||||
25
.github/workflows/release-desktop-beta.yml
vendored
25
.github/workflows/release-desktop-beta.yml
vendored
@@ -138,11 +138,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Set up environment
|
- name: Set up environment
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
@@ -235,11 +230,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Install AST
|
- name: Install AST
|
||||||
run: dotnet tool install --global AzureSignTool --version 4.0.1
|
run: dotnet tool install --global AzureSignTool --version 4.0.1
|
||||||
|
|
||||||
@@ -431,11 +421,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Print environment
|
- name: Print environment
|
||||||
run: |
|
run: |
|
||||||
node --version
|
node --version
|
||||||
@@ -561,11 +546,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Print environment
|
- name: Print environment
|
||||||
run: |
|
run: |
|
||||||
node --version
|
node --version
|
||||||
@@ -764,11 +744,6 @@ jobs:
|
|||||||
- name: Set Node options
|
- name: Set Node options
|
||||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install node-gyp
|
|
||||||
run: |
|
|
||||||
npm install -g node-gyp
|
|
||||||
node-gyp install $(node -v)
|
|
||||||
|
|
||||||
- name: Print environment
|
- name: Print environment
|
||||||
run: |
|
run: |
|
||||||
node --version
|
node --version
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ const decorator = componentWrapperDecorator(
|
|||||||
},
|
},
|
||||||
({ globals }) => {
|
({ globals }) => {
|
||||||
return { theme: `${globals["theme"]}` };
|
return { theme: `${globals["theme"]}` };
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const preview: Preview = {
|
const preview: Preview = {
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
const child = require("child_process");
|
const child = require("child_process");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
|
|
||||||
const del = require("del");
|
const { rimraf } = require("rimraf");
|
||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
const filter = require("gulp-filter");
|
|
||||||
const gulpif = require("gulp-if");
|
const gulpif = require("gulp-if");
|
||||||
const jeditor = require("gulp-json-editor");
|
const jeditor = require("gulp-json-editor");
|
||||||
const replace = require("gulp-replace");
|
const replace = require("gulp-replace");
|
||||||
const zip = require("gulp-zip");
|
|
||||||
|
|
||||||
const manifest = require("./src/manifest.json");
|
const manifest = require("./src/manifest.json");
|
||||||
|
|
||||||
@@ -47,7 +45,10 @@ function distFileName(browserName, ext) {
|
|||||||
return `dist-${browserName}${buildString()}.${ext}`;
|
return `dist-${browserName}${buildString()}.${ext}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function dist(browserName, manifest) {
|
async function dist(browserName, manifest) {
|
||||||
|
const { default: zip } = await import("gulp-zip");
|
||||||
|
const { default: filter } = await import("gulp-filter");
|
||||||
|
|
||||||
return gulp
|
return gulp
|
||||||
.src(paths.build + "**/*")
|
.src(paths.build + "**/*")
|
||||||
.pipe(filter(["**"].concat(filters.fonts).concat(filters.safari)))
|
.pipe(filter(["**"].concat(filters.fonts).concat(filters.safari)))
|
||||||
@@ -130,7 +131,7 @@ function distSafariApp(cb, subBuildPath) {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
return del([buildPath + "**/*"])
|
return rimraf([buildPath + "**/*"], { glob: true })
|
||||||
.then(() => safariCopyAssets(paths.safari + "**/*", buildPath))
|
.then(() => safariCopyAssets(paths.safari + "**/*", buildPath))
|
||||||
.then(() => safariCopyBuild(paths.build + "**/*", buildPath + "safari/app"))
|
.then(() => safariCopyBuild(paths.build + "**/*", buildPath + "safari/app"))
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@@ -144,7 +145,9 @@ function distSafariApp(cb, subBuildPath) {
|
|||||||
stdOutProc(proc);
|
stdOutProc(proc);
|
||||||
return new Promise((resolve) => proc.on("close", resolve));
|
return new Promise((resolve) => proc.on("close", resolve));
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(async () => {
|
||||||
|
const { default: filter } = await import("gulp-filter");
|
||||||
|
|
||||||
const libs = fs
|
const libs = fs
|
||||||
.readdirSync(builtAppexFrameworkPath)
|
.readdirSync(builtAppexFrameworkPath)
|
||||||
.filter((p) => p.endsWith(".dylib"))
|
.filter((p) => p.endsWith(".dylib"))
|
||||||
@@ -168,7 +171,7 @@ function distSafariApp(cb, subBuildPath) {
|
|||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
return cb;
|
return cb;
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,7 +182,7 @@ function safariCopyAssets(source, dest) {
|
|||||||
.on("error", reject)
|
.on("error", reject)
|
||||||
.pipe(gulpif("safari/Info.plist", replace("0.0.1", manifest.version)))
|
.pipe(gulpif("safari/Info.plist", replace("0.0.1", manifest.version)))
|
||||||
.pipe(
|
.pipe(
|
||||||
gulpif("safari/Info.plist", replace("0.0.2", process.env.BUILD_NUMBER || manifest.version))
|
gulpif("safari/Info.plist", replace("0.0.2", process.env.BUILD_NUMBER || manifest.version)),
|
||||||
)
|
)
|
||||||
.pipe(gulpif("desktop.xcodeproj/project.pbxproj", replace("../../../build", "../safari/app")))
|
.pipe(gulpif("desktop.xcodeproj/project.pbxproj", replace("../../../build", "../safari/app")))
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(gulp.dest(dest))
|
||||||
@@ -187,7 +190,9 @@ function safariCopyAssets(source, dest) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function safariCopyBuild(source, dest) {
|
async function safariCopyBuild(source, dest) {
|
||||||
|
const { default: filter } = await import("gulp-filter");
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
gulp
|
gulp
|
||||||
.src(source)
|
.src(source)
|
||||||
@@ -203,8 +208,8 @@ function safariCopyBuild(source, dest) {
|
|||||||
delete manifest.optional_permissions;
|
delete manifest.optional_permissions;
|
||||||
manifest.permissions.push("nativeMessaging");
|
manifest.permissions.push("nativeMessaging");
|
||||||
return manifest;
|
return manifest;
|
||||||
})
|
}),
|
||||||
)
|
),
|
||||||
)
|
)
|
||||||
.pipe(gulp.dest(dest))
|
.pipe(gulp.dest(dest))
|
||||||
.on("end", resolve);
|
.on("end", resolve);
|
||||||
@@ -216,7 +221,10 @@ function stdOutProc(proc) {
|
|||||||
proc.stderr.on("data", (data) => console.error(data.toString()));
|
proc.stderr.on("data", (data) => console.error(data.toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
function ciCoverage(cb) {
|
async function ciCoverage(cb) {
|
||||||
|
const { default: zip } = await import("gulp-zip");
|
||||||
|
const { default: filter } = await import("gulp-filter");
|
||||||
|
|
||||||
return gulp
|
return gulp
|
||||||
.src(paths.coverage + "**/*")
|
.src(paths.coverage + "**/*")
|
||||||
.pipe(filter(["**", "!coverage/coverage*.zip"]))
|
.pipe(filter(["**", "!coverage/coverage*.zip"]))
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Fayl parolunu təsdiqlə"
|
"message": "Fayl parolunu təsdiqlə"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Keçid açarı"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Keçid açarı kopyalanmır"
|
"message": "Keçid açarı kopyalanmır"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Пацвердзіць пароль файла"
|
"message": "Пацвердзіць пароль файла"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2264,7 +2264,7 @@
|
|||||||
"message": "Как се ползва автоматичното попълване"
|
"message": "Как се ползва автоматичното попълване"
|
||||||
},
|
},
|
||||||
"autofillSelectInfoWithCommand": {
|
"autofillSelectInfoWithCommand": {
|
||||||
"message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
|
"message": "Изберете елемент на този екран, използвайте комбинацията $COMMAND$ или разгледайте други опции в настройките.",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"command": {
|
"command": {
|
||||||
"content": "$1",
|
"content": "$1",
|
||||||
@@ -2273,7 +2273,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autofillSelectInfoWithoutCommand": {
|
"autofillSelectInfoWithoutCommand": {
|
||||||
"message": "Select an item from this screen, or explore other options in settings."
|
"message": "Изберете елемент на този екран или разгледайте други опции в настройките."
|
||||||
},
|
},
|
||||||
"gotIt": {
|
"gotIt": {
|
||||||
"message": "Разбрано"
|
"message": "Разбрано"
|
||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Потвърждаване на паролата на файла"
|
"message": "Потвърждаване на паролата на файла"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Секретен ключ"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Секретният ключ няма да бъде копиран"
|
"message": "Секретният ключ няма да бъде копиран"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2264,7 +2264,7 @@
|
|||||||
"message": "Com emplenar automàticament"
|
"message": "Com emplenar automàticament"
|
||||||
},
|
},
|
||||||
"autofillSelectInfoWithCommand": {
|
"autofillSelectInfoWithCommand": {
|
||||||
"message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
|
"message": "Seleccioneu un element d'aquesta pantalla, utilitzeu la drecera $COMMAND$ o exploreu altres opcions a la configuració.",
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"command": {
|
"command": {
|
||||||
"content": "$1",
|
"content": "$1",
|
||||||
@@ -2273,7 +2273,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autofillSelectInfoWithoutCommand": {
|
"autofillSelectInfoWithoutCommand": {
|
||||||
"message": "Select an item from this screen, or explore other options in settings."
|
"message": "Seleccioneu un element d'aquesta pantalla, o exploreu altres opcions a la configuració."
|
||||||
},
|
},
|
||||||
"gotIt": {
|
"gotIt": {
|
||||||
"message": "D'acord"
|
"message": "D'acord"
|
||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirma la contrasenya del fitxer"
|
"message": "Confirma la contrasenya del fitxer"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Clau de pas"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "La clau de pas no es copiarà"
|
"message": "La clau de pas no es copiarà"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Potvrzení hesla souboru"
|
"message": "Potvrzení hesla souboru"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Přístupový klíč"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Přístupový klíč nebude zkopírován"
|
"message": "Přístupový klíč nebude zkopírován"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Bekræft filadgangskode"
|
"message": "Bekræft filadgangskode"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Adgangsnøgle"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Adgangsnøglen kopieres ikke"
|
"message": "Adgangsnøglen kopieres ikke"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Dateipasswort bestätigen"
|
"message": "Dateipasswort bestätigen"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey wird nicht kopiert"
|
"message": "Passkey wird nicht kopiert"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Επιβεβαίωση κωδικού πρόσβασης αρχείου"
|
"message": "Επιβεβαίωση κωδικού πρόσβασης αρχείου"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirmar contraseña del archivo"
|
"message": "Confirmar contraseña del archivo"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "La clave de acceso no se copiará"
|
"message": "La clave de acceso no se copiará"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Pääsukoodi ei kopeerita"
|
"message": "Pääsukoodi ei kopeerita"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "کلید عبور کپی نمیشود"
|
"message": "کلید عبور کپی نمیشود"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -658,10 +658,10 @@
|
|||||||
"message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
|
"message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
|
||||||
},
|
},
|
||||||
"enableUsePasskeys": {
|
"enableUsePasskeys": {
|
||||||
"message": "Ask to save and use passkeys"
|
"message": "Pyydä tallentamaan ja käyttämään salausavaimia"
|
||||||
},
|
},
|
||||||
"usePasskeysDesc": {
|
"usePasskeysDesc": {
|
||||||
"message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
|
"message": "Pyydä tallentamaan uusia salausavaimia tai kirjaudu sisään holviisi tallennetuilla salausavaimilla. Koskee kaikkia sisäänkirjautuneita tilejä."
|
||||||
},
|
},
|
||||||
"notificationChangeDesc": {
|
"notificationChangeDesc": {
|
||||||
"message": "Haluatko päivittää salasanan Bitwardeniin?"
|
"message": "Haluatko päivittää salasanan Bitwardeniin?"
|
||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Vahvista tiedoston salasana"
|
"message": "Vahvista tiedoston salasana"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Suojausavain"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Suojausavainta ei kopioida"
|
"message": "Suojausavainta ei kopioida"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirmez le mot de passe du fichier"
|
"message": "Confirmez le mot de passe du fichier"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Clé d'accès"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "La clé d'accès ne sera pas copiée"
|
"message": "La clé d'accès ne sera pas copiée"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Potvrdi lozinku datoteke"
|
"message": "Potvrdi lozinku datoteke"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Pristupni ključ neće biti kopiran"
|
"message": "Pristupni ključ neće biti kopiran"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -658,10 +658,10 @@
|
|||||||
"message": "A bejelentkezési jelszó frissítésének kérése, ha változást lett érzékelve egy webhelyen. Minden bejelentkezett fiókra vonatkozik."
|
"message": "A bejelentkezési jelszó frissítésének kérése, ha változást lett érzékelve egy webhelyen. Minden bejelentkezett fiókra vonatkozik."
|
||||||
},
|
},
|
||||||
"enableUsePasskeys": {
|
"enableUsePasskeys": {
|
||||||
"message": "Kérés a jelszó mentésére és használatára"
|
"message": "Kérés a jhozzáférési kulcs mentésére és használatára"
|
||||||
},
|
},
|
||||||
"usePasskeysDesc": {
|
"usePasskeysDesc": {
|
||||||
"message": "Kérés az új jelszavak mentésére vagy bejelentkezés a széfben tárolt jelszavakkal. Minden bejelentkezett fiókra vonatkozik."
|
"message": "Kérés az új hozzáféréi kulcsok mentésére vagy bejelentkezés a széfben tárolt hozzáférési kulcsokkal. Minden bejelentkezett fiókra vonatkozik."
|
||||||
},
|
},
|
||||||
"notificationChangeDesc": {
|
"notificationChangeDesc": {
|
||||||
"message": "Frissítésre kerüljön a jelszó a Bitwardenben?"
|
"message": "Frissítésre kerüljön a jelszó a Bitwardenben?"
|
||||||
@@ -1021,14 +1021,14 @@
|
|||||||
"message": "A környezeti webcímek mentésre kerültek."
|
"message": "A környezeti webcímek mentésre kerültek."
|
||||||
},
|
},
|
||||||
"showAutoFillMenuOnFormFields": {
|
"showAutoFillMenuOnFormFields": {
|
||||||
"message": "Show auto-fill menu on form fields",
|
"message": "Automatikus kitöltés menü megjelenítése az űrlapmezőkön",
|
||||||
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
|
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
|
||||||
},
|
},
|
||||||
"showAutoFillMenuOnFormFieldsDescAlt": {
|
"showAutoFillMenuOnFormFieldsDescAlt": {
|
||||||
"message": "Minden bejelentkezett fiókra vonatkozik."
|
"message": "Minden bejelentkezett fiókra vonatkozik."
|
||||||
},
|
},
|
||||||
"autofillOverlayVisibilityOff": {
|
"autofillOverlayVisibilityOff": {
|
||||||
"message": "Off",
|
"message": "Ki",
|
||||||
"description": "Overlay setting select option for disabling autofill overlay"
|
"description": "Overlay setting select option for disabling autofill overlay"
|
||||||
},
|
},
|
||||||
"autofillOverlayVisibilityOnFieldFocus": {
|
"autofillOverlayVisibilityOnFieldFocus": {
|
||||||
@@ -1036,7 +1036,7 @@
|
|||||||
"description": "Overlay appearance select option for showing the field on focus of the input element"
|
"description": "Overlay appearance select option for showing the field on focus of the input element"
|
||||||
},
|
},
|
||||||
"autofillOverlayVisibilityOnButtonClick": {
|
"autofillOverlayVisibilityOnButtonClick": {
|
||||||
"message": "When auto-fill icon is selected",
|
"message": "Ha az automatikus kitöltés menü került kiválasztásra",
|
||||||
"description": "Overlay appearance select option for showing the field on click of the overlay icon"
|
"description": "Overlay appearance select option for showing the field on click of the overlay icon"
|
||||||
},
|
},
|
||||||
"enableAutoFillOnPageLoad": {
|
"enableAutoFillOnPageLoad": {
|
||||||
@@ -2503,7 +2503,7 @@
|
|||||||
"description": "Screen reader and tool tip label for the overlay button"
|
"description": "Screen reader and tool tip label for the overlay button"
|
||||||
},
|
},
|
||||||
"bitwardenVault": {
|
"bitwardenVault": {
|
||||||
"message": "Bitwarden auto-fill menu",
|
"message": "Bitwarden automatikus kitöltési menü",
|
||||||
"description": "Page title in overlay"
|
"description": "Page title in overlay"
|
||||||
},
|
},
|
||||||
"unlockYourAccountToViewMatchingLogins": {
|
"unlockYourAccountToViewMatchingLogins": {
|
||||||
@@ -2511,27 +2511,27 @@
|
|||||||
"description": "Text to display in overlay when the account is locked."
|
"description": "Text to display in overlay when the account is locked."
|
||||||
},
|
},
|
||||||
"unlockAccount": {
|
"unlockAccount": {
|
||||||
"message": "Unlock account",
|
"message": "Fiók feloldása",
|
||||||
"description": "Button text to display in overlay when the account is locked."
|
"description": "Button text to display in overlay when the account is locked."
|
||||||
},
|
},
|
||||||
"fillCredentialsFor": {
|
"fillCredentialsFor": {
|
||||||
"message": "Fill credentials for",
|
"message": "Töltse kia hitelesítő adatokat",
|
||||||
"description": "Screen reader text for when overlay item is in focused"
|
"description": "Screen reader text for when overlay item is in focused"
|
||||||
},
|
},
|
||||||
"partialUsername": {
|
"partialUsername": {
|
||||||
"message": "Partial username",
|
"message": "Részleges felhasználónév",
|
||||||
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
|
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
|
||||||
},
|
},
|
||||||
"noItemsToShow": {
|
"noItemsToShow": {
|
||||||
"message": "No items to show",
|
"message": "Nincsenek megjeleníthető elemek",
|
||||||
"description": "Text to show in overlay if there are no matching items"
|
"description": "Text to show in overlay if there are no matching items"
|
||||||
},
|
},
|
||||||
"newItem": {
|
"newItem": {
|
||||||
"message": "New item",
|
"message": "Új elem",
|
||||||
"description": "Button text to display in overlay when there are no matching items"
|
"description": "Button text to display in overlay when there are no matching items"
|
||||||
},
|
},
|
||||||
"addNewVaultItem": {
|
"addNewVaultItem": {
|
||||||
"message": "Add new vault item",
|
"message": "Elem hozzáadása",
|
||||||
"description": "Screen reader text (aria-label) for new item button in overlay"
|
"description": "Screen reader text (aria-label) for new item button in overlay"
|
||||||
},
|
},
|
||||||
"bitwardenOverlayMenuAvailable": {
|
"bitwardenOverlayMenuAvailable": {
|
||||||
@@ -2551,21 +2551,21 @@
|
|||||||
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
||||||
},
|
},
|
||||||
"turnOn": {
|
"turnOn": {
|
||||||
"message": "Turn on"
|
"message": "Bekapcsolás"
|
||||||
},
|
},
|
||||||
"ignore": {
|
"ignore": {
|
||||||
"message": "Ignore"
|
"message": "Mellőz"
|
||||||
},
|
},
|
||||||
"overrideBrowserAutoFillSettings": {
|
"overrideBrowserAutoFillSettings": {
|
||||||
"message": "Override browser auto-fill settings",
|
"message": "A böngésző automatikus kitöltési beállításainak felülbírálása",
|
||||||
"description": "Label for the setting that allows overriding the default browser autofill settings"
|
"description": "Label for the setting that allows overriding the default browser autofill settings"
|
||||||
},
|
},
|
||||||
"extensionPrivacyPermissionNotGrantedTitle": {
|
"extensionPrivacyPermissionNotGrantedTitle": {
|
||||||
"message": "Unable to override browser auto-fill",
|
"message": "Nem lehet felülbírálni a böngésző automatikus kitöltését",
|
||||||
"description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
|
"description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
|
||||||
},
|
},
|
||||||
"extensionPrivacyPermissionNotGrantedDescription": {
|
"extensionPrivacyPermissionNotGrantedDescription": {
|
||||||
"message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
|
"message": "A Bitwardennek hozzáféréssel kell rendelkeznie a bővítmény adatvédelmi engedélyéhez, hogy felülbírálhassa a böngésző automatikus kitöltési beállításait.",
|
||||||
"description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
|
"description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
|
||||||
},
|
},
|
||||||
"importData": {
|
"importData": {
|
||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Fájl jelszó megerősítés"
|
"message": "Fájl jelszó megerősítés"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Hozzáférési kulcs"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "A hozzáférési kulcs nem kerül másolásra."
|
"message": "A hozzáférési kulcs nem kerül másolásra."
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Conferma password del file"
|
"message": "Conferma password del file"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "La passkey non sarà copiata"
|
"message": "La passkey non sarà copiata"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "ファイルパスワードの確認"
|
"message": "ファイルパスワードの確認"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "パスキー"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "パスキーはコピーされません"
|
"message": "パスキーはコピーされません"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Prieigos raktas"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Apstiprināt datnes paroli"
|
"message": "Apstiprināt datnes paroli"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Piekļuves atslēga netiks ievietota starpliktuvē"
|
"message": "Piekļuves atslēga netiks ievietota starpliktuvē"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Bestandswachtwoord bevestigen"
|
"message": "Bestandswachtwoord bevestigen"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey wordt niet gekopieerd"
|
"message": "Passkey wordt niet gekopieerd"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Potwierdź hasło pliku"
|
"message": "Potwierdź hasło pliku"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey nie zostanie skopiowany"
|
"message": "Passkey nie zostanie skopiowany"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirmar a palavra-passe do ficheiro"
|
"message": "Confirmar a palavra-passe do ficheiro"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Chave de acesso"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "A chave de acesso não será copiada"
|
"message": "A chave de acesso não será copiada"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Подтвердите пароль к файлу"
|
"message": "Подтвердите пароль к файлу"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Ключ доступа"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Ключ доступа не будет скопирован"
|
"message": "Ключ доступа не будет скопирован"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Potvrdiť heslo súboru"
|
"message": "Potvrdiť heslo súboru"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Prístupový kľúč"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Prístupový kód sa neskopíruje"
|
"message": "Prístupový kód sa neskopíruje"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Потврдити лозинку датотеке"
|
"message": "Потврдити лозинку датотеке"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Приступачни кључ"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Приступачни кључ неће бити копиран"
|
"message": "Приступачни кључ неће бити копиран"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2499,7 +2499,7 @@
|
|||||||
"description": "Page title for the iframe containing the overlay button"
|
"description": "Page title for the iframe containing the overlay button"
|
||||||
},
|
},
|
||||||
"toggleBitwardenVaultOverlay": {
|
"toggleBitwardenVaultOverlay": {
|
||||||
"message": "Toggle Bitwarden auto-fill menu",
|
"message": "Bitwarden otomatik doldurma menüsünü aç/kapat",
|
||||||
"description": "Screen reader and tool tip label for the overlay button"
|
"description": "Screen reader and tool tip label for the overlay button"
|
||||||
},
|
},
|
||||||
"bitwardenVault": {
|
"bitwardenVault": {
|
||||||
@@ -2507,15 +2507,15 @@
|
|||||||
"description": "Page title in overlay"
|
"description": "Page title in overlay"
|
||||||
},
|
},
|
||||||
"unlockYourAccountToViewMatchingLogins": {
|
"unlockYourAccountToViewMatchingLogins": {
|
||||||
"message": "Eşleşen giriş bilgilerini görüntülemek için hesabınızın kilidini açın",
|
"message": "Eşleşen hesaplarınızı görmek için hesabınızın kilidini açın",
|
||||||
"description": "Text to display in overlay when the account is locked."
|
"description": "Text to display in overlay when the account is locked."
|
||||||
},
|
},
|
||||||
"unlockAccount": {
|
"unlockAccount": {
|
||||||
"message": "Hesabın kilidini açın",
|
"message": "Hesap kilidini aç",
|
||||||
"description": "Button text to display in overlay when the account is locked."
|
"description": "Button text to display in overlay when the account is locked."
|
||||||
},
|
},
|
||||||
"fillCredentialsFor": {
|
"fillCredentialsFor": {
|
||||||
"message": "Kimlik bilgilerini doldurun",
|
"message": "Bilgileri doldur",
|
||||||
"description": "Screen reader text for when overlay item is in focused"
|
"description": "Screen reader text for when overlay item is in focused"
|
||||||
},
|
},
|
||||||
"partialUsername": {
|
"partialUsername": {
|
||||||
@@ -2523,15 +2523,15 @@
|
|||||||
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
|
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
|
||||||
},
|
},
|
||||||
"noItemsToShow": {
|
"noItemsToShow": {
|
||||||
"message": "Gösterilecek öğe yok",
|
"message": "Gösterilecek kayıt yok",
|
||||||
"description": "Text to show in overlay if there are no matching items"
|
"description": "Text to show in overlay if there are no matching items"
|
||||||
},
|
},
|
||||||
"newItem": {
|
"newItem": {
|
||||||
"message": "Yeni öge",
|
"message": "Yeni kayıt",
|
||||||
"description": "Button text to display in overlay when there are no matching items"
|
"description": "Button text to display in overlay when there are no matching items"
|
||||||
},
|
},
|
||||||
"addNewVaultItem": {
|
"addNewVaultItem": {
|
||||||
"message": "Add new vault item",
|
"message": "Kasaya yeni kayıt ekle",
|
||||||
"description": "Screen reader text (aria-label) for new item button in overlay"
|
"description": "Screen reader text (aria-label) for new item button in overlay"
|
||||||
},
|
},
|
||||||
"bitwardenOverlayMenuAvailable": {
|
"bitwardenOverlayMenuAvailable": {
|
||||||
@@ -2543,7 +2543,7 @@
|
|||||||
"description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
|
"description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
|
||||||
},
|
},
|
||||||
"overrideBrowserAutofillDescription": {
|
"overrideBrowserAutofillDescription": {
|
||||||
"message": "Bu ayarı kapalı bırakmak, Bitwarden otomatik doldurma menüsü ile tarayıcınızınki arasında çakışmalara neden olabilir.",
|
"message": "Bu ayarı kapalı bırakırsanız Bitwarden otomatik doldurma menüsüyle tarayıcınızınki arasında çakışma yaşanabilir.",
|
||||||
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
||||||
},
|
},
|
||||||
"overrideBrowserAutofillPrivacyRequiredDescription": {
|
"overrideBrowserAutofillPrivacyRequiredDescription": {
|
||||||
@@ -2551,10 +2551,10 @@
|
|||||||
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
||||||
},
|
},
|
||||||
"turnOn": {
|
"turnOn": {
|
||||||
"message": "Turn on"
|
"message": "Aç"
|
||||||
},
|
},
|
||||||
"ignore": {
|
"ignore": {
|
||||||
"message": "Yoksay"
|
"message": "Yok say"
|
||||||
},
|
},
|
||||||
"overrideBrowserAutoFillSettings": {
|
"overrideBrowserAutoFillSettings": {
|
||||||
"message": "Tarayıcının otomatik doldurma ayarlarını geçersiz kıl",
|
"message": "Tarayıcının otomatik doldurma ayarlarını geçersiz kıl",
|
||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Dosya parolasını onaylayın"
|
"message": "Dosya parolasını onaylayın"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Geçiş anahtarı"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Підтвердьте пароль файлу"
|
"message": "Підтвердьте пароль файлу"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Ключ доступу"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Ключ доступу не буде скопійовано"
|
"message": "Ключ доступу не буде скопійовано"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "Confirm file password"
|
"message": "Confirm file password"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "Passkey will not be copied"
|
"message": "Passkey will not be copied"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "确认文件密码"
|
"message": "确认文件密码"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "通行密钥"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "通行密钥不会被复制"
|
"message": "通行密钥不会被复制"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2679,6 +2679,9 @@
|
|||||||
"confirmFilePassword": {
|
"confirmFilePassword": {
|
||||||
"message": "確認檔案密碼"
|
"message": "確認檔案密碼"
|
||||||
},
|
},
|
||||||
|
"typePasskey": {
|
||||||
|
"message": "Passkey"
|
||||||
|
},
|
||||||
"passkeyNotCopied": {
|
"passkeyNotCopied": {
|
||||||
"message": "密碼金鑰不會被複製"
|
"message": "密碼金鑰不會被複製"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ export type OrganizationServiceInitOptions = OrganizationServiceFactoryOptions &
|
|||||||
|
|
||||||
export function organizationServiceFactory(
|
export function organizationServiceFactory(
|
||||||
cache: { organizationService?: AbstractOrganizationService } & CachedServices,
|
cache: { organizationService?: AbstractOrganizationService } & CachedServices,
|
||||||
opts: OrganizationServiceInitOptions
|
opts: OrganizationServiceInitOptions,
|
||||||
): Promise<AbstractOrganizationService> {
|
): Promise<AbstractOrganizationService> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
"organizationService",
|
"organizationService",
|
||||||
opts,
|
opts,
|
||||||
async () => new BrowserOrganizationService(await stateServiceFactory(cache, opts))
|
async () => new BrowserOrganizationService(await stateServiceFactory(cache, opts)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export type PolicyServiceInitOptions = PolicyServiceFactoryOptions &
|
|||||||
|
|
||||||
export function policyServiceFactory(
|
export function policyServiceFactory(
|
||||||
cache: { policyService?: AbstractPolicyService } & CachedServices,
|
cache: { policyService?: AbstractPolicyService } & CachedServices,
|
||||||
opts: PolicyServiceInitOptions
|
opts: PolicyServiceInitOptions,
|
||||||
): Promise<AbstractPolicyService> {
|
): Promise<AbstractPolicyService> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
@@ -33,7 +33,7 @@ export function policyServiceFactory(
|
|||||||
async () =>
|
async () =>
|
||||||
new BrowserPolicyService(
|
new BrowserPolicyService(
|
||||||
await stateServiceFactory(cache, opts),
|
await stateServiceFactory(cache, opts),
|
||||||
await organizationServiceFactory(cache, opts)
|
await organizationServiceFactory(cache, opts),
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export class BrowserPolicyService extends PolicyService {
|
|||||||
if (activated === undefined) {
|
if (activated === undefined) {
|
||||||
this.stateService.setActivateAutoFillOnPageLoadFromPolicy(!autofillEnabled);
|
this.stateService.setActivateAutoFillOnPageLoadFromPolicy(!autofillEnabled);
|
||||||
}
|
}
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export type AccountServiceInitOptions = AccountServiceFactoryOptions &
|
|||||||
|
|
||||||
export function accountServiceFactory(
|
export function accountServiceFactory(
|
||||||
cache: { accountService?: AccountService } & CachedServices,
|
cache: { accountService?: AccountService } & CachedServices,
|
||||||
opts: AccountServiceInitOptions
|
opts: AccountServiceInitOptions,
|
||||||
): Promise<AccountService> {
|
): Promise<AccountService> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
@@ -38,7 +38,7 @@ export function accountServiceFactory(
|
|||||||
new AccountServiceImplementation(
|
new AccountServiceImplementation(
|
||||||
await messagingServiceFactory(cache, opts),
|
await messagingServiceFactory(cache, opts),
|
||||||
await logServiceFactory(cache, opts),
|
await logServiceFactory(cache, opts),
|
||||||
await globalStateProviderFactory(cache, opts)
|
await globalStateProviderFactory(cache, opts),
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ export type AuthRequestCryptoServiceInitOptions = AuthRequestCryptoServiceFactor
|
|||||||
|
|
||||||
export function authRequestCryptoServiceFactory(
|
export function authRequestCryptoServiceFactory(
|
||||||
cache: { authRequestCryptoService?: AuthRequestCryptoServiceAbstraction } & CachedServices,
|
cache: { authRequestCryptoService?: AuthRequestCryptoServiceAbstraction } & CachedServices,
|
||||||
opts: AuthRequestCryptoServiceInitOptions
|
opts: AuthRequestCryptoServiceInitOptions,
|
||||||
): Promise<AuthRequestCryptoServiceAbstraction> {
|
): Promise<AuthRequestCryptoServiceAbstraction> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
"authRequestCryptoService",
|
"authRequestCryptoService",
|
||||||
opts,
|
opts,
|
||||||
async () => new AuthRequestCryptoServiceImplementation(await cryptoServiceFactory(cache, opts))
|
async () => new AuthRequestCryptoServiceImplementation(await cryptoServiceFactory(cache, opts)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ export type AuthServiceInitOptions = AuthServiceFactoyOptions &
|
|||||||
|
|
||||||
export function authServiceFactory(
|
export function authServiceFactory(
|
||||||
cache: { authService?: AbstractAuthService } & CachedServices,
|
cache: { authService?: AbstractAuthService } & CachedServices,
|
||||||
opts: AuthServiceInitOptions
|
opts: AuthServiceInitOptions,
|
||||||
): Promise<AbstractAuthService> {
|
): Promise<AbstractAuthService> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
@@ -113,7 +113,7 @@ export function authServiceFactory(
|
|||||||
await passwordStrengthServiceFactory(cache, opts),
|
await passwordStrengthServiceFactory(cache, opts),
|
||||||
await policyServiceFactory(cache, opts),
|
await policyServiceFactory(cache, opts),
|
||||||
await deviceTrustCryptoServiceFactory(cache, opts),
|
await deviceTrustCryptoServiceFactory(cache, opts),
|
||||||
await authRequestCryptoServiceFactory(cache, opts)
|
await authRequestCryptoServiceFactory(cache, opts),
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export type DeviceTrustCryptoServiceInitOptions = DeviceTrustCryptoServiceFactor
|
|||||||
|
|
||||||
export function deviceTrustCryptoServiceFactory(
|
export function deviceTrustCryptoServiceFactory(
|
||||||
cache: { deviceTrustCryptoService?: DeviceTrustCryptoServiceAbstraction } & CachedServices,
|
cache: { deviceTrustCryptoService?: DeviceTrustCryptoServiceAbstraction } & CachedServices,
|
||||||
opts: DeviceTrustCryptoServiceInitOptions
|
opts: DeviceTrustCryptoServiceInitOptions,
|
||||||
): Promise<DeviceTrustCryptoServiceAbstraction> {
|
): Promise<DeviceTrustCryptoServiceAbstraction> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
@@ -68,7 +68,7 @@ export function deviceTrustCryptoServiceFactory(
|
|||||||
await appIdServiceFactory(cache, opts),
|
await appIdServiceFactory(cache, opts),
|
||||||
await devicesApiServiceFactory(cache, opts),
|
await devicesApiServiceFactory(cache, opts),
|
||||||
await i18nServiceFactory(cache, opts),
|
await i18nServiceFactory(cache, opts),
|
||||||
await platformUtilsServiceFactory(cache, opts)
|
await platformUtilsServiceFactory(cache, opts),
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ export type KeyConnectorServiceInitOptions = KeyConnectorServiceFactoryOptions &
|
|||||||
|
|
||||||
export function keyConnectorServiceFactory(
|
export function keyConnectorServiceFactory(
|
||||||
cache: { keyConnectorService?: AbstractKeyConnectorService } & CachedServices,
|
cache: { keyConnectorService?: AbstractKeyConnectorService } & CachedServices,
|
||||||
opts: KeyConnectorServiceInitOptions
|
opts: KeyConnectorServiceInitOptions,
|
||||||
): Promise<AbstractKeyConnectorService> {
|
): Promise<AbstractKeyConnectorService> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
@@ -65,7 +65,7 @@ export function keyConnectorServiceFactory(
|
|||||||
await logServiceFactory(cache, opts),
|
await logServiceFactory(cache, opts),
|
||||||
await organizationServiceFactory(cache, opts),
|
await organizationServiceFactory(cache, opts),
|
||||||
await cryptoFunctionServiceFactory(cache, opts),
|
await cryptoFunctionServiceFactory(cache, opts),
|
||||||
opts.keyConnectorServiceOptions.logoutCallback
|
opts.keyConnectorServiceOptions.logoutCallback,
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ export type TokenServiceInitOptions = TokenServiceFactoryOptions & StateServiceI
|
|||||||
|
|
||||||
export function tokenServiceFactory(
|
export function tokenServiceFactory(
|
||||||
cache: { tokenService?: AbstractTokenService } & CachedServices,
|
cache: { tokenService?: AbstractTokenService } & CachedServices,
|
||||||
opts: TokenServiceInitOptions
|
opts: TokenServiceInitOptions,
|
||||||
): Promise<AbstractTokenService> {
|
): Promise<AbstractTokenService> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
"tokenService",
|
"tokenService",
|
||||||
opts,
|
opts,
|
||||||
async () => new TokenService(await stateServiceFactory(cache, opts))
|
async () => new TokenService(await stateServiceFactory(cache, opts)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export type TwoFactorServiceInitOptions = TwoFactorServiceFactoryOptions &
|
|||||||
|
|
||||||
export async function twoFactorServiceFactory(
|
export async function twoFactorServiceFactory(
|
||||||
cache: { twoFactorService?: AbstractTwoFactorService } & CachedServices,
|
cache: { twoFactorService?: AbstractTwoFactorService } & CachedServices,
|
||||||
opts: TwoFactorServiceInitOptions
|
opts: TwoFactorServiceInitOptions,
|
||||||
): Promise<AbstractTwoFactorService> {
|
): Promise<AbstractTwoFactorService> {
|
||||||
const service = await factory(
|
const service = await factory(
|
||||||
cache,
|
cache,
|
||||||
@@ -32,8 +32,8 @@ export async function twoFactorServiceFactory(
|
|||||||
async () =>
|
async () =>
|
||||||
new TwoFactorService(
|
new TwoFactorService(
|
||||||
await i18nServiceFactory(cache, opts),
|
await i18nServiceFactory(cache, opts),
|
||||||
await platformUtilsServiceFactory(cache, opts)
|
await platformUtilsServiceFactory(cache, opts),
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
service.init();
|
service.init();
|
||||||
return service;
|
return service;
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ export type UserVerificationApiServiceInitOptions = UserVerificationApiServiceFa
|
|||||||
|
|
||||||
export function userVerificationApiServiceFactory(
|
export function userVerificationApiServiceFactory(
|
||||||
cache: { userVerificationApiService?: UserVerificationApiServiceAbstraction } & CachedServices,
|
cache: { userVerificationApiService?: UserVerificationApiServiceAbstraction } & CachedServices,
|
||||||
opts: UserVerificationApiServiceInitOptions
|
opts: UserVerificationApiServiceInitOptions,
|
||||||
): Promise<UserVerificationApiServiceAbstraction> {
|
): Promise<UserVerificationApiServiceAbstraction> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
"userVerificationApiService",
|
"userVerificationApiService",
|
||||||
opts,
|
opts,
|
||||||
async () => new UserVerificationApiService(await apiServiceFactory(cache, opts))
|
async () => new UserVerificationApiService(await apiServiceFactory(cache, opts)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export type UserVerificationServiceInitOptions = UserVerificationServiceFactoryO
|
|||||||
|
|
||||||
export function userVerificationServiceFactory(
|
export function userVerificationServiceFactory(
|
||||||
cache: { userVerificationService?: AbstractUserVerificationService } & CachedServices,
|
cache: { userVerificationService?: AbstractUserVerificationService } & CachedServices,
|
||||||
opts: UserVerificationServiceInitOptions
|
opts: UserVerificationServiceInitOptions,
|
||||||
): Promise<AbstractUserVerificationService> {
|
): Promise<AbstractUserVerificationService> {
|
||||||
return factory(
|
return factory(
|
||||||
cache,
|
cache,
|
||||||
@@ -45,7 +45,7 @@ export function userVerificationServiceFactory(
|
|||||||
await stateServiceFactory(cache, opts),
|
await stateServiceFactory(cache, opts),
|
||||||
await cryptoServiceFactory(cache, opts),
|
await cryptoServiceFactory(cache, opts),
|
||||||
await i18nServiceFactory(cache, opts),
|
await i18nServiceFactory(cache, opts),
|
||||||
await userVerificationApiServiceFactory(cache, opts)
|
await userVerificationApiServiceFactory(cache, opts),
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import { BrowserRouterService } from "../../platform/popup/services/browser-rout
|
|||||||
*/
|
*/
|
||||||
export const fido2AuthGuard: CanActivateFn = async (
|
export const fido2AuthGuard: CanActivateFn = async (
|
||||||
route: ActivatedRouteSnapshot,
|
route: ActivatedRouteSnapshot,
|
||||||
state: RouterStateSnapshot
|
state: RouterStateSnapshot,
|
||||||
) => {
|
) => {
|
||||||
const routerService = inject(BrowserRouterService);
|
const routerService = inject(BrowserRouterService);
|
||||||
const authService = inject(AuthService);
|
const authService = inject(AuthService);
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
import { Component } from "@angular/core";
|
import { Component } from "@angular/core";
|
||||||
import { Router } from "@angular/router";
|
import { Router } from "@angular/router";
|
||||||
|
|
||||||
|
import { BrowserRouterService } from "../../../platform/popup/services/browser-router.service";
|
||||||
import { AccountSwitcherService } from "../services/account-switcher.service";
|
import { AccountSwitcherService } from "../services/account-switcher.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
templateUrl: "account-switcher.component.html",
|
templateUrl: "account-switcher.component.html",
|
||||||
})
|
})
|
||||||
export class AccountSwitcherComponent {
|
export class AccountSwitcherComponent {
|
||||||
constructor(private accountSwitcherService: AccountSwitcherService, private router: Router) {}
|
constructor(
|
||||||
|
private accountSwitcherService: AccountSwitcherService,
|
||||||
|
private router: Router,
|
||||||
|
private routerService: BrowserRouterService,
|
||||||
|
) {}
|
||||||
|
|
||||||
get accountOptions$() {
|
get accountOptions$() {
|
||||||
return this.accountSwitcherService.accountOptions$;
|
return this.accountSwitcherService.accountOptions$;
|
||||||
@@ -15,6 +20,6 @@ export class AccountSwitcherComponent {
|
|||||||
|
|
||||||
async selectAccount(id: string) {
|
async selectAccount(id: string) {
|
||||||
await this.accountSwitcherService.selectAccount(id);
|
await this.accountSwitcherService.selectAccount(id);
|
||||||
this.router.navigate(["/home"]);
|
this.router.navigate([this.routerService.getPreviousUrl() ?? "/home"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div *ngIf="currentAccount$ | async as currentAccount">
|
<div *ngIf="currentAccount$ | async as currentAccount">
|
||||||
<div (click)="currentAccountClicked()" class="tw-mr-1 tw-mt-1">
|
<div (click)="currentAccountClicked()" class="tw-mr-1 tw-mt-1">
|
||||||
<bit-avatar [id]="currentAccount.id" [text]="currentAccount.name"></bit-avatar>
|
<bit-avatar [id]="currentAccount.id" [text]="currentAccountName$ | async"></bit-avatar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,20 +1,33 @@
|
|||||||
import { Component } from "@angular/core";
|
import { Component } from "@angular/core";
|
||||||
import { Router } from "@angular/router";
|
import { Router } from "@angular/router";
|
||||||
|
import { map } from "rxjs";
|
||||||
|
|
||||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
|
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "app-current-account",
|
selector: "app-current-account",
|
||||||
templateUrl: "current-account.component.html",
|
templateUrl: "current-account.component.html",
|
||||||
})
|
})
|
||||||
export class CurrentAccountComponent {
|
export class CurrentAccountComponent {
|
||||||
constructor(private accountService: AccountService, private router: Router) {}
|
constructor(
|
||||||
|
private accountService: AccountService,
|
||||||
|
private router: Router,
|
||||||
|
) {}
|
||||||
|
|
||||||
get currentAccount$() {
|
get currentAccount$() {
|
||||||
return this.accountService.activeAccount$;
|
return this.accountService.activeAccount$;
|
||||||
}
|
}
|
||||||
|
|
||||||
currentAccountClicked() {
|
get currentAccountName$() {
|
||||||
this.router.navigate(["/account-switcher"]);
|
return this.currentAccount$.pipe(
|
||||||
|
map((a) => {
|
||||||
|
return Utils.isNullOrWhitespace(a.name) ? a.email : a.name;
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
async currentAccountClicked() {
|
||||||
|
await this.router.navigate(["/account-switcher"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export class EnvironmentComponent extends BaseEnvironmentComponent implements On
|
|||||||
public environmentService: BrowserEnvironmentService,
|
public environmentService: BrowserEnvironmentService,
|
||||||
i18nService: I18nService,
|
i18nService: I18nService,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
modalService: ModalService
|
modalService: ModalService,
|
||||||
) {
|
) {
|
||||||
super(platformUtilsService, environmentService, i18nService, modalService);
|
super(platformUtilsService, environmentService, i18nService, modalService);
|
||||||
this.showCustom = true;
|
this.showCustom = true;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export class HintComponent extends BaseHintComponent {
|
|||||||
apiService: ApiService,
|
apiService: ApiService,
|
||||||
logService: LogService,
|
logService: LogService,
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
loginService: LoginService
|
loginService: LoginService,
|
||||||
) {
|
) {
|
||||||
super(router, i18nService, apiService, platformUtilsService, logService, loginService);
|
super(router, i18nService, apiService, platformUtilsService, logService, loginService);
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export class HomeComponent implements OnInit, OnDestroy {
|
|||||||
private router: Router,
|
private router: Router,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private environmentService: EnvironmentService,
|
private environmentService: EnvironmentService,
|
||||||
private loginService: LoginService
|
private loginService: LoginService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async ngOnInit(): Promise<void> {
|
async ngOnInit(): Promise<void> {
|
||||||
@@ -73,7 +73,7 @@ export class HomeComponent implements OnInit, OnDestroy {
|
|||||||
this.platformUtilsService.showToast(
|
this.platformUtilsService.showToast(
|
||||||
"error",
|
"error",
|
||||||
this.i18nService.t("errorOccured"),
|
this.i18nService.t("errorOccured"),
|
||||||
this.i18nService.t("invalidEmail")
|
this.i18nService.t("invalidEmail"),
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
: ("yourVaultIsLocked" | i18n)
|
: ("yourVaultIsLocked" | i18n)
|
||||||
}}
|
}}
|
||||||
</p>
|
</p>
|
||||||
{{ "loggedInAsOn" | i18n : email : webVaultHostname }}
|
{{ "loggedInAsOn" | i18n: email : webVaultHostname }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box" *ngIf="biometricLock">
|
<div class="box" *ngIf="biometricLock">
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ export class LockComponent extends BaseLockComponent {
|
|||||||
dialogService: DialogService,
|
dialogService: DialogService,
|
||||||
deviceTrustCryptoService: DeviceTrustCryptoServiceAbstraction,
|
deviceTrustCryptoService: DeviceTrustCryptoServiceAbstraction,
|
||||||
userVerificationService: UserVerificationService,
|
userVerificationService: UserVerificationService,
|
||||||
private routerService: BrowserRouterService
|
private routerService: BrowserRouterService,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
router,
|
router,
|
||||||
@@ -76,7 +76,7 @@ export class LockComponent extends BaseLockComponent {
|
|||||||
passwordStrengthService,
|
passwordStrengthService,
|
||||||
dialogService,
|
dialogService,
|
||||||
deviceTrustCryptoService,
|
deviceTrustCryptoService,
|
||||||
userVerificationService
|
userVerificationService,
|
||||||
);
|
);
|
||||||
this.successRoute = "/tabs/current";
|
this.successRoute = "/tabs/current";
|
||||||
this.isInitialLockScreen = (window as any).previousPopupUrl == null;
|
this.isInitialLockScreen = (window as any).previousPopupUrl == null;
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export class LoginViaAuthRequestComponent
|
|||||||
syncService: SyncService,
|
syncService: SyncService,
|
||||||
deviceTrustCryptoService: DeviceTrustCryptoServiceAbstraction,
|
deviceTrustCryptoService: DeviceTrustCryptoServiceAbstraction,
|
||||||
authReqCryptoService: AuthRequestCryptoServiceAbstraction,
|
authReqCryptoService: AuthRequestCryptoServiceAbstraction,
|
||||||
private location: Location
|
private location: Location,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
router,
|
router,
|
||||||
@@ -67,7 +67,7 @@ export class LoginViaAuthRequestComponent
|
|||||||
stateService,
|
stateService,
|
||||||
loginService,
|
loginService,
|
||||||
deviceTrustCryptoService,
|
deviceTrustCryptoService,
|
||||||
authReqCryptoService
|
authReqCryptoService,
|
||||||
);
|
);
|
||||||
super.onSuccessfulLogin = async () => {
|
super.onSuccessfulLogin = async () => {
|
||||||
await syncService.fullSync(true);
|
await syncService.fullSync(true);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ export class LoginComponent extends BaseLoginComponent {
|
|||||||
formValidationErrorService: FormValidationErrorsService,
|
formValidationErrorService: FormValidationErrorsService,
|
||||||
route: ActivatedRoute,
|
route: ActivatedRoute,
|
||||||
loginService: LoginService,
|
loginService: LoginService,
|
||||||
webAuthnLoginService: WebAuthnLoginServiceAbstraction
|
webAuthnLoginService: WebAuthnLoginServiceAbstraction,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
devicesApiService,
|
devicesApiService,
|
||||||
@@ -64,7 +64,7 @@ export class LoginComponent extends BaseLoginComponent {
|
|||||||
formValidationErrorService,
|
formValidationErrorService,
|
||||||
route,
|
route,
|
||||||
loginService,
|
loginService,
|
||||||
webAuthnLoginService
|
webAuthnLoginService,
|
||||||
);
|
);
|
||||||
super.onSuccessfulLogin = async () => {
|
super.onSuccessfulLogin = async () => {
|
||||||
await syncService.fullSync(true);
|
await syncService.fullSync(true);
|
||||||
@@ -123,7 +123,7 @@ export class LoginComponent extends BaseLoginComponent {
|
|||||||
"&codeChallenge=" +
|
"&codeChallenge=" +
|
||||||
codeChallenge +
|
codeChallenge +
|
||||||
"&email=" +
|
"&email=" +
|
||||||
encodeURIComponent(this.formGroup.controls.email.value)
|
encodeURIComponent(this.formGroup.controls.email.value),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export class RegisterComponent extends BaseRegisterComponent {
|
|||||||
environmentService: EnvironmentService,
|
environmentService: EnvironmentService,
|
||||||
logService: LogService,
|
logService: LogService,
|
||||||
auditService: AuditService,
|
auditService: AuditService,
|
||||||
dialogService: DialogService
|
dialogService: DialogService,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
formValidationErrorService,
|
formValidationErrorService,
|
||||||
@@ -54,7 +54,7 @@ export class RegisterComponent extends BaseRegisterComponent {
|
|||||||
environmentService,
|
environmentService,
|
||||||
logService,
|
logService,
|
||||||
auditService,
|
auditService,
|
||||||
dialogService
|
dialogService,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="box-content">
|
<div class="box-content">
|
||||||
<div class="box-content-row" appBoxRow>
|
<div class="box-content-row" appBoxRow>
|
||||||
<p>{{ "convertOrganizationEncryptionDesc" | i18n : organization.name }}</p>
|
<p>{{ "convertOrganizationEncryptionDesc" | i18n: organization.name }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-content-row">
|
<div class="box-content-row">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ describe("AccountSwitcherService", () => {
|
|||||||
accountSwitcherService = new AccountSwitcherService(
|
accountSwitcherService = new AccountSwitcherService(
|
||||||
accountService,
|
accountService,
|
||||||
stateService,
|
stateService,
|
||||||
messagingService
|
messagingService,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ describe("AccountSwitcherService", () => {
|
|||||||
activeAccountSubject.next(Object.assign(user1AccountInfo, { id: "1" as UserId }));
|
activeAccountSubject.next(Object.assign(user1AccountInfo, { id: "1" as UserId }));
|
||||||
|
|
||||||
const accounts = await firstValueFrom(
|
const accounts = await firstValueFrom(
|
||||||
accountSwitcherService.accountOptions$.pipe(timeout(20))
|
accountSwitcherService.accountOptions$.pipe(timeout(20)),
|
||||||
);
|
);
|
||||||
expect(accounts).toHaveLength(2);
|
expect(accounts).toHaveLength(2);
|
||||||
expect(accounts[0].id).toBe("1");
|
expect(accounts[0].id).toBe("1");
|
||||||
@@ -68,7 +68,7 @@ describe("AccountSwitcherService", () => {
|
|||||||
}
|
}
|
||||||
accountsSubject.next(seedAccounts);
|
accountsSubject.next(seedAccounts);
|
||||||
activeAccountSubject.next(
|
activeAccountSubject.next(
|
||||||
Object.assign(seedAccounts["1" as UserId], { id: "1" as UserId })
|
Object.assign(seedAccounts["1" as UserId], { id: "1" as UserId }),
|
||||||
);
|
);
|
||||||
|
|
||||||
const accounts = await firstValueFrom(accountSwitcherService.accountOptions$);
|
const accounts = await firstValueFrom(accountSwitcherService.accountOptions$);
|
||||||
@@ -77,7 +77,7 @@ describe("AccountSwitcherService", () => {
|
|||||||
accounts.forEach((account) => {
|
accounts.forEach((account) => {
|
||||||
expect(account.id).not.toBe("addAccount");
|
expect(account.id).not.toBe("addAccount");
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ describe("AccountSwitcherService", () => {
|
|||||||
"switchAccount",
|
"switchAccount",
|
||||||
matches((payload) => {
|
matches((payload) => {
|
||||||
return payload.userId === "1";
|
return payload.userId === "1";
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export class AccountSwitcherService {
|
|||||||
constructor(
|
constructor(
|
||||||
private accountService: AccountService,
|
private accountService: AccountService,
|
||||||
private stateService: StateService,
|
private stateService: StateService,
|
||||||
private messagingService: MessagingService
|
private messagingService: MessagingService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
get accountOptions$() {
|
get accountOptions$() {
|
||||||
@@ -31,7 +31,7 @@ export class AccountSwitcherService {
|
|||||||
id: id,
|
id: id,
|
||||||
isSelected: id === activeAccount?.id,
|
isSelected: id === activeAccount?.id,
|
||||||
};
|
};
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!hasMaxAccounts) {
|
if (!hasMaxAccounts) {
|
||||||
@@ -43,7 +43,7 @@ export class AccountSwitcherService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return options;
|
return options;
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ export class AccountSwitcherService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.accountService.switchAccount(id as UserId);
|
await this.accountService.switchAccount(id as UserId);
|
||||||
this.messagingService.send("switchAccount", { userId: id });
|
this.messagingService.send("switchAccount", { userId: id });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent {
|
|||||||
route: ActivatedRoute,
|
route: ActivatedRoute,
|
||||||
organizationApiService: OrganizationApiServiceAbstraction,
|
organizationApiService: OrganizationApiServiceAbstraction,
|
||||||
organizationUserService: OrganizationUserService,
|
organizationUserService: OrganizationUserService,
|
||||||
dialogService: DialogService
|
dialogService: DialogService,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
i18nService,
|
i18nService,
|
||||||
@@ -53,7 +53,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent {
|
|||||||
stateService,
|
stateService,
|
||||||
organizationApiService,
|
organizationApiService,
|
||||||
organizationUserService,
|
organizationUserService,
|
||||||
dialogService
|
dialogService,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export class SsoComponent extends BaseSsoComponent {
|
|||||||
environmentService: EnvironmentService,
|
environmentService: EnvironmentService,
|
||||||
logService: LogService,
|
logService: LogService,
|
||||||
configService: ConfigServiceAbstraction,
|
configService: ConfigServiceAbstraction,
|
||||||
@Inject(WINDOW) private win: Window
|
@Inject(WINDOW) private win: Window,
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
authService,
|
authService,
|
||||||
@@ -51,7 +51,7 @@ export class SsoComponent extends BaseSsoComponent {
|
|||||||
environmentService,
|
environmentService,
|
||||||
passwordGenerationService,
|
passwordGenerationService,
|
||||||
logService,
|
logService,
|
||||||
configService
|
configService,
|
||||||
);
|
);
|
||||||
|
|
||||||
const url = this.environmentService.getWebVaultUrl();
|
const url = this.environmentService.getWebVaultUrl();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent {
|
|||||||
router: Router,
|
router: Router,
|
||||||
i18nService: I18nService,
|
i18nService: I18nService,
|
||||||
platformUtilsService: PlatformUtilsService,
|
platformUtilsService: PlatformUtilsService,
|
||||||
private activatedRoute: ActivatedRoute
|
private activatedRoute: ActivatedRoute,
|
||||||
) {
|
) {
|
||||||
super(twoFactorService, router, i18nService, platformUtilsService, window);
|
super(twoFactorService, router, i18nService, platformUtilsService, window);
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user