@varity-labs/sdk 2.0.0-alpha.1
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/LICENSE +31 -0
- package/README.md +253 -0
- package/dist/analytics/index.d.ts +7 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +6 -0
- package/dist/analytics/tracker.d.ts +128 -0
- package/dist/analytics/tracker.d.ts.map +1 -0
- package/dist/analytics/tracker.js +203 -0
- package/dist/blockchain/BlockchainService.d.ts +100 -0
- package/dist/blockchain/BlockchainService.d.ts.map +1 -0
- package/dist/blockchain/BlockchainService.js +188 -0
- package/dist/blockchain/NFTLicensingService.d.ts +69 -0
- package/dist/blockchain/NFTLicensingService.d.ts.map +1 -0
- package/dist/blockchain/NFTLicensingService.js +136 -0
- package/dist/blockchain/RevenueSplitService.d.ts +71 -0
- package/dist/blockchain/RevenueSplitService.d.ts.map +1 -0
- package/dist/blockchain/RevenueSplitService.js +111 -0
- package/dist/blockchain/index.d.ts +48 -0
- package/dist/blockchain/index.d.ts.map +1 -0
- package/dist/blockchain/index.js +46 -0
- package/dist/blockchain/types.d.ts +63 -0
- package/dist/blockchain/types.d.ts.map +1 -0
- package/dist/blockchain/types.js +6 -0
- package/dist/chains/arbitrum.d.ts +89 -0
- package/dist/chains/arbitrum.d.ts.map +1 -0
- package/dist/chains/arbitrum.js +134 -0
- package/dist/chains/base.d.ts +84 -0
- package/dist/chains/base.d.ts.map +1 -0
- package/dist/chains/base.js +131 -0
- package/dist/chains/index.d.ts +36 -0
- package/dist/chains/index.d.ts.map +1 -0
- package/dist/chains/index.js +32 -0
- package/dist/chains/registry.d.ts +113 -0
- package/dist/chains/registry.d.ts.map +1 -0
- package/dist/chains/registry.js +201 -0
- package/dist/chains/varityL3.d.ts +81 -0
- package/dist/chains/varityL3.d.ts.map +1 -0
- package/dist/chains/varityL3.js +125 -0
- package/dist/cli/commands/clone.d.ts +8 -0
- package/dist/cli/commands/clone.d.ts.map +1 -0
- package/dist/cli/commands/clone.js +391 -0
- package/dist/cli/commands/dev.d.ts +8 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +40 -0
- package/dist/cli/commands/generate.d.ts +8 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +303 -0
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +317 -0
- package/dist/cli/commands/validate.d.ts +8 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +69 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/utils/logger.d.ts +17 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/cli/utils/logger.js +35 -0
- package/dist/cli/utils/prompts.d.ts +21 -0
- package/dist/cli/utils/prompts.d.ts.map +1 -0
- package/dist/cli/utils/prompts.js +103 -0
- package/dist/contracts/abis/iso/AccessControlRegistry.json +1468 -0
- package/dist/contracts/abis/iso/DataProofRegistry.json +797 -0
- package/dist/contracts/abis/iso/MerchantRegistry.json +1237 -0
- package/dist/contracts/abis/iso/RepPerformance.json +1351 -0
- package/dist/contracts/abis/iso/ResidualCalculator.json +1118 -0
- package/dist/contracts/abis/iso/TransactionVault.json +1588 -0
- package/dist/contracts/abis/iso/VarityWalletFactory.json +475 -0
- package/dist/contracts/addresses.d.ts +88 -0
- package/dist/contracts/addresses.d.ts.map +1 -0
- package/dist/contracts/addresses.js +94 -0
- package/dist/contracts/index.d.ts +7 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +6 -0
- package/dist/core/VaritySDK.d.ts +177 -0
- package/dist/core/VaritySDK.d.ts.map +1 -0
- package/dist/core/VaritySDK.js +325 -0
- package/dist/core/config.d.ts +120 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +187 -0
- package/dist/core/credentials-proxy.d.ts +157 -0
- package/dist/core/credentials-proxy.d.ts.map +1 -0
- package/dist/core/credentials-proxy.js +345 -0
- package/dist/core/credentials.d.ts +219 -0
- package/dist/core/credentials.d.ts.map +1 -0
- package/dist/core/credentials.js +345 -0
- package/dist/core/template-loader.d.ts +15 -0
- package/dist/core/template-loader.d.ts.map +1 -0
- package/dist/core/template-loader.js +380 -0
- package/dist/core/template.d.ts +321 -0
- package/dist/core/template.d.ts.map +1 -0
- package/dist/core/template.js +189 -0
- package/dist/core/types.d.ts +572 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +52 -0
- package/dist/dev/dev-server.d.ts +16 -0
- package/dist/dev/dev-server.d.ts.map +1 -0
- package/dist/dev/dev-server.js +119 -0
- package/dist/generators/contracts/generator.d.ts +21 -0
- package/dist/generators/contracts/generator.d.ts.map +1 -0
- package/dist/generators/contracts/generator.js +252 -0
- package/dist/generators/tests/generator.d.ts +20 -0
- package/dist/generators/tests/generator.d.ts.map +1 -0
- package/dist/generators/tests/generator.js +375 -0
- package/dist/generators/types/generator.d.ts +19 -0
- package/dist/generators/types/generator.d.ts.map +1 -0
- package/dist/generators/types/generator.js +165 -0
- package/dist/generators/ui/component-generator.d.ts +20 -0
- package/dist/generators/ui/component-generator.d.ts.map +1 -0
- package/dist/generators/ui/component-generator.js +749 -0
- package/dist/generators/ui/dashboard-generator.d.ts +20 -0
- package/dist/generators/ui/dashboard-generator.d.ts.map +1 -0
- package/dist/generators/ui/dashboard-generator.js +349 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts +349 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts.map +1 -0
- package/dist/modules/analytics/AnalyticsModule.js +274 -0
- package/dist/modules/analytics/index.d.ts +3 -0
- package/dist/modules/analytics/index.d.ts.map +1 -0
- package/dist/modules/analytics/index.js +1 -0
- package/dist/modules/auth/AccessKeyModule.d.ts +189 -0
- package/dist/modules/auth/AccessKeyModule.d.ts.map +1 -0
- package/dist/modules/auth/AccessKeyModule.js +322 -0
- package/dist/modules/auth/AuthModule.d.ts +133 -0
- package/dist/modules/auth/AuthModule.d.ts.map +1 -0
- package/dist/modules/auth/AuthModule.js +214 -0
- package/dist/modules/auth/index.d.ts +8 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +6 -0
- package/dist/modules/cache/CacheModule.d.ts +279 -0
- package/dist/modules/cache/CacheModule.d.ts.map +1 -0
- package/dist/modules/cache/CacheModule.js +493 -0
- package/dist/modules/cache/index.d.ts +3 -0
- package/dist/modules/cache/index.d.ts.map +1 -0
- package/dist/modules/cache/index.js +1 -0
- package/dist/modules/compute/ComputeModule.d.ts +226 -0
- package/dist/modules/compute/ComputeModule.d.ts.map +1 -0
- package/dist/modules/compute/ComputeModule.js +379 -0
- package/dist/modules/compute/index.d.ts +6 -0
- package/dist/modules/compute/index.d.ts.map +1 -0
- package/dist/modules/compute/index.js +4 -0
- package/dist/modules/contracts/ContractsModule.d.ts +164 -0
- package/dist/modules/contracts/ContractsModule.d.ts.map +1 -0
- package/dist/modules/contracts/ContractsModule.js +242 -0
- package/dist/modules/contracts/index.d.ts +6 -0
- package/dist/modules/contracts/index.d.ts.map +1 -0
- package/dist/modules/contracts/index.js +4 -0
- package/dist/modules/export/ExportModule.d.ts +346 -0
- package/dist/modules/export/ExportModule.d.ts.map +1 -0
- package/dist/modules/export/ExportModule.js +432 -0
- package/dist/modules/export/index.d.ts +3 -0
- package/dist/modules/export/index.d.ts.map +1 -0
- package/dist/modules/export/index.js +1 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts +579 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts.map +1 -0
- package/dist/modules/forecasting/ForecastingModule.js +310 -0
- package/dist/modules/forecasting/index.d.ts +3 -0
- package/dist/modules/forecasting/index.d.ts.map +1 -0
- package/dist/modules/forecasting/index.js +1 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts +359 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts.map +1 -0
- package/dist/modules/monitoring/MonitoringModule.js +483 -0
- package/dist/modules/monitoring/index.d.ts +3 -0
- package/dist/modules/monitoring/index.d.ts.map +1 -0
- package/dist/modules/monitoring/index.js +1 -0
- package/dist/modules/notifications/NotificationsModule.d.ts +336 -0
- package/dist/modules/notifications/NotificationsModule.d.ts.map +1 -0
- package/dist/modules/notifications/NotificationsModule.js +418 -0
- package/dist/modules/notifications/index.d.ts +3 -0
- package/dist/modules/notifications/index.d.ts.map +1 -0
- package/dist/modules/notifications/index.js +1 -0
- package/dist/modules/oracle/OracleModule.d.ts +110 -0
- package/dist/modules/oracle/OracleModule.d.ts.map +1 -0
- package/dist/modules/oracle/OracleModule.js +151 -0
- package/dist/modules/oracle/index.d.ts +6 -0
- package/dist/modules/oracle/index.d.ts.map +1 -0
- package/dist/modules/oracle/index.js +4 -0
- package/dist/modules/storage/S3Module.d.ts +377 -0
- package/dist/modules/storage/S3Module.d.ts.map +1 -0
- package/dist/modules/storage/S3Module.js +680 -0
- package/dist/modules/storage/StorageModule.d.ts +157 -0
- package/dist/modules/storage/StorageModule.d.ts.map +1 -0
- package/dist/modules/storage/StorageModule.js +302 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts +100 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts.map +1 -0
- package/dist/modules/storage/adapters/AdapterFactory.js +209 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts +94 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.js +263 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts +287 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/IStorageAdapter.js +81 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts +187 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.js +430 -0
- package/dist/modules/storage/adapters/index.d.ts +12 -0
- package/dist/modules/storage/adapters/index.d.ts.map +1 -0
- package/dist/modules/storage/adapters/index.js +12 -0
- package/dist/modules/storage/index.d.ts +16 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/index.js +15 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts +227 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.js +367 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts +248 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/CostOptimizer.js +356 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts +287 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts.map +1 -0
- package/dist/modules/storage/tiering/MetadataStore.js +535 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts +237 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts.map +1 -0
- package/dist/modules/storage/tiering/TieringEngine.js +419 -0
- package/dist/modules/storage/tiering/example.d.ts +8 -0
- package/dist/modules/storage/tiering/example.d.ts.map +1 -0
- package/dist/modules/storage/tiering/example.js +250 -0
- package/dist/modules/storage/tiering/index.d.ts +17 -0
- package/dist/modules/storage/tiering/index.d.ts.map +1 -0
- package/dist/modules/storage/tiering/index.js +13 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts +476 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts.map +1 -0
- package/dist/modules/webhooks/WebhooksModule.js +359 -0
- package/dist/modules/webhooks/index.d.ts +3 -0
- package/dist/modules/webhooks/index.d.ts.map +1 -0
- package/dist/modules/webhooks/index.js +1 -0
- package/dist/modules/zk/ZKModule.d.ts +153 -0
- package/dist/modules/zk/ZKModule.d.ts.map +1 -0
- package/dist/modules/zk/ZKModule.js +262 -0
- package/dist/modules/zk/index.d.ts +7 -0
- package/dist/modules/zk/index.d.ts.map +1 -0
- package/dist/modules/zk/index.js +4 -0
- package/dist/thirdweb/BridgeClient.d.ts +228 -0
- package/dist/thirdweb/BridgeClient.d.ts.map +1 -0
- package/dist/thirdweb/BridgeClient.js +160 -0
- package/dist/thirdweb/EngineClient.d.ts +396 -0
- package/dist/thirdweb/EngineClient.d.ts.map +1 -0
- package/dist/thirdweb/EngineClient.js +386 -0
- package/dist/thirdweb/GatewayClient.d.ts +190 -0
- package/dist/thirdweb/GatewayClient.d.ts.map +1 -0
- package/dist/thirdweb/GatewayClient.js +257 -0
- package/dist/thirdweb/NebulaClient.d.ts +292 -0
- package/dist/thirdweb/NebulaClient.d.ts.map +1 -0
- package/dist/thirdweb/NebulaClient.js +180 -0
- package/dist/thirdweb/StorageClient.d.ts +445 -0
- package/dist/thirdweb/StorageClient.d.ts.map +1 -0
- package/dist/thirdweb/StorageClient.js +405 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts +236 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts.map +1 -0
- package/dist/thirdweb/ThirdwebWrapper.js +332 -0
- package/dist/thirdweb/index.d.ts +21 -0
- package/dist/thirdweb/index.d.ts.map +1 -0
- package/dist/thirdweb/index.js +28 -0
- package/dist/thirdweb/varity-chain.d.ts +48 -0
- package/dist/thirdweb/varity-chain.d.ts.map +1 -0
- package/dist/thirdweb/varity-chain.js +64 -0
- package/dist/thirdweb/x402Client.d.ts +319 -0
- package/dist/thirdweb/x402Client.d.ts.map +1 -0
- package/dist/thirdweb/x402Client.js +223 -0
- package/dist/tracking/gasTracker.d.ts +158 -0
- package/dist/tracking/gasTracker.d.ts.map +1 -0
- package/dist/tracking/gasTracker.js +227 -0
- package/dist/tracking/index.d.ts +10 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +8 -0
- package/dist/tracking/types.d.ts +327 -0
- package/dist/tracking/types.d.ts.map +1 -0
- package/dist/tracking/types.js +8 -0
- package/dist/ui/components/ChartWidget.d.ts +36 -0
- package/dist/ui/components/ChartWidget.d.ts.map +1 -0
- package/dist/ui/components/ChartWidget.js +82 -0
- package/dist/ui/components/DashboardLayout.d.ts +41 -0
- package/dist/ui/components/DashboardLayout.d.ts.map +1 -0
- package/dist/ui/components/DashboardLayout.js +102 -0
- package/dist/ui/components/DataTable.d.ts +49 -0
- package/dist/ui/components/DataTable.d.ts.map +1 -0
- package/dist/ui/components/DataTable.js +96 -0
- package/dist/ui/components/EntityForm.d.ts +60 -0
- package/dist/ui/components/EntityForm.d.ts.map +1 -0
- package/dist/ui/components/EntityForm.js +182 -0
- package/dist/ui/components/KPICard.d.ts +29 -0
- package/dist/ui/components/KPICard.d.ts.map +1 -0
- package/dist/ui/components/KPICard.js +61 -0
- package/dist/ui/components/Modal.d.ts +34 -0
- package/dist/ui/components/Modal.d.ts.map +1 -0
- package/dist/ui/components/Modal.js +30 -0
- package/dist/ui/components/index.d.ts +18 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +11 -0
- package/dist/validation/template-validator.d.ts +25 -0
- package/dist/validation/template-validator.d.ts.map +1 -0
- package/dist/validation/template-validator.js +305 -0
- package/package.json +102 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Varity SDK - Metadata Store
|
|
3
|
+
*
|
|
4
|
+
* Persistent storage for tiering metadata with support for multiple backends.
|
|
5
|
+
* Enables cross-instance consistency and historical tracking of tier transitions.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Multiple storage backends (in-memory, file, IPFS, SQL)
|
|
9
|
+
* - Atomic updates
|
|
10
|
+
* - Batch operations
|
|
11
|
+
* - Historical tracking
|
|
12
|
+
* - Efficient querying
|
|
13
|
+
*
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
*/
|
|
16
|
+
import { StorageLayer, StorageTier } from '@varity-labs/types';
|
|
17
|
+
/**
|
|
18
|
+
* Tiering metadata for an object
|
|
19
|
+
*/
|
|
20
|
+
export interface TieringMetadata {
|
|
21
|
+
/** Object identifier */
|
|
22
|
+
identifier: string;
|
|
23
|
+
/** Current storage tier */
|
|
24
|
+
tier: StorageTier;
|
|
25
|
+
/** Storage layer */
|
|
26
|
+
layer: StorageLayer;
|
|
27
|
+
/** Object size in bytes */
|
|
28
|
+
size: number;
|
|
29
|
+
/** Creation timestamp */
|
|
30
|
+
createdAt: Date;
|
|
31
|
+
/** Last accessed timestamp */
|
|
32
|
+
lastAccessed: Date;
|
|
33
|
+
/** Total access count */
|
|
34
|
+
accessCount: number;
|
|
35
|
+
/** Last tier change timestamp */
|
|
36
|
+
lastTierChange?: Date;
|
|
37
|
+
/** Tier change history */
|
|
38
|
+
tierHistory?: TierTransition[];
|
|
39
|
+
/** Custom tags */
|
|
40
|
+
tags?: Record<string, string>;
|
|
41
|
+
/** Additional metadata */
|
|
42
|
+
customMetadata?: Record<string, any>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Tier transition record
|
|
46
|
+
*/
|
|
47
|
+
export interface TierTransition {
|
|
48
|
+
/** Transition timestamp */
|
|
49
|
+
timestamp: Date;
|
|
50
|
+
/** From tier */
|
|
51
|
+
fromTier: StorageTier;
|
|
52
|
+
/** To tier */
|
|
53
|
+
toTier: StorageTier;
|
|
54
|
+
/** Reason for transition */
|
|
55
|
+
reason: string;
|
|
56
|
+
/** Cost impact (positive = savings) */
|
|
57
|
+
costImpact: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Query options for metadata
|
|
61
|
+
*/
|
|
62
|
+
export interface MetadataQueryOptions {
|
|
63
|
+
/** Filter by storage tier */
|
|
64
|
+
tier?: StorageTier;
|
|
65
|
+
/** Filter by storage layer */
|
|
66
|
+
layer?: StorageLayer;
|
|
67
|
+
/** Filter by tags */
|
|
68
|
+
tags?: Record<string, string>;
|
|
69
|
+
/** Minimum size in bytes */
|
|
70
|
+
minSize?: number;
|
|
71
|
+
/** Maximum size in bytes */
|
|
72
|
+
maxSize?: number;
|
|
73
|
+
/** Created after date */
|
|
74
|
+
createdAfter?: Date;
|
|
75
|
+
/** Created before date */
|
|
76
|
+
createdBefore?: Date;
|
|
77
|
+
/** Accessed after date */
|
|
78
|
+
accessedAfter?: Date;
|
|
79
|
+
/** Accessed before date */
|
|
80
|
+
accessedBefore?: Date;
|
|
81
|
+
/** Limit results */
|
|
82
|
+
limit?: number;
|
|
83
|
+
/** Offset for pagination */
|
|
84
|
+
offset?: number;
|
|
85
|
+
/** Sort field */
|
|
86
|
+
sortBy?: 'createdAt' | 'lastAccessed' | 'size' | 'accessCount';
|
|
87
|
+
/** Sort order */
|
|
88
|
+
sortOrder?: 'asc' | 'desc';
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Batch update operation
|
|
92
|
+
*/
|
|
93
|
+
export interface BatchUpdate {
|
|
94
|
+
/** Object identifier */
|
|
95
|
+
identifier: string;
|
|
96
|
+
/** Metadata updates */
|
|
97
|
+
updates: Partial<TieringMetadata>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Storage backend type
|
|
101
|
+
*/
|
|
102
|
+
export declare enum MetadataBackend {
|
|
103
|
+
/** In-memory storage (not persistent) */
|
|
104
|
+
MEMORY = "memory",
|
|
105
|
+
/** File-based storage (JSON) */
|
|
106
|
+
FILE = "file",
|
|
107
|
+
/** IPFS/Filecoin storage */
|
|
108
|
+
IPFS = "ipfs",
|
|
109
|
+
/** SQL database (SQLite, PostgreSQL, etc.) */
|
|
110
|
+
SQL = "sql"
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Metadata store configuration
|
|
114
|
+
*/
|
|
115
|
+
export interface MetadataStoreConfig {
|
|
116
|
+
/** Storage backend */
|
|
117
|
+
backend: MetadataBackend;
|
|
118
|
+
/** Backend-specific options */
|
|
119
|
+
backendOptions?: Record<string, any>;
|
|
120
|
+
/** Enable automatic backups */
|
|
121
|
+
enableBackups?: boolean;
|
|
122
|
+
/** Backup interval in minutes */
|
|
123
|
+
backupIntervalMinutes?: number;
|
|
124
|
+
/** Enable compression */
|
|
125
|
+
enableCompression?: boolean;
|
|
126
|
+
/** Cache TTL in milliseconds */
|
|
127
|
+
cacheTTL?: number;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Metadata store statistics
|
|
131
|
+
*/
|
|
132
|
+
export interface MetadataStoreStats {
|
|
133
|
+
/** Total metadata entries */
|
|
134
|
+
totalEntries: number;
|
|
135
|
+
/** Entries by tier */
|
|
136
|
+
byTier: Record<StorageTier, number>;
|
|
137
|
+
/** Entries by layer */
|
|
138
|
+
byLayer: Record<StorageLayer, number>;
|
|
139
|
+
/** Total storage size tracked */
|
|
140
|
+
totalSize: number;
|
|
141
|
+
/** Last update timestamp */
|
|
142
|
+
lastUpdate: Date;
|
|
143
|
+
/** Backend type */
|
|
144
|
+
backend: MetadataBackend;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Persistent metadata store for tiering system
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* const store = new MetadataStore({
|
|
152
|
+
* backend: MetadataBackend.FILE,
|
|
153
|
+
* backendOptions: {
|
|
154
|
+
* filePath: './tiering-metadata.json'
|
|
155
|
+
* },
|
|
156
|
+
* enableBackups: true
|
|
157
|
+
* })
|
|
158
|
+
*
|
|
159
|
+
* await store.initialize()
|
|
160
|
+
*
|
|
161
|
+
* // Save metadata
|
|
162
|
+
* await store.save('obj-123', {
|
|
163
|
+
* identifier: 'obj-123',
|
|
164
|
+
* tier: StorageTier.HOT,
|
|
165
|
+
* layer: StorageLayer.CUSTOMER_DATA,
|
|
166
|
+
* size: 1024 * 1024,
|
|
167
|
+
* createdAt: new Date(),
|
|
168
|
+
* lastAccessed: new Date(),
|
|
169
|
+
* accessCount: 1
|
|
170
|
+
* })
|
|
171
|
+
*
|
|
172
|
+
* // Load metadata
|
|
173
|
+
* const metadata = await store.load('obj-123')
|
|
174
|
+
* console.log(`Tier: ${metadata?.tier}`)
|
|
175
|
+
*
|
|
176
|
+
* // Query metadata
|
|
177
|
+
* const hotObjects = await store.query({
|
|
178
|
+
* tier: StorageTier.HOT,
|
|
179
|
+
* limit: 10
|
|
180
|
+
* })
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export declare class MetadataStore {
|
|
184
|
+
private config;
|
|
185
|
+
private cache;
|
|
186
|
+
private memoryStore;
|
|
187
|
+
private initialized;
|
|
188
|
+
private backupInterval;
|
|
189
|
+
constructor(config: MetadataStoreConfig);
|
|
190
|
+
/**
|
|
191
|
+
* Initialize the metadata store
|
|
192
|
+
*/
|
|
193
|
+
initialize(): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* Save metadata for an object
|
|
196
|
+
*
|
|
197
|
+
* @param identifier - Object identifier
|
|
198
|
+
* @param metadata - Tiering metadata
|
|
199
|
+
*/
|
|
200
|
+
save(identifier: string, metadata: TieringMetadata): Promise<void>;
|
|
201
|
+
/**
|
|
202
|
+
* Load metadata for an object
|
|
203
|
+
*
|
|
204
|
+
* @param identifier - Object identifier
|
|
205
|
+
* @returns Tiering metadata or null if not found
|
|
206
|
+
*/
|
|
207
|
+
load(identifier: string): Promise<TieringMetadata | null>;
|
|
208
|
+
/**
|
|
209
|
+
* Delete metadata for an object
|
|
210
|
+
*
|
|
211
|
+
* @param identifier - Object identifier
|
|
212
|
+
*/
|
|
213
|
+
delete(identifier: string): Promise<void>;
|
|
214
|
+
/**
|
|
215
|
+
* List all metadata entries
|
|
216
|
+
*
|
|
217
|
+
* @returns Map of all metadata
|
|
218
|
+
*/
|
|
219
|
+
listAll(): Promise<Map<string, TieringMetadata>>;
|
|
220
|
+
/**
|
|
221
|
+
* Query metadata with filters
|
|
222
|
+
*
|
|
223
|
+
* @param options - Query options
|
|
224
|
+
* @returns Filtered metadata entries
|
|
225
|
+
*/
|
|
226
|
+
query(options?: MetadataQueryOptions): Promise<TieringMetadata[]>;
|
|
227
|
+
/**
|
|
228
|
+
* Batch save metadata
|
|
229
|
+
*
|
|
230
|
+
* @param entries - Array of metadata entries
|
|
231
|
+
*/
|
|
232
|
+
batchSave(entries: TieringMetadata[]): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Batch update metadata
|
|
235
|
+
*
|
|
236
|
+
* @param updates - Array of batch updates
|
|
237
|
+
*/
|
|
238
|
+
batchUpdate(updates: BatchUpdate[]): Promise<void>;
|
|
239
|
+
/**
|
|
240
|
+
* Record a tier transition
|
|
241
|
+
*
|
|
242
|
+
* @param identifier - Object identifier
|
|
243
|
+
* @param fromTier - Source tier
|
|
244
|
+
* @param toTier - Destination tier
|
|
245
|
+
* @param reason - Reason for transition
|
|
246
|
+
* @param costImpact - Cost impact of transition
|
|
247
|
+
*/
|
|
248
|
+
recordTierTransition(identifier: string, fromTier: StorageTier, toTier: StorageTier, reason: string, costImpact?: number): Promise<void>;
|
|
249
|
+
/**
|
|
250
|
+
* Get statistics about stored metadata
|
|
251
|
+
*
|
|
252
|
+
* @returns Metadata store statistics
|
|
253
|
+
*/
|
|
254
|
+
getStats(): Promise<MetadataStoreStats>;
|
|
255
|
+
/**
|
|
256
|
+
* Export metadata to JSON
|
|
257
|
+
*
|
|
258
|
+
* @returns JSON string
|
|
259
|
+
*/
|
|
260
|
+
exportToJSON(): Promise<string>;
|
|
261
|
+
/**
|
|
262
|
+
* Import metadata from JSON
|
|
263
|
+
*
|
|
264
|
+
* @param json - JSON string
|
|
265
|
+
*/
|
|
266
|
+
importFromJSON(json: string): Promise<void>;
|
|
267
|
+
/**
|
|
268
|
+
* Clear all metadata
|
|
269
|
+
*/
|
|
270
|
+
clear(): Promise<void>;
|
|
271
|
+
/**
|
|
272
|
+
* Destroy the metadata store and clean up resources
|
|
273
|
+
*/
|
|
274
|
+
destroy(): void;
|
|
275
|
+
private initializeFileBackend;
|
|
276
|
+
private initializeIPFSBackend;
|
|
277
|
+
private initializeSQLBackend;
|
|
278
|
+
private persistToBackend;
|
|
279
|
+
private loadFromBackend;
|
|
280
|
+
private deleteFromBackend;
|
|
281
|
+
private batchPersistToBackend;
|
|
282
|
+
private clearBackend;
|
|
283
|
+
private persistToFile;
|
|
284
|
+
private startBackupProcess;
|
|
285
|
+
private createBackup;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=MetadataStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataStore.d.ts","sourceRoot":"","sources":["../../../../src/modules/storage/tiering/MetadataStore.ts"],"names":[],"mappings":"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"}
|