@docknetwork/wallet-sdk-core 1.5.11 → 1.7.0
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/generate-docs.js +33 -0
- package/jsdoc.conf.json +28 -0
- package/lib/biometric-provider.d.ts +123 -31
- package/lib/biometric-provider.d.ts.map +1 -1
- package/lib/biometric-provider.js +146 -7
- package/lib/biometric-provider.js.map +1 -1
- package/lib/cloud-wallet.d.ts +7 -3
- package/lib/cloud-wallet.d.ts.map +1 -1
- package/lib/cloud-wallet.js +29 -18
- package/lib/cloud-wallet.js.map +1 -1
- package/lib/credential-provider.d.ts +63 -30
- package/lib/credential-provider.d.ts.map +1 -1
- package/lib/credential-provider.js +220 -13
- package/lib/credential-provider.js.map +1 -1
- package/lib/credentials/oidvc.d.ts +1 -1
- package/lib/credentials/oidvc.d.ts.map +1 -1
- package/lib/credentials/oidvc.js +8 -9
- package/lib/credentials/oidvc.js.map +1 -1
- package/lib/did-provider.d.ts +102 -36
- package/lib/did-provider.d.ts.map +1 -1
- package/lib/did-provider.js +186 -28
- package/lib/did-provider.js.map +1 -1
- package/lib/ecosystem-tools.js +5 -6
- package/lib/ecosystem-tools.js.map +1 -1
- package/lib/helpers.js +6 -6
- package/lib/helpers.js.map +1 -1
- package/lib/message-provider.d.ts +39 -13
- package/lib/message-provider.d.ts.map +1 -1
- package/lib/message-provider.js +147 -21
- package/lib/message-provider.js.map +1 -1
- package/lib/messages/message-helpers.js +6 -6
- package/lib/messages/message-helpers.js.map +1 -1
- package/lib/network-resolver.d.ts +1 -1
- package/lib/network-resolver.js +5 -5
- package/lib/network-resolver.js.map +1 -1
- package/lib/qr-handlers/builtin/index.d.ts +30 -0
- package/lib/qr-handlers/builtin/index.d.ts.map +1 -0
- package/lib/qr-handlers/builtin/index.js +46 -0
- package/lib/qr-handlers/builtin/index.js.map +1 -0
- package/lib/qr-handlers/builtin/oid4vc-handler.d.ts +137 -0
- package/lib/qr-handlers/builtin/oid4vc-handler.d.ts.map +1 -0
- package/lib/qr-handlers/builtin/oid4vc-handler.js +134 -0
- package/lib/qr-handlers/builtin/oid4vc-handler.js.map +1 -0
- package/lib/qr-handlers/index.d.ts +76 -0
- package/lib/qr-handlers/index.d.ts.map +1 -0
- package/lib/qr-handlers/index.js +92 -0
- package/lib/qr-handlers/index.js.map +1 -0
- package/lib/qr-handlers/processor.d.ts +110 -0
- package/lib/qr-handlers/processor.d.ts.map +1 -0
- package/lib/qr-handlers/processor.js +251 -0
- package/lib/qr-handlers/processor.js.map +1 -0
- package/lib/qr-handlers/types.d.ts +205 -0
- package/lib/qr-handlers/types.d.ts.map +1 -0
- package/lib/qr-handlers/types.js +10 -0
- package/lib/qr-handlers/types.js.map +1 -0
- package/lib/types.d.ts +610 -14
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +16 -0
- package/lib/types.js.map +1 -1
- package/lib/verification-controller.d.ts +0 -1
- package/lib/verification-controller.d.ts.map +1 -1
- package/lib/verification-controller.js +12 -5
- package/lib/verification-controller.js.map +1 -1
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.d.ts +0 -1
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.d.ts.map +1 -1
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.js +3 -3
- package/lib/wallet-to-wallet-verification/walletToWalletVerificationProvider.js.map +1 -1
- package/lib/wallet-wasm.d.ts.map +1 -1
- package/lib/wallet-wasm.js +13 -14
- package/lib/wallet-wasm.js.map +1 -1
- package/lib/wallet.d.ts +36 -20
- package/lib/wallet.d.ts.map +1 -1
- package/lib/wallet.js +174 -28
- package/lib/wallet.js.map +1 -1
- package/package.json +19 -11
- package/src/biometric-provider.ts +157 -42
- package/src/cloud-wallet.ts +13 -0
- package/src/credential-provider.test.ts +220 -1
- package/src/credential-provider.ts +222 -25
- package/src/credentials/oidvc.test.ts +1 -1
- package/src/credentials/oidvc.ts +1 -1
- package/src/did-provider.ts +183 -34
- package/src/message-provider.ts +149 -35
- package/src/qr-handlers/builtin/index.ts +30 -0
- package/src/qr-handlers/builtin/oid4vc-handler.ts +198 -0
- package/src/qr-handlers/index.ts +76 -0
- package/src/qr-handlers/processor.test.ts +514 -0
- package/src/qr-handlers/processor.ts +311 -0
- package/src/qr-handlers/types.ts +228 -0
- package/src/types.ts +666 -11
- package/src/verification-controller.test.ts +1 -2
- package/src/verification-controller.ts +9 -1
- package/src/wallet-wasm.ts +1 -3
- package/src/wallet.ts +173 -24
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {IWallet} from './types';
|
|
1
|
+
import {IWallet, WalletEvents} from './types';
|
|
2
2
|
import {
|
|
3
3
|
createVerificationController,
|
|
4
4
|
VerificationStatus,
|
|
@@ -11,7 +11,6 @@ import iiwTemplate from './fixtures/iiw-template.json';
|
|
|
11
11
|
import anyCredentialProofRequest from './fixtures/any-credential-proof-request.json';
|
|
12
12
|
import universityDegreeProofRequest from './fixtures/university-degree-proof-request.json';
|
|
13
13
|
import {createDIDProvider, IDIDProvider} from './did-provider';
|
|
14
|
-
import {WalletEvents} from '@docknetwork/wallet-sdk-core/src/wallet';
|
|
15
14
|
import {replaceResponseURL} from './helpers';
|
|
16
15
|
import {createDataStore} from '@docknetwork/wallet-sdk-data-store-typeorm/src';
|
|
17
16
|
|
|
@@ -169,7 +169,15 @@ export function createVerificationController({
|
|
|
169
169
|
const isBBS = await isBBSPlusCredential(credentialSelection.credential);
|
|
170
170
|
const isKVAC = await isKvacCredential(credentialSelection.credential);
|
|
171
171
|
|
|
172
|
-
if (
|
|
172
|
+
if (credentialSelection.credential._sd_jwt) {
|
|
173
|
+
const derivedCredential =
|
|
174
|
+
await credentialServiceRPC.createSDJWTPresentation({
|
|
175
|
+
attributesToReveal: credentialSelection.attributesToReveal,
|
|
176
|
+
credential: credentialSelection.credential._sd_jwt.encoded,
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
credentials.push(derivedCredential);
|
|
180
|
+
} else if (isBBS || isKVAC) {
|
|
173
181
|
// derive credential
|
|
174
182
|
const derivedCredentials =
|
|
175
183
|
await credentialServiceRPC.deriveVCFromPresentation({
|
package/src/wallet-wasm.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { blockchainService } from '@docknetwork/wallet-sdk-wasm/src/services/blockchain';
|
|
2
2
|
import { utilCryptoService } from '@docknetwork/wallet-sdk-wasm/src/services/util-crypto';
|
|
3
|
-
|
|
4
3
|
import { Network } from '@docknetwork/wallet-sdk-data-store/src/types';
|
|
5
|
-
import { WalletEvents } from '@docknetwork/wallet-sdk-core/src/wallet';
|
|
6
4
|
import { captureException } from './helpers';
|
|
7
|
-
import { IWallet } from './types';
|
|
5
|
+
import { IWallet, WalletEvents } from './types';
|
|
8
6
|
|
|
9
7
|
function isBlockchainNetwork(network: Network) {
|
|
10
8
|
return !!(network.configs.substrateUrl || network.configs.cheqdApiUrl);
|
package/src/wallet.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @module wallet
|
|
3
|
+
* @description Core wallet functionality for the Dock Wallet SDK.
|
|
4
|
+
* This module provides the main wallet creation and management functions.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {CreateWalletProps, IWallet, WalletEvents} from './types';
|
|
8
|
+
|
|
9
|
+
|
|
2
10
|
import {initWalletWasm} from './wallet-wasm';
|
|
3
11
|
import {EventEmitter} from 'events';
|
|
4
12
|
import {walletService} from '@docknetwork/wallet-sdk-wasm/src/services/wallet';
|
|
@@ -10,6 +18,19 @@ function once(emitter: EventEmitter, eventName: string) {
|
|
|
10
18
|
return new Promise(resolve => emitter.once(eventName, resolve));
|
|
11
19
|
}
|
|
12
20
|
|
|
21
|
+
export {
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Please use WalletEvents from ./types.ts instead
|
|
24
|
+
*/
|
|
25
|
+
WalletEvents,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Ensures a document has the proper @context for Universal Wallet compatibility
|
|
30
|
+
* @param {Object} document - The document to add context to
|
|
31
|
+
* @returns {Object} The document with @context added if it was missing
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
13
34
|
export function ensureDocumentContext(document) {
|
|
14
35
|
if (document['@context']) {
|
|
15
36
|
return document;
|
|
@@ -22,30 +43,27 @@ export function ensureDocumentContext(document) {
|
|
|
22
43
|
}
|
|
23
44
|
|
|
24
45
|
|
|
25
|
-
export type WalletStatus = 'closed' | 'loading' | 'ready' | 'error';
|
|
26
|
-
|
|
27
|
-
export type KeypairType = 'sr25519' | 'ed25519' | 'ecdsa';
|
|
28
|
-
|
|
29
|
-
export const WalletEvents = {
|
|
30
|
-
ready: 'ready',
|
|
31
|
-
error: 'error',
|
|
32
|
-
migrated: 'migrated',
|
|
33
|
-
statusUpdated: 'status-updated',
|
|
34
|
-
documentAdded: 'document-added',
|
|
35
|
-
documentUpdated: 'document-updated',
|
|
36
|
-
documentRemoved: 'document-removed',
|
|
37
|
-
walletDeleted: 'wallet-deleted',
|
|
38
|
-
walletImported: 'wallet-imported',
|
|
39
|
-
networkUpdated: 'network-updated',
|
|
40
|
-
networkConnected: 'network-connected',
|
|
41
|
-
networkError: 'network-error',
|
|
42
|
-
};
|
|
43
|
-
|
|
44
46
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* @
|
|
47
|
+
* Creates a new wallet instance with the provided data store.
|
|
48
|
+
* The wallet provides secure storage and management of DIDs, credentials, keys, and other documents.
|
|
49
|
+
*
|
|
50
|
+
* @param {CreateWalletProps} props - Configuration options for wallet creation
|
|
51
|
+
* @param {DataStore} props.dataStore - The data store implementation to use for persistence
|
|
52
|
+
* @returns {Promise<IWallet>} A promise that resolves to the created wallet instance
|
|
53
|
+
* @see {@link IWallet} - The interface defining all available wallet methods
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* import { createWallet } from '@docknetwork/wallet-sdk-core';
|
|
57
|
+
* import { createDataStore } from '@docknetwork/wallet-sdk-data-store';
|
|
58
|
+
*
|
|
59
|
+
* const dataStore = await createDataStore();
|
|
60
|
+
* const wallet = await createWallet({ dataStore });
|
|
61
|
+
*
|
|
62
|
+
* // The wallet implements the IWallet interface
|
|
63
|
+
* await wallet.addDocument(myCredential);
|
|
64
|
+
* const documents = await wallet.getAllDocuments();
|
|
65
|
+
*
|
|
66
|
+
* @throws {Error} If the data store is not properly initialized
|
|
49
67
|
*/
|
|
50
68
|
export async function createWallet({
|
|
51
69
|
dataStore,
|
|
@@ -67,37 +85,118 @@ export async function createWallet({
|
|
|
67
85
|
dataStore,
|
|
68
86
|
});
|
|
69
87
|
},
|
|
88
|
+
/**
|
|
89
|
+
* Deletes the entire wallet and all its documents
|
|
90
|
+
* @memberof IWallet
|
|
91
|
+
* @returns {Promise<void>}
|
|
92
|
+
* @fires WalletEvents.walletDeleted
|
|
93
|
+
*/
|
|
70
94
|
deleteWallet: async () => {
|
|
71
95
|
await dataStore.documents.removeAllDocuments();
|
|
72
96
|
|
|
73
97
|
eventEmitter.emit(WalletEvents.walletDeleted);
|
|
74
98
|
},
|
|
99
|
+
/**
|
|
100
|
+
* Sets the wallet status
|
|
101
|
+
* @memberof IWallet
|
|
102
|
+
* @param {string} newStatus - The new status to set
|
|
103
|
+
*/
|
|
75
104
|
setStatus(newStatus: string) {
|
|
76
105
|
status = newStatus;
|
|
77
106
|
},
|
|
107
|
+
/**
|
|
108
|
+
* Sets the active network for the wallet
|
|
109
|
+
* @memberof IWallet
|
|
110
|
+
* @param {string} networkId - The network identifier to switch to
|
|
111
|
+
* @returns {Promise<void>}
|
|
112
|
+
* @fires WalletEvents.networkUpdated
|
|
113
|
+
*/
|
|
78
114
|
setNetwork: async (networkId: string) => {
|
|
79
115
|
await dataStore.setNetwork(networkId);
|
|
80
116
|
eventEmitter.emit(WalletEvents.networkUpdated, networkId);
|
|
81
117
|
},
|
|
118
|
+
/**
|
|
119
|
+
* Gets the current network ID
|
|
120
|
+
* @memberof IWallet
|
|
121
|
+
* @returns {string} The current network identifier
|
|
122
|
+
*/
|
|
82
123
|
getNetworkId: () => {
|
|
83
124
|
return dataStore.networkId;
|
|
84
125
|
},
|
|
126
|
+
/**
|
|
127
|
+
* Retrieves a document by its ID
|
|
128
|
+
* @memberof IWallet
|
|
129
|
+
* @param {string} id - The unique identifier of the document
|
|
130
|
+
* @returns {Promise<WalletDocument>} The document with the specified ID
|
|
131
|
+
* @throws {Error} If document is not found
|
|
132
|
+
*/
|
|
85
133
|
getDocumentById: (id) => dataStore.documents.getDocumentById(id),
|
|
134
|
+
/**
|
|
135
|
+
* Retrieves all documents stored in the wallet
|
|
136
|
+
* @memberof IWallet
|
|
137
|
+
* @returns {Promise<WalletDocument[]>} Array of all documents in the wallet
|
|
138
|
+
*/
|
|
86
139
|
getAllDocuments: () => dataStore.documents.getAllDocuments(),
|
|
140
|
+
/**
|
|
141
|
+
* Retrieves multiple documents by their IDs
|
|
142
|
+
* @memberof IWallet
|
|
143
|
+
* @param {string[]} idList - Array of document IDs to retrieve
|
|
144
|
+
* @returns {Promise<WalletDocument[]>} Array of documents matching the provided IDs
|
|
145
|
+
*/
|
|
87
146
|
getDocumentsById: (idList) => dataStore.documents.getDocumentsById(idList),
|
|
147
|
+
/**
|
|
148
|
+
* Retrieves all documents of a specific type
|
|
149
|
+
* @memberof IWallet
|
|
150
|
+
* @param {string} type - The document type to filter by (e.g., 'VerifiableCredential', 'DIDDocument')
|
|
151
|
+
* @returns {Promise<WalletDocument[]>} Array of documents matching the specified type
|
|
152
|
+
*/
|
|
88
153
|
getDocumentsByType: (type) => dataStore.documents.getDocumentsByType(type),
|
|
154
|
+
/**
|
|
155
|
+
* Adds a new document to the wallet
|
|
156
|
+
* @memberof IWallet
|
|
157
|
+
* @param {any} json - The document to add (must have valid JSON-LD structure)
|
|
158
|
+
* @param {any} [options] - Optional parameters for document creation
|
|
159
|
+
* @returns {Promise<WalletDocument>} The created document with generated metadata
|
|
160
|
+
* @fires WalletEvents.documentAdded
|
|
161
|
+
* @example
|
|
162
|
+
* const credential = {
|
|
163
|
+
* "@context": ["https://www.w3.org/2018/credentials/v1"],
|
|
164
|
+
* "type": ["VerifiableCredential"],
|
|
165
|
+
* "issuer": "did:dock:123",
|
|
166
|
+
* "credentialSubject": { "name": "John Doe" }
|
|
167
|
+
* };
|
|
168
|
+
* const addedDoc = await wallet.addDocument(credential);
|
|
169
|
+
*/
|
|
89
170
|
addDocument: (json: any) => {
|
|
90
171
|
return dataStore.documents.addDocument(json).then(result => {
|
|
91
172
|
eventEmitter.emit(WalletEvents.documentAdded, result);
|
|
92
173
|
return result;
|
|
93
174
|
});
|
|
94
175
|
},
|
|
176
|
+
/**
|
|
177
|
+
* Updates an existing document
|
|
178
|
+
* @memberof IWallet
|
|
179
|
+
* @param {any} document - The document with updated data (must include ID)
|
|
180
|
+
* @param {any} [options] - Optional parameters for document update
|
|
181
|
+
* @returns {Promise<WalletDocument>} The updated document
|
|
182
|
+
* @fires WalletEvents.documentUpdated
|
|
183
|
+
* @throws {Error} If document doesn't exist
|
|
184
|
+
*/
|
|
95
185
|
updateDocument: (document: any) => {
|
|
96
186
|
return dataStore.documents.updateDocument(document).then(result => {
|
|
97
187
|
eventEmitter.emit(WalletEvents.documentUpdated, result);
|
|
98
188
|
return result;
|
|
99
189
|
});
|
|
100
190
|
},
|
|
191
|
+
/**
|
|
192
|
+
* Removes a document from the wallet
|
|
193
|
+
* @memberof IWallet
|
|
194
|
+
* @param {string} id - The ID of the document to remove
|
|
195
|
+
* @param {any} [options] - Optional parameters for document removal
|
|
196
|
+
* @returns {Promise<void>}
|
|
197
|
+
* @fires WalletEvents.documentRemoved
|
|
198
|
+
* @throws {Error} If document is not found
|
|
199
|
+
*/
|
|
101
200
|
removeDocument: async (id: string) => {
|
|
102
201
|
const document = await wallet.getDocumentById(id);
|
|
103
202
|
|
|
@@ -106,9 +205,21 @@ export async function createWallet({
|
|
|
106
205
|
return result;
|
|
107
206
|
});
|
|
108
207
|
},
|
|
208
|
+
/**
|
|
209
|
+
* Gets all documents correlated to a specific document
|
|
210
|
+
* @memberof IWallet
|
|
211
|
+
* @param {string} documentId - The ID of the document to find correlations for
|
|
212
|
+
* @returns {Promise<WalletDocument[]>} Array of correlated documents
|
|
213
|
+
*/
|
|
109
214
|
getDocumentCorrelations: (documentId: string) => {
|
|
110
215
|
return dataStore.documents.getDocumentCorrelations(documentId);
|
|
111
216
|
},
|
|
217
|
+
/**
|
|
218
|
+
* Retrieves the keypair associated with an account
|
|
219
|
+
* @memberof IWallet
|
|
220
|
+
* @param {string} accountId - The account ID to get the keypair for
|
|
221
|
+
* @returns {Promise<any>} The keypair associated with the account
|
|
222
|
+
*/
|
|
112
223
|
getAccountKeyPair: async (accountId: string) => {
|
|
113
224
|
const correlations = await dataStore.documents.getDocumentCorrelations(accountId);
|
|
114
225
|
|
|
@@ -118,12 +229,31 @@ export async function createWallet({
|
|
|
118
229
|
|
|
119
230
|
return keyPair?.value;
|
|
120
231
|
},
|
|
232
|
+
/**
|
|
233
|
+
* Decrypts and retrieves documents from an encrypted wallet without importing
|
|
234
|
+
* @memberof IWallet
|
|
235
|
+
* @param {any} json - The encrypted wallet JSON
|
|
236
|
+
* @param {string} password - Password to decrypt the wallet
|
|
237
|
+
* @returns {Promise<any>} Array of decrypted documents
|
|
238
|
+
*/
|
|
121
239
|
getDocumentsFromEncryptedWallet: async (json: any, password: string) => {
|
|
122
240
|
return walletService.getDocumentsFromEncryptedWallet({
|
|
123
241
|
encryptedJSONWallet: json,
|
|
124
242
|
password,
|
|
125
243
|
});
|
|
126
244
|
},
|
|
245
|
+
/**
|
|
246
|
+
* Imports documents from an encrypted Universal Wallet 2020 JSON
|
|
247
|
+
* @memberof IWallet
|
|
248
|
+
* @param {any} json - The encrypted wallet JSON
|
|
249
|
+
* @param {string} password - Password to decrypt the wallet
|
|
250
|
+
* @returns {Promise<void>}
|
|
251
|
+
* @see {@link https://w3c-ccg.github.io/universal-wallet-interop-spec/}
|
|
252
|
+
* @example
|
|
253
|
+
* // Import from encrypted wallet backup
|
|
254
|
+
* const walletBackup = { ... }; // encrypted wallet JSON
|
|
255
|
+
* await wallet.importUniversalWalletJSON(walletBackup, 'mypassword');
|
|
256
|
+
*/
|
|
127
257
|
importUniversalWalletJSON: async (json: any, password: string) => {
|
|
128
258
|
const documents = await walletService.getDocumentsFromEncryptedWallet({
|
|
129
259
|
encryptedJSONWallet: json,
|
|
@@ -137,6 +267,14 @@ export async function createWallet({
|
|
|
137
267
|
|
|
138
268
|
return documents;
|
|
139
269
|
},
|
|
270
|
+
/**
|
|
271
|
+
* Exports specified documents as an encrypted JSON (test)
|
|
272
|
+
* @memberof IWallet
|
|
273
|
+
* @param {Object} params - Export parameters
|
|
274
|
+
* @param {any[]} params.documents - Documents to export
|
|
275
|
+
* @param {string} params.password - Password for encryption
|
|
276
|
+
* @returns {Promise<any>} Encrypted wallet JSON
|
|
277
|
+
*/
|
|
140
278
|
exportDocuments: async (params: {documents: any; password: string}) => {
|
|
141
279
|
const documents = params.documents.map(ensureDocumentContext);
|
|
142
280
|
return walletService.exportDocuments({
|
|
@@ -144,6 +282,17 @@ export async function createWallet({
|
|
|
144
282
|
password: params.password,
|
|
145
283
|
});
|
|
146
284
|
},
|
|
285
|
+
/**
|
|
286
|
+
* Exports the entire wallet as an encrypted Universal Wallet 2020 JSON
|
|
287
|
+
* @memberof IWallet
|
|
288
|
+
* @param {string} password - Password for encryption
|
|
289
|
+
* @returns {any} Encrypted Universal Wallet JSON representation
|
|
290
|
+
* @see {@link https://w3c-ccg.github.io/universal-wallet-interop-spec/}
|
|
291
|
+
* @example
|
|
292
|
+
* // Create encrypted backup of entire wallet
|
|
293
|
+
* const backup = await wallet.exportUniversalWalletJSON('mypassword');
|
|
294
|
+
* // Save backup to file or cloud storage
|
|
295
|
+
*/
|
|
147
296
|
exportUniversalWalletJSON: async (password: string) => {
|
|
148
297
|
let documents = await dataStore.documents.getAllDocuments(true);
|
|
149
298
|
|