@cmdoss/memwal-sdk 0.8.0 → 1.0.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/README.md +522 -160
- package/dist/client/ClientMemoryManager.d.ts.map +1 -1
- package/dist/client/ClientMemoryManager.js +25 -8
- package/dist/client/ClientMemoryManager.js.map +1 -1
- package/dist/client/PersonalDataWallet.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.d.ts +62 -2
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +96 -11
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/IndexNamespace.d.ts +1 -1
- package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/IndexNamespace.js +7 -4
- package/dist/client/namespaces/IndexNamespace.js.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.d.ts +47 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +257 -27
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts +215 -0
- package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/consolidated/AdvancedNamespace.js +214 -0
- package/dist/client/namespaces/consolidated/AdvancedNamespace.js.map +1 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +3 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/index.d.ts +1 -0
- package/dist/client/namespaces/consolidated/index.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/index.js +1 -0
- package/dist/client/namespaces/consolidated/index.js.map +1 -1
- package/dist/config/ConfigurationHelper.js +61 -61
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +9 -4
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/modelDefaults.d.ts +67 -0
- package/dist/config/modelDefaults.d.ts.map +1 -0
- package/dist/config/modelDefaults.js +91 -0
- package/dist/config/modelDefaults.js.map +1 -0
- package/dist/core/types/index.d.ts +4 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/graph/GraphService.d.ts.map +1 -1
- package/dist/graph/GraphService.js +22 -21
- package/dist/graph/GraphService.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/walrus/WalrusStorageService.d.ts +6 -0
- package/dist/infrastructure/walrus/WalrusStorageService.d.ts.map +1 -1
- package/dist/infrastructure/walrus/WalrusStorageService.js +23 -4
- package/dist/infrastructure/walrus/WalrusStorageService.js.map +1 -1
- package/dist/langchain/createPDWRAG.js +30 -30
- package/dist/pipeline/MemoryPipeline.d.ts.map +1 -1
- package/dist/pipeline/MemoryPipeline.js +2 -1
- package/dist/pipeline/MemoryPipeline.js.map +1 -1
- package/dist/services/EmbeddingService.d.ts +9 -0
- package/dist/services/EmbeddingService.d.ts.map +1 -1
- package/dist/services/EmbeddingService.js +31 -10
- package/dist/services/EmbeddingService.js.map +1 -1
- package/dist/services/GeminiAIService.d.ts.map +1 -1
- package/dist/services/GeminiAIService.js +311 -310
- package/dist/services/GeminiAIService.js.map +1 -1
- package/dist/services/MemoryIndexService.d.ts +2 -0
- package/dist/services/MemoryIndexService.d.ts.map +1 -1
- package/dist/services/MemoryIndexService.js +11 -4
- package/dist/services/MemoryIndexService.js.map +1 -1
- package/dist/services/StorageService.d.ts +4 -1
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js.map +1 -1
- package/dist/services/VectorService.js +1 -1
- package/dist/services/VectorService.js.map +1 -1
- package/dist/services/storage/QuiltBatchManager.d.ts +7 -0
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
- package/dist/services/storage/QuiltBatchManager.js +24 -5
- package/dist/services/storage/QuiltBatchManager.js.map +1 -1
- package/dist/services/storage/WalrusStorageManager.d.ts +10 -1
- package/dist/services/storage/WalrusStorageManager.d.ts.map +1 -1
- package/dist/services/storage/WalrusStorageManager.js +53 -12
- package/dist/services/storage/WalrusStorageManager.js.map +1 -1
- package/dist/vector/BrowserHnswIndexService.js +3 -3
- package/dist/vector/BrowserHnswIndexService.js.map +1 -1
- package/dist/vector/HnswWasmService.js +1 -1
- package/dist/vector/HnswWasmService.js.map +1 -1
- package/dist/vector/NodeHnswService.js +5 -5
- package/dist/vector/NodeHnswService.js.map +1 -1
- package/dist/vector/createHnswService.d.ts +4 -0
- package/dist/vector/createHnswService.d.ts.map +1 -1
- package/dist/vector/createHnswService.js +15 -3
- package/dist/vector/createHnswService.js.map +1 -1
- package/package.json +1 -1
- package/src/access/PermissionService.ts +635 -635
- package/src/aggregation/AggregationService.ts +389 -389
- package/src/ai-sdk/PDWVectorStore.ts +715 -715
- package/src/ai-sdk/index.ts +65 -65
- package/src/ai-sdk/tools.ts +460 -460
- package/src/ai-sdk/types.ts +404 -404
- package/src/batch/BatchManager.ts +597 -597
- package/src/batch/BatchingService.ts +429 -429
- package/src/batch/MemoryProcessingCache.ts +492 -492
- package/src/batch/index.ts +30 -30
- package/src/browser.ts +200 -200
- package/src/client/ClientMemoryManager.ts +1004 -987
- package/src/client/PersonalDataWallet.ts +345 -345
- package/src/client/SimplePDWClient.ts +1387 -1289
- package/src/client/factory.ts +154 -154
- package/src/client/namespaces/AnalyticsNamespace.ts +377 -377
- package/src/client/namespaces/BatchNamespace.ts +356 -356
- package/src/client/namespaces/CacheNamespace.ts +123 -123
- package/src/client/namespaces/CapabilityNamespace.ts +217 -217
- package/src/client/namespaces/ClassifyNamespace.ts +169 -169
- package/src/client/namespaces/ContextNamespace.ts +297 -297
- package/src/client/namespaces/EncryptionNamespace.ts +221 -221
- package/src/client/namespaces/GraphNamespace.ts +468 -468
- package/src/client/namespaces/IndexNamespace.ts +364 -361
- package/src/client/namespaces/MemoryNamespace.ts +1704 -1422
- package/src/client/namespaces/PermissionsNamespace.ts +254 -254
- package/src/client/namespaces/PipelineNamespace.ts +220 -220
- package/src/client/namespaces/StorageNamespace.ts +458 -458
- package/src/client/namespaces/TxNamespace.ts +260 -260
- package/src/client/namespaces/WalletNamespace.ts +243 -243
- package/src/client/namespaces/consolidated/AdvancedNamespace.ts +264 -0
- package/src/client/namespaces/consolidated/BlockchainNamespace.ts +607 -607
- package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -648
- package/src/client/namespaces/consolidated/StorageNamespace.ts +1143 -1141
- package/src/client/namespaces/consolidated/index.ts +41 -39
- package/src/client/signers/KeypairSigner.ts +108 -108
- package/src/client/signers/UnifiedSigner.ts +110 -110
- package/src/client/signers/WalletAdapterSigner.ts +159 -159
- package/src/client/signers/index.ts +26 -26
- package/src/config/ConfigurationHelper.ts +412 -412
- package/src/config/defaults.ts +56 -51
- package/src/config/index.ts +16 -9
- package/src/config/modelDefaults.ts +103 -0
- package/src/config/validation.ts +70 -70
- package/src/core/index.ts +14 -14
- package/src/core/interfaces/IService.ts +307 -307
- package/src/core/interfaces/index.ts +8 -8
- package/src/core/types/capability.ts +297 -297
- package/src/core/types/index.ts +874 -870
- package/src/core/types/wallet.ts +270 -270
- package/src/core/types.ts +9 -9
- package/src/core/wallet.ts +222 -222
- package/src/embedding/index.ts +19 -19
- package/src/embedding/types.ts +357 -357
- package/src/errors/index.ts +602 -602
- package/src/errors/recovery.ts +461 -461
- package/src/errors/validation.ts +567 -567
- package/src/generated/pdw/capability.ts +319 -319
- package/src/graph/GraphService.ts +888 -887
- package/src/graph/KnowledgeGraphManager.ts +728 -728
- package/src/graph/index.ts +25 -25
- package/src/index.ts +498 -498
- package/src/infrastructure/index.ts +22 -22
- package/src/infrastructure/seal/EncryptionService.ts +628 -628
- package/src/infrastructure/seal/SealService.ts +613 -613
- package/src/infrastructure/seal/index.ts +9 -9
- package/src/infrastructure/sui/BlockchainManager.ts +627 -627
- package/src/infrastructure/sui/SuiService.ts +888 -888
- package/src/infrastructure/sui/index.ts +9 -9
- package/src/infrastructure/walrus/StorageManager.ts +604 -604
- package/src/infrastructure/walrus/WalrusStorageService.ts +637 -612
- package/src/infrastructure/walrus/index.ts +9 -9
- package/src/langchain/createPDWRAG.ts +303 -303
- package/src/langchain/index.ts +47 -47
- package/src/permissions/ConsentRepository.browser.ts +249 -249
- package/src/permissions/ConsentRepository.ts +364 -364
- package/src/pipeline/MemoryPipeline.ts +863 -862
- package/src/pipeline/PipelineManager.ts +683 -683
- package/src/pipeline/index.ts +26 -26
- package/src/retrieval/AdvancedSearchService.ts +629 -629
- package/src/retrieval/MemoryAnalyticsService.ts +711 -711
- package/src/retrieval/MemoryDecryptionPipeline.ts +825 -825
- package/src/retrieval/index.ts +42 -42
- package/src/services/BatchService.ts +352 -352
- package/src/services/CapabilityService.ts +464 -464
- package/src/services/ClassifierService.ts +465 -465
- package/src/services/CrossContextPermissionService.ts +486 -486
- package/src/services/EmbeddingService.ts +796 -771
- package/src/services/EncryptionService.ts +712 -712
- package/src/services/GeminiAIService.ts +754 -753
- package/src/services/MemoryIndexService.ts +1009 -1003
- package/src/services/MemoryService.ts +369 -369
- package/src/services/QueryService.ts +890 -890
- package/src/services/StorageService.ts +1185 -1182
- package/src/services/TransactionService.ts +838 -838
- package/src/services/VectorService.ts +462 -462
- package/src/services/ViewService.ts +484 -484
- package/src/services/index.ts +25 -25
- package/src/services/storage/BlobAttributesManager.ts +333 -333
- package/src/services/storage/KnowledgeGraphManager.ts +425 -425
- package/src/services/storage/MemorySearchManager.ts +387 -387
- package/src/services/storage/QuiltBatchManager.ts +1157 -1130
- package/src/services/storage/WalrusMetadataManager.ts +268 -268
- package/src/services/storage/WalrusStorageManager.ts +333 -287
- package/src/services/storage/index.ts +57 -57
- package/src/types/index.ts +13 -13
- package/src/utils/index.ts +76 -76
- package/src/utils/memoryIndexOnChain.ts +507 -507
- package/src/vector/BrowserHnswIndexService.ts +758 -758
- package/src/vector/HnswWasmService.ts +731 -731
- package/src/vector/IHnswService.ts +233 -233
- package/src/vector/NodeHnswService.ts +833 -833
- package/src/vector/createHnswService.ts +147 -135
- package/src/vector/index.ts +56 -56
- package/src/wallet/ContextWalletService.ts +656 -656
- package/src/wallet/MainWalletService.ts +317 -317
|
@@ -1,346 +1,346 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PersonalDataWallet Client Extension
|
|
3
|
-
*
|
|
4
|
-
* Main client extension that follows MystenLabs patterns for Sui ecosystem SDKs.
|
|
5
|
-
* Provides a composable API for memory management, chat, storage, and encryption.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { ClientWithCoreApi, PDWConfig } from '../types';
|
|
9
|
-
import { MemoryService } from '../services/MemoryService';
|
|
10
|
-
import { StorageService } from '../services/StorageService';
|
|
11
|
-
import { EncryptionService } from '../services/EncryptionService';
|
|
12
|
-
import { TransactionService } from '../services/TransactionService';
|
|
13
|
-
import { ViewService } from '../services/ViewService';
|
|
14
|
-
import { CapabilityService } from '../services/CapabilityService';
|
|
15
|
-
import { MainWalletService } from '../wallet/MainWalletService';
|
|
16
|
-
import { ContextWalletService } from '../wallet/ContextWalletService';
|
|
17
|
-
import { PermissionService } from '../access/PermissionService';
|
|
18
|
-
import { AggregationService } from '../aggregation/AggregationService';
|
|
19
|
-
import { createDefaultConfig } from '../config/defaults';
|
|
20
|
-
import { validateConfig } from '../config/validation';
|
|
21
|
-
import type { ConsentRepository } from '../permissions/ConsentRepository';
|
|
22
|
-
|
|
23
|
-
// BCS types from generated contracts (ESM static imports)
|
|
24
|
-
import * as memoryBcsTypes from '../generated/pdw/memory';
|
|
25
|
-
import * as capabilityBcsTypes from '../generated/pdw/capability';
|
|
26
|
-
import * as walletBcsTypes from '../generated/pdw/wallet';
|
|
27
|
-
|
|
28
|
-
export interface PersonalDataWalletExtension {
|
|
29
|
-
// Top-level imperative methods
|
|
30
|
-
setConsentRepository: (repository?: ConsentRepository) => void;
|
|
31
|
-
|
|
32
|
-
// Storage methods
|
|
33
|
-
uploadToStorage: StorageService['upload'];
|
|
34
|
-
retrieveFromStorage: StorageService['retrieve'];
|
|
35
|
-
|
|
36
|
-
// Organized service methods
|
|
37
|
-
tx: {
|
|
38
|
-
createMemoryRecord: TransactionService['buildCreateMemoryRecord'];
|
|
39
|
-
updateMemoryMetadata: TransactionService['buildUpdateMemoryMetadata'];
|
|
40
|
-
deleteMemoryRecord: TransactionService['buildDeleteMemoryRecord'];
|
|
41
|
-
grantAccess: TransactionService['buildGrantAccess'];
|
|
42
|
-
revokeAccess: TransactionService['buildRevokeAccess'];
|
|
43
|
-
registerContent: TransactionService['buildRegisterContent'];
|
|
44
|
-
executeBatch: TransactionService['executeBatch'];
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
call: {
|
|
48
|
-
createMemoryRecord: TransactionService['createMemoryRecord'];
|
|
49
|
-
updateMemoryMetadata: TransactionService['updateMemoryMetadata'];
|
|
50
|
-
deleteMemoryRecord: TransactionService['deleteMemoryRecord'];
|
|
51
|
-
grantAccess: TransactionService['grantAccess'];
|
|
52
|
-
revokeAccess: TransactionService['revokeAccess'];
|
|
53
|
-
executeBatch: TransactionService['executeBatch'];
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
view: {
|
|
57
|
-
getUserMemories: ViewService['getUserMemories'];
|
|
58
|
-
getMemoryIndex: ViewService['getMemoryIndex'];
|
|
59
|
-
getMemory: ViewService['getMemory'];
|
|
60
|
-
getMemoryStats: ViewService['getMemoryStats'];
|
|
61
|
-
getAccessPermissions: ViewService['getAccessPermissions'];
|
|
62
|
-
getContentRegistry: ViewService['getContentRegistry'];
|
|
63
|
-
objectExists: ViewService['objectExists'];
|
|
64
|
-
getObjectType: ViewService['getObjectType'];
|
|
65
|
-
findMemoryByContentHash: ViewService['findMemoryByContentHash'];
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// Wallet architecture services
|
|
69
|
-
wallet: {
|
|
70
|
-
getMainWallet: MainWalletService['getMainWallet'];
|
|
71
|
-
createMainWallet: MainWalletService['createMainWallet'];
|
|
72
|
-
deriveContextId: MainWalletService['deriveContextId'];
|
|
73
|
-
rotateKeys: MainWalletService['rotateKeys'];
|
|
74
|
-
ensureMainWallet: MainWalletService['ensureMainWallet'];
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
context: {
|
|
78
|
-
create: ContextWalletService['create'];
|
|
79
|
-
getContext: ContextWalletService['getContext'];
|
|
80
|
-
listUserContexts: ContextWalletService['listUserContexts'];
|
|
81
|
-
addData: ContextWalletService['addData'];
|
|
82
|
-
removeData: ContextWalletService['removeData'];
|
|
83
|
-
listData: ContextWalletService['listData'];
|
|
84
|
-
ensureContext: ContextWalletService['ensureContext'];
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
access: {
|
|
88
|
-
requestConsent: PermissionService['requestConsent'];
|
|
89
|
-
grantPermissions: PermissionService['grantPermissions'];
|
|
90
|
-
revokePermissions: PermissionService['revokePermissions'];
|
|
91
|
-
checkPermission: PermissionService['checkPermission'];
|
|
92
|
-
getGrantsByUser: PermissionService['getGrantsByUser'];
|
|
93
|
-
validateOAuthPermission: PermissionService['validateOAuthPermission'];
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
aggregate: {
|
|
97
|
-
query: AggregationService['query'];
|
|
98
|
-
queryWithScopes: AggregationService['queryWithScopes'];
|
|
99
|
-
search: AggregationService['search'];
|
|
100
|
-
getAggregatedStats: AggregationService['getAggregatedStats'];
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
bcs: {
|
|
104
|
-
// Will be populated by generated types from @mysten/codegen
|
|
105
|
-
Memory: () => any;
|
|
106
|
-
MemoryIndex: () => any;
|
|
107
|
-
MemoryMetadata: () => any;
|
|
108
|
-
AccessControl: () => any;
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
// Service instances for advanced usage
|
|
112
|
-
memory: MemoryService;
|
|
113
|
-
storage: StorageService;
|
|
114
|
-
encryption: EncryptionService;
|
|
115
|
-
viewService: ViewService;
|
|
116
|
-
/** Capability-based access control service (preferred) */
|
|
117
|
-
capabilityService: CapabilityService;
|
|
118
|
-
/** @deprecated Use capabilityService instead */
|
|
119
|
-
mainWalletService: MainWalletService;
|
|
120
|
-
/** @deprecated Use ContextNamespace instead */
|
|
121
|
-
contextWalletService: ContextWalletService;
|
|
122
|
-
permissionService: PermissionService;
|
|
123
|
-
aggregationService: AggregationService;
|
|
124
|
-
|
|
125
|
-
// Configuration
|
|
126
|
-
config: PDWConfig;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
export class PersonalDataWallet {
|
|
130
|
-
#client: ClientWithCoreApi;
|
|
131
|
-
#config: PDWConfig;
|
|
132
|
-
#transactions: TransactionService;
|
|
133
|
-
#view: ViewService;
|
|
134
|
-
#memory: MemoryService;
|
|
135
|
-
#storage: StorageService;
|
|
136
|
-
#encryption: EncryptionService;
|
|
137
|
-
#capability: CapabilityService;
|
|
138
|
-
/** @deprecated Use #capability instead */
|
|
139
|
-
#mainWallet: MainWalletService;
|
|
140
|
-
/** @deprecated Use ContextNamespace instead */
|
|
141
|
-
#contextWallet: ContextWalletService;
|
|
142
|
-
#permission: PermissionService;
|
|
143
|
-
#aggregation: AggregationService;
|
|
144
|
-
|
|
145
|
-
constructor(client: ClientWithCoreApi, config?: Partial<PDWConfig>) {
|
|
146
|
-
this.#client = client;
|
|
147
|
-
this.#config = validateConfig({ ...createDefaultConfig(), ...config });
|
|
148
|
-
|
|
149
|
-
// Initialize services
|
|
150
|
-
this.#transactions = new TransactionService(client as any, this.#config);
|
|
151
|
-
this.#view = new ViewService(client, this.#config);
|
|
152
|
-
this.#memory = new MemoryService(client, this.#config);
|
|
153
|
-
this.#storage = new StorageService(this.#config);
|
|
154
|
-
this.#encryption = new EncryptionService(client, this.#config);
|
|
155
|
-
|
|
156
|
-
// Initialize capability service (new architecture)
|
|
157
|
-
this.#capability = new CapabilityService({
|
|
158
|
-
suiClient: (client as any).client || client,
|
|
159
|
-
packageId: this.#config.packageId || ''
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
// Initialize wallet architecture services (legacy - deprecated)
|
|
163
|
-
this.#mainWallet = new MainWalletService({
|
|
164
|
-
suiClient: (client as any).client || client,
|
|
165
|
-
packageId: this.#config.packageId || ''
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
this.#contextWallet = new ContextWalletService({
|
|
169
|
-
suiClient: (client as any).client || client,
|
|
170
|
-
packageId: this.#config.packageId || '',
|
|
171
|
-
mainWalletService: this.#mainWallet,
|
|
172
|
-
storageService: this.#storage,
|
|
173
|
-
encryptionService: this.#encryption
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
this.#permission = new PermissionService({
|
|
177
|
-
suiClient: (client as any).client || client,
|
|
178
|
-
packageId: this.#config.packageId || '',
|
|
179
|
-
accessRegistryId: this.#config.accessRegistryId || '',
|
|
180
|
-
capabilityService: this.#capability,
|
|
181
|
-
contextWalletService: this.#contextWallet
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
this.#aggregation = new AggregationService({
|
|
185
|
-
suiClient: (client as any).client || client,
|
|
186
|
-
packageId: this.#config.packageId || '',
|
|
187
|
-
permissionService: this.#permission,
|
|
188
|
-
capabilityService: this.#capability,
|
|
189
|
-
contextWalletService: this.#contextWallet
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
// Bind methods after services are initialized
|
|
193
|
-
this.uploadToStorage = this.#storage.upload.bind(this.#storage);
|
|
194
|
-
this.retrieveFromStorage = this.#storage.retrieve.bind(this.#storage);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// Top-level imperative methods (declarations)
|
|
198
|
-
uploadToStorage: StorageService['upload'];
|
|
199
|
-
retrieveFromStorage: StorageService['retrieve'];
|
|
200
|
-
setConsentRepository(repository?: ConsentRepository): void {
|
|
201
|
-
this.#permission.setConsentRepository(repository);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// Transaction builders
|
|
205
|
-
get tx() {
|
|
206
|
-
return {
|
|
207
|
-
createMemoryRecord: this.#transactions.buildCreateMemoryRecord.bind(this.#transactions),
|
|
208
|
-
updateMemoryMetadata: this.#transactions.buildUpdateMemoryMetadata.bind(this.#transactions),
|
|
209
|
-
deleteMemoryRecord: this.#transactions.buildDeleteMemoryRecord.bind(this.#transactions),
|
|
210
|
-
grantAccess: this.#transactions.buildGrantAccess.bind(this.#transactions),
|
|
211
|
-
revokeAccess: this.#transactions.buildRevokeAccess.bind(this.#transactions),
|
|
212
|
-
registerContent: this.#transactions.buildRegisterContent.bind(this.#transactions),
|
|
213
|
-
executeBatch: this.#transactions.executeBatch.bind(this.#transactions),
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Transaction execution (async thunks)
|
|
218
|
-
get call() {
|
|
219
|
-
return {
|
|
220
|
-
createMemoryRecord: this.#transactions.createMemoryRecord.bind(this.#transactions),
|
|
221
|
-
updateMemoryMetadata: this.#transactions.updateMemoryMetadata.bind(this.#transactions),
|
|
222
|
-
deleteMemoryRecord: this.#transactions.deleteMemoryRecord.bind(this.#transactions),
|
|
223
|
-
grantAccess: this.#transactions.grantAccess.bind(this.#transactions),
|
|
224
|
-
revokeAccess: this.#transactions.revokeAccess.bind(this.#transactions),
|
|
225
|
-
executeBatch: this.#transactions.executeBatch.bind(this.#transactions),
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// View methods
|
|
230
|
-
get view() {
|
|
231
|
-
return {
|
|
232
|
-
getUserMemories: this.#view.getUserMemories.bind(this.#view),
|
|
233
|
-
getMemoryIndex: this.#view.getMemoryIndex.bind(this.#view),
|
|
234
|
-
getMemory: this.#view.getMemory.bind(this.#view),
|
|
235
|
-
getMemoryStats: this.#view.getMemoryStats.bind(this.#view),
|
|
236
|
-
getStorageStats: this.#storage.getStats.bind(this.#storage),
|
|
237
|
-
listStoredItems: this.#storage.list.bind(this.#storage),
|
|
238
|
-
getAccessPermissions: this.#view.getAccessPermissions.bind(this.#view),
|
|
239
|
-
getContentRegistry: this.#view.getContentRegistry.bind(this.#view),
|
|
240
|
-
objectExists: this.#view.objectExists.bind(this.#view),
|
|
241
|
-
getObjectType: this.#view.getObjectType.bind(this.#view),
|
|
242
|
-
findMemoryByContentHash: this.#view.findMemoryByContentHash.bind(this.#view),
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// BCS types from generated contracts (using static ESM imports)
|
|
247
|
-
get bcs() {
|
|
248
|
-
return {
|
|
249
|
-
// Memory types
|
|
250
|
-
Memory: memoryBcsTypes.Memory,
|
|
251
|
-
MemoryIndex: memoryBcsTypes.MemoryIndex,
|
|
252
|
-
MemoryMetadata: memoryBcsTypes.MemoryMetadata,
|
|
253
|
-
MemoryCreated: memoryBcsTypes.MemoryCreated,
|
|
254
|
-
MemoryIndexUpdated: memoryBcsTypes.MemoryIndexUpdated,
|
|
255
|
-
MemoryMetadataUpdated: memoryBcsTypes.MemoryMetadataUpdated,
|
|
256
|
-
MemoryUpdated: memoryBcsTypes.MemoryUpdated,
|
|
257
|
-
|
|
258
|
-
// Capability types
|
|
259
|
-
MemoryCap: capabilityBcsTypes.MemoryCap,
|
|
260
|
-
MemoryCapCreated: capabilityBcsTypes.MemoryCapCreated,
|
|
261
|
-
|
|
262
|
-
// Wallet types
|
|
263
|
-
...walletBcsTypes,
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// Wallet architecture service getters
|
|
268
|
-
get wallet() {
|
|
269
|
-
return {
|
|
270
|
-
getMainWallet: this.#mainWallet.getMainWallet.bind(this.#mainWallet),
|
|
271
|
-
createMainWallet: this.#mainWallet.createMainWallet.bind(this.#mainWallet),
|
|
272
|
-
deriveContextId: this.#mainWallet.deriveContextId.bind(this.#mainWallet),
|
|
273
|
-
rotateKeys: this.#mainWallet.rotateKeys.bind(this.#mainWallet),
|
|
274
|
-
ensureMainWallet: this.#mainWallet.ensureMainWallet.bind(this.#mainWallet),
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
get context() {
|
|
279
|
-
return {
|
|
280
|
-
create: this.#contextWallet.create.bind(this.#contextWallet),
|
|
281
|
-
getContext: this.#contextWallet.getContext.bind(this.#contextWallet),
|
|
282
|
-
listUserContexts: this.#contextWallet.listUserContexts.bind(this.#contextWallet),
|
|
283
|
-
addData: this.#contextWallet.addData.bind(this.#contextWallet),
|
|
284
|
-
removeData: this.#contextWallet.removeData.bind(this.#contextWallet),
|
|
285
|
-
listData: this.#contextWallet.listData.bind(this.#contextWallet),
|
|
286
|
-
ensureContext: this.#contextWallet.ensureContext.bind(this.#contextWallet),
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
get access() {
|
|
291
|
-
return {
|
|
292
|
-
requestConsent: this.#permission.requestConsent.bind(this.#permission),
|
|
293
|
-
grantPermissions: this.#permission.grantPermissions.bind(this.#permission),
|
|
294
|
-
revokePermissions: this.#permission.revokePermissions.bind(this.#permission),
|
|
295
|
-
checkPermission: this.#permission.checkPermission.bind(this.#permission),
|
|
296
|
-
getGrantsByUser: this.#permission.getGrantsByUser.bind(this.#permission),
|
|
297
|
-
validateOAuthPermission: this.#permission.validateOAuthPermission.bind(this.#permission),
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
get aggregate() {
|
|
302
|
-
return {
|
|
303
|
-
query: this.#aggregation.query.bind(this.#aggregation),
|
|
304
|
-
queryWithScopes: this.#aggregation.queryWithScopes.bind(this.#aggregation),
|
|
305
|
-
search: this.#aggregation.search.bind(this.#aggregation),
|
|
306
|
-
getAggregatedStats: this.#aggregation.getAggregatedStats.bind(this.#aggregation),
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
// Service instances
|
|
311
|
-
get memory() { return this.#memory; }
|
|
312
|
-
get storage() { return this.#storage; }
|
|
313
|
-
get encryption() { return this.#encryption; }
|
|
314
|
-
get config() { return this.#config; }
|
|
315
|
-
get viewService() { return this.#view; }
|
|
316
|
-
/** Capability-based access control service (preferred) */
|
|
317
|
-
get capabilityService() { return this.#capability; }
|
|
318
|
-
/** @deprecated Use capabilityService instead */
|
|
319
|
-
get mainWalletService() { return this.#mainWallet; }
|
|
320
|
-
/** @deprecated Use ContextNamespace instead */
|
|
321
|
-
get contextWalletService() { return this.#contextWallet; }
|
|
322
|
-
get permissionService() { return this.#permission; }
|
|
323
|
-
get aggregationService() { return this.#aggregation; }
|
|
324
|
-
|
|
325
|
-
// Client extension factory
|
|
326
|
-
static asClientExtension(config?: Partial<PDWConfig>) {
|
|
327
|
-
return {
|
|
328
|
-
name: 'pdw' as const,
|
|
329
|
-
register: (client: any) => {
|
|
330
|
-
// Adapt the client to match our expected interface
|
|
331
|
-
const adaptedClient: ClientWithCoreApi = {
|
|
332
|
-
core: {
|
|
333
|
-
getObject: (objectId: string) => client.getObject({ id: objectId }),
|
|
334
|
-
getObjects: (objectIds: string[]) => client.getObjects(objectIds.map(id => ({ id }))),
|
|
335
|
-
executeTransaction: (tx: any) => client.executeTransactionBlock({ transactionBlock: tx }),
|
|
336
|
-
},
|
|
337
|
-
$extend: client.$extend.bind(client),
|
|
338
|
-
};
|
|
339
|
-
return new PersonalDataWallet(adaptedClient, config);
|
|
340
|
-
},
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
// Export for easier usage
|
|
1
|
+
/**
|
|
2
|
+
* PersonalDataWallet Client Extension
|
|
3
|
+
*
|
|
4
|
+
* Main client extension that follows MystenLabs patterns for Sui ecosystem SDKs.
|
|
5
|
+
* Provides a composable API for memory management, chat, storage, and encryption.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ClientWithCoreApi, PDWConfig } from '../types';
|
|
9
|
+
import { MemoryService } from '../services/MemoryService';
|
|
10
|
+
import { StorageService } from '../services/StorageService';
|
|
11
|
+
import { EncryptionService } from '../services/EncryptionService';
|
|
12
|
+
import { TransactionService } from '../services/TransactionService';
|
|
13
|
+
import { ViewService } from '../services/ViewService';
|
|
14
|
+
import { CapabilityService } from '../services/CapabilityService';
|
|
15
|
+
import { MainWalletService } from '../wallet/MainWalletService';
|
|
16
|
+
import { ContextWalletService } from '../wallet/ContextWalletService';
|
|
17
|
+
import { PermissionService } from '../access/PermissionService';
|
|
18
|
+
import { AggregationService } from '../aggregation/AggregationService';
|
|
19
|
+
import { createDefaultConfig } from '../config/defaults';
|
|
20
|
+
import { validateConfig } from '../config/validation';
|
|
21
|
+
import type { ConsentRepository } from '../permissions/ConsentRepository';
|
|
22
|
+
|
|
23
|
+
// BCS types from generated contracts (ESM static imports)
|
|
24
|
+
import * as memoryBcsTypes from '../generated/pdw/memory';
|
|
25
|
+
import * as capabilityBcsTypes from '../generated/pdw/capability';
|
|
26
|
+
import * as walletBcsTypes from '../generated/pdw/wallet';
|
|
27
|
+
|
|
28
|
+
export interface PersonalDataWalletExtension {
|
|
29
|
+
// Top-level imperative methods
|
|
30
|
+
setConsentRepository: (repository?: ConsentRepository) => void;
|
|
31
|
+
|
|
32
|
+
// Storage methods
|
|
33
|
+
uploadToStorage: StorageService['upload'];
|
|
34
|
+
retrieveFromStorage: StorageService['retrieve'];
|
|
35
|
+
|
|
36
|
+
// Organized service methods
|
|
37
|
+
tx: {
|
|
38
|
+
createMemoryRecord: TransactionService['buildCreateMemoryRecord'];
|
|
39
|
+
updateMemoryMetadata: TransactionService['buildUpdateMemoryMetadata'];
|
|
40
|
+
deleteMemoryRecord: TransactionService['buildDeleteMemoryRecord'];
|
|
41
|
+
grantAccess: TransactionService['buildGrantAccess'];
|
|
42
|
+
revokeAccess: TransactionService['buildRevokeAccess'];
|
|
43
|
+
registerContent: TransactionService['buildRegisterContent'];
|
|
44
|
+
executeBatch: TransactionService['executeBatch'];
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
call: {
|
|
48
|
+
createMemoryRecord: TransactionService['createMemoryRecord'];
|
|
49
|
+
updateMemoryMetadata: TransactionService['updateMemoryMetadata'];
|
|
50
|
+
deleteMemoryRecord: TransactionService['deleteMemoryRecord'];
|
|
51
|
+
grantAccess: TransactionService['grantAccess'];
|
|
52
|
+
revokeAccess: TransactionService['revokeAccess'];
|
|
53
|
+
executeBatch: TransactionService['executeBatch'];
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
view: {
|
|
57
|
+
getUserMemories: ViewService['getUserMemories'];
|
|
58
|
+
getMemoryIndex: ViewService['getMemoryIndex'];
|
|
59
|
+
getMemory: ViewService['getMemory'];
|
|
60
|
+
getMemoryStats: ViewService['getMemoryStats'];
|
|
61
|
+
getAccessPermissions: ViewService['getAccessPermissions'];
|
|
62
|
+
getContentRegistry: ViewService['getContentRegistry'];
|
|
63
|
+
objectExists: ViewService['objectExists'];
|
|
64
|
+
getObjectType: ViewService['getObjectType'];
|
|
65
|
+
findMemoryByContentHash: ViewService['findMemoryByContentHash'];
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// Wallet architecture services
|
|
69
|
+
wallet: {
|
|
70
|
+
getMainWallet: MainWalletService['getMainWallet'];
|
|
71
|
+
createMainWallet: MainWalletService['createMainWallet'];
|
|
72
|
+
deriveContextId: MainWalletService['deriveContextId'];
|
|
73
|
+
rotateKeys: MainWalletService['rotateKeys'];
|
|
74
|
+
ensureMainWallet: MainWalletService['ensureMainWallet'];
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
context: {
|
|
78
|
+
create: ContextWalletService['create'];
|
|
79
|
+
getContext: ContextWalletService['getContext'];
|
|
80
|
+
listUserContexts: ContextWalletService['listUserContexts'];
|
|
81
|
+
addData: ContextWalletService['addData'];
|
|
82
|
+
removeData: ContextWalletService['removeData'];
|
|
83
|
+
listData: ContextWalletService['listData'];
|
|
84
|
+
ensureContext: ContextWalletService['ensureContext'];
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
access: {
|
|
88
|
+
requestConsent: PermissionService['requestConsent'];
|
|
89
|
+
grantPermissions: PermissionService['grantPermissions'];
|
|
90
|
+
revokePermissions: PermissionService['revokePermissions'];
|
|
91
|
+
checkPermission: PermissionService['checkPermission'];
|
|
92
|
+
getGrantsByUser: PermissionService['getGrantsByUser'];
|
|
93
|
+
validateOAuthPermission: PermissionService['validateOAuthPermission'];
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
aggregate: {
|
|
97
|
+
query: AggregationService['query'];
|
|
98
|
+
queryWithScopes: AggregationService['queryWithScopes'];
|
|
99
|
+
search: AggregationService['search'];
|
|
100
|
+
getAggregatedStats: AggregationService['getAggregatedStats'];
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
bcs: {
|
|
104
|
+
// Will be populated by generated types from @mysten/codegen
|
|
105
|
+
Memory: () => any;
|
|
106
|
+
MemoryIndex: () => any;
|
|
107
|
+
MemoryMetadata: () => any;
|
|
108
|
+
AccessControl: () => any;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
// Service instances for advanced usage
|
|
112
|
+
memory: MemoryService;
|
|
113
|
+
storage: StorageService;
|
|
114
|
+
encryption: EncryptionService;
|
|
115
|
+
viewService: ViewService;
|
|
116
|
+
/** Capability-based access control service (preferred) */
|
|
117
|
+
capabilityService: CapabilityService;
|
|
118
|
+
/** @deprecated Use capabilityService instead */
|
|
119
|
+
mainWalletService: MainWalletService;
|
|
120
|
+
/** @deprecated Use ContextNamespace instead */
|
|
121
|
+
contextWalletService: ContextWalletService;
|
|
122
|
+
permissionService: PermissionService;
|
|
123
|
+
aggregationService: AggregationService;
|
|
124
|
+
|
|
125
|
+
// Configuration
|
|
126
|
+
config: PDWConfig;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export class PersonalDataWallet {
|
|
130
|
+
#client: ClientWithCoreApi;
|
|
131
|
+
#config: PDWConfig;
|
|
132
|
+
#transactions: TransactionService;
|
|
133
|
+
#view: ViewService;
|
|
134
|
+
#memory: MemoryService;
|
|
135
|
+
#storage: StorageService;
|
|
136
|
+
#encryption: EncryptionService;
|
|
137
|
+
#capability: CapabilityService;
|
|
138
|
+
/** @deprecated Use #capability instead */
|
|
139
|
+
#mainWallet: MainWalletService;
|
|
140
|
+
/** @deprecated Use ContextNamespace instead */
|
|
141
|
+
#contextWallet: ContextWalletService;
|
|
142
|
+
#permission: PermissionService;
|
|
143
|
+
#aggregation: AggregationService;
|
|
144
|
+
|
|
145
|
+
constructor(client: ClientWithCoreApi, config?: Partial<PDWConfig>) {
|
|
146
|
+
this.#client = client;
|
|
147
|
+
this.#config = validateConfig({ ...createDefaultConfig(), ...config });
|
|
148
|
+
|
|
149
|
+
// Initialize services
|
|
150
|
+
this.#transactions = new TransactionService(client as any, this.#config);
|
|
151
|
+
this.#view = new ViewService(client, this.#config);
|
|
152
|
+
this.#memory = new MemoryService(client, this.#config);
|
|
153
|
+
this.#storage = new StorageService(this.#config);
|
|
154
|
+
this.#encryption = new EncryptionService(client, this.#config);
|
|
155
|
+
|
|
156
|
+
// Initialize capability service (new architecture)
|
|
157
|
+
this.#capability = new CapabilityService({
|
|
158
|
+
suiClient: (client as any).client || client,
|
|
159
|
+
packageId: this.#config.packageId || ''
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Initialize wallet architecture services (legacy - deprecated)
|
|
163
|
+
this.#mainWallet = new MainWalletService({
|
|
164
|
+
suiClient: (client as any).client || client,
|
|
165
|
+
packageId: this.#config.packageId || ''
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
this.#contextWallet = new ContextWalletService({
|
|
169
|
+
suiClient: (client as any).client || client,
|
|
170
|
+
packageId: this.#config.packageId || '',
|
|
171
|
+
mainWalletService: this.#mainWallet,
|
|
172
|
+
storageService: this.#storage,
|
|
173
|
+
encryptionService: this.#encryption
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
this.#permission = new PermissionService({
|
|
177
|
+
suiClient: (client as any).client || client,
|
|
178
|
+
packageId: this.#config.packageId || '',
|
|
179
|
+
accessRegistryId: this.#config.accessRegistryId || '',
|
|
180
|
+
capabilityService: this.#capability,
|
|
181
|
+
contextWalletService: this.#contextWallet
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
this.#aggregation = new AggregationService({
|
|
185
|
+
suiClient: (client as any).client || client,
|
|
186
|
+
packageId: this.#config.packageId || '',
|
|
187
|
+
permissionService: this.#permission,
|
|
188
|
+
capabilityService: this.#capability,
|
|
189
|
+
contextWalletService: this.#contextWallet
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// Bind methods after services are initialized
|
|
193
|
+
this.uploadToStorage = this.#storage.upload.bind(this.#storage);
|
|
194
|
+
this.retrieveFromStorage = this.#storage.retrieve.bind(this.#storage);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Top-level imperative methods (declarations)
|
|
198
|
+
uploadToStorage: StorageService['upload'];
|
|
199
|
+
retrieveFromStorage: StorageService['retrieve'];
|
|
200
|
+
setConsentRepository(repository?: ConsentRepository): void {
|
|
201
|
+
this.#permission.setConsentRepository(repository);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// Transaction builders
|
|
205
|
+
get tx() {
|
|
206
|
+
return {
|
|
207
|
+
createMemoryRecord: this.#transactions.buildCreateMemoryRecord.bind(this.#transactions),
|
|
208
|
+
updateMemoryMetadata: this.#transactions.buildUpdateMemoryMetadata.bind(this.#transactions),
|
|
209
|
+
deleteMemoryRecord: this.#transactions.buildDeleteMemoryRecord.bind(this.#transactions),
|
|
210
|
+
grantAccess: this.#transactions.buildGrantAccess.bind(this.#transactions),
|
|
211
|
+
revokeAccess: this.#transactions.buildRevokeAccess.bind(this.#transactions),
|
|
212
|
+
registerContent: this.#transactions.buildRegisterContent.bind(this.#transactions),
|
|
213
|
+
executeBatch: this.#transactions.executeBatch.bind(this.#transactions),
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Transaction execution (async thunks)
|
|
218
|
+
get call() {
|
|
219
|
+
return {
|
|
220
|
+
createMemoryRecord: this.#transactions.createMemoryRecord.bind(this.#transactions),
|
|
221
|
+
updateMemoryMetadata: this.#transactions.updateMemoryMetadata.bind(this.#transactions),
|
|
222
|
+
deleteMemoryRecord: this.#transactions.deleteMemoryRecord.bind(this.#transactions),
|
|
223
|
+
grantAccess: this.#transactions.grantAccess.bind(this.#transactions),
|
|
224
|
+
revokeAccess: this.#transactions.revokeAccess.bind(this.#transactions),
|
|
225
|
+
executeBatch: this.#transactions.executeBatch.bind(this.#transactions),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// View methods
|
|
230
|
+
get view() {
|
|
231
|
+
return {
|
|
232
|
+
getUserMemories: this.#view.getUserMemories.bind(this.#view),
|
|
233
|
+
getMemoryIndex: this.#view.getMemoryIndex.bind(this.#view),
|
|
234
|
+
getMemory: this.#view.getMemory.bind(this.#view),
|
|
235
|
+
getMemoryStats: this.#view.getMemoryStats.bind(this.#view),
|
|
236
|
+
getStorageStats: this.#storage.getStats.bind(this.#storage),
|
|
237
|
+
listStoredItems: this.#storage.list.bind(this.#storage),
|
|
238
|
+
getAccessPermissions: this.#view.getAccessPermissions.bind(this.#view),
|
|
239
|
+
getContentRegistry: this.#view.getContentRegistry.bind(this.#view),
|
|
240
|
+
objectExists: this.#view.objectExists.bind(this.#view),
|
|
241
|
+
getObjectType: this.#view.getObjectType.bind(this.#view),
|
|
242
|
+
findMemoryByContentHash: this.#view.findMemoryByContentHash.bind(this.#view),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// BCS types from generated contracts (using static ESM imports)
|
|
247
|
+
get bcs() {
|
|
248
|
+
return {
|
|
249
|
+
// Memory types
|
|
250
|
+
Memory: memoryBcsTypes.Memory,
|
|
251
|
+
MemoryIndex: memoryBcsTypes.MemoryIndex,
|
|
252
|
+
MemoryMetadata: memoryBcsTypes.MemoryMetadata,
|
|
253
|
+
MemoryCreated: memoryBcsTypes.MemoryCreated,
|
|
254
|
+
MemoryIndexUpdated: memoryBcsTypes.MemoryIndexUpdated,
|
|
255
|
+
MemoryMetadataUpdated: memoryBcsTypes.MemoryMetadataUpdated,
|
|
256
|
+
MemoryUpdated: memoryBcsTypes.MemoryUpdated,
|
|
257
|
+
|
|
258
|
+
// Capability types
|
|
259
|
+
MemoryCap: capabilityBcsTypes.MemoryCap,
|
|
260
|
+
MemoryCapCreated: capabilityBcsTypes.MemoryCapCreated,
|
|
261
|
+
|
|
262
|
+
// Wallet types
|
|
263
|
+
...walletBcsTypes,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Wallet architecture service getters
|
|
268
|
+
get wallet() {
|
|
269
|
+
return {
|
|
270
|
+
getMainWallet: this.#mainWallet.getMainWallet.bind(this.#mainWallet),
|
|
271
|
+
createMainWallet: this.#mainWallet.createMainWallet.bind(this.#mainWallet),
|
|
272
|
+
deriveContextId: this.#mainWallet.deriveContextId.bind(this.#mainWallet),
|
|
273
|
+
rotateKeys: this.#mainWallet.rotateKeys.bind(this.#mainWallet),
|
|
274
|
+
ensureMainWallet: this.#mainWallet.ensureMainWallet.bind(this.#mainWallet),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
get context() {
|
|
279
|
+
return {
|
|
280
|
+
create: this.#contextWallet.create.bind(this.#contextWallet),
|
|
281
|
+
getContext: this.#contextWallet.getContext.bind(this.#contextWallet),
|
|
282
|
+
listUserContexts: this.#contextWallet.listUserContexts.bind(this.#contextWallet),
|
|
283
|
+
addData: this.#contextWallet.addData.bind(this.#contextWallet),
|
|
284
|
+
removeData: this.#contextWallet.removeData.bind(this.#contextWallet),
|
|
285
|
+
listData: this.#contextWallet.listData.bind(this.#contextWallet),
|
|
286
|
+
ensureContext: this.#contextWallet.ensureContext.bind(this.#contextWallet),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
get access() {
|
|
291
|
+
return {
|
|
292
|
+
requestConsent: this.#permission.requestConsent.bind(this.#permission),
|
|
293
|
+
grantPermissions: this.#permission.grantPermissions.bind(this.#permission),
|
|
294
|
+
revokePermissions: this.#permission.revokePermissions.bind(this.#permission),
|
|
295
|
+
checkPermission: this.#permission.checkPermission.bind(this.#permission),
|
|
296
|
+
getGrantsByUser: this.#permission.getGrantsByUser.bind(this.#permission),
|
|
297
|
+
validateOAuthPermission: this.#permission.validateOAuthPermission.bind(this.#permission),
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
get aggregate() {
|
|
302
|
+
return {
|
|
303
|
+
query: this.#aggregation.query.bind(this.#aggregation),
|
|
304
|
+
queryWithScopes: this.#aggregation.queryWithScopes.bind(this.#aggregation),
|
|
305
|
+
search: this.#aggregation.search.bind(this.#aggregation),
|
|
306
|
+
getAggregatedStats: this.#aggregation.getAggregatedStats.bind(this.#aggregation),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Service instances
|
|
311
|
+
get memory() { return this.#memory; }
|
|
312
|
+
get storage() { return this.#storage; }
|
|
313
|
+
get encryption() { return this.#encryption; }
|
|
314
|
+
get config() { return this.#config; }
|
|
315
|
+
get viewService() { return this.#view; }
|
|
316
|
+
/** Capability-based access control service (preferred) */
|
|
317
|
+
get capabilityService() { return this.#capability; }
|
|
318
|
+
/** @deprecated Use capabilityService instead */
|
|
319
|
+
get mainWalletService() { return this.#mainWallet; }
|
|
320
|
+
/** @deprecated Use ContextNamespace instead */
|
|
321
|
+
get contextWalletService() { return this.#contextWallet; }
|
|
322
|
+
get permissionService() { return this.#permission; }
|
|
323
|
+
get aggregationService() { return this.#aggregation; }
|
|
324
|
+
|
|
325
|
+
// Client extension factory
|
|
326
|
+
static asClientExtension(config?: Partial<PDWConfig>) {
|
|
327
|
+
return {
|
|
328
|
+
name: 'pdw' as const,
|
|
329
|
+
register: (client: any) => {
|
|
330
|
+
// Adapt the client to match our expected interface
|
|
331
|
+
const adaptedClient: ClientWithCoreApi = {
|
|
332
|
+
core: {
|
|
333
|
+
getObject: (objectId: string) => client.getObject({ id: objectId }),
|
|
334
|
+
getObjects: (objectIds: string[]) => client.getObjects(objectIds.map(id => ({ id }))),
|
|
335
|
+
executeTransaction: (tx: any) => client.executeTransactionBlock({ transactionBlock: tx }),
|
|
336
|
+
},
|
|
337
|
+
$extend: client.$extend.bind(client),
|
|
338
|
+
};
|
|
339
|
+
return new PersonalDataWallet(adaptedClient, config);
|
|
340
|
+
},
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// Export for easier usage
|
|
346
346
|
export default PersonalDataWallet;
|