@binsky/passman-client-ts 0.1.0-7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/lib/BrowserStorage.d.ts +39 -0
- package/lib/BrowserStorage.js +137 -0
- package/lib/Exception/ConfigurationError.d.ts +6 -0
- package/lib/Exception/ConfigurationError.js +11 -0
- package/lib/Exception/FormFieldError.d.ts +4 -0
- package/lib/Exception/FormFieldError.js +2 -0
- package/lib/Interfaces/Credential/CredentialInterface.d.ts +33 -0
- package/lib/Interfaces/Credential/CredentialInterface.js +2 -0
- package/lib/Interfaces/Credential/CustomFieldInterface.d.ts +6 -0
- package/lib/Interfaces/Credential/CustomFieldInterface.js +2 -0
- package/lib/Interfaces/Credential/EncryptedCredentialInterface.d.ts +31 -0
- package/lib/Interfaces/Credential/EncryptedCredentialInterface.js +2 -0
- package/lib/Interfaces/Credential/IconInterface.d.ts +4 -0
- package/lib/Interfaces/Credential/IconInterface.js +2 -0
- package/lib/Interfaces/Credential/OTPConfigInterface.d.ts +14 -0
- package/lib/Interfaces/Credential/OTPConfigInterface.js +2 -0
- package/lib/Interfaces/Credential/TagInterface.d.ts +3 -0
- package/lib/Interfaces/Credential/TagInterface.js +2 -0
- package/lib/Interfaces/CredentialFilterService/FilterStatsInterface.d.ts +10 -0
- package/lib/Interfaces/CredentialFilterService/FilterStatsInterface.js +2 -0
- package/lib/Interfaces/File/DeleteFilesRequestBodyInterface.d.ts +3 -0
- package/lib/Interfaces/File/DeleteFilesRequestBodyInterface.js +2 -0
- package/lib/Interfaces/File/DeleteFilesResponseInterface.d.ts +4 -0
- package/lib/Interfaces/File/DeleteFilesResponseInterface.js +2 -0
- package/lib/Interfaces/File/FileInterface.d.ts +9 -0
- package/lib/Interfaces/File/FileInterface.js +2 -0
- package/lib/Interfaces/File/FileUploadResponseInterface.d.ts +9 -0
- package/lib/Interfaces/File/FileUploadResponseInterface.js +2 -0
- package/lib/Interfaces/LoggingHandlerInterface.d.ts +9 -0
- package/lib/Interfaces/LoggingHandlerInterface.js +2 -0
- package/lib/Interfaces/NextcloudServer/NextcloudServerInterface.d.ts +6 -0
- package/lib/Interfaces/NextcloudServer/NextcloudServerInterface.js +2 -0
- package/lib/Interfaces/PassmanCrypto/GenerateKeypairResponseInterface.d.ts +5 -0
- package/lib/Interfaces/PassmanCrypto/GenerateKeypairResponseInterface.js +2 -0
- package/lib/Interfaces/PassmanCrypto/PEMRSAKeypairInterface.d.ts +4 -0
- package/lib/Interfaces/PassmanCrypto/PEMRSAKeypairInterface.js +2 -0
- package/lib/Interfaces/PassmanCrypto/RSAKeypairInterface.d.ts +5 -0
- package/lib/Interfaces/PassmanCrypto/RSAKeypairInterface.js +2 -0
- package/lib/Interfaces/PasswordGeneratorService/PasswordGeneratorConfigurationInterface.d.ts +9 -0
- package/lib/Interfaces/PasswordGeneratorService/PasswordGeneratorConfigurationInterface.js +2 -0
- package/lib/Interfaces/ReEncryptionService/ReEncryptionProgressInterface.d.ts +7 -0
- package/lib/Interfaces/ReEncryptionService/ReEncryptionProgressInterface.js +2 -0
- package/lib/Interfaces/ReEncryptionService/ReEncryptionStageProgressInterface.d.ts +5 -0
- package/lib/Interfaces/ReEncryptionService/ReEncryptionStageProgressInterface.js +2 -0
- package/lib/Interfaces/Revision/RevisionInterface.d.ts +8 -0
- package/lib/Interfaces/Revision/RevisionInterface.js +2 -0
- package/lib/Interfaces/ShareService/ACLInterface.d.ts +15 -0
- package/lib/Interfaces/ShareService/ACLInterface.js +2 -0
- package/lib/Interfaces/ShareService/CredentialShareRequestInterface.d.ts +16 -0
- package/lib/Interfaces/ShareService/CredentialShareRequestInterface.js +2 -0
- package/lib/Interfaces/Vault/VaultInterface.d.ts +15 -0
- package/lib/Interfaces/Vault/VaultInterface.js +2 -0
- package/lib/Interfaces/Vault/VaultResponseInterface.d.ts +15 -0
- package/lib/Interfaces/Vault/VaultResponseInterface.js +2 -0
- package/lib/LocalPassmanStore.d.ts +4 -0
- package/lib/LocalPassmanStore.js +14 -0
- package/lib/Model/Credential.d.ts +173 -0
- package/lib/Model/Credential.js +594 -0
- package/lib/Model/File.d.ts +15 -0
- package/lib/Model/File.js +55 -0
- package/lib/Model/NextcloudServer.d.ts +27 -0
- package/lib/Model/NextcloudServer.js +108 -0
- package/lib/Model/Revision.d.ts +21 -0
- package/lib/Model/Revision.js +33 -0
- package/lib/Model/SharingACL.d.ts +28 -0
- package/lib/Model/SharingACL.js +48 -0
- package/lib/Model/Vault.d.ts +38 -0
- package/lib/Model/Vault.js +265 -0
- package/lib/PassmanClient.d.ts +20 -0
- package/lib/PassmanClient.js +80 -0
- package/lib/Service/CredentialFilterService.d.ts +24 -0
- package/lib/Service/CredentialFilterService.js +209 -0
- package/lib/Service/CustomMathsService.d.ts +7 -0
- package/lib/Service/CustomMathsService.js +52 -0
- package/lib/Service/DefaultLoggingService.d.ts +10 -0
- package/lib/Service/DefaultLoggingService.js +27 -0
- package/lib/Service/DownloadService.d.ts +12 -0
- package/lib/Service/DownloadService.js +121 -0
- package/lib/Service/OTPService.d.ts +22 -0
- package/lib/Service/OTPService.js +134 -0
- package/lib/Service/PassmanCrypto.d.ts +10 -0
- package/lib/Service/PassmanCrypto.js +57 -0
- package/lib/Service/PasswordGeneratorService.d.ts +6 -0
- package/lib/Service/PasswordGeneratorService.js +73 -0
- package/lib/Service/ReEncryptionService.d.ts +23 -0
- package/lib/Service/ReEncryptionService.js +318 -0
- package/lib/Service/ShareService.d.ts +15 -0
- package/lib/Service/ShareService.js +56 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import NextcloudServer from "./NextcloudServer";
|
|
2
|
+
import Vault from "./Vault";
|
|
3
|
+
import { CredentialInterface } from "../Interfaces/Credential/CredentialInterface";
|
|
4
|
+
import { EncryptedCredentialInterface } from "../Interfaces/Credential/EncryptedCredentialInterface";
|
|
5
|
+
import { CustomFieldInterface } from "../Interfaces/Credential/CustomFieldInterface";
|
|
6
|
+
import { TagInterface } from "../Interfaces/Credential/TagInterface";
|
|
7
|
+
import { IconInterface } from "../Interfaces/Credential/IconInterface";
|
|
8
|
+
import { FileInterface } from "../Interfaces/File/FileInterface";
|
|
9
|
+
import { FileUploadResponseInterface } from "../Interfaces/File/FileUploadResponseInterface";
|
|
10
|
+
import { RevisionInterface } from "../Interfaces/Revision/RevisionInterface";
|
|
11
|
+
import { OTPConfigInterface } from "../Interfaces/Credential/OTPConfigInterface";
|
|
12
|
+
import { ACLInterface } from "../Interfaces/ShareService/ACLInterface";
|
|
13
|
+
export default class Credential {
|
|
14
|
+
protected vault: Vault;
|
|
15
|
+
protected server: NextcloudServer;
|
|
16
|
+
ENCRYPTED_FIELDS: string[];
|
|
17
|
+
protected encryptedData: EncryptedCredentialInterface;
|
|
18
|
+
private decryptedDataCache;
|
|
19
|
+
sharedCredentialEncryptionKey: string;
|
|
20
|
+
private foundUnspecifiedEncryptionError;
|
|
21
|
+
overwriteVaultKey: string | undefined;
|
|
22
|
+
constructor(vault: Vault, server: NextcloudServer, encryptedData?: EncryptedCredentialInterface);
|
|
23
|
+
private initializeAllFields;
|
|
24
|
+
/**
|
|
25
|
+
* Save new credential on the server.
|
|
26
|
+
* The current credential object will be updated with the server response data if possible.
|
|
27
|
+
*/
|
|
28
|
+
save(): Promise<void | EncryptedCredentialInterface>;
|
|
29
|
+
/**
|
|
30
|
+
* Update / edit an existing credential on the server.
|
|
31
|
+
* The current credential object will be updated with the server response data if possible.
|
|
32
|
+
*/
|
|
33
|
+
update(): Promise<void | EncryptedCredentialInterface>;
|
|
34
|
+
/**
|
|
35
|
+
* Refresh the local credential data based on the server, using the credentials guid.
|
|
36
|
+
* It is not supported to do that for credentials, shared with us.
|
|
37
|
+
*/
|
|
38
|
+
refresh(): Promise<void | EncryptedCredentialInterface>;
|
|
39
|
+
/**
|
|
40
|
+
* Destroys the credential on the server and removes itself from its local vault.
|
|
41
|
+
*/
|
|
42
|
+
destroy(): Promise<void | Response>;
|
|
43
|
+
clearDecryptedDataCache(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Create a credential object based on its encrypted data.
|
|
46
|
+
* @param data
|
|
47
|
+
* @param vault
|
|
48
|
+
* @param server
|
|
49
|
+
*/
|
|
50
|
+
static fromData(data: EncryptedCredentialInterface, vault: Vault, server: NextcloudServer): Promise<Credential>;
|
|
51
|
+
/**
|
|
52
|
+
* Create a credential object based on its guid. This will fetch the current credential data from the server.
|
|
53
|
+
* @param guid
|
|
54
|
+
* @param vault
|
|
55
|
+
* @param server
|
|
56
|
+
*/
|
|
57
|
+
static fromGuid(guid: string, vault: Vault, server: NextcloudServer): Promise<Credential>;
|
|
58
|
+
getRevisions(): Promise<void | RevisionInterface[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Update credential (encryptedData store) with the new values, if they have changed.
|
|
61
|
+
* This does not update the servers credential instance.
|
|
62
|
+
* @param decryptedCredentialData
|
|
63
|
+
*/
|
|
64
|
+
updateData(decryptedCredentialData: CredentialInterface): void;
|
|
65
|
+
exportData(): CredentialInterface;
|
|
66
|
+
/**
|
|
67
|
+
* Creates a local 100% clone of the current credential.
|
|
68
|
+
*/
|
|
69
|
+
clone(): Credential;
|
|
70
|
+
/**
|
|
71
|
+
* Check whether the credential has a valid shared_key.
|
|
72
|
+
* If true, it is a credential, that's encrypted with the decrypted shared_key field content.
|
|
73
|
+
*/
|
|
74
|
+
hasValidSharedKey(): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a local 100% clone of the current credential and re-encrypts it with the given key.
|
|
77
|
+
*/
|
|
78
|
+
reEncryptAsClone(newVaultKey: string): Credential;
|
|
79
|
+
private getFieldEncryptionKey;
|
|
80
|
+
/**
|
|
81
|
+
* Returns (json parsed) field data and decrypt / caches it if required.
|
|
82
|
+
*
|
|
83
|
+
* @param property key of ILEncryptedCredential
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
private getCacheDecryptFieldData;
|
|
87
|
+
/**
|
|
88
|
+
* Pass the plain field data so that it can be stored stringified and encrypted.
|
|
89
|
+
*
|
|
90
|
+
* @param property
|
|
91
|
+
* @param data
|
|
92
|
+
* @private
|
|
93
|
+
*/
|
|
94
|
+
private setEncryptFieldData;
|
|
95
|
+
downloadFile(file: FileInterface, directDownload?: boolean): Promise<string>;
|
|
96
|
+
/**
|
|
97
|
+
* Takes plain file data, encrypts and uploads it.
|
|
98
|
+
* This method does *not* add the file to the local credential files list!
|
|
99
|
+
* Adding it to the files list as well as a call to save() or update() is required to associate the file persistent with the credential.
|
|
100
|
+
* @param plainFile
|
|
101
|
+
*/
|
|
102
|
+
encryptUploadFile(plainFile: FileInterface): Promise<void | FileUploadResponseInterface>;
|
|
103
|
+
/**
|
|
104
|
+
* Deletes the given file from the server.
|
|
105
|
+
* This method does *not* delete the file from the local credential files list!
|
|
106
|
+
* @param file
|
|
107
|
+
*/
|
|
108
|
+
deleteFile(file: FileInterface): Promise<void | FileUploadResponseInterface>;
|
|
109
|
+
getVaultGuid(): string;
|
|
110
|
+
getEncrypted(): EncryptedCredentialInterface;
|
|
111
|
+
hasUnspecifiedEncryptionError(): boolean;
|
|
112
|
+
get credential_id(): number;
|
|
113
|
+
set credential_id(value: number);
|
|
114
|
+
get guid(): string;
|
|
115
|
+
set guid(value: string);
|
|
116
|
+
get user_id(): string;
|
|
117
|
+
set user_id(value: string);
|
|
118
|
+
get vault_id(): number;
|
|
119
|
+
set vault_id(value: number);
|
|
120
|
+
get label(): string;
|
|
121
|
+
set label(value: string);
|
|
122
|
+
get description(): string;
|
|
123
|
+
set description(value: string);
|
|
124
|
+
get tags(): TagInterface[];
|
|
125
|
+
set tags(value: TagInterface[]);
|
|
126
|
+
get email(): string;
|
|
127
|
+
set email(value: string);
|
|
128
|
+
get username(): string;
|
|
129
|
+
set username(value: string);
|
|
130
|
+
get password(): string;
|
|
131
|
+
set password(value: string);
|
|
132
|
+
get url(): string;
|
|
133
|
+
set url(value: string);
|
|
134
|
+
get files(): FileInterface[];
|
|
135
|
+
set files(value: FileInterface[]);
|
|
136
|
+
get custom_fields(): CustomFieldInterface[];
|
|
137
|
+
set custom_fields(value: CustomFieldInterface[]);
|
|
138
|
+
get otp(): OTPConfigInterface;
|
|
139
|
+
set otp(value: OTPConfigInterface);
|
|
140
|
+
get compromised(): boolean;
|
|
141
|
+
set compromised(value: boolean);
|
|
142
|
+
/**
|
|
143
|
+
* This special field is not encrypted, if it only contains a null value.
|
|
144
|
+
*/
|
|
145
|
+
get shared_key(): string | null;
|
|
146
|
+
/**
|
|
147
|
+
* This special field is not encrypted, if it only contains a null value.
|
|
148
|
+
* @param value
|
|
149
|
+
*/
|
|
150
|
+
set shared_key(value: string | null);
|
|
151
|
+
get favicon(): string;
|
|
152
|
+
set favicon(value: string);
|
|
153
|
+
get icon(): IconInterface | null;
|
|
154
|
+
set icon(value: IconInterface | null);
|
|
155
|
+
get renew_interval(): number | null;
|
|
156
|
+
set renew_interval(value: number | null);
|
|
157
|
+
get expire_time(): number;
|
|
158
|
+
set expire_time(value: number);
|
|
159
|
+
get delete_time(): number;
|
|
160
|
+
set delete_time(value: number);
|
|
161
|
+
get hidden(): boolean;
|
|
162
|
+
set hidden(value: boolean);
|
|
163
|
+
get created(): number;
|
|
164
|
+
set created(value: number);
|
|
165
|
+
get changed(): number;
|
|
166
|
+
set changed(value: number);
|
|
167
|
+
get set_share_key(): boolean;
|
|
168
|
+
set set_share_key(value: boolean);
|
|
169
|
+
get skip_revision(): boolean;
|
|
170
|
+
set skip_revision(value: boolean);
|
|
171
|
+
get acl(): ACLInterface;
|
|
172
|
+
set acl(value: ACLInterface);
|
|
173
|
+
}
|