@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.
Files changed (295) hide show
  1. package/LICENSE +31 -0
  2. package/README.md +253 -0
  3. package/dist/analytics/index.d.ts +7 -0
  4. package/dist/analytics/index.d.ts.map +1 -0
  5. package/dist/analytics/index.js +6 -0
  6. package/dist/analytics/tracker.d.ts +128 -0
  7. package/dist/analytics/tracker.d.ts.map +1 -0
  8. package/dist/analytics/tracker.js +203 -0
  9. package/dist/blockchain/BlockchainService.d.ts +100 -0
  10. package/dist/blockchain/BlockchainService.d.ts.map +1 -0
  11. package/dist/blockchain/BlockchainService.js +188 -0
  12. package/dist/blockchain/NFTLicensingService.d.ts +69 -0
  13. package/dist/blockchain/NFTLicensingService.d.ts.map +1 -0
  14. package/dist/blockchain/NFTLicensingService.js +136 -0
  15. package/dist/blockchain/RevenueSplitService.d.ts +71 -0
  16. package/dist/blockchain/RevenueSplitService.d.ts.map +1 -0
  17. package/dist/blockchain/RevenueSplitService.js +111 -0
  18. package/dist/blockchain/index.d.ts +48 -0
  19. package/dist/blockchain/index.d.ts.map +1 -0
  20. package/dist/blockchain/index.js +46 -0
  21. package/dist/blockchain/types.d.ts +63 -0
  22. package/dist/blockchain/types.d.ts.map +1 -0
  23. package/dist/blockchain/types.js +6 -0
  24. package/dist/chains/arbitrum.d.ts +89 -0
  25. package/dist/chains/arbitrum.d.ts.map +1 -0
  26. package/dist/chains/arbitrum.js +134 -0
  27. package/dist/chains/base.d.ts +84 -0
  28. package/dist/chains/base.d.ts.map +1 -0
  29. package/dist/chains/base.js +131 -0
  30. package/dist/chains/index.d.ts +36 -0
  31. package/dist/chains/index.d.ts.map +1 -0
  32. package/dist/chains/index.js +32 -0
  33. package/dist/chains/registry.d.ts +113 -0
  34. package/dist/chains/registry.d.ts.map +1 -0
  35. package/dist/chains/registry.js +201 -0
  36. package/dist/chains/varityL3.d.ts +81 -0
  37. package/dist/chains/varityL3.d.ts.map +1 -0
  38. package/dist/chains/varityL3.js +125 -0
  39. package/dist/cli/commands/clone.d.ts +8 -0
  40. package/dist/cli/commands/clone.d.ts.map +1 -0
  41. package/dist/cli/commands/clone.js +391 -0
  42. package/dist/cli/commands/dev.d.ts +8 -0
  43. package/dist/cli/commands/dev.d.ts.map +1 -0
  44. package/dist/cli/commands/dev.js +40 -0
  45. package/dist/cli/commands/generate.d.ts +8 -0
  46. package/dist/cli/commands/generate.d.ts.map +1 -0
  47. package/dist/cli/commands/generate.js +303 -0
  48. package/dist/cli/commands/init.d.ts +8 -0
  49. package/dist/cli/commands/init.d.ts.map +1 -0
  50. package/dist/cli/commands/init.js +317 -0
  51. package/dist/cli/commands/validate.d.ts +8 -0
  52. package/dist/cli/commands/validate.d.ts.map +1 -0
  53. package/dist/cli/commands/validate.js +69 -0
  54. package/dist/cli/index.d.ts +8 -0
  55. package/dist/cli/index.d.ts.map +1 -0
  56. package/dist/cli/index.js +33 -0
  57. package/dist/cli/utils/logger.d.ts +17 -0
  58. package/dist/cli/utils/logger.d.ts.map +1 -0
  59. package/dist/cli/utils/logger.js +35 -0
  60. package/dist/cli/utils/prompts.d.ts +21 -0
  61. package/dist/cli/utils/prompts.d.ts.map +1 -0
  62. package/dist/cli/utils/prompts.js +103 -0
  63. package/dist/contracts/abis/iso/AccessControlRegistry.json +1468 -0
  64. package/dist/contracts/abis/iso/DataProofRegistry.json +797 -0
  65. package/dist/contracts/abis/iso/MerchantRegistry.json +1237 -0
  66. package/dist/contracts/abis/iso/RepPerformance.json +1351 -0
  67. package/dist/contracts/abis/iso/ResidualCalculator.json +1118 -0
  68. package/dist/contracts/abis/iso/TransactionVault.json +1588 -0
  69. package/dist/contracts/abis/iso/VarityWalletFactory.json +475 -0
  70. package/dist/contracts/addresses.d.ts +88 -0
  71. package/dist/contracts/addresses.d.ts.map +1 -0
  72. package/dist/contracts/addresses.js +94 -0
  73. package/dist/contracts/index.d.ts +7 -0
  74. package/dist/contracts/index.d.ts.map +1 -0
  75. package/dist/contracts/index.js +6 -0
  76. package/dist/core/VaritySDK.d.ts +177 -0
  77. package/dist/core/VaritySDK.d.ts.map +1 -0
  78. package/dist/core/VaritySDK.js +325 -0
  79. package/dist/core/config.d.ts +120 -0
  80. package/dist/core/config.d.ts.map +1 -0
  81. package/dist/core/config.js +187 -0
  82. package/dist/core/credentials-proxy.d.ts +157 -0
  83. package/dist/core/credentials-proxy.d.ts.map +1 -0
  84. package/dist/core/credentials-proxy.js +345 -0
  85. package/dist/core/credentials.d.ts +219 -0
  86. package/dist/core/credentials.d.ts.map +1 -0
  87. package/dist/core/credentials.js +345 -0
  88. package/dist/core/template-loader.d.ts +15 -0
  89. package/dist/core/template-loader.d.ts.map +1 -0
  90. package/dist/core/template-loader.js +380 -0
  91. package/dist/core/template.d.ts +321 -0
  92. package/dist/core/template.d.ts.map +1 -0
  93. package/dist/core/template.js +189 -0
  94. package/dist/core/types.d.ts +572 -0
  95. package/dist/core/types.d.ts.map +1 -0
  96. package/dist/core/types.js +52 -0
  97. package/dist/dev/dev-server.d.ts +16 -0
  98. package/dist/dev/dev-server.d.ts.map +1 -0
  99. package/dist/dev/dev-server.js +119 -0
  100. package/dist/generators/contracts/generator.d.ts +21 -0
  101. package/dist/generators/contracts/generator.d.ts.map +1 -0
  102. package/dist/generators/contracts/generator.js +252 -0
  103. package/dist/generators/tests/generator.d.ts +20 -0
  104. package/dist/generators/tests/generator.d.ts.map +1 -0
  105. package/dist/generators/tests/generator.js +375 -0
  106. package/dist/generators/types/generator.d.ts +19 -0
  107. package/dist/generators/types/generator.d.ts.map +1 -0
  108. package/dist/generators/types/generator.js +165 -0
  109. package/dist/generators/ui/component-generator.d.ts +20 -0
  110. package/dist/generators/ui/component-generator.d.ts.map +1 -0
  111. package/dist/generators/ui/component-generator.js +749 -0
  112. package/dist/generators/ui/dashboard-generator.d.ts +20 -0
  113. package/dist/generators/ui/dashboard-generator.d.ts.map +1 -0
  114. package/dist/generators/ui/dashboard-generator.js +349 -0
  115. package/dist/index.d.ts +61 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +74 -0
  118. package/dist/modules/analytics/AnalyticsModule.d.ts +349 -0
  119. package/dist/modules/analytics/AnalyticsModule.d.ts.map +1 -0
  120. package/dist/modules/analytics/AnalyticsModule.js +274 -0
  121. package/dist/modules/analytics/index.d.ts +3 -0
  122. package/dist/modules/analytics/index.d.ts.map +1 -0
  123. package/dist/modules/analytics/index.js +1 -0
  124. package/dist/modules/auth/AccessKeyModule.d.ts +189 -0
  125. package/dist/modules/auth/AccessKeyModule.d.ts.map +1 -0
  126. package/dist/modules/auth/AccessKeyModule.js +322 -0
  127. package/dist/modules/auth/AuthModule.d.ts +133 -0
  128. package/dist/modules/auth/AuthModule.d.ts.map +1 -0
  129. package/dist/modules/auth/AuthModule.js +214 -0
  130. package/dist/modules/auth/index.d.ts +8 -0
  131. package/dist/modules/auth/index.d.ts.map +1 -0
  132. package/dist/modules/auth/index.js +6 -0
  133. package/dist/modules/cache/CacheModule.d.ts +279 -0
  134. package/dist/modules/cache/CacheModule.d.ts.map +1 -0
  135. package/dist/modules/cache/CacheModule.js +493 -0
  136. package/dist/modules/cache/index.d.ts +3 -0
  137. package/dist/modules/cache/index.d.ts.map +1 -0
  138. package/dist/modules/cache/index.js +1 -0
  139. package/dist/modules/compute/ComputeModule.d.ts +226 -0
  140. package/dist/modules/compute/ComputeModule.d.ts.map +1 -0
  141. package/dist/modules/compute/ComputeModule.js +379 -0
  142. package/dist/modules/compute/index.d.ts +6 -0
  143. package/dist/modules/compute/index.d.ts.map +1 -0
  144. package/dist/modules/compute/index.js +4 -0
  145. package/dist/modules/contracts/ContractsModule.d.ts +164 -0
  146. package/dist/modules/contracts/ContractsModule.d.ts.map +1 -0
  147. package/dist/modules/contracts/ContractsModule.js +242 -0
  148. package/dist/modules/contracts/index.d.ts +6 -0
  149. package/dist/modules/contracts/index.d.ts.map +1 -0
  150. package/dist/modules/contracts/index.js +4 -0
  151. package/dist/modules/export/ExportModule.d.ts +346 -0
  152. package/dist/modules/export/ExportModule.d.ts.map +1 -0
  153. package/dist/modules/export/ExportModule.js +432 -0
  154. package/dist/modules/export/index.d.ts +3 -0
  155. package/dist/modules/export/index.d.ts.map +1 -0
  156. package/dist/modules/export/index.js +1 -0
  157. package/dist/modules/forecasting/ForecastingModule.d.ts +579 -0
  158. package/dist/modules/forecasting/ForecastingModule.d.ts.map +1 -0
  159. package/dist/modules/forecasting/ForecastingModule.js +310 -0
  160. package/dist/modules/forecasting/index.d.ts +3 -0
  161. package/dist/modules/forecasting/index.d.ts.map +1 -0
  162. package/dist/modules/forecasting/index.js +1 -0
  163. package/dist/modules/monitoring/MonitoringModule.d.ts +359 -0
  164. package/dist/modules/monitoring/MonitoringModule.d.ts.map +1 -0
  165. package/dist/modules/monitoring/MonitoringModule.js +483 -0
  166. package/dist/modules/monitoring/index.d.ts +3 -0
  167. package/dist/modules/monitoring/index.d.ts.map +1 -0
  168. package/dist/modules/monitoring/index.js +1 -0
  169. package/dist/modules/notifications/NotificationsModule.d.ts +336 -0
  170. package/dist/modules/notifications/NotificationsModule.d.ts.map +1 -0
  171. package/dist/modules/notifications/NotificationsModule.js +418 -0
  172. package/dist/modules/notifications/index.d.ts +3 -0
  173. package/dist/modules/notifications/index.d.ts.map +1 -0
  174. package/dist/modules/notifications/index.js +1 -0
  175. package/dist/modules/oracle/OracleModule.d.ts +110 -0
  176. package/dist/modules/oracle/OracleModule.d.ts.map +1 -0
  177. package/dist/modules/oracle/OracleModule.js +151 -0
  178. package/dist/modules/oracle/index.d.ts +6 -0
  179. package/dist/modules/oracle/index.d.ts.map +1 -0
  180. package/dist/modules/oracle/index.js +4 -0
  181. package/dist/modules/storage/S3Module.d.ts +377 -0
  182. package/dist/modules/storage/S3Module.d.ts.map +1 -0
  183. package/dist/modules/storage/S3Module.js +680 -0
  184. package/dist/modules/storage/StorageModule.d.ts +157 -0
  185. package/dist/modules/storage/StorageModule.d.ts.map +1 -0
  186. package/dist/modules/storage/StorageModule.js +302 -0
  187. package/dist/modules/storage/adapters/AdapterFactory.d.ts +100 -0
  188. package/dist/modules/storage/adapters/AdapterFactory.d.ts.map +1 -0
  189. package/dist/modules/storage/adapters/AdapterFactory.js +209 -0
  190. package/dist/modules/storage/adapters/FilecoinAdapter.d.ts +94 -0
  191. package/dist/modules/storage/adapters/FilecoinAdapter.d.ts.map +1 -0
  192. package/dist/modules/storage/adapters/FilecoinAdapter.js +263 -0
  193. package/dist/modules/storage/adapters/IStorageAdapter.d.ts +287 -0
  194. package/dist/modules/storage/adapters/IStorageAdapter.d.ts.map +1 -0
  195. package/dist/modules/storage/adapters/IStorageAdapter.js +81 -0
  196. package/dist/modules/storage/adapters/MultiTierAdapter.d.ts +187 -0
  197. package/dist/modules/storage/adapters/MultiTierAdapter.d.ts.map +1 -0
  198. package/dist/modules/storage/adapters/MultiTierAdapter.js +430 -0
  199. package/dist/modules/storage/adapters/index.d.ts +12 -0
  200. package/dist/modules/storage/adapters/index.d.ts.map +1 -0
  201. package/dist/modules/storage/adapters/index.js +12 -0
  202. package/dist/modules/storage/index.d.ts +16 -0
  203. package/dist/modules/storage/index.d.ts.map +1 -0
  204. package/dist/modules/storage/index.js +15 -0
  205. package/dist/modules/storage/tiering/AccessAnalyzer.d.ts +227 -0
  206. package/dist/modules/storage/tiering/AccessAnalyzer.d.ts.map +1 -0
  207. package/dist/modules/storage/tiering/AccessAnalyzer.js +367 -0
  208. package/dist/modules/storage/tiering/CostOptimizer.d.ts +248 -0
  209. package/dist/modules/storage/tiering/CostOptimizer.d.ts.map +1 -0
  210. package/dist/modules/storage/tiering/CostOptimizer.js +356 -0
  211. package/dist/modules/storage/tiering/MetadataStore.d.ts +287 -0
  212. package/dist/modules/storage/tiering/MetadataStore.d.ts.map +1 -0
  213. package/dist/modules/storage/tiering/MetadataStore.js +535 -0
  214. package/dist/modules/storage/tiering/TieringEngine.d.ts +237 -0
  215. package/dist/modules/storage/tiering/TieringEngine.d.ts.map +1 -0
  216. package/dist/modules/storage/tiering/TieringEngine.js +419 -0
  217. package/dist/modules/storage/tiering/example.d.ts +8 -0
  218. package/dist/modules/storage/tiering/example.d.ts.map +1 -0
  219. package/dist/modules/storage/tiering/example.js +250 -0
  220. package/dist/modules/storage/tiering/index.d.ts +17 -0
  221. package/dist/modules/storage/tiering/index.d.ts.map +1 -0
  222. package/dist/modules/storage/tiering/index.js +13 -0
  223. package/dist/modules/webhooks/WebhooksModule.d.ts +476 -0
  224. package/dist/modules/webhooks/WebhooksModule.d.ts.map +1 -0
  225. package/dist/modules/webhooks/WebhooksModule.js +359 -0
  226. package/dist/modules/webhooks/index.d.ts +3 -0
  227. package/dist/modules/webhooks/index.d.ts.map +1 -0
  228. package/dist/modules/webhooks/index.js +1 -0
  229. package/dist/modules/zk/ZKModule.d.ts +153 -0
  230. package/dist/modules/zk/ZKModule.d.ts.map +1 -0
  231. package/dist/modules/zk/ZKModule.js +262 -0
  232. package/dist/modules/zk/index.d.ts +7 -0
  233. package/dist/modules/zk/index.d.ts.map +1 -0
  234. package/dist/modules/zk/index.js +4 -0
  235. package/dist/thirdweb/BridgeClient.d.ts +228 -0
  236. package/dist/thirdweb/BridgeClient.d.ts.map +1 -0
  237. package/dist/thirdweb/BridgeClient.js +160 -0
  238. package/dist/thirdweb/EngineClient.d.ts +396 -0
  239. package/dist/thirdweb/EngineClient.d.ts.map +1 -0
  240. package/dist/thirdweb/EngineClient.js +386 -0
  241. package/dist/thirdweb/GatewayClient.d.ts +190 -0
  242. package/dist/thirdweb/GatewayClient.d.ts.map +1 -0
  243. package/dist/thirdweb/GatewayClient.js +257 -0
  244. package/dist/thirdweb/NebulaClient.d.ts +292 -0
  245. package/dist/thirdweb/NebulaClient.d.ts.map +1 -0
  246. package/dist/thirdweb/NebulaClient.js +180 -0
  247. package/dist/thirdweb/StorageClient.d.ts +445 -0
  248. package/dist/thirdweb/StorageClient.d.ts.map +1 -0
  249. package/dist/thirdweb/StorageClient.js +405 -0
  250. package/dist/thirdweb/ThirdwebWrapper.d.ts +236 -0
  251. package/dist/thirdweb/ThirdwebWrapper.d.ts.map +1 -0
  252. package/dist/thirdweb/ThirdwebWrapper.js +332 -0
  253. package/dist/thirdweb/index.d.ts +21 -0
  254. package/dist/thirdweb/index.d.ts.map +1 -0
  255. package/dist/thirdweb/index.js +28 -0
  256. package/dist/thirdweb/varity-chain.d.ts +48 -0
  257. package/dist/thirdweb/varity-chain.d.ts.map +1 -0
  258. package/dist/thirdweb/varity-chain.js +64 -0
  259. package/dist/thirdweb/x402Client.d.ts +319 -0
  260. package/dist/thirdweb/x402Client.d.ts.map +1 -0
  261. package/dist/thirdweb/x402Client.js +223 -0
  262. package/dist/tracking/gasTracker.d.ts +158 -0
  263. package/dist/tracking/gasTracker.d.ts.map +1 -0
  264. package/dist/tracking/gasTracker.js +227 -0
  265. package/dist/tracking/index.d.ts +10 -0
  266. package/dist/tracking/index.d.ts.map +1 -0
  267. package/dist/tracking/index.js +8 -0
  268. package/dist/tracking/types.d.ts +327 -0
  269. package/dist/tracking/types.d.ts.map +1 -0
  270. package/dist/tracking/types.js +8 -0
  271. package/dist/ui/components/ChartWidget.d.ts +36 -0
  272. package/dist/ui/components/ChartWidget.d.ts.map +1 -0
  273. package/dist/ui/components/ChartWidget.js +82 -0
  274. package/dist/ui/components/DashboardLayout.d.ts +41 -0
  275. package/dist/ui/components/DashboardLayout.d.ts.map +1 -0
  276. package/dist/ui/components/DashboardLayout.js +102 -0
  277. package/dist/ui/components/DataTable.d.ts +49 -0
  278. package/dist/ui/components/DataTable.d.ts.map +1 -0
  279. package/dist/ui/components/DataTable.js +96 -0
  280. package/dist/ui/components/EntityForm.d.ts +60 -0
  281. package/dist/ui/components/EntityForm.d.ts.map +1 -0
  282. package/dist/ui/components/EntityForm.js +182 -0
  283. package/dist/ui/components/KPICard.d.ts +29 -0
  284. package/dist/ui/components/KPICard.d.ts.map +1 -0
  285. package/dist/ui/components/KPICard.js +61 -0
  286. package/dist/ui/components/Modal.d.ts +34 -0
  287. package/dist/ui/components/Modal.d.ts.map +1 -0
  288. package/dist/ui/components/Modal.js +30 -0
  289. package/dist/ui/components/index.d.ts +18 -0
  290. package/dist/ui/components/index.d.ts.map +1 -0
  291. package/dist/ui/components/index.js +11 -0
  292. package/dist/validation/template-validator.d.ts +25 -0
  293. package/dist/validation/template-validator.d.ts.map +1 -0
  294. package/dist/validation/template-validator.js +305 -0
  295. 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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"}