From 3a374bd2d68d7257ccc2ddf21e55f4b0ed064e92 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Tue, 20 Jan 2026 15:09:26 +0100 Subject: [PATCH] Refactor folder names (#1465) --- .../entrypoints/background/PasskeyHandler.ts | 2 +- .../background/VaultMessageHandler.ts | 2 +- .../src/entrypoints/contentScript/Popup.ts | 2 +- .../Details/AttachmentBlock.tsx | 0 .../Details/AttachmentUploader.tsx | 0 .../Details/FieldBlock.tsx | 0 .../Details/FieldHistoryModal.tsx | 0 .../Details/PasskeyBlock.tsx | 0 .../Details/PasskeyEditor.tsx | 0 .../Details/TotpBlock.tsx | 0 .../Details/TotpEditor.tsx | 0 .../{Credentials => Items}/Details/index.tsx | 0 .../popup/pages/items/ItemAddEdit.tsx | 6 ++-- .../popup/pages/items/ItemDetails.tsx | 6 ++-- .../pages/passkeys/PasskeyAuthenticate.tsx | 2 +- .../popup/pages/passkeys/PasskeyCreate.tsx | 2 +- .../popup/pages/settings/AutofillSettings.tsx | 2 +- .../popup/pages/settings/PasskeySettings.tsx | 2 +- .../ItemMatcher.ts} | 36 +++---------------- 19 files changed, 17 insertions(+), 45 deletions(-) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/AttachmentBlock.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/AttachmentUploader.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/FieldBlock.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/FieldHistoryModal.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/PasskeyBlock.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/PasskeyEditor.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/TotpBlock.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/TotpEditor.tsx (100%) rename apps/browser-extension/src/entrypoints/popup/components/{Credentials => Items}/Details/index.tsx (100%) rename apps/browser-extension/src/utils/{credentialMatcher/CredentialMatcher.ts => itemMatcher/ItemMatcher.ts} (69%) diff --git a/apps/browser-extension/src/entrypoints/background/PasskeyHandler.ts b/apps/browser-extension/src/entrypoints/background/PasskeyHandler.ts index 23f78b549..0cb136e24 100644 --- a/apps/browser-extension/src/entrypoints/background/PasskeyHandler.ts +++ b/apps/browser-extension/src/entrypoints/background/PasskeyHandler.ts @@ -9,9 +9,9 @@ import { PASSKEY_PROVIDER_ENABLED_KEY, PASSKEY_DISABLED_SITES_KEY } from '@/utils/Constants'; -import { extractDomain, extractRootDomain } from '@/utils/credentialMatcher/CredentialMatcher'; import type { PasskeyWithItem } from '@/utils/db/mappers/PasskeyMapper'; import { EncryptionUtility } from '@/utils/EncryptionUtility'; +import { extractDomain, extractRootDomain } from '@/utils/itemMatcher/ItemMatcher'; import { PasskeyHelper } from '@/utils/passkey/PasskeyHelper'; import type { PasskeyPopupResponse, diff --git a/apps/browser-extension/src/entrypoints/background/VaultMessageHandler.ts b/apps/browser-extension/src/entrypoints/background/VaultMessageHandler.ts index c9328b1fb..a26ae5bc5 100644 --- a/apps/browser-extension/src/entrypoints/background/VaultMessageHandler.ts +++ b/apps/browser-extension/src/entrypoints/background/VaultMessageHandler.ts @@ -344,7 +344,7 @@ export async function handleGetFilteredItems( const sqliteClient = await createVaultSqliteClient(); const allItems = sqliteClient.items.getAll(); - const { filterItems, AutofillMatchingMode } = await import('@/utils/credentialMatcher/CredentialMatcher'); + const { filterItems, AutofillMatchingMode } = await import('@/utils/itemMatcher/ItemMatcher'); // Parse matching mode from string let matchingMode = AutofillMatchingMode.DEFAULT; diff --git a/apps/browser-extension/src/entrypoints/contentScript/Popup.ts b/apps/browser-extension/src/entrypoints/contentScript/Popup.ts index cd179f8cb..7925843bb 100644 --- a/apps/browser-extension/src/entrypoints/contentScript/Popup.ts +++ b/apps/browser-extension/src/entrypoints/contentScript/Popup.ts @@ -3,11 +3,11 @@ import { sendMessage } from 'webext-bridge/content-script'; import { fillItem } from '@/entrypoints/contentScript/Form'; import { DISABLED_SITES_KEY, TEMPORARY_DISABLED_SITES_KEY, GLOBAL_AUTOFILL_POPUP_ENABLED_KEY, VAULT_LOCKED_DISMISS_UNTIL_KEY, AUTOFILL_MATCHING_MODE_KEY, CUSTOM_EMAIL_HISTORY_KEY, CUSTOM_USERNAME_HISTORY_KEY, PLACEHOLDER_ICON_SVG } from '@/utils/Constants'; -import { AutofillMatchingMode } from '@/utils/credentialMatcher/CredentialMatcher'; import { CreateIdentityGenerator, IdentityHelperUtils } from '@/utils/dist/core/identity-generator'; import type { Item, ItemField } from '@/utils/dist/core/models/vault'; import { ItemTypes, FieldKey, createSystemField } from '@/utils/dist/core/models/vault'; import { CreatePasswordGenerator, PasswordGenerator, PasswordSettings } from '@/utils/dist/core/password-generator'; +import { AutofillMatchingMode } from '@/utils/itemMatcher/ItemMatcher'; import { ClickValidator } from '@/utils/security/ClickValidator'; import { ServiceDetectionUtility } from '@/utils/serviceDetection/ServiceDetectionUtility'; import { SqliteClient } from '@/utils/SqliteClient'; diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/AttachmentBlock.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/AttachmentBlock.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/AttachmentBlock.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/AttachmentBlock.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/AttachmentUploader.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/AttachmentUploader.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/AttachmentUploader.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/AttachmentUploader.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/FieldBlock.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/FieldBlock.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/FieldBlock.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/FieldBlock.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/FieldHistoryModal.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/FieldHistoryModal.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/FieldHistoryModal.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/FieldHistoryModal.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/PasskeyBlock.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/PasskeyBlock.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/PasskeyBlock.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/PasskeyBlock.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/PasskeyEditor.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/PasskeyEditor.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/PasskeyEditor.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/PasskeyEditor.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/TotpBlock.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/TotpBlock.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/TotpBlock.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/TotpBlock.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/TotpEditor.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/TotpEditor.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/TotpEditor.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/TotpEditor.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/index.tsx b/apps/browser-extension/src/entrypoints/popup/components/Items/Details/index.tsx similarity index 100% rename from apps/browser-extension/src/entrypoints/popup/components/Credentials/Details/index.tsx rename to apps/browser-extension/src/entrypoints/popup/components/Items/Details/index.tsx diff --git a/apps/browser-extension/src/entrypoints/popup/pages/items/ItemAddEdit.tsx b/apps/browser-extension/src/entrypoints/popup/pages/items/ItemAddEdit.tsx index 23571b755..9d601c6f2 100644 --- a/apps/browser-extension/src/entrypoints/popup/pages/items/ItemAddEdit.tsx +++ b/apps/browser-extension/src/entrypoints/popup/pages/items/ItemAddEdit.tsx @@ -2,9 +2,6 @@ import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react' import { useTranslation } from 'react-i18next'; import { useNavigate, useParams, useSearchParams } from 'react-router-dom'; -import AttachmentUploader from '@/entrypoints/popup/components/Credentials/Details/AttachmentUploader'; -import PasskeyEditor from '@/entrypoints/popup/components/Credentials/Details/PasskeyEditor'; -import TotpEditor from '@/entrypoints/popup/components/Credentials/Details/TotpEditor'; import Modal from '@/entrypoints/popup/components/Dialogs/Modal'; import AddFieldMenu, { type OptionalSection } from '@/entrypoints/popup/components/Forms/AddFieldMenu'; import EditableFieldLabel from '@/entrypoints/popup/components/Forms/EditableFieldLabel'; @@ -16,6 +13,9 @@ import PasswordField from '@/entrypoints/popup/components/Forms/PasswordField'; import UsernameField from '@/entrypoints/popup/components/Forms/UsernameField'; import HeaderButton from '@/entrypoints/popup/components/HeaderButton'; import { HeaderIconType } from '@/entrypoints/popup/components/Icons/HeaderIcons'; +import AttachmentUploader from '@/entrypoints/popup/components/Items/Details/AttachmentUploader'; +import PasskeyEditor from '@/entrypoints/popup/components/Items/Details/PasskeyEditor'; +import TotpEditor from '@/entrypoints/popup/components/Items/Details/TotpEditor'; import ItemNameInput from '@/entrypoints/popup/components/Items/ItemNameInput'; import ItemTypeSelector from '@/entrypoints/popup/components/Items/ItemTypeSelector'; import LoadingSpinner from '@/entrypoints/popup/components/LoadingSpinner'; diff --git a/apps/browser-extension/src/entrypoints/popup/pages/items/ItemDetails.tsx b/apps/browser-extension/src/entrypoints/popup/pages/items/ItemDetails.tsx index c4e752d15..831d9a94a 100644 --- a/apps/browser-extension/src/entrypoints/popup/pages/items/ItemDetails.tsx +++ b/apps/browser-extension/src/entrypoints/popup/pages/items/ItemDetails.tsx @@ -2,14 +2,14 @@ import React, { useState, useEffect, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { useNavigate, useParams } from 'react-router-dom'; +import HeaderButton from '@/entrypoints/popup/components/HeaderButton'; +import { HeaderIconType } from '@/entrypoints/popup/components/Icons/HeaderIcons'; import { TotpBlock, AttachmentBlock, FieldBlock, PasskeyBlock -} from '@/entrypoints/popup/components/Credentials/Details'; -import HeaderButton from '@/entrypoints/popup/components/HeaderButton'; -import { HeaderIconType } from '@/entrypoints/popup/components/Icons/HeaderIcons'; +} from '@/entrypoints/popup/components/Items/Details'; import ItemIcon from '@/entrypoints/popup/components/Items/ItemIcon'; import { useDb } from '@/entrypoints/popup/context/DbContext'; import { useHeaderButtons } from '@/entrypoints/popup/context/HeaderButtonsContext'; diff --git a/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyAuthenticate.tsx b/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyAuthenticate.tsx index 5944e444a..f94a6cf7e 100644 --- a/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyAuthenticate.tsx +++ b/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyAuthenticate.tsx @@ -11,7 +11,7 @@ import { useLoading } from '@/entrypoints/popup/context/LoadingContext'; import { useVaultLockRedirect } from '@/entrypoints/popup/hooks/useVaultLockRedirect'; import { PASSKEY_DISABLED_SITES_KEY } from '@/utils/Constants'; -import { extractDomain, extractRootDomain } from '@/utils/credentialMatcher/CredentialMatcher'; +import { extractDomain, extractRootDomain } from '@/utils/itemMatcher/ItemMatcher'; import { PasskeyAuthenticator } from '@/utils/passkey/PasskeyAuthenticator'; import { PasskeyHelper } from '@/utils/passkey/PasskeyHelper'; import type { GetRequest, PasskeyGetCredentialResponse, PendingPasskeyGetRequest, StoredPasskeyRecord } from '@/utils/passkey/types'; diff --git a/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyCreate.tsx b/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyCreate.tsx index 6e78679af..c43782512 100644 --- a/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyCreate.tsx +++ b/apps/browser-extension/src/entrypoints/popup/pages/passkeys/PasskeyCreate.tsx @@ -15,9 +15,9 @@ import { useVaultLockRedirect } from '@/entrypoints/popup/hooks/useVaultLockRedi import { useVaultMutate } from '@/entrypoints/popup/hooks/useVaultMutate'; import { PASSKEY_DISABLED_SITES_KEY } from '@/utils/Constants'; -import { extractDomain, extractRootDomain, filterItems, AutofillMatchingMode } from '@/utils/credentialMatcher/CredentialMatcher'; import type { Item, Passkey } from '@/utils/dist/core/models/vault'; import { FieldKey, ItemTypes, getFieldValue, createSystemField } from '@/utils/dist/core/models/vault'; +import { extractDomain, extractRootDomain, filterItems, AutofillMatchingMode } from '@/utils/itemMatcher/ItemMatcher'; import { PasskeyAuthenticator } from '@/utils/passkey/PasskeyAuthenticator'; import { PasskeyHelper } from '@/utils/passkey/PasskeyHelper'; import type { CreateRequest, PasskeyCreateCredentialResponse, PendingPasskeyCreateRequest } from '@/utils/passkey/types'; diff --git a/apps/browser-extension/src/entrypoints/popup/pages/settings/AutofillSettings.tsx b/apps/browser-extension/src/entrypoints/popup/pages/settings/AutofillSettings.tsx index d57d77716..7567692b3 100644 --- a/apps/browser-extension/src/entrypoints/popup/pages/settings/AutofillSettings.tsx +++ b/apps/browser-extension/src/entrypoints/popup/pages/settings/AutofillSettings.tsx @@ -9,7 +9,7 @@ import { TEMPORARY_DISABLED_SITES_KEY, AUTOFILL_MATCHING_MODE_KEY } from '@/utils/Constants'; -import { AutofillMatchingMode } from '@/utils/credentialMatcher/CredentialMatcher'; +import { AutofillMatchingMode } from '@/utils/itemMatcher/ItemMatcher'; import { storage, browser } from "#imports"; diff --git a/apps/browser-extension/src/entrypoints/popup/pages/settings/PasskeySettings.tsx b/apps/browser-extension/src/entrypoints/popup/pages/settings/PasskeySettings.tsx index 3c97f1a0b..6a26f8bc2 100644 --- a/apps/browser-extension/src/entrypoints/popup/pages/settings/PasskeySettings.tsx +++ b/apps/browser-extension/src/entrypoints/popup/pages/settings/PasskeySettings.tsx @@ -7,7 +7,7 @@ import { PASSKEY_PROVIDER_ENABLED_KEY, PASSKEY_DISABLED_SITES_KEY } from '@/utils/Constants'; -import { extractDomain, extractRootDomain } from '@/utils/credentialMatcher/CredentialMatcher'; +import { extractDomain, extractRootDomain } from '@/utils/itemMatcher/ItemMatcher'; import { storage, browser } from "#imports"; diff --git a/apps/browser-extension/src/utils/credentialMatcher/CredentialMatcher.ts b/apps/browser-extension/src/utils/itemMatcher/ItemMatcher.ts similarity index 69% rename from apps/browser-extension/src/utils/credentialMatcher/CredentialMatcher.ts rename to apps/browser-extension/src/utils/itemMatcher/ItemMatcher.ts index 951697288..d6425416e 100644 --- a/apps/browser-extension/src/utils/credentialMatcher/CredentialMatcher.ts +++ b/apps/browser-extension/src/utils/itemMatcher/ItemMatcher.ts @@ -3,10 +3,10 @@ */ import { browser } from 'wxt/browser'; -import type { Credential, Item } from '@/utils/dist/core/models/vault'; +import type { Item } from '@/utils/dist/core/models/vault'; import { FieldKey } from '@/utils/dist/core/models/vault'; import init, { - filterCredentials as wasmFilterCredentials, + filterCredentials as wasmFilterItems, extractDomain as wasmExtractDomain, extractRootDomain as wasmExtractRootDomain } from '@/utils/dist/core/rust/aliasvault_core.js'; @@ -46,7 +46,7 @@ function getFieldValue(item: Item, fieldKey: string): string | undefined { /** * Filter items by URL/title. Returns max 3 matches. - * Uses the same Rust WASM filtering logic but maps Item fields to the expected structure. + * Uses Rust WASM filtering logic, mapping Item fields to the expected structure. */ export async function filterItems( items: Item[], @@ -57,7 +57,7 @@ export async function filterItems( await ensureInit(); // Map Items to the format expected by the WASM filter - const result = wasmFilterCredentials({ + const result = wasmFilterItems({ credentials: items.map(item => ({ Id: item.Id, ServiceName: item.Name ?? '', @@ -88,31 +88,3 @@ export async function extractRootDomain(domain: string): Promise { await ensureInit(); return wasmExtractRootDomain(domain); } - -/** - * Filter credentials by URL/title. Returns max 3 matches. - * Uses the same Rust WASM filtering logic with the Credential type. - */ -export async function filterCredentials( - credentials: Credential[], - currentUrl: string, - pageTitle: string, - matchingMode: AutofillMatchingMode = AutofillMatchingMode.DEFAULT -): Promise { - await ensureInit(); - - const result = wasmFilterCredentials({ - credentials: credentials.map(cred => ({ - Id: cred.Id, - ServiceName: cred.ServiceName ?? '', - ServiceUrl: cred.ServiceUrl - })), - current_url: currentUrl, - page_title: pageTitle, - matching_mode: matchingMode - }) as { matched_ids: string[] }; - - return result.matched_ids - .map(id => credentials.find(cred => cred.Id === id)) - .filter((cred): cred is Credential => cred !== undefined); -}