1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-09 03:53:53 +00:00

Merge branch 'main' into auth/pm-8111/browser-refresh-login-component

This commit is contained in:
Alec Rippberger
2024-10-07 14:31:11 -05:00
86 changed files with 1088 additions and 574 deletions

View File

@@ -153,6 +153,8 @@ import { KeyGenerationService as KeyGenerationServiceAbstraction } from "@bitwar
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { MessagingService as MessagingServiceAbstraction } from "@bitwarden/common/platform/abstractions/messaging.service";
import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { SdkClientFactory } from "@bitwarden/common/platform/abstractions/sdk/sdk-client-factory";
import { SdkService } from "@bitwarden/common/platform/abstractions/sdk/sdk.service";
import { StateService as StateServiceAbstraction } from "@bitwarden/common/platform/abstractions/state.service";
import { AbstractStorageService } from "@bitwarden/common/platform/abstractions/storage.service";
import { ValidationService as ValidationServiceAbstraction } from "@bitwarden/common/platform/abstractions/validation.service";
@@ -181,6 +183,7 @@ import { KeyGenerationService } from "@bitwarden/common/platform/services/key-ge
import { MigrationBuilderService } from "@bitwarden/common/platform/services/migration-builder.service";
import { MigrationRunner } from "@bitwarden/common/platform/services/migration-runner";
import { NoopNotificationsService } from "@bitwarden/common/platform/services/noop-notifications.service";
import { DefaultSdkService } from "@bitwarden/common/platform/services/sdk/default-sdk.service";
import { StateService } from "@bitwarden/common/platform/services/state.service";
import { StorageServiceProvider } from "@bitwarden/common/platform/services/storage-service.provider";
import { UserAutoUnlockKeyService } from "@bitwarden/common/platform/services/user-auto-unlock-key.service";
@@ -1337,6 +1340,16 @@ const safeProviders: SafeProvider[] = [
SsoLoginServiceAbstraction,
],
}),
safeProvider({
provide: SdkService,
useClass: DefaultSdkService,
deps: [
SdkClientFactory,
EnvironmentService,
PlatformUtilsServiceAbstraction,
ApiServiceAbstraction,
],
}),
];
@NgModule({

View File

@@ -605,6 +605,10 @@ export class AddEditComponent implements OnInit, OnDestroy {
this.collections = this.writeableCollections?.filter(
(c) => c.organizationId === this.cipher.organizationId,
);
// If there's only one collection, check it by default
if (this.collections.length === 1) {
(this.collections[0] as any).checked = true;
}
const org = await this.organizationService.get(this.cipher.organizationId);
if (org != null) {
this.cipher.organizationUseTotp = org.useTotp;

View File

@@ -0,0 +1,9 @@
import { ClientSettings, LogLevel, BitwardenClient } from "@bitwarden/sdk-internal";
import { SdkClientFactory } from "../src/platform/abstractions/sdk/sdk-client-factory";
export class DefaultSdkClientFactory implements SdkClientFactory {
createSdkClient(settings?: ClientSettings, log_level?: LogLevel): Promise<BitwardenClient> {
throw new Error("Method not implemented.");
}
}

View File

@@ -0,0 +1,10 @@
import type { BitwardenClient } from "@bitwarden/sdk-internal";
/**
* Factory for creating SDK clients.
*/
export abstract class SdkClientFactory {
abstract createSdkClient(
...args: ConstructorParameters<typeof BitwardenClient>
): Promise<BitwardenClient>;
}

View File

@@ -0,0 +1,10 @@
import { Observable } from "rxjs";
import { BitwardenClient } from "@bitwarden/sdk-internal";
export abstract class SdkService {
client$: Observable<BitwardenClient>;
supported$: Observable<boolean>;
abstract failedToInitialize(): Promise<void>;
}

View File

@@ -2,6 +2,7 @@
// eslint-disable-next-line @typescript-eslint/ban-types
export type SharedFlags = {
showPasswordless?: boolean;
sdk?: boolean;
};
// required to avoid linting errors when there are no flags
@@ -28,7 +29,7 @@ function getFlags<T>(envFlags: string | T): T {
* @returns The value of the flag
*/
export function flagEnabled<Flags extends SharedFlags>(flag: keyof Flags): boolean {
const flags = getFlags<Flags>(process.env.FLAGS);
const flags = getFlags<Flags>(process.env.FLAGS) ?? ({} as Flags);
return flags[flag] == null || !!flags[flag];
}

View File

@@ -0,0 +1,19 @@
import * as sdk from "@bitwarden/sdk-internal";
import * as module from "@bitwarden/sdk-internal/bitwarden_wasm_internal_bg.wasm";
import { SdkClientFactory } from "../../abstractions/sdk/sdk-client-factory";
/**
* Directly imports the Bitwarden SDK and initializes it.
*
* **Warning**: This requires WASM support and will fail if the environment does not support it.
*/
export class DefaultSdkClientFactory implements SdkClientFactory {
async createSdkClient(
...args: ConstructorParameters<typeof sdk.BitwardenClient>
): Promise<sdk.BitwardenClient> {
(sdk as any).init(module);
return Promise.resolve(new sdk.BitwardenClient(...args));
}
}

View File

@@ -0,0 +1,111 @@
import { concatMap, firstValueFrom, shareReplay } from "rxjs";
import { LogLevel, DeviceType as SdkDeviceType } from "@bitwarden/sdk-internal";
import { ApiService } from "../../../abstractions/api.service";
import { DeviceType } from "../../../enums/device-type.enum";
import { EnvironmentService } from "../../abstractions/environment.service";
import { PlatformUtilsService } from "../../abstractions/platform-utils.service";
import { SdkClientFactory } from "../../abstractions/sdk/sdk-client-factory";
import { SdkService } from "../../abstractions/sdk/sdk.service";
export class DefaultSdkService implements SdkService {
client$ = this.environmentService.environment$.pipe(
concatMap(async (env) => {
const settings = {
apiUrl: env.getApiUrl(),
identityUrl: env.getIdentityUrl(),
deviceType: this.toDevice(this.platformUtilsService.getDevice()),
userAgent: this.userAgent ?? navigator.userAgent,
};
return await this.sdkClientFactory.createSdkClient(settings, LogLevel.Info);
}),
shareReplay({ refCount: true, bufferSize: 1 }),
);
supported$ = this.client$.pipe(
concatMap(async (client) => {
return client.echo("bitwarden wasm!") === "bitwarden wasm!";
}),
);
constructor(
private sdkClientFactory: SdkClientFactory,
private environmentService: EnvironmentService,
private platformUtilsService: PlatformUtilsService,
private apiService: ApiService, // Yes we shouldn't import ApiService, but it's temporary
private userAgent: string = null,
) {}
async failedToInitialize(): Promise<void> {
// Only log on cloud instances
if (
this.platformUtilsService.isDev() ||
!(await firstValueFrom(this.environmentService.environment$)).isCloud
) {
return;
}
return this.apiService.send("POST", "/wasm-debug", null, false, false, null, (headers) => {
headers.append("SDK-Version", "1.0.0");
});
}
private toDevice(device: DeviceType): SdkDeviceType {
switch (device) {
case DeviceType.Android:
return "Android";
case DeviceType.iOS:
return "iOS";
case DeviceType.ChromeExtension:
return "ChromeExtension";
case DeviceType.FirefoxExtension:
return "FirefoxExtension";
case DeviceType.OperaExtension:
return "OperaExtension";
case DeviceType.EdgeExtension:
return "EdgeExtension";
case DeviceType.WindowsDesktop:
return "WindowsDesktop";
case DeviceType.MacOsDesktop:
return "MacOsDesktop";
case DeviceType.LinuxDesktop:
return "LinuxDesktop";
case DeviceType.ChromeBrowser:
return "ChromeBrowser";
case DeviceType.FirefoxBrowser:
return "FirefoxBrowser";
case DeviceType.OperaBrowser:
return "OperaBrowser";
case DeviceType.EdgeBrowser:
return "EdgeBrowser";
case DeviceType.IEBrowser:
return "IEBrowser";
case DeviceType.UnknownBrowser:
return "UnknownBrowser";
case DeviceType.AndroidAmazon:
return "AndroidAmazon";
case DeviceType.UWP:
return "UWP";
case DeviceType.SafariBrowser:
return "SafariBrowser";
case DeviceType.VivaldiBrowser:
return "VivaldiBrowser";
case DeviceType.VivaldiExtension:
return "VivaldiExtension";
case DeviceType.SafariExtension:
return "SafariExtension";
case DeviceType.Server:
return "Server";
case DeviceType.WindowsCLI:
return "WindowsCLI";
case DeviceType.MacOsCLI:
return "MacOsCLI";
case DeviceType.LinuxCLI:
return "LinuxCLI";
default:
return "SDK";
}
}
}

View File

@@ -0,0 +1,16 @@
import type { BitwardenClient } from "@bitwarden/sdk-internal";
import { SdkClientFactory } from "../../abstractions/sdk/sdk-client-factory";
/**
* Noop SDK client factory.
*
* Used during SDK rollout to prevent bundling the SDK with some applications.
*/
export class NoopSdkClientFactory implements SdkClientFactory {
createSdkClient(
...args: ConstructorParameters<typeof BitwardenClient>
): Promise<BitwardenClient> {
return Promise.reject(new Error("SDK not available"));
}
}

View File

@@ -8,6 +8,7 @@ import { TreeNode } from "../models/domain/tree-node";
import { CollectionView } from "../models/view/collection.view";
export abstract class CollectionService {
encryptedCollections$: Observable<Collection[]>;
decryptedCollections$: Observable<CollectionView[]>;
clearActiveUserCache: () => Promise<void>;

View File

@@ -673,6 +673,8 @@ export class CipherService implements CipherServiceAbstraction {
if (orgAdmin && cipher.organizationId != null) {
const request = new CipherCreateRequest(cipher);
response = await this.apiService.postCipherAdmin(request);
const data = new CipherData(response, cipher.collectionIds);
return new Cipher(data);
} else if (cipher.collectionIds != null) {
const request = new CipherCreateRequest(cipher);
response = await this.apiService.postCipherCreate(request);
@@ -697,6 +699,8 @@ export class CipherService implements CipherServiceAbstraction {
if (orgAdmin && isNotClone) {
const request = new CipherRequest(cipher);
response = await this.apiService.putCipherAdmin(cipher.id, request);
const data = new CipherData(response, cipher.collectionIds);
return new Cipher(data, cipher.localData);
} else if (cipher.edit) {
const request = new CipherRequest(cipher);
response = await this.apiService.putCipher(cipher.id, request);

View File

@@ -56,6 +56,16 @@ describe("1Password 1Pux Importer", () => {
const SecureNoteDataJson = JSON.stringify(SecureNoteData);
const SanitizedExportJson = JSON.stringify(SanitizedExport);
it("should not import items with state 'archived'", async () => {
const importer = new OnePassword1PuxImporter();
const archivedLoginData = LoginData;
archivedLoginData["accounts"][0]["vaults"][0]["items"][0]["state"] = "archived";
const archivedDataJson = JSON.stringify(archivedLoginData);
const result = await importer.parse(archivedDataJson);
expect(result != null).toBe(true);
expect(result.ciphers.length).toBe(0);
});
it("should parse login data", async () => {
const importer = new OnePassword1PuxImporter();
const result = await importer.parse(LoginDataJson);

View File

@@ -26,7 +26,7 @@ export const APICredentialsData: ExportData = {
favIndex: 0,
createdAt: 1619465969,
updatedAt: 1619466052,
trashed: false,
state: "active",
categoryUuid: "112",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const APICredentialsData: ExportData = {
value: {
string: "apiuser@nullvalue.test",
},
indexAtSource: 0,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const APICredentialsData: ExportData = {
value: {
concealed: "apiapiapiapiapiapiappy",
},
indexAtSource: 1,
guarded: true,
multiline: false,
dontGenerate: true,
@@ -73,7 +71,6 @@ export const APICredentialsData: ExportData = {
value: {
menu: "jwt",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const APICredentialsData: ExportData = {
value: {
string: "filename.jwt",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const APICredentialsData: ExportData = {
value: {
date: 1301918460,
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const APICredentialsData: ExportData = {
value: {
date: 1932811260,
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const APICredentialsData: ExportData = {
value: {
string: "not.your.everyday.hostname",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const BankAccountData: ExportData = {
favIndex: 0,
createdAt: 1619466056,
updatedAt: 1619466187,
trashed: false,
state: "active",
categoryUuid: "101",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const BankAccountData: ExportData = {
value: {
string: "Super Credit Union",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const BankAccountData: ExportData = {
value: {
string: "Cool Guy",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const BankAccountData: ExportData = {
value: {
menu: "checking",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const BankAccountData: ExportData = {
value: {
string: "111000999",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const BankAccountData: ExportData = {
value: {
string: "192837465918273645",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const BankAccountData: ExportData = {
value: {
string: "123456",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const BankAccountData: ExportData = {
value: {
string: "DE12 123456",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -153,7 +146,6 @@ export const BankAccountData: ExportData = {
value: {
concealed: "5555",
},
indexAtSource: 7,
guarded: false,
multiline: false,
dontGenerate: true,
@@ -175,7 +167,6 @@ export const BankAccountData: ExportData = {
value: {
phone: "9399399933",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -191,7 +182,6 @@ export const BankAccountData: ExportData = {
value: {
string: "1 Fifth Avenue",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const CreditCardData: ExportData = {
favIndex: 0,
createdAt: 1619465282,
updatedAt: 1619465447,
trashed: false,
state: "active",
categoryUuid: "002",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const CreditCardData: ExportData = {
value: {
string: "Fred Engels",
},
indexAtSource: 0,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const CreditCardData: ExportData = {
value: {
creditCardType: "discover",
},
indexAtSource: 1,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const CreditCardData: ExportData = {
value: {
creditCardNumber: "6011111111111117",
},
indexAtSource: 2,
guarded: true,
clipboardFilter: "0123456789",
multiline: false,
@@ -90,7 +87,6 @@ export const CreditCardData: ExportData = {
value: {
concealed: "1312",
},
indexAtSource: 3,
guarded: true,
multiline: false,
dontGenerate: true,
@@ -106,7 +102,6 @@ export const CreditCardData: ExportData = {
value: {
monthYear: 209912,
},
indexAtSource: 4,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -122,7 +117,6 @@ export const CreditCardData: ExportData = {
value: {
monthYear: 200101,
},
indexAtSource: 5,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -138,7 +132,6 @@ export const CreditCardData: ExportData = {
value: {
string: "card",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -160,7 +153,6 @@ export const CreditCardData: ExportData = {
value: {
string: "Some bank",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -176,7 +168,6 @@ export const CreditCardData: ExportData = {
value: {
phone: "123456",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -192,7 +183,6 @@ export const CreditCardData: ExportData = {
value: {
phone: "0800123456",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -208,7 +198,6 @@ export const CreditCardData: ExportData = {
value: {
phone: "+49123456",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -224,7 +213,6 @@ export const CreditCardData: ExportData = {
value: {
url: "somebank.com",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -246,7 +234,6 @@ export const CreditCardData: ExportData = {
value: {
concealed: "1234",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: true,
@@ -262,7 +249,6 @@ export const CreditCardData: ExportData = {
value: {
string: "$1312",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -278,7 +264,6 @@ export const CreditCardData: ExportData = {
value: {
string: "$500",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -294,7 +279,6 @@ export const CreditCardData: ExportData = {
value: {
string: "1%",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -310,7 +294,6 @@ export const CreditCardData: ExportData = {
value: {
string: "123456",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const DatabaseData: ExportData = {
favIndex: 0,
createdAt: 1619466193,
updatedAt: 1619466276,
trashed: false,
state: "active",
categoryUuid: "102",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const DatabaseData: ExportData = {
value: {
menu: "postgresql",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const DatabaseData: ExportData = {
value: {
string: "my.secret.db.server",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const DatabaseData: ExportData = {
value: {
string: "1337",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const DatabaseData: ExportData = {
value: {
string: "user_database",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const DatabaseData: ExportData = {
value: {
string: "cooldbuser",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const DatabaseData: ExportData = {
value: {
concealed: "^+kTjhLaN7wVPAhGU)*J",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const DatabaseData: ExportData = {
value: {
string: "ASDIUFU-283234",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -153,7 +146,6 @@ export const DatabaseData: ExportData = {
value: {
string: "cdbu",
},
indexAtSource: 7,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -169,7 +161,6 @@ export const DatabaseData: ExportData = {
value: {
string: "ssh",
},
indexAtSource: 8,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const DriversLicenseData: ExportData = {
favIndex: 0,
createdAt: 1619466279,
updatedAt: 1619466425,
trashed: false,
state: "active",
categoryUuid: "103",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "Michael Scarn",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "2120 Mifflin Rd.",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const DriversLicenseData: ExportData = {
value: {
date: 252504060,
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const DriversLicenseData: ExportData = {
value: {
gender: "male",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "5'11\"",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "12345678901",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "C",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -153,7 +146,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "B",
},
indexAtSource: 7,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -169,7 +161,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "Pennsylvania",
},
indexAtSource: 8,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -185,7 +176,6 @@ export const DriversLicenseData: ExportData = {
value: {
string: "United States",
},
indexAtSource: 9,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -201,7 +191,6 @@ export const DriversLicenseData: ExportData = {
value: {
monthYear: 203012,
},
indexAtSource: 10,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const EmailAccountData: ExportData = {
favIndex: 0,
createdAt: 1619466428,
updatedAt: 1619466585,
trashed: false,
state: "active",
categoryUuid: "111",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const EmailAccountData: ExportData = {
value: {
menu: "either",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "someuser@nullvalue.test",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "mailserver.nullvalue.test",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "587",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const EmailAccountData: ExportData = {
value: {
concealed: "u1jsf<UI*&YU&^T",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const EmailAccountData: ExportData = {
value: {
menu: "TLS",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const EmailAccountData: ExportData = {
value: {
menu: "kerberos_v5",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -159,7 +152,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "mailserver.nullvalue.test",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -175,7 +167,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "589",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -191,7 +182,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "someuser@nullvalue.test",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -207,7 +197,6 @@ export const EmailAccountData: ExportData = {
value: {
concealed: "(*1674%^UIUJ*UI(IUI8u98uyy",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -223,7 +212,6 @@ export const EmailAccountData: ExportData = {
value: {
menu: "TLS",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -239,7 +227,6 @@ export const EmailAccountData: ExportData = {
value: {
menu: "password",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -261,7 +248,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "Telum",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -277,7 +263,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "https://telum.nullvalue.test",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -293,7 +278,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "2346666666",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -309,7 +293,6 @@ export const EmailAccountData: ExportData = {
value: {
string: "18005557777",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const EmailFieldOnIdentityData: ExportData = {
favIndex: 0,
createdAt: 1619465450,
updatedAt: 1619465789,
trashed: false,
state: "active",
categoryUuid: "004",
details: {
loginFields: [],
@@ -55,7 +55,6 @@ export const EmailFieldOnIdentityData: ExportData = {
provider: "myEmailProvider",
},
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const EmailFieldOnIdentityPrefilledData: ExportData = {
favIndex: 0,
createdAt: 1619465450,
updatedAt: 1619465789,
trashed: false,
state: "active",
categoryUuid: "004",
details: {
loginFields: [],
@@ -52,7 +52,6 @@ export const EmailFieldOnIdentityPrefilledData: ExportData = {
value: {
string: "gengels@nullvalue.test",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -71,7 +70,6 @@ export const EmailFieldOnIdentityPrefilledData: ExportData = {
provider: "myEmailProvider",
},
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const EmailFieldData: ExportData = {
favIndex: 1,
createdAt: 1619467985,
updatedAt: 1619468230,
trashed: false,
state: "active",
categoryUuid: "100",
details: {
loginFields: [],
@@ -49,7 +49,6 @@ export const EmailFieldData: ExportData = {
provider: "myEmailProvider",
},
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const IdentityData: ExportData = {
favIndex: 0,
createdAt: 1619465450,
updatedAt: 1619465789,
trashed: false,
state: "active",
categoryUuid: "004",
details: {
loginFields: [],
@@ -42,7 +42,6 @@ export const IdentityData: ExportData = {
value: {
string: "George",
},
indexAtSource: 0,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -58,7 +57,6 @@ export const IdentityData: ExportData = {
value: {
string: "S",
},
indexAtSource: 1,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -74,7 +72,6 @@ export const IdentityData: ExportData = {
value: {
string: "Engels",
},
indexAtSource: 2,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -90,7 +87,6 @@ export const IdentityData: ExportData = {
value: {
menu: "male",
},
indexAtSource: 3,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -106,7 +102,6 @@ export const IdentityData: ExportData = {
value: {
date: 347198460,
},
indexAtSource: 4,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -122,7 +117,6 @@ export const IdentityData: ExportData = {
value: {
string: "Steel Worker",
},
indexAtSource: 5,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -138,7 +132,6 @@ export const IdentityData: ExportData = {
value: {
string: "Acme Inc.",
},
indexAtSource: 6,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -154,7 +147,6 @@ export const IdentityData: ExportData = {
value: {
string: "QA",
},
indexAtSource: 7,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -170,7 +162,6 @@ export const IdentityData: ExportData = {
value: {
string: "Quality Assurance Manager",
},
indexAtSource: 8,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -198,7 +189,6 @@ export const IdentityData: ExportData = {
state: "California",
},
},
indexAtSource: 0,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -214,7 +204,6 @@ export const IdentityData: ExportData = {
value: {
phone: "4565555555",
},
indexAtSource: 1,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -230,7 +219,6 @@ export const IdentityData: ExportData = {
value: {
phone: "4575555555",
},
indexAtSource: 2,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -246,7 +234,6 @@ export const IdentityData: ExportData = {
value: {
phone: "4585555555",
},
indexAtSource: 3,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -262,7 +249,6 @@ export const IdentityData: ExportData = {
value: {
phone: "4595555555",
},
indexAtSource: 4,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -284,7 +270,6 @@ export const IdentityData: ExportData = {
value: {
string: "gengels",
},
indexAtSource: 0,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -300,7 +285,6 @@ export const IdentityData: ExportData = {
value: {
string: "Who's a super cool guy?",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -316,7 +300,6 @@ export const IdentityData: ExportData = {
value: {
string: "Me, buddy.",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -332,7 +315,6 @@ export const IdentityData: ExportData = {
value: {
string: "gengels@nullvalue.test",
},
indexAtSource: 3,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -348,7 +330,6 @@ export const IdentityData: ExportData = {
value: {
string: "cv.gengels.nullvalue.test",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -364,7 +345,6 @@ export const IdentityData: ExportData = {
value: {
string: "12345678",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -380,7 +360,6 @@ export const IdentityData: ExportData = {
value: {
string: "skypeisbad1619",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -396,7 +375,6 @@ export const IdentityData: ExportData = {
value: {
string: "aollol@lololol.aol.com",
},
indexAtSource: 7,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -412,7 +390,6 @@ export const IdentityData: ExportData = {
value: {
string: "sk8rboi13@yah00.com",
},
indexAtSource: 8,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -428,7 +405,6 @@ export const IdentityData: ExportData = {
value: {
string: "msnothankyou@msn&m&m.com",
},
indexAtSource: 9,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -444,7 +420,6 @@ export const IdentityData: ExportData = {
value: {
string: "super cool guy",
},
indexAtSource: 10,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const LoginData: ExportData = {
favIndex: 0,
createdAt: 1635522833,
updatedAt: 1635522872,
trashed: false,
state: "active",
categoryUuid: "001",
details: {
loginFields: [
@@ -68,7 +68,6 @@ export const LoginData: ExportData = {
value: {
string: "username123123",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -84,7 +83,6 @@ export const LoginData: ExportData = {
value: {
totp: "otpseed777",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const MedicalRecordData: ExportData = {
favIndex: 0,
createdAt: 1641220207,
updatedAt: 1641220326,
trashed: false,
state: "active",
categoryUuid: "113",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const MedicalRecordData: ExportData = {
value: {
date: 1641038460,
},
indexAtSource: 0,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const MedicalRecordData: ExportData = {
value: {
string: "some hospital/clinic",
},
indexAtSource: 1,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -74,7 +72,6 @@ export const MedicalRecordData: ExportData = {
value: {
string: "Some Doctor",
},
indexAtSource: 2,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -91,7 +88,6 @@ export const MedicalRecordData: ExportData = {
value: {
string: "Me",
},
indexAtSource: 3,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -108,7 +104,6 @@ export const MedicalRecordData: ExportData = {
value: {
string: "unwell",
},
indexAtSource: 4,
guarded: true,
multiline: true,
dontGenerate: false,
@@ -131,7 +126,6 @@ export const MedicalRecordData: ExportData = {
value: {
string: "Insuline",
},
indexAtSource: 0,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -148,7 +142,6 @@ export const MedicalRecordData: ExportData = {
value: {
string: "1",
},
indexAtSource: 1,
guarded: true,
multiline: false,
dontGenerate: false,
@@ -165,7 +158,6 @@ export const MedicalRecordData: ExportData = {
value: {
string: "multiple times a day",
},
indexAtSource: 2,
guarded: true,
multiline: true,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const MembershipData: ExportData = {
favIndex: 1,
createdAt: 1619467269,
updatedAt: 1619467368,
trashed: false,
state: "active",
categoryUuid: "105",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const MembershipData: ExportData = {
value: {
string: "National Public Library",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const MembershipData: ExportData = {
value: {
url: "https://npl.nullvalue.gov.test",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const MembershipData: ExportData = {
value: {
phone: "9995555555",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const MembershipData: ExportData = {
value: {
string: "George Engels",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const MembershipData: ExportData = {
value: {
monthYear: 199901,
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const MembershipData: ExportData = {
value: {
monthYear: 203412,
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const MembershipData: ExportData = {
value: {
string: "64783862",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -153,7 +146,6 @@ export const MembershipData: ExportData = {
value: {
concealed: "19191",
},
indexAtSource: 7,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const OnePuxExampleFile: ExportData = {
favIndex: 1,
createdAt: 1614298956,
updatedAt: 1635346445,
trashed: false,
state: "active",
categoryUuid: "001",
details: {
loginFields: [
@@ -50,7 +50,6 @@ export const OnePuxExampleFile: ExportData = {
value: {
concealed: "12345",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const OutdoorLicenseData: ExportData = {
favIndex: 0,
createdAt: 1619467374,
updatedAt: 1619467492,
trashed: false,
state: "active",
categoryUuid: "104",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const OutdoorLicenseData: ExportData = {
value: {
string: "Cash Bandit",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const OutdoorLicenseData: ExportData = {
value: {
date: 1617278460,
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const OutdoorLicenseData: ExportData = {
value: {
date: 2343124860,
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const OutdoorLicenseData: ExportData = {
value: {
string: "Bananas,blueberries,corn",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const OutdoorLicenseData: ExportData = {
value: {
string: "100/each",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const OutdoorLicenseData: ExportData = {
value: {
string: "Washington",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const OutdoorLicenseData: ExportData = {
value: {
string: "United States of America",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const PassportData: ExportData = {
favIndex: 0,
createdAt: 1619467498,
updatedAt: 1619467655,
trashed: false,
state: "active",
categoryUuid: "106",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const PassportData: ExportData = {
value: {
string: "US Passport",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const PassportData: ExportData = {
value: {
string: "United States of America",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const PassportData: ExportData = {
value: {
string: "76436847",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const PassportData: ExportData = {
value: {
string: "David Global",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const PassportData: ExportData = {
value: {
gender: "female",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const PassportData: ExportData = {
value: {
string: "International",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const PassportData: ExportData = {
value: {
string: "Department of State",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -153,7 +146,6 @@ export const PassportData: ExportData = {
value: {
date: 418046460,
},
indexAtSource: 7,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -169,7 +161,6 @@ export const PassportData: ExportData = {
value: {
string: "A cave somewhere in Maine",
},
indexAtSource: 8,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -185,7 +176,6 @@ export const PassportData: ExportData = {
value: {
date: 1577880060,
},
indexAtSource: 9,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -201,7 +191,6 @@ export const PassportData: ExportData = {
value: {
date: 2524651260,
},
indexAtSource: 10,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const PasswordData: ExportData = {
favIndex: 0,
createdAt: 1619465796,
updatedAt: 1619465869,
trashed: false,
state: "active",
categoryUuid: "005",
details: {
loginFields: [],

View File

@@ -26,7 +26,7 @@ export const RewardsProgramData: ExportData = {
favIndex: 0,
createdAt: 1619467659,
updatedAt: 1619467765,
trashed: false,
state: "active",
categoryUuid: "107",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const RewardsProgramData: ExportData = {
value: {
string: "Super Cool Store Co.",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const RewardsProgramData: ExportData = {
value: {
string: "Chef Coldroom",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const RewardsProgramData: ExportData = {
value: {
string: "member-29813569",
},
indexAtSource: 2,
guarded: false,
clipboardFilter:
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
@@ -91,7 +88,6 @@ export const RewardsProgramData: ExportData = {
value: {
concealed: "99913",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -113,7 +109,6 @@ export const RewardsProgramData: ExportData = {
value: {
string: "additional member id",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -129,7 +124,6 @@ export const RewardsProgramData: ExportData = {
value: {
monthYear: 202101,
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -145,7 +139,6 @@ export const RewardsProgramData: ExportData = {
value: {
phone: "123456",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -161,7 +154,6 @@ export const RewardsProgramData: ExportData = {
value: {
phone: "123456",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -177,7 +169,6 @@ export const RewardsProgramData: ExportData = {
value: {
url: "supercoolstore.com",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const SecureNoteData: ExportData = {
favIndex: 0,
createdAt: 1619465226,
updatedAt: 1619465278,
trashed: false,
state: "active",
categoryUuid: "003",
details: {
loginFields: [],

View File

@@ -26,7 +26,7 @@ export const ServerData: ExportData = {
favIndex: 0,
createdAt: 1619467769,
updatedAt: 1619467906,
trashed: false,
state: "active",
categoryUuid: "110",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const ServerData: ExportData = {
value: {
string: "https://coolserver.nullvalue.test",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const ServerData: ExportData = {
value: {
string: "frankly-notsure",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const ServerData: ExportData = {
value: {
concealed: "*&YHJI87yjy78u",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -95,7 +92,6 @@ export const ServerData: ExportData = {
value: {
string: "https://coolserver.nullvalue.test/admin",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -111,7 +107,6 @@ export const ServerData: ExportData = {
value: {
string: "frankly-idontknowwhatimdoing",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -127,7 +122,6 @@ export const ServerData: ExportData = {
value: {
concealed: "^%RY&^YUiju8iUYHJI(U",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -149,7 +143,6 @@ export const ServerData: ExportData = {
value: {
string: "Private Hosting Provider Inc.",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -165,7 +158,6 @@ export const ServerData: ExportData = {
value: {
string: "https://phpi.nullvalue.test",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -181,7 +173,6 @@ export const ServerData: ExportData = {
value: {
string: "https://phpi.nullvalue.test/support",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -197,7 +188,6 @@ export const ServerData: ExportData = {
value: {
string: "8882569382",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const SoftwareLicenseData: ExportData = {
favIndex: 1,
createdAt: 1619467985,
updatedAt: 1619468230,
trashed: false,
state: "active",
categoryUuid: "100",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "5.10.1000",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "265453-13457355-847327",
},
indexAtSource: 1,
guarded: true,
multiline: true,
dontGenerate: false,
@@ -79,7 +77,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "Kay Riddler",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -98,7 +95,6 @@ export const SoftwareLicenseData: ExportData = {
provider: null,
},
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -114,7 +110,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "Riddles and Jigsaw Puzzles GmbH",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -136,7 +131,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
url: "https://limuxcompany.nullvalue.test/5.10.1000/isos",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -152,7 +146,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "Limux Software and Hardware",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -168,7 +161,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
url: "https://limuxcompany.nullvalue.test/",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -184,7 +176,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "$999",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -203,7 +194,6 @@ export const SoftwareLicenseData: ExportData = {
provider: null,
},
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -225,7 +215,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
date: 1617278460,
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -241,7 +230,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "594839",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -257,7 +245,6 @@ export const SoftwareLicenseData: ExportData = {
value: {
string: "$1086.59",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -26,7 +26,7 @@ export const SSNData: ExportData = {
favIndex: 1,
createdAt: 1619467910,
updatedAt: 1619467982,
trashed: false,
state: "active",
categoryUuid: "108",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const SSNData: ExportData = {
value: {
string: "Jack Judd",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const SSNData: ExportData = {
value: {
concealed: "131-216-1900",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: true,

View File

@@ -26,7 +26,7 @@ export const WirelessRouterData: ExportData = {
favIndex: 0,
createdAt: 1577652307,
updatedAt: 1577652307,
trashed: false,
state: "active",
categoryUuid: "109",
details: {
loginFields: [],
@@ -41,7 +41,6 @@ export const WirelessRouterData: ExportData = {
value: {
string: "pixel 2Xl",
},
indexAtSource: 0,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -57,7 +56,6 @@ export const WirelessRouterData: ExportData = {
value: {
concealed: "BqatGTVQ9TCN72tLbjrsHqkb",
},
indexAtSource: 1,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -73,7 +71,6 @@ export const WirelessRouterData: ExportData = {
value: {
string: "127.0.0.1",
},
indexAtSource: 2,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -89,7 +86,6 @@ export const WirelessRouterData: ExportData = {
value: {
string: "some airportId",
},
indexAtSource: 3,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -105,7 +101,6 @@ export const WirelessRouterData: ExportData = {
value: {
string: "some network name",
},
indexAtSource: 4,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -121,7 +116,6 @@ export const WirelessRouterData: ExportData = {
value: {
menu: "WPA",
},
indexAtSource: 5,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -137,7 +131,6 @@ export const WirelessRouterData: ExportData = {
value: {
concealed: "wifipassword",
},
indexAtSource: 6,
guarded: false,
multiline: false,
dontGenerate: false,
@@ -153,7 +146,6 @@ export const WirelessRouterData: ExportData = {
value: {
concealed: "diskpassword",
},
indexAtSource: 7,
guarded: false,
multiline: false,
dontGenerate: false,

View File

@@ -22,7 +22,7 @@ export class Parser {
/*
May return null when the chunk does not represent an account.
All secure notes are ACCTs but not all of them store account information.
TODO: Add a test for the folder case!
TODO: Add a test case that covers secure note account!
*/
@@ -60,9 +60,17 @@ export class Parser {
// 3: url
step = 3;
let url = Utils.fromBufferToUtf8(
this.decodeHexLoose(Utils.fromBufferToUtf8(this.readItem(reader))),
);
const urlEncoded = this.readItem(reader);
let url =
urlEncoded.length > 0 && urlEncoded[0] === 33 // 33 = '!'
? // URL is encrypted
await this.cryptoUtils.decryptAes256PlainWithDefault(
urlEncoded,
encryptionKey,
placeholder,
)
: // URL is not encrypted
Utils.fromBufferToUtf8(this.decodeHexLoose(Utils.fromBufferToUtf8(urlEncoded)));
// Ignore "group" accounts. They have no credentials.
if (url == "http://group") {

View File

@@ -37,7 +37,7 @@ export class OnePassword1PuxImporter extends BaseImporter implements Importer {
// const personalVaults = account.vaults[0].filter((v) => v.attrs.type === VaultAttributeTypeEnum.Personal);
account.vaults.forEach((vault: VaultsEntity) => {
vault.items.forEach((item: Item) => {
if (item.trashed === true) {
if (item.state === "archived") {
return;
}

View File

@@ -53,7 +53,7 @@ export interface Item {
favIndex: number;
createdAt: number;
updatedAt: number;
trashed?: boolean;
state: "active" | "archived";
categoryUuid: string;
details: Details;
overview: Overview;
@@ -88,12 +88,12 @@ export interface SectionsEntity {
title: string;
name?: string | null;
fields?: FieldsEntity[] | null;
hideAddAnotherField?: boolean | null;
}
export interface FieldsEntity {
title: string;
id: string;
value: Value;
indexAtSource: number;
guarded: boolean;
multiline: boolean;
dontGenerate: boolean;
@@ -153,6 +153,8 @@ export interface Overview {
pbe?: number | null;
pgrng?: boolean | null;
tags?: string[] | null;
icons?: string | null;
watchtowerExclusions?: string | null;
}
export interface UrlsEntity {
label: string;

View File

@@ -79,6 +79,9 @@ type BaseCipherFormConfig = {
* List of organizations that the user can create ciphers for.
*/
organizations?: Organization[];
/** Hides the fields that are only applicable to individuals, useful in the Admin Console where folders aren't applicable */
hideIndividualVaultFields?: true;
};
/**

View File

@@ -2,6 +2,7 @@
<bit-section-header>
<h2 bitTypography="h6">{{ "itemDetails" | i18n }}</h2>
<button
*ngIf="!config.hideIndividualVaultFields"
slot="end"
type="button"
size="small"
@@ -18,7 +19,11 @@
<input bitInput formControlName="name" />
</bit-form-field>
<div class="tw-grid tw-grid-cols-2 tw-gap-1">
<bit-form-field *ngIf="showOwnership" [disableMargin]="!showCollectionsControl">
<bit-form-field
*ngIf="showOwnership"
[disableMargin]="!showCollectionsControl"
[class.tw-col-span-2]="config.hideIndividualVaultFields"
>
<bit-label>{{ "owner" | i18n }}</bit-label>
<bit-select formControlName="organizationId">
<bit-option
@@ -36,6 +41,7 @@
<bit-form-field
[class.tw-col-span-2]="!showOwnership"
[disableMargin]="!showCollectionsControl"
*ngIf="!config.hideIndividualVaultFields"
>
<bit-label>{{ "folder" | i18n }}</bit-label>
<bit-select formControlName="folderId">

View File

@@ -1,5 +1,5 @@
import { inject, Injectable } from "@angular/core";
import { combineLatest, firstValueFrom, map } from "rxjs";
import { combineLatest, filter, firstValueFrom, map, switchMap } from "rxjs";
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
@@ -39,9 +39,21 @@ export class DefaultCipherFormConfigService implements CipherFormConfigService {
await firstValueFrom(
combineLatest([
this.organizations$,
this.collectionService.decryptedCollections$,
this.collectionService.encryptedCollections$.pipe(
switchMap((c) =>
this.collectionService.decryptedCollections$.pipe(
filter((d) => d.length === c.length), // Ensure all collections have been decrypted
),
),
),
this.allowPersonalOwnership$,
this.folderService.folderViews$,
this.folderService.folders$.pipe(
switchMap((f) =>
this.folderService.folderViews$.pipe(
filter((d) => d.length - 1 === f.length), // -1 for "No Folder" in folderViews$
),
),
),
this.getCipher(cipherId),
]),
);