1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-11 22:13:32 +00:00

further cleanup

This commit is contained in:
✨ Audrey ✨
2024-12-27 12:06:59 -05:00
parent baf38f6cbc
commit 45ce5b224a
17 changed files with 108 additions and 100 deletions

View File

@@ -5,7 +5,6 @@ import { OrganizationId, UserId } from "@bitwarden/common/types/guid";
import { OrganizationEncryptor } from "./cryptography/organization-encryptor.abstraction";
import { UserEncryptor } from "./cryptography/user-encryptor.abstraction";
import { VendorId } from "./extension/metadata/type";
/** error emitted when the `SingleUserDependency` changes Ids */
export type UserChangedError = {
@@ -152,10 +151,6 @@ export type SingleUserDependency = {
singleUserId$: Observable<UserId>;
};
export type SingleVendorDependency = {
singleVendorId$: Observable<VendorId>;
};
/** A pattern for types that emit values exclusively when the dependency
* emits a message.
*

View File

@@ -0,0 +1,10 @@
export const Site = Object.freeze({
forwarder: "forwarder",
} as const);
export const Field = Object.freeze({
token: "token",
baseUrl: "baseUrl",
domain: "domain",
prefix: "prefix",
} as const);

View File

@@ -1,13 +1,7 @@
import { ExtensionPermission, ExtensionRegistry } from "./extension-registry.abstraction";
import { ExtensionSite } from "./extension-site";
import {
SiteMetadata,
SiteId,
ExtensionMetadata,
ExtensionSet,
VendorId,
VendorMetadata,
} from "./metadata/type";
import { SiteMetadata, SiteId, ExtensionMetadata, ExtensionSet } from "./type";
import { VendorId, VendorMetadata } from "./vendor/type";
/** Tracks extension sites and the vendors that extend them. */
export class DefaultExtensionRegistry implements ExtensionRegistry {

View File

@@ -1,11 +1,6 @@
import { ExtensionSite } from "./extension-site";
import {
SiteMetadata,
ExtensionMetadata,
ExtensionSet,
VendorMetadata,
SiteId,
} from "./metadata/type";
import { SiteMetadata, ExtensionMetadata, ExtensionSet, SiteId } from "./type";
import { VendorMetadata } from "./vendor/type";
/** Permission levels for metadata.
* * default - unless a rule denies access, allow it. This is the

View File

@@ -1,6 +1,6 @@
import { deepFreeze } from "../util";
import { ExtensionMetadata, SiteMetadata, VendorId } from "./metadata/type";
import { ExtensionMetadata, SiteMetadata, VendorId } from "./type";
/** Describes the capabilities of an extension site.
* This type is immutable.

View File

@@ -1,12 +1,13 @@
import { AddyIo, AddyIoExtensions } from "./data/addy-io";
import { DuckDuckGo, DuckDuckGoExtensions } from "./data/duck-duck-go";
import { Fastmail, FastmailExtensions } from "./data/fastmail";
import { ForwardEmail, ForwardEmailExtensions } from "./data/forward-email";
import { Mozilla, MozillaExtensions } from "./data/mozilla";
import { SimpleLogin, SimpleLoginExtensions } from "./data/simple-login";
import { DefaultExtensionRegistry } from "./default-extension-registry";
import { Extension } from "./metadata/extension";
import { ExtensionMetadata, VendorMetadata } from "./metadata/type";
import { Extension } from "./metadata";
import { ExtensionMetadata } from "./type";
import { AddyIo, AddyIoExtensions } from "./vendor/addy-io";
import { DuckDuckGo, DuckDuckGoExtensions } from "./vendor/duck-duck-go";
import { Fastmail, FastmailExtensions } from "./vendor/fastmail";
import { ForwardEmail, ForwardEmailExtensions } from "./vendor/forward-email";
import { Mozilla, MozillaExtensions } from "./vendor/mozilla";
import { SimpleLogin, SimpleLoginExtensions } from "./vendor/simple-login";
import { VendorMetadata } from "./vendor/type";
// FIXME: find a better way to build the registry than a hard-coded factory function

View File

@@ -7,3 +7,7 @@ export const Extension: Record<string, SiteMetadata> = {
availableFields: [Field.baseUrl, Field.domain, Field.prefix, Field.token],
},
};
export const FieldsBySite = {
[Site.forwarder]: [Field.token, Field.baseUrl, Field.domain, Field.prefix],
} as const;

View File

@@ -1,34 +0,0 @@
export const Site = Object.freeze({
forwarder: "forwarder",
} as const);
export const Field = Object.freeze({
token: "token",
baseUrl: "baseUrl",
domain: "domain",
prefix: "prefix",
} as const);
export const FieldsBySite = {
[Site.forwarder]: [Field.token, Field.baseUrl, Field.domain, Field.prefix],
} as const;
export const Vendor = Object.freeze({
anonaddy: "anonaddy",
duckduckgo: "duckduckgo",
fastmail: "fastmail",
mozilla: "mozilla",
forwardemail: "forwardemail",
simplelogin: "simplelogin",
} as const);
export const VendorsByExtension = {
[Site.forwarder]: [
Vendor.anonaddy,
Vendor.duckduckgo,
Vendor.fastmail,
Vendor.mozilla,
Vendor.forwardemail,
Vendor.simplelogin,
] as const,
} as const;

View File

@@ -1,4 +1,6 @@
import { FieldsBySite, Site, VendorsByExtension } from "./data";
import { Site } from "./data";
import { FieldsBySite } from "./metadata";
import { VendorId, VendorMetadata } from "./vendor/type";
/** well-known name for a feature extensible through an extension. */
export type SiteId = keyof typeof Site;
@@ -6,9 +8,6 @@ export type SiteId = keyof typeof Site;
/** well-known name for a field surfaced from an extension site to a vendor. */
export type DisclosedField = (typeof FieldsBySite)[SiteId][number];
/** Identifies a vendor extending bitwarden */
export type VendorId = (typeof VendorsByExtension)[SiteId][number];
/** The capabilities and descriptive content for an extension */
export type SiteMetadata = {
/** Uniquely identifies the extension site. */
@@ -46,15 +45,6 @@ export type ApiHost = TokenHeader &
| { selfHost: "always" }
);
/** The capabilities and descriptive content for an extension */
export type VendorMetadata = {
/** Uniquely identifies the vendor. */
id: VendorId;
/** Brand name of the service providing the extension. */
name: string;
};
/** Describes an extension provided by a vendor */
export type ExtensionMetadata = {
/** The part of Bitwarden extended by the vendor's services */

View File

@@ -1,8 +1,11 @@
import { Field, Vendor } from "../metadata/data";
import { Extension } from "../metadata/extension";
import { ExtensionMetadata } from "../metadata/type";
import { Field } from "../data";
import { Extension } from "../metadata";
import { ExtensionMetadata } from "../type";
export const AddyIo = {
import { Vendor } from "./data";
import { VendorMetadata } from "./type";
export const AddyIo: VendorMetadata = {
id: Vendor.anonaddy,
name: "Addy.io",
};

View File

@@ -1,5 +1,15 @@
import { Vendor } from "../metadata/data";
import { VendorMetadata } from "../metadata/type";
import { Site } from "../data";
import { VendorMetadata } from "./type";
export const Vendor = Object.freeze({
anonaddy: "anonaddy",
duckduckgo: "duckduckgo",
fastmail: "fastmail",
mozilla: "mozilla",
forwardemail: "forwardemail",
simplelogin: "simplelogin",
} as const);
export const VendorInfo: Record<string, VendorMetadata> = {
[Vendor.anonaddy]: {
@@ -27,3 +37,14 @@ export const VendorInfo: Record<string, VendorMetadata> = {
name: "SimpleLogin",
},
};
export const VendorsByExtension = {
[Site.forwarder]: [
Vendor.anonaddy,
Vendor.duckduckgo,
Vendor.fastmail,
Vendor.mozilla,
Vendor.forwardemail,
Vendor.simplelogin,
] as const,
} as const;

View File

@@ -1,8 +1,11 @@
import { Field, Vendor } from "../metadata/data";
import { Extension } from "../metadata/extension";
import { ExtensionMetadata } from "../metadata/type";
import { Field } from "../data";
import { Extension } from "../metadata";
import { ExtensionMetadata } from "../type";
export const DuckDuckGo = {
import { Vendor } from "./data";
import { VendorMetadata } from "./type";
export const DuckDuckGo: VendorMetadata = {
id: Vendor.duckduckgo,
name: "DuckDuckGo",
};

View File

@@ -1,8 +1,11 @@
import { Field, Vendor } from "../metadata/data";
import { Extension } from "../metadata/extension";
import { ExtensionMetadata } from "../metadata/type";
import { Field } from "../data";
import { Extension } from "../metadata";
import { ExtensionMetadata } from "../type";
export const Fastmail = {
import { Vendor } from "./data";
import { VendorMetadata } from "./type";
export const Fastmail: VendorMetadata = {
id: Vendor.fastmail,
name: "Fastmail",
};

View File

@@ -1,8 +1,11 @@
import { Field, Vendor } from "../metadata/data";
import { Extension } from "../metadata/extension";
import { ExtensionMetadata } from "../metadata/type";
import { Field } from "../data";
import { Extension } from "../metadata";
import { ExtensionMetadata } from "../type";
export const ForwardEmail = {
import { Vendor } from "./data";
import { VendorMetadata } from "./type";
export const ForwardEmail: VendorMetadata = {
id: Vendor.forwardemail,
name: "Forward Email",
};

View File

@@ -1,6 +1,8 @@
import { Field, Vendor } from "../metadata/data";
import { Extension } from "../metadata/extension";
import { ExtensionMetadata } from "../metadata/type";
import { Field } from "../data";
import { Extension } from "../metadata";
import { ExtensionMetadata } from "../type";
import { Vendor } from "./data";
export const Mozilla = {
id: Vendor.mozilla,

View File

@@ -1,6 +1,9 @@
import { Field, Vendor } from "../metadata/data";
import { Extension } from "../metadata/extension";
import { ExtensionMetadata, VendorMetadata } from "../metadata/type";
import { Field } from "../data";
import { Extension } from "../metadata";
import { ExtensionMetadata } from "../type";
import { Vendor } from "./data";
import { VendorMetadata } from "./type";
export const SimpleLogin: VendorMetadata = {
id: Vendor.simplelogin,

View File

@@ -0,0 +1,15 @@
import { SiteId } from "../type";
import { VendorsByExtension } from "./data";
/** Identifies a vendor extending bitwarden */
export type VendorId = (typeof VendorsByExtension)[SiteId][number];
/** The capabilities and descriptive content for an extension */
export type VendorMetadata = {
/** Uniquely identifies the vendor. */
id: VendorId;
/** Brand name of the service providing the extension. */
name: string;
};