@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,214 @@
1
+ /**
2
+ * Varity SDK - Auth Module
3
+ *
4
+ * Universal authentication, permissions, and access control.
5
+ * Works across all templates (ISO, Healthcare, Retail, etc.)
6
+ */
7
+ import { ethers } from 'ethers';
8
+ import AccessControlRegistryABI from '../../contracts/abis/iso/AccessControlRegistry.json';
9
+ /**
10
+ * AuthModule - Universal authentication and access control
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * // Login with wallet
15
+ * const token = await sdk.auth.login({ address: '0x...' })
16
+ *
17
+ * // Check permissions
18
+ * const canAccess = await sdk.auth.checkPermission('0x...', 'merchants')
19
+ *
20
+ * // Assign role
21
+ * await sdk.auth.assignRole('0x...', Role.MANAGER)
22
+ * ```
23
+ */
24
+ export class AuthModule {
25
+ constructor(sdk) {
26
+ this.accessControlContract = null;
27
+ this.sdk = sdk;
28
+ }
29
+ /**
30
+ * Initialize Access Control contract
31
+ */
32
+ async getAccessControlContract() {
33
+ if (!this.accessControlContract) {
34
+ const address = this.sdk.getContractAddress('AccessControlRegistry');
35
+ const provider = this.sdk.getProvider();
36
+ this.accessControlContract = new ethers.Contract(address, AccessControlRegistryABI.abi, provider);
37
+ }
38
+ return this.accessControlContract;
39
+ }
40
+ /**
41
+ * Login with wallet signature
42
+ *
43
+ * @param credentials - Login credentials
44
+ * @returns Authentication token
45
+ */
46
+ async login(credentials) {
47
+ const signer = this.sdk.getSigner();
48
+ const address = await signer.getAddress();
49
+ // Generate signature message
50
+ const message = credentials.message || `Login to Varity at ${Date.now()}`;
51
+ const signature = credentials.signature || await signer.signMessage(message);
52
+ // Call backend API for token
53
+ const apiEndpoint = this.sdk.getAPIEndpoint();
54
+ const response = await fetch(`${apiEndpoint}/api/v1/auth/login`, {
55
+ method: 'POST',
56
+ headers: { 'Content-Type': 'application/json' },
57
+ body: JSON.stringify({ address, signature, message })
58
+ });
59
+ if (!response.ok) {
60
+ throw new Error(`Login failed: ${response.statusText}`);
61
+ }
62
+ return await response.json();
63
+ }
64
+ /**
65
+ * Logout current user
66
+ */
67
+ async logout() {
68
+ // Clear any cached tokens/sessions
69
+ // Implementation depends on storage strategy
70
+ console.log('Logged out');
71
+ }
72
+ /**
73
+ * Get current authenticated user
74
+ *
75
+ * @returns Current user info
76
+ */
77
+ async getCurrentUser() {
78
+ const address = await this.sdk.getAddress();
79
+ const roles = await this.getUserRoles(address);
80
+ const profile = await this.getUserProfile(address);
81
+ return { address, roles, profile };
82
+ }
83
+ /**
84
+ * Check if user has permission to access a resource
85
+ *
86
+ * @param user - User address
87
+ * @param resource - Resource identifier
88
+ * @returns True if user has access
89
+ */
90
+ async checkPermission(user, resource) {
91
+ const contract = await this.getAccessControlContract();
92
+ // Check if user has any required roles for the resource
93
+ // This is a simplified check - real implementation would be more sophisticated
94
+ const roles = await this.getUserRoles(user);
95
+ // Resource-based access control logic
96
+ // Could be extended with more granular permissions
97
+ return roles.length > 0;
98
+ }
99
+ /**
100
+ * Assign role to user
101
+ *
102
+ * @param user - User address
103
+ * @param role - Role to assign
104
+ * @param metadata - Optional metadata
105
+ */
106
+ async assignRole(user, role, metadata) {
107
+ const contract = await this.getAccessControlContract();
108
+ const signer = this.sdk.getSigner();
109
+ const contractWithSigner = contract.connect(signer);
110
+ const assignRoleFunc = contractWithSigner.getFunction('assignRole');
111
+ const tx = await assignRoleFunc(user, role, metadata || '');
112
+ await tx.wait();
113
+ console.log(`✅ Role ${role} assigned to ${user}`);
114
+ }
115
+ /**
116
+ * Revoke role from user
117
+ *
118
+ * @param user - User address
119
+ * @param role - Role to revoke
120
+ */
121
+ async revokeRole(user, role) {
122
+ const contract = await this.getAccessControlContract();
123
+ const signer = this.sdk.getSigner();
124
+ const contractWithSigner = contract.connect(signer);
125
+ const revokeRoleFunc = contractWithSigner.getFunction('revokeRole');
126
+ const tx = await revokeRoleFunc(user, role);
127
+ await tx.wait();
128
+ console.log(`✅ Role ${role} revoked from ${user}`);
129
+ }
130
+ /**
131
+ * Get all roles for a user
132
+ *
133
+ * @param user - User address
134
+ * @returns Array of roles
135
+ */
136
+ async getUserRoles(user) {
137
+ const contract = await this.getAccessControlContract();
138
+ const profile = await contract.getUserProfile(user);
139
+ // Return primary role (could be extended to return all roles)
140
+ return profile.primaryRole ? [profile.primaryRole] : [];
141
+ }
142
+ /**
143
+ * Get user profile
144
+ *
145
+ * @param user - User address
146
+ * @returns User profile
147
+ */
148
+ async getUserProfile(user) {
149
+ const contract = await this.getAccessControlContract();
150
+ const profile = await contract.getUserProfile(user);
151
+ return {
152
+ userAddress: profile.userAddress,
153
+ primaryRole: profile.primaryRole,
154
+ metadata: profile.metadata,
155
+ createdAt: Number(profile.createdAt),
156
+ lastUpdated: Number(profile.lastUpdated),
157
+ isActive: profile.isActive
158
+ };
159
+ }
160
+ /**
161
+ * Set Lit Protocol access condition for a role
162
+ *
163
+ * @param role - Role
164
+ * @param condition - Lit Protocol condition JSON
165
+ * @param encryptedKey - Encrypted symmetric key
166
+ */
167
+ async setAccessCondition(role, condition, encryptedKey) {
168
+ const contract = await this.getAccessControlContract();
169
+ const signer = this.sdk.getSigner();
170
+ const contractWithSigner = contract.connect(signer);
171
+ const setAccessConditionFunc = contractWithSigner.getFunction('setAccessCondition');
172
+ const tx = await setAccessConditionFunc(role, condition, ethers.toUtf8Bytes(encryptedKey));
173
+ await tx.wait();
174
+ console.log(`✅ Access condition set for role ${role}`);
175
+ }
176
+ /**
177
+ * Get Lit Protocol access condition for a role
178
+ *
179
+ * @param role - Role
180
+ * @returns Access condition
181
+ */
182
+ async getAccessCondition(role) {
183
+ const contract = await this.getAccessControlContract();
184
+ const condition = await contract.getAccessCondition(role);
185
+ return {
186
+ condition: condition.condition,
187
+ encryptedKey: ethers.toUtf8String(condition.encryptedKey),
188
+ isActive: condition.isActive,
189
+ lastUpdated: Number(condition.lastUpdated)
190
+ };
191
+ }
192
+ /**
193
+ * Check if user has a specific role
194
+ *
195
+ * @param user - User address
196
+ * @param role - Role to check
197
+ * @returns True if user has the role
198
+ */
199
+ async hasRole(user, role) {
200
+ const roles = await this.getUserRoles(user);
201
+ return roles.includes(role);
202
+ }
203
+ /**
204
+ * Check if user has any of the specified roles
205
+ *
206
+ * @param user - User address
207
+ * @param roles - Roles to check
208
+ * @returns True if user has any of the roles
209
+ */
210
+ async hasAnyRole(user, roles) {
211
+ const userRoles = await this.getUserRoles(user);
212
+ return roles.some(role => userRoles.includes(role));
213
+ }
214
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Auth Module - Exports
3
+ */
4
+ export { AuthModule } from './AuthModule';
5
+ export type { LoginCredentials, AuthToken, User } from './AuthModule';
6
+ export { AccessKeyModule } from './AccessKeyModule';
7
+ export type { CreateAccessKeyOptions, UpdateAccessKeyOptions, VaritySDK, VaritySDKConfig } from './AccessKeyModule';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,SAAS,EACT,eAAe,EAChB,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Auth Module - Exports
3
+ */
4
+ export { AuthModule } from './AuthModule';
5
+ // Access Key Management
6
+ export { AccessKeyModule } from './AccessKeyModule';
@@ -0,0 +1,279 @@
1
+ import type { VaritySDK } from '../../core/VaritySDK';
2
+ /**
3
+ * Cache Module
4
+ *
5
+ * Universal caching layer for performance optimization across all templates.
6
+ * Provides Redis-like caching with TTL, invalidation, and query optimization.
7
+ * Works identically for ISO, Healthcare, Finance, Retail, etc.
8
+ */
9
+ export interface CacheOptions {
10
+ ttl?: number;
11
+ namespace?: string;
12
+ tags?: string[];
13
+ compress?: boolean;
14
+ }
15
+ export interface CacheEntry<T = any> {
16
+ key: string;
17
+ value: T;
18
+ ttl?: number;
19
+ createdAt: string;
20
+ expiresAt?: string;
21
+ namespace?: string;
22
+ tags?: string[];
23
+ size?: number;
24
+ }
25
+ export interface CacheStats {
26
+ hits: number;
27
+ misses: number;
28
+ hitRate: number;
29
+ totalKeys: number;
30
+ totalSize: number;
31
+ evictions: number;
32
+ namespaces: Record<string, number>;
33
+ }
34
+ export interface CacheBatchOperation {
35
+ key: string;
36
+ value?: any;
37
+ operation: 'get' | 'set' | 'delete';
38
+ options?: CacheOptions;
39
+ }
40
+ export interface CacheBatchResult {
41
+ key: string;
42
+ success: boolean;
43
+ value?: any;
44
+ error?: string;
45
+ }
46
+ export interface CachePattern {
47
+ pattern: string;
48
+ count?: number;
49
+ keys?: string[];
50
+ }
51
+ /**
52
+ * CacheModule - Universal caching and performance optimization
53
+ *
54
+ * Provides high-performance caching with TTL, namespacing, and invalidation
55
+ * patterns. Works across all templates to optimize query performance.
56
+ */
57
+ export declare class CacheModule {
58
+ private sdk;
59
+ constructor(sdk: VaritySDK);
60
+ /**
61
+ * Get value from cache
62
+ *
63
+ * Universal method - retrieves cached value by key.
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const kpis = await sdk.cache.get('dashboard:kpis:current_month')
68
+ * if (!kpis) {
69
+ * // Cache miss - fetch from source
70
+ * kpis = await sdk.analytics.getKPIs({ period: 'current_month' })
71
+ * await sdk.cache.set('dashboard:kpis:current_month', kpis, { ttl: 300 })
72
+ * }
73
+ * ```
74
+ */
75
+ get<T = any>(key: string, namespace?: string): Promise<T | null>;
76
+ /**
77
+ * Set value in cache with optional TTL
78
+ *
79
+ * Universal method - stores value in cache with expiration.
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * await sdk.cache.set('user:123:profile', userProfile, { ttl: 3600, tags: ['user'] })
84
+ * ```
85
+ */
86
+ set(key: string, value: any, options?: CacheOptions): Promise<void>;
87
+ /**
88
+ * Delete value from cache
89
+ *
90
+ * Universal method - removes cached value by key.
91
+ */
92
+ delete(key: string, namespace?: string): Promise<boolean>;
93
+ /**
94
+ * Check if key exists in cache
95
+ *
96
+ * Universal method - checks cache key existence without retrieving value.
97
+ */
98
+ has(key: string, namespace?: string): Promise<boolean>;
99
+ /**
100
+ * Remember pattern - get from cache or execute function and cache result
101
+ *
102
+ * Universal method - simplifies cache-aside pattern.
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const kpis = await sdk.cache.remember(
107
+ * 'dashboard:kpis',
108
+ * async () => await sdk.analytics.getKPIs(),
109
+ * { ttl: 300 }
110
+ * )
111
+ * ```
112
+ */
113
+ remember<T>(key: string, fn: () => Promise<T>, options?: CacheOptions): Promise<T>;
114
+ /**
115
+ * Invalidate cache by pattern
116
+ *
117
+ * Universal method - removes all keys matching pattern.
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * // Invalidate all user-related cache
122
+ * await sdk.cache.invalidate('user:*')
123
+ *
124
+ * // Invalidate specific namespace
125
+ * await sdk.cache.invalidate('*', 'analytics')
126
+ * ```
127
+ */
128
+ invalidate(pattern: string, namespace?: string): Promise<number>;
129
+ /**
130
+ * Invalidate cache by tags
131
+ *
132
+ * Universal method - removes all keys with specific tags.
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * // Set cache with tags
137
+ * await sdk.cache.set('merchant:123', data, { tags: ['merchant', 'iso'] })
138
+ *
139
+ * // Invalidate all entries with 'merchant' tag
140
+ * await sdk.cache.invalidateByTags(['merchant'])
141
+ * ```
142
+ */
143
+ invalidateByTags(tags: string[]): Promise<number>;
144
+ /**
145
+ * Clear entire cache or namespace
146
+ *
147
+ * Universal method - removes all cached entries.
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // Clear entire cache
152
+ * await sdk.cache.clear()
153
+ *
154
+ * // Clear specific namespace
155
+ * await sdk.cache.clear('analytics')
156
+ * ```
157
+ */
158
+ clear(namespace?: string): Promise<number>;
159
+ /**
160
+ * Get cache statistics
161
+ *
162
+ * Universal method - retrieves cache performance metrics.
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const stats = await sdk.cache.getStats()
167
+ * console.log(`Cache hit rate: ${stats.hitRate}%`)
168
+ * ```
169
+ */
170
+ getStats(namespace?: string): Promise<CacheStats>;
171
+ /**
172
+ * Batch operations on cache
173
+ *
174
+ * Universal method - performs multiple cache operations efficiently.
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const results = await sdk.cache.batch([
179
+ * { key: 'user:123', operation: 'get' },
180
+ * { key: 'user:456', operation: 'get' },
181
+ * { key: 'session:abc', operation: 'delete' }
182
+ * ])
183
+ * ```
184
+ */
185
+ batch(operations: CacheBatchOperation[]): Promise<CacheBatchResult[]>;
186
+ /**
187
+ * Get multiple values from cache
188
+ *
189
+ * Universal method - retrieves multiple cached values efficiently.
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * const values = await sdk.cache.getMany(['user:123', 'user:456', 'user:789'])
194
+ * ```
195
+ */
196
+ getMany<T = any>(keys: string[], namespace?: string): Promise<Map<string, T>>;
197
+ /**
198
+ * Set multiple values in cache
199
+ *
200
+ * Universal method - stores multiple values efficiently.
201
+ */
202
+ setMany(entries: Array<{
203
+ key: string;
204
+ value: any;
205
+ options?: CacheOptions;
206
+ }>): Promise<void>;
207
+ /**
208
+ * Delete multiple keys from cache
209
+ *
210
+ * Universal method - removes multiple cached values efficiently.
211
+ */
212
+ deleteMany(keys: string[], namespace?: string): Promise<number>;
213
+ /**
214
+ * List keys matching pattern
215
+ *
216
+ * Universal method - finds all keys matching a pattern.
217
+ *
218
+ * @example
219
+ * ```typescript
220
+ * const keys = await sdk.cache.keys('user:*')
221
+ * ```
222
+ */
223
+ keys(pattern: string, namespace?: string): Promise<string[]>;
224
+ /**
225
+ * Get TTL (time to live) for a key
226
+ *
227
+ * Universal method - returns remaining TTL in seconds.
228
+ */
229
+ ttl(key: string, namespace?: string): Promise<number | null>;
230
+ /**
231
+ * Extend TTL for a key
232
+ *
233
+ * Universal method - extends expiration time for cached value.
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * // Extend TTL by 1 hour
238
+ * await sdk.cache.extend('session:abc', 3600)
239
+ * ```
240
+ */
241
+ extend(key: string, additionalTTL: number, namespace?: string): Promise<boolean>;
242
+ /**
243
+ * Increment numeric value in cache
244
+ *
245
+ * Universal method - atomically increments cached number.
246
+ *
247
+ * @example
248
+ * ```typescript
249
+ * // Increment page view counter
250
+ * const views = await sdk.cache.increment('page:views:home', 1)
251
+ * ```
252
+ */
253
+ increment(key: string, amount?: number, namespace?: string): Promise<number>;
254
+ /**
255
+ * Decrement numeric value in cache
256
+ *
257
+ * Universal method - atomically decrements cached number.
258
+ */
259
+ decrement(key: string, amount?: number, namespace?: string): Promise<number>;
260
+ /**
261
+ * Warm cache with data
262
+ *
263
+ * Universal method - preloads cache with frequently accessed data.
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * await sdk.cache.warm([
268
+ * { key: 'dashboard:kpis', fn: () => sdk.analytics.getKPIs(), ttl: 300 },
269
+ * { key: 'dashboard:trends', fn: () => sdk.analytics.getTrends(...), ttl: 300 }
270
+ * ])
271
+ * ```
272
+ */
273
+ warm(entries: Array<{
274
+ key: string;
275
+ fn: () => Promise<any>;
276
+ options?: CacheOptions;
277
+ }>): Promise<void>;
278
+ }
279
+ //# sourceMappingURL=CacheModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheModule.d.ts","sourceRoot":"","sources":["../../../src/modules/cache/CacheModule.ts"],"names":[],"mappings":"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"}