@cmdoss/memwal-sdk 0.6.2 → 0.8.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/ARCHITECTURE.md +547 -547
- package/BENCHMARKS.md +238 -238
- package/README.md +310 -181
- package/dist/ai-sdk/tools.d.ts +2 -2
- package/dist/ai-sdk/tools.js +2 -2
- package/dist/client/ClientMemoryManager.js +2 -2
- package/dist/client/ClientMemoryManager.js.map +1 -1
- package/dist/client/PersonalDataWallet.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.d.ts +29 -1
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +45 -13
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.d.ts +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.js +1 -1
- package/dist/client/namespaces/MemoryNamespace.d.ts +31 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +272 -39
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/AINamespace.d.ts +2 -2
- package/dist/client/namespaces/consolidated/AINamespace.js +2 -2
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts +12 -2
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js +62 -4
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +67 -2
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.js +549 -16
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
- package/dist/config/ConfigurationHelper.js +61 -61
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/graph/GraphService.js +21 -21
- package/dist/graph/GraphService.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/seal/EncryptionService.d.ts +9 -5
- package/dist/infrastructure/seal/EncryptionService.d.ts.map +1 -1
- package/dist/infrastructure/seal/EncryptionService.js +37 -15
- package/dist/infrastructure/seal/EncryptionService.js.map +1 -1
- package/dist/infrastructure/seal/SealService.d.ts +13 -5
- package/dist/infrastructure/seal/SealService.d.ts.map +1 -1
- package/dist/infrastructure/seal/SealService.js +36 -34
- package/dist/infrastructure/seal/SealService.js.map +1 -1
- package/dist/langchain/createPDWRAG.js +30 -30
- package/dist/retrieval/MemoryDecryptionPipeline.d.ts.map +1 -1
- package/dist/retrieval/MemoryDecryptionPipeline.js +2 -1
- package/dist/retrieval/MemoryDecryptionPipeline.js.map +1 -1
- package/dist/retrieval/MemoryRetrievalService.d.ts +31 -0
- package/dist/retrieval/MemoryRetrievalService.d.ts.map +1 -1
- package/dist/retrieval/MemoryRetrievalService.js +44 -4
- package/dist/retrieval/MemoryRetrievalService.js.map +1 -1
- package/dist/services/CapabilityService.d.ts.map +1 -1
- package/dist/services/CapabilityService.js +30 -14
- package/dist/services/CapabilityService.js.map +1 -1
- package/dist/services/CrossContextPermissionService.d.ts.map +1 -1
- package/dist/services/CrossContextPermissionService.js +9 -7
- package/dist/services/CrossContextPermissionService.js.map +1 -1
- package/dist/services/EmbeddingService.d.ts +28 -1
- package/dist/services/EmbeddingService.d.ts.map +1 -1
- package/dist/services/EmbeddingService.js +54 -0
- package/dist/services/EmbeddingService.js.map +1 -1
- package/dist/services/EncryptionService.d.ts.map +1 -1
- package/dist/services/EncryptionService.js +6 -5
- package/dist/services/EncryptionService.js.map +1 -1
- package/dist/services/GeminiAIService.js +309 -309
- package/dist/services/IndexManager.d.ts +5 -1
- package/dist/services/IndexManager.d.ts.map +1 -1
- package/dist/services/IndexManager.js +17 -40
- package/dist/services/IndexManager.js.map +1 -1
- package/dist/services/QueryService.js +1 -1
- package/dist/services/QueryService.js.map +1 -1
- package/dist/services/StorageService.d.ts +11 -0
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js +73 -10
- package/dist/services/StorageService.js.map +1 -1
- package/dist/services/TransactionService.d.ts +20 -0
- package/dist/services/TransactionService.d.ts.map +1 -1
- package/dist/services/TransactionService.js +43 -0
- package/dist/services/TransactionService.js.map +1 -1
- package/dist/services/ViewService.js +2 -2
- package/dist/services/ViewService.js.map +1 -1
- package/dist/services/storage/QuiltBatchManager.d.ts +101 -1
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
- package/dist/services/storage/QuiltBatchManager.js +410 -20
- package/dist/services/storage/QuiltBatchManager.js.map +1 -1
- package/dist/services/storage/index.d.ts +1 -1
- package/dist/services/storage/index.d.ts.map +1 -1
- package/dist/services/storage/index.js.map +1 -1
- package/dist/utils/LRUCache.d.ts +106 -0
- package/dist/utils/LRUCache.d.ts.map +1 -0
- package/dist/utils/LRUCache.js +281 -0
- package/dist/utils/LRUCache.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/memoryIndexOnChain.d.ts +212 -0
- package/dist/utils/memoryIndexOnChain.d.ts.map +1 -0
- package/dist/utils/memoryIndexOnChain.js +312 -0
- package/dist/utils/memoryIndexOnChain.js.map +1 -0
- package/dist/utils/rebuildIndexNode.d.ts +29 -0
- package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
- package/dist/utils/rebuildIndexNode.js +366 -98
- package/dist/utils/rebuildIndexNode.js.map +1 -1
- package/dist/vector/HnswWasmService.d.ts +20 -5
- package/dist/vector/HnswWasmService.d.ts.map +1 -1
- package/dist/vector/HnswWasmService.js +73 -40
- package/dist/vector/HnswWasmService.js.map +1 -1
- package/dist/vector/IHnswService.d.ts +10 -1
- package/dist/vector/IHnswService.d.ts.map +1 -1
- package/dist/vector/IHnswService.js.map +1 -1
- package/dist/vector/NodeHnswService.d.ts +16 -0
- package/dist/vector/NodeHnswService.d.ts.map +1 -1
- package/dist/vector/NodeHnswService.js +84 -5
- package/dist/vector/NodeHnswService.js.map +1 -1
- package/dist/vector/createHnswService.d.ts +1 -1
- package/dist/vector/createHnswService.js +1 -1
- package/dist/vector/index.d.ts +1 -1
- package/dist/vector/index.js +1 -1
- package/package.json +157 -157
- 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 +987 -987
- package/src/client/PersonalDataWallet.ts +345 -345
- package/src/client/SimplePDWClient.ts +1289 -1222
- 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/EmbeddingsNamespace.ts +99 -99
- package/src/client/namespaces/EncryptionNamespace.ts +221 -221
- package/src/client/namespaces/GraphNamespace.ts +468 -468
- package/src/client/namespaces/IndexNamespace.ts +361 -361
- package/src/client/namespaces/MemoryNamespace.ts +1422 -1135
- package/src/client/namespaces/PermissionsNamespace.ts +254 -254
- package/src/client/namespaces/PipelineNamespace.ts +220 -220
- package/src/client/namespaces/SearchNamespace.ts +1049 -1049
- 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/AINamespace.ts +449 -449
- package/src/client/namespaces/consolidated/BlockchainNamespace.ts +607 -546
- package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -648
- package/src/client/namespaces/consolidated/StorageNamespace.ts +1141 -497
- package/src/client/namespaces/consolidated/index.ts +39 -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 +51 -51
- package/src/config/index.ts +8 -8
- 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 +870 -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 +887 -887
- package/src/graph/KnowledgeGraphManager.ts +728 -728
- package/src/graph/index.ts +25 -25
- package/src/index.ts +498 -474
- package/src/infrastructure/index.ts +22 -22
- package/src/infrastructure/seal/EncryptionService.ts +628 -603
- package/src/infrastructure/seal/SealService.ts +613 -615
- 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 +612 -612
- package/src/infrastructure/walrus/index.ts +9 -9
- package/src/langchain/PDWEmbeddings.ts +145 -145
- package/src/langchain/PDWVectorStore.ts +456 -456
- 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 +862 -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 -824
- package/src/retrieval/MemoryRetrievalService.ts +904 -830
- package/src/retrieval/index.ts +42 -42
- package/src/services/BatchService.ts +352 -352
- package/src/services/CapabilityService.ts +464 -448
- package/src/services/ClassifierService.ts +465 -465
- package/src/services/CrossContextPermissionService.ts +486 -484
- package/src/services/EmbeddingService.ts +771 -706
- package/src/services/EncryptionService.ts +712 -711
- package/src/services/GeminiAIService.ts +753 -753
- package/src/services/IndexManager.ts +977 -1004
- package/src/services/MemoryIndexService.ts +1003 -1003
- package/src/services/MemoryService.ts +369 -369
- package/src/services/QueryService.ts +890 -890
- package/src/services/StorageService.ts +1182 -1111
- package/src/services/TransactionService.ts +838 -790
- 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 +1130 -660
- package/src/services/storage/WalrusMetadataManager.ts +268 -268
- package/src/services/storage/WalrusStorageManager.ts +287 -287
- package/src/services/storage/index.ts +57 -52
- package/src/types/index.ts +13 -13
- package/src/utils/LRUCache.ts +378 -0
- package/src/utils/index.ts +76 -68
- package/src/utils/memoryIndexOnChain.ts +507 -0
- package/src/utils/rebuildIndex.ts +290 -290
- package/src/utils/rebuildIndexNode.ts +771 -424
- package/src/vector/BrowserHnswIndexService.ts +758 -758
- package/src/vector/HnswWasmService.ts +731 -679
- package/src/vector/IHnswService.ts +233 -224
- package/src/vector/NodeHnswService.ts +833 -735
- package/src/vector/VectorManager.ts +478 -478
- package/src/vector/createHnswService.ts +135 -135
- package/src/vector/index.ts +56 -56
- package/src/wallet/ContextWalletService.ts +656 -656
- package/src/wallet/MainWalletService.ts +317 -317
package/src/config/defaults.ts
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default PDW Configuration
|
|
3
|
-
*
|
|
4
|
-
* Provides sensible defaults for different environments
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { PDWConfig } from '../types';
|
|
8
|
-
|
|
9
|
-
export function createDefaultConfig(): PDWConfig {
|
|
10
|
-
return {
|
|
11
|
-
// Updated
|
|
12
|
-
packageId: '
|
|
13
|
-
accessRegistryId: '0x0',
|
|
14
|
-
encryptionConfig: {
|
|
15
|
-
enabled: true,
|
|
16
|
-
keyServers: [], // To be configured based on environment
|
|
17
|
-
policyConfig: {
|
|
18
|
-
threshold: 2, // 2-of-3 threshold by default
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
storageConfig: {
|
|
22
|
-
cacheEnabled: true,
|
|
23
|
-
encryptionEnabled: true,
|
|
24
|
-
},
|
|
25
|
-
// Walrus Storage Configuration
|
|
26
|
-
walrusPublisherUrl: 'https://publisher.walrus-testnet.walrus.space',
|
|
27
|
-
walrusAggregatorUrl: 'https://aggregator.walrus-testnet.walrus.space',
|
|
28
|
-
walrusMaxFileSize: 1024 * 1024 * 1024, // 1GB
|
|
29
|
-
walrusTimeout: 30000, // 30 seconds
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function createTestnetConfig(overrides: Partial<PDWConfig> = {}): PDWConfig {
|
|
34
|
-
return {
|
|
35
|
-
...createDefaultConfig(),
|
|
36
|
-
accessRegistryId: overrides.accessRegistryId ?? '0x0',
|
|
37
|
-
encryptionConfig: {
|
|
38
|
-
enabled: true,
|
|
39
|
-
keyServers: [
|
|
40
|
-
// Testnet SEAL key servers
|
|
41
|
-
'0x0' // Placeholder - will be updated with actual testnet servers
|
|
42
|
-
],
|
|
43
|
-
policyConfig: {
|
|
44
|
-
threshold: 2,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
// Testnet Walrus endpoints (same as default for now)
|
|
48
|
-
walrusPublisherUrl: 'https://publisher.walrus-testnet.walrus.space',
|
|
49
|
-
walrusAggregatorUrl: 'https://aggregator.walrus-testnet.walrus.space',
|
|
50
|
-
...overrides,
|
|
51
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Default PDW Configuration
|
|
3
|
+
*
|
|
4
|
+
* Provides sensible defaults for different environments
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { PDWConfig } from '../types';
|
|
8
|
+
|
|
9
|
+
export function createDefaultConfig(): PDWConfig {
|
|
10
|
+
return {
|
|
11
|
+
// Updated January 12, 2026 - SEAL key_id first argument fix
|
|
12
|
+
packageId: '0xa5d7d98ea41620c9aaf9f13afa6512455d4d10ca06ccea3f8cd5b2b9568e3a9e',
|
|
13
|
+
accessRegistryId: '0x0',
|
|
14
|
+
encryptionConfig: {
|
|
15
|
+
enabled: true,
|
|
16
|
+
keyServers: [], // To be configured based on environment
|
|
17
|
+
policyConfig: {
|
|
18
|
+
threshold: 2, // 2-of-3 threshold by default
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
storageConfig: {
|
|
22
|
+
cacheEnabled: true,
|
|
23
|
+
encryptionEnabled: true,
|
|
24
|
+
},
|
|
25
|
+
// Walrus Storage Configuration
|
|
26
|
+
walrusPublisherUrl: 'https://publisher.walrus-testnet.walrus.space',
|
|
27
|
+
walrusAggregatorUrl: 'https://aggregator.walrus-testnet.walrus.space',
|
|
28
|
+
walrusMaxFileSize: 1024 * 1024 * 1024, // 1GB
|
|
29
|
+
walrusTimeout: 30000, // 30 seconds
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function createTestnetConfig(overrides: Partial<PDWConfig> = {}): PDWConfig {
|
|
34
|
+
return {
|
|
35
|
+
...createDefaultConfig(),
|
|
36
|
+
accessRegistryId: overrides.accessRegistryId ?? '0x0',
|
|
37
|
+
encryptionConfig: {
|
|
38
|
+
enabled: true,
|
|
39
|
+
keyServers: [
|
|
40
|
+
// Testnet SEAL key servers
|
|
41
|
+
'0x0' // Placeholder - will be updated with actual testnet servers
|
|
42
|
+
],
|
|
43
|
+
policyConfig: {
|
|
44
|
+
threshold: 2,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
// Testnet Walrus endpoints (same as default for now)
|
|
48
|
+
walrusPublisherUrl: 'https://publisher.walrus-testnet.walrus.space',
|
|
49
|
+
walrusAggregatorUrl: 'https://aggregator.walrus-testnet.walrus.space',
|
|
50
|
+
...overrides,
|
|
51
|
+
};
|
|
52
52
|
}
|
package/src/config/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Module
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive configuration management for the PDW SDK,
|
|
5
|
-
* including environment variable support and validation.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export { ConfigurationHelper, Config } from './ConfigurationHelper';
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Module
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive configuration management for the PDW SDK,
|
|
5
|
+
* including environment variable support and validation.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export { ConfigurationHelper, Config } from './ConfigurationHelper';
|
|
9
9
|
export type { SDKConfig, EnvironmentConfig } from './ConfigurationHelper';
|
package/src/config/validation.ts
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Validation
|
|
3
|
-
*
|
|
4
|
-
* Validates PDW configuration and provides helpful error messages
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { PDWConfig } from '../types';
|
|
8
|
-
|
|
9
|
-
export class ConfigurationError extends Error {
|
|
10
|
-
constructor(message: string) {
|
|
11
|
-
super(`PDW Configuration Error: ${message}`);
|
|
12
|
-
this.name = 'ConfigurationError';
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function validateConfig(config: Partial<PDWConfig>): PDWConfig {
|
|
17
|
-
const errors: string[] = [];
|
|
18
|
-
|
|
19
|
-
// Validate required fields
|
|
20
|
-
if (!config.packageId || config.packageId === '0x0') {
|
|
21
|
-
console.warn('PDW SDK: packageId not configured. Please set a valid deployed package ID.');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Validate encryption config
|
|
25
|
-
if (config.encryptionConfig?.enabled &&
|
|
26
|
-
(!config.encryptionConfig.keyServers || config.encryptionConfig.keyServers.length === 0)) {
|
|
27
|
-
console.warn('PDW SDK: Encryption is enabled but no key servers configured. Some features may not work.');
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Validate threshold configuration
|
|
31
|
-
if (config.encryptionConfig?.policyConfig?.threshold) {
|
|
32
|
-
const threshold = config.encryptionConfig.policyConfig.threshold;
|
|
33
|
-
if (threshold < 1) {
|
|
34
|
-
errors.push('Encryption threshold must be at least 1');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Validate storage config
|
|
39
|
-
if (config.storageConfig?.provider && !['walrus', 'local'].includes(config.storageConfig.provider)) {
|
|
40
|
-
errors.push('Storage provider must be either "walrus" or "local"');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (errors.length > 0) {
|
|
44
|
-
throw new ConfigurationError(errors.join('; '));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return config as PDWConfig;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export function mergeConfigs(base: PDWConfig, overrides: Partial<PDWConfig>): PDWConfig {
|
|
51
|
-
return {
|
|
52
|
-
...base,
|
|
53
|
-
...overrides,
|
|
54
|
-
encryptionConfig: {
|
|
55
|
-
enabled: true,
|
|
56
|
-
...base.encryptionConfig,
|
|
57
|
-
...overrides.encryptionConfig,
|
|
58
|
-
policyConfig: {
|
|
59
|
-
...base.encryptionConfig?.policyConfig,
|
|
60
|
-
...overrides.encryptionConfig?.policyConfig,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
storageConfig: {
|
|
64
|
-
provider: 'walrus' as const,
|
|
65
|
-
cacheEnabled: true,
|
|
66
|
-
encryptionEnabled: true,
|
|
67
|
-
...base.storageConfig,
|
|
68
|
-
...overrides.storageConfig,
|
|
69
|
-
},
|
|
70
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates PDW configuration and provides helpful error messages
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { PDWConfig } from '../types';
|
|
8
|
+
|
|
9
|
+
export class ConfigurationError extends Error {
|
|
10
|
+
constructor(message: string) {
|
|
11
|
+
super(`PDW Configuration Error: ${message}`);
|
|
12
|
+
this.name = 'ConfigurationError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function validateConfig(config: Partial<PDWConfig>): PDWConfig {
|
|
17
|
+
const errors: string[] = [];
|
|
18
|
+
|
|
19
|
+
// Validate required fields
|
|
20
|
+
if (!config.packageId || config.packageId === '0x0') {
|
|
21
|
+
console.warn('PDW SDK: packageId not configured. Please set a valid deployed package ID.');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Validate encryption config
|
|
25
|
+
if (config.encryptionConfig?.enabled &&
|
|
26
|
+
(!config.encryptionConfig.keyServers || config.encryptionConfig.keyServers.length === 0)) {
|
|
27
|
+
console.warn('PDW SDK: Encryption is enabled but no key servers configured. Some features may not work.');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Validate threshold configuration
|
|
31
|
+
if (config.encryptionConfig?.policyConfig?.threshold) {
|
|
32
|
+
const threshold = config.encryptionConfig.policyConfig.threshold;
|
|
33
|
+
if (threshold < 1) {
|
|
34
|
+
errors.push('Encryption threshold must be at least 1');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Validate storage config
|
|
39
|
+
if (config.storageConfig?.provider && !['walrus', 'local'].includes(config.storageConfig.provider)) {
|
|
40
|
+
errors.push('Storage provider must be either "walrus" or "local"');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (errors.length > 0) {
|
|
44
|
+
throw new ConfigurationError(errors.join('; '));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return config as PDWConfig;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function mergeConfigs(base: PDWConfig, overrides: Partial<PDWConfig>): PDWConfig {
|
|
51
|
+
return {
|
|
52
|
+
...base,
|
|
53
|
+
...overrides,
|
|
54
|
+
encryptionConfig: {
|
|
55
|
+
enabled: true,
|
|
56
|
+
...base.encryptionConfig,
|
|
57
|
+
...overrides.encryptionConfig,
|
|
58
|
+
policyConfig: {
|
|
59
|
+
...base.encryptionConfig?.policyConfig,
|
|
60
|
+
...overrides.encryptionConfig?.policyConfig,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
storageConfig: {
|
|
64
|
+
provider: 'walrus' as const,
|
|
65
|
+
cacheEnabled: true,
|
|
66
|
+
encryptionEnabled: true,
|
|
67
|
+
...base.storageConfig,
|
|
68
|
+
...overrides.storageConfig,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
71
|
}
|
package/src/core/index.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Module - Barrel Export
|
|
3
|
-
*
|
|
4
|
-
* Re-exports all core types, interfaces, and base classes for the PDW SDK.
|
|
5
|
-
*
|
|
6
|
-
* All type definitions are in ./types/index.ts
|
|
7
|
-
* This file only provides re-exports for convenience.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
// Re-export core interfaces and base classes
|
|
11
|
-
export * from './interfaces';
|
|
12
|
-
|
|
13
|
-
// Re-export all types from the types module
|
|
14
|
-
export * from './types';
|
|
1
|
+
/**
|
|
2
|
+
* Core Module - Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all core types, interfaces, and base classes for the PDW SDK.
|
|
5
|
+
*
|
|
6
|
+
* All type definitions are in ./types/index.ts
|
|
7
|
+
* This file only provides re-exports for convenience.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
// Re-export core interfaces and base classes
|
|
11
|
+
export * from './interfaces';
|
|
12
|
+
|
|
13
|
+
// Re-export all types from the types module
|
|
14
|
+
export * from './types';
|