From 970af10d0e39b4ba7bdbbc793fe15cb9ea7c25ba Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Thu, 25 Jun 2026 20:59:25 +0200 Subject: [PATCH] Update models (#776) --- .../utils/dist/core/models/vault/index.d.ts | 57 ++++++++++++++-- .../utils/dist/core/models/vault/index.d.ts | 57 ++++++++++++++-- core/models/src/vault/PasswordSettings.ts | 65 +++++++++++++++++-- 3 files changed, 159 insertions(+), 20 deletions(-) diff --git a/apps/browser-extension/src/utils/dist/core/models/vault/index.d.ts b/apps/browser-extension/src/utils/dist/core/models/vault/index.d.ts index cd45b7219..71c969f90 100644 --- a/apps/browser-extension/src/utils/dist/core/models/vault/index.d.ts +++ b/apps/browser-extension/src/utils/dist/core/models/vault/index.d.ts @@ -8,34 +8,77 @@ type EncryptionKey = { IsPrimary: boolean; }; +/** + * Which generator a password setting uses. + */ +type PasswordGeneratorType = 'basic' | 'diceware'; +/** + * Capitalization applied to each Diceware word. + */ +type DicewareCapitalization = 'None' | 'TitleCase' | 'Uppercase' | 'Lowercase' | 'Random'; +/** + * Separator placed between Diceware words. + */ +type DicewareSeparator = 'None' | 'Dash' | 'Space' | 'Underscore' | 'Dot'; +/** + * Optional random salt character added to a Diceware passphrase. + */ +type DicewareSalt = 'None' | 'Prefix' | 'Sprinkle' | 'Suffix'; /** * Settings for password generation stored in SQLite database settings table as string. + * + * The Diceware fields are optional so that older stored blobs (which only contain the + * basic-password fields) remain valid; defaults are applied when reading the settings. */ type PasswordSettings = { /** - * The length of the password. + * The length of the password (basic generator). */ Length: number; /** - * Whether to use lowercase letters. + * Whether to use lowercase letters (basic generator). */ UseLowercase: boolean; /** - * Whether to use uppercase letters. + * Whether to use uppercase letters (basic generator). */ UseUppercase: boolean; /** - * Whether to use numbers. + * Whether to use numbers (basic generator). */ UseNumbers: boolean; /** - * Whether to use special characters. + * Whether to use special characters (basic generator). */ UseSpecialChars: boolean; /** - * Whether to use non-ambiguous characters. + * Whether to use non-ambiguous characters (basic generator). */ UseNonAmbiguousChars: boolean; + /** + * Which generator to use. Defaults to 'basic' when absent. + */ + Type?: PasswordGeneratorType; + /** + * Number of words in the passphrase (diceware generator). Defaults to 4. + */ + WordCount?: number; + /** + * Wordlist language code (diceware generator). + */ + Language?: string; + /** + * Capitalization applied to each word (diceware generator). Defaults to 'Lowercase'. + */ + Capitalization?: DicewareCapitalization; + /** + * Separator between words (diceware generator). Defaults to 'Dash'. + */ + Separator?: DicewareSeparator; + /** + * Optional random salt character (diceware generator). Defaults to 'None'. + */ + Salt?: DicewareSalt; }; /** @@ -547,4 +590,4 @@ type FieldHistory = { */ declare const MAX_FIELD_HISTORY_RECORDS = 10; -export { type Alias, type Attachment, type CreateCustomFieldOptions, type CreateSystemFieldOptions, type Credential, type EncryptionKey, FieldCategories, type FieldCategory, type FieldHistory, FieldKey, type FieldKeyValue, type FieldType, FieldTypes, type Item, type ItemField, type ItemTag, type ItemTagRef, type ItemType, type ItemTypeFieldConfig, ItemTypes, MAX_FIELD_HISTORY_RECORDS, type Passkey, type PasswordSettings, type SystemFieldDefinition, SystemFieldRegistry, type Tag, type TotpCode, createCustomField, createSystemField, fieldAppliesToType, getAllSystemFieldKeys, getDefaultFieldsForItemType, getFieldConfigForType, getFieldValue, getFieldValues, getOptionalFieldsForItemType, getSystemField, getSystemFieldsForItemType, groupFields, groupFieldsByCategory, hasField, isFieldShownByDefault, isSystemField, isSystemFieldPrefix, itemToCredential }; +export { type Alias, type Attachment, type CreateCustomFieldOptions, type CreateSystemFieldOptions, type Credential, type DicewareCapitalization, type DicewareSalt, type DicewareSeparator, type EncryptionKey, FieldCategories, type FieldCategory, type FieldHistory, FieldKey, type FieldKeyValue, type FieldType, FieldTypes, type Item, type ItemField, type ItemTag, type ItemTagRef, type ItemType, type ItemTypeFieldConfig, ItemTypes, MAX_FIELD_HISTORY_RECORDS, type Passkey, type PasswordGeneratorType, type PasswordSettings, type SystemFieldDefinition, SystemFieldRegistry, type Tag, type TotpCode, createCustomField, createSystemField, fieldAppliesToType, getAllSystemFieldKeys, getDefaultFieldsForItemType, getFieldConfigForType, getFieldValue, getFieldValues, getOptionalFieldsForItemType, getSystemField, getSystemFieldsForItemType, groupFields, groupFieldsByCategory, hasField, isFieldShownByDefault, isSystemField, isSystemFieldPrefix, itemToCredential }; diff --git a/apps/mobile-app/utils/dist/core/models/vault/index.d.ts b/apps/mobile-app/utils/dist/core/models/vault/index.d.ts index cd45b7219..71c969f90 100644 --- a/apps/mobile-app/utils/dist/core/models/vault/index.d.ts +++ b/apps/mobile-app/utils/dist/core/models/vault/index.d.ts @@ -8,34 +8,77 @@ type EncryptionKey = { IsPrimary: boolean; }; +/** + * Which generator a password setting uses. + */ +type PasswordGeneratorType = 'basic' | 'diceware'; +/** + * Capitalization applied to each Diceware word. + */ +type DicewareCapitalization = 'None' | 'TitleCase' | 'Uppercase' | 'Lowercase' | 'Random'; +/** + * Separator placed between Diceware words. + */ +type DicewareSeparator = 'None' | 'Dash' | 'Space' | 'Underscore' | 'Dot'; +/** + * Optional random salt character added to a Diceware passphrase. + */ +type DicewareSalt = 'None' | 'Prefix' | 'Sprinkle' | 'Suffix'; /** * Settings for password generation stored in SQLite database settings table as string. + * + * The Diceware fields are optional so that older stored blobs (which only contain the + * basic-password fields) remain valid; defaults are applied when reading the settings. */ type PasswordSettings = { /** - * The length of the password. + * The length of the password (basic generator). */ Length: number; /** - * Whether to use lowercase letters. + * Whether to use lowercase letters (basic generator). */ UseLowercase: boolean; /** - * Whether to use uppercase letters. + * Whether to use uppercase letters (basic generator). */ UseUppercase: boolean; /** - * Whether to use numbers. + * Whether to use numbers (basic generator). */ UseNumbers: boolean; /** - * Whether to use special characters. + * Whether to use special characters (basic generator). */ UseSpecialChars: boolean; /** - * Whether to use non-ambiguous characters. + * Whether to use non-ambiguous characters (basic generator). */ UseNonAmbiguousChars: boolean; + /** + * Which generator to use. Defaults to 'basic' when absent. + */ + Type?: PasswordGeneratorType; + /** + * Number of words in the passphrase (diceware generator). Defaults to 4. + */ + WordCount?: number; + /** + * Wordlist language code (diceware generator). + */ + Language?: string; + /** + * Capitalization applied to each word (diceware generator). Defaults to 'Lowercase'. + */ + Capitalization?: DicewareCapitalization; + /** + * Separator between words (diceware generator). Defaults to 'Dash'. + */ + Separator?: DicewareSeparator; + /** + * Optional random salt character (diceware generator). Defaults to 'None'. + */ + Salt?: DicewareSalt; }; /** @@ -547,4 +590,4 @@ type FieldHistory = { */ declare const MAX_FIELD_HISTORY_RECORDS = 10; -export { type Alias, type Attachment, type CreateCustomFieldOptions, type CreateSystemFieldOptions, type Credential, type EncryptionKey, FieldCategories, type FieldCategory, type FieldHistory, FieldKey, type FieldKeyValue, type FieldType, FieldTypes, type Item, type ItemField, type ItemTag, type ItemTagRef, type ItemType, type ItemTypeFieldConfig, ItemTypes, MAX_FIELD_HISTORY_RECORDS, type Passkey, type PasswordSettings, type SystemFieldDefinition, SystemFieldRegistry, type Tag, type TotpCode, createCustomField, createSystemField, fieldAppliesToType, getAllSystemFieldKeys, getDefaultFieldsForItemType, getFieldConfigForType, getFieldValue, getFieldValues, getOptionalFieldsForItemType, getSystemField, getSystemFieldsForItemType, groupFields, groupFieldsByCategory, hasField, isFieldShownByDefault, isSystemField, isSystemFieldPrefix, itemToCredential }; +export { type Alias, type Attachment, type CreateCustomFieldOptions, type CreateSystemFieldOptions, type Credential, type DicewareCapitalization, type DicewareSalt, type DicewareSeparator, type EncryptionKey, FieldCategories, type FieldCategory, type FieldHistory, FieldKey, type FieldKeyValue, type FieldType, FieldTypes, type Item, type ItemField, type ItemTag, type ItemTagRef, type ItemType, type ItemTypeFieldConfig, ItemTypes, MAX_FIELD_HISTORY_RECORDS, type Passkey, type PasswordGeneratorType, type PasswordSettings, type SystemFieldDefinition, SystemFieldRegistry, type Tag, type TotpCode, createCustomField, createSystemField, fieldAppliesToType, getAllSystemFieldKeys, getDefaultFieldsForItemType, getFieldConfigForType, getFieldValue, getFieldValues, getOptionalFieldsForItemType, getSystemField, getSystemFieldsForItemType, groupFields, groupFieldsByCategory, hasField, isFieldShownByDefault, isSystemField, isSystemFieldPrefix, itemToCredential }; diff --git a/core/models/src/vault/PasswordSettings.ts b/core/models/src/vault/PasswordSettings.ts index 5d35860ef..dc17cd2f9 100644 --- a/core/models/src/vault/PasswordSettings.ts +++ b/core/models/src/vault/PasswordSettings.ts @@ -1,34 +1,87 @@ +/** + * Which generator a password setting uses. + */ +export type PasswordGeneratorType = 'basic' | 'diceware'; + +/** + * Capitalization applied to each Diceware word. + */ +export type DicewareCapitalization = 'None' | 'TitleCase' | 'Uppercase' | 'Lowercase' | 'Random'; + +/** + * Separator placed between Diceware words. + */ +export type DicewareSeparator = 'None' | 'Dash' | 'Space' | 'Underscore' | 'Dot'; + +/** + * Optional random salt character added to a Diceware passphrase. + */ +export type DicewareSalt = 'None' | 'Prefix' | 'Sprinkle' | 'Suffix'; + /** * Settings for password generation stored in SQLite database settings table as string. + * + * The Diceware fields are optional so that older stored blobs (which only contain the + * basic-password fields) remain valid; defaults are applied when reading the settings. */ export type PasswordSettings = { /** - * The length of the password. + * The length of the password (basic generator). */ Length: number; /** - * Whether to use lowercase letters. + * Whether to use lowercase letters (basic generator). */ UseLowercase: boolean; /** - * Whether to use uppercase letters. + * Whether to use uppercase letters (basic generator). */ UseUppercase: boolean; /** - * Whether to use numbers. + * Whether to use numbers (basic generator). */ UseNumbers: boolean; /** - * Whether to use special characters. + * Whether to use special characters (basic generator). */ UseSpecialChars: boolean; /** - * Whether to use non-ambiguous characters. + * Whether to use non-ambiguous characters (basic generator). */ UseNonAmbiguousChars: boolean; + + /** + * Which generator to use. Defaults to 'basic' when absent. + */ + Type?: PasswordGeneratorType; + + /** + * Number of words in the passphrase (diceware generator). Defaults to 4. + */ + WordCount?: number; + + /** + * Wordlist language code (diceware generator). + */ + Language?: string; + + /** + * Capitalization applied to each word (diceware generator). Defaults to 'Lowercase'. + */ + Capitalization?: DicewareCapitalization; + + /** + * Separator between words (diceware generator). Defaults to 'Dash'. + */ + Separator?: DicewareSeparator; + + /** + * Optional random salt character (diceware generator). Defaults to 'None'. + */ + Salt?: DicewareSalt; }