@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,359 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhooks Module
|
|
3
|
+
*
|
|
4
|
+
* Universal webhook management for event-driven integrations
|
|
5
|
+
* Works across ALL templates (ISO, Healthcare, Finance, Retail)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Register a webhook
|
|
10
|
+
* const webhook = await sdk.webhooks.register({
|
|
11
|
+
* url: 'https://api.example.com/webhooks',
|
|
12
|
+
* events: ['transaction.created', 'user.updated'],
|
|
13
|
+
* secret: 'your-secret-key'
|
|
14
|
+
* })
|
|
15
|
+
*
|
|
16
|
+
* // Test webhook delivery
|
|
17
|
+
* await sdk.webhooks.test(webhook.id, { test_event: 'data' })
|
|
18
|
+
*
|
|
19
|
+
* // Get delivery logs
|
|
20
|
+
* const logs = await sdk.webhooks.getLogs({ webhook_id: webhook.id })
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// WEBHOOKS MODULE CLASS
|
|
25
|
+
// ============================================================================
|
|
26
|
+
/**
|
|
27
|
+
* Webhooks Module
|
|
28
|
+
*
|
|
29
|
+
* Provides webhook management and event delivery for integrations
|
|
30
|
+
* Works universally across all templates with template-specific events
|
|
31
|
+
*/
|
|
32
|
+
export class WebhooksModule {
|
|
33
|
+
constructor(sdk) {
|
|
34
|
+
this.sdk = sdk;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Register a new webhook
|
|
38
|
+
*
|
|
39
|
+
* @param options - Webhook registration options
|
|
40
|
+
* @returns Registered webhook configuration
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const webhook = await sdk.webhooks.register({
|
|
45
|
+
* url: 'https://api.example.com/webhooks',
|
|
46
|
+
* events: ['transaction.created', 'user.updated'],
|
|
47
|
+
* secret: 'your-secret-key',
|
|
48
|
+
* retry: {
|
|
49
|
+
* max_attempts: 5,
|
|
50
|
+
* strategy: 'exponential'
|
|
51
|
+
* }
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
async register(options) {
|
|
56
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks`, {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
headers: {
|
|
59
|
+
'Content-Type': 'application/json',
|
|
60
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
61
|
+
},
|
|
62
|
+
body: JSON.stringify(options)
|
|
63
|
+
});
|
|
64
|
+
if (!response.ok) {
|
|
65
|
+
throw new Error(`Failed to register webhook: ${response.statusText}`);
|
|
66
|
+
}
|
|
67
|
+
return await response.json();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get webhook by ID
|
|
71
|
+
*
|
|
72
|
+
* @param webhookId - Webhook ID
|
|
73
|
+
* @returns Webhook configuration
|
|
74
|
+
*/
|
|
75
|
+
async get(webhookId) {
|
|
76
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/${webhookId}`, {
|
|
77
|
+
headers: {
|
|
78
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
if (!response.ok) {
|
|
82
|
+
throw new Error(`Failed to get webhook: ${response.statusText}`);
|
|
83
|
+
}
|
|
84
|
+
return await response.json();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* List all webhooks
|
|
88
|
+
*
|
|
89
|
+
* @param options - List options
|
|
90
|
+
* @returns List of webhooks
|
|
91
|
+
*/
|
|
92
|
+
async list(options) {
|
|
93
|
+
const params = new URLSearchParams();
|
|
94
|
+
if (options) {
|
|
95
|
+
Object.entries(options).forEach(([key, value]) => {
|
|
96
|
+
if (value !== undefined)
|
|
97
|
+
params.append(key, String(value));
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks?${params.toString()}`, {
|
|
101
|
+
headers: {
|
|
102
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
if (!response.ok) {
|
|
106
|
+
throw new Error(`Failed to list webhooks: ${response.statusText}`);
|
|
107
|
+
}
|
|
108
|
+
return await response.json();
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Update webhook configuration
|
|
112
|
+
*
|
|
113
|
+
* @param webhookId - Webhook ID
|
|
114
|
+
* @param options - Update options
|
|
115
|
+
* @returns Updated webhook configuration
|
|
116
|
+
*/
|
|
117
|
+
async update(webhookId, options) {
|
|
118
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/${webhookId}`, {
|
|
119
|
+
method: 'PATCH',
|
|
120
|
+
headers: {
|
|
121
|
+
'Content-Type': 'application/json',
|
|
122
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
123
|
+
},
|
|
124
|
+
body: JSON.stringify(options)
|
|
125
|
+
});
|
|
126
|
+
if (!response.ok) {
|
|
127
|
+
throw new Error(`Failed to update webhook: ${response.statusText}`);
|
|
128
|
+
}
|
|
129
|
+
return await response.json();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Delete a webhook
|
|
133
|
+
*
|
|
134
|
+
* @param webhookId - Webhook ID to delete
|
|
135
|
+
* @returns Success status
|
|
136
|
+
*/
|
|
137
|
+
async delete(webhookId) {
|
|
138
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/${webhookId}`, {
|
|
139
|
+
method: 'DELETE',
|
|
140
|
+
headers: {
|
|
141
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
if (!response.ok) {
|
|
145
|
+
throw new Error(`Failed to delete webhook: ${response.statusText}`);
|
|
146
|
+
}
|
|
147
|
+
return await response.json();
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Test webhook delivery
|
|
151
|
+
*
|
|
152
|
+
* @param webhookId - Webhook ID to test
|
|
153
|
+
* @param options - Test options
|
|
154
|
+
* @returns Test delivery result
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* const result = await sdk.webhooks.test('webhook-123', {
|
|
159
|
+
* event: 'test.event',
|
|
160
|
+
* payload: { test: true }
|
|
161
|
+
* })
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
async test(webhookId, options) {
|
|
165
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/${webhookId}/test`, {
|
|
166
|
+
method: 'POST',
|
|
167
|
+
headers: {
|
|
168
|
+
'Content-Type': 'application/json',
|
|
169
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
170
|
+
},
|
|
171
|
+
body: JSON.stringify(options || {})
|
|
172
|
+
});
|
|
173
|
+
if (!response.ok) {
|
|
174
|
+
throw new Error(`Failed to test webhook: ${response.statusText}`);
|
|
175
|
+
}
|
|
176
|
+
return await response.json();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Pause webhook delivery
|
|
180
|
+
*
|
|
181
|
+
* @param webhookId - Webhook ID to pause
|
|
182
|
+
* @returns Updated webhook configuration
|
|
183
|
+
*/
|
|
184
|
+
async pause(webhookId) {
|
|
185
|
+
return await this.update(webhookId, { enabled: false });
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Resume webhook delivery
|
|
189
|
+
*
|
|
190
|
+
* @param webhookId - Webhook ID to resume
|
|
191
|
+
* @returns Updated webhook configuration
|
|
192
|
+
*/
|
|
193
|
+
async resume(webhookId) {
|
|
194
|
+
return await this.update(webhookId, { enabled: true });
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get webhook delivery logs
|
|
198
|
+
*
|
|
199
|
+
* @param options - Log query options
|
|
200
|
+
* @returns Delivery logs
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* const logs = await sdk.webhooks.getLogs({
|
|
205
|
+
* webhook_id: 'webhook-123',
|
|
206
|
+
* status: 'failed',
|
|
207
|
+
* limit: 50
|
|
208
|
+
* })
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
async getLogs(options) {
|
|
212
|
+
const params = new URLSearchParams();
|
|
213
|
+
if (options) {
|
|
214
|
+
Object.entries(options).forEach(([key, value]) => {
|
|
215
|
+
if (value !== undefined)
|
|
216
|
+
params.append(key, String(value));
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/logs?${params.toString()}`, {
|
|
220
|
+
headers: {
|
|
221
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
if (!response.ok) {
|
|
225
|
+
throw new Error(`Failed to get webhook logs: ${response.statusText}`);
|
|
226
|
+
}
|
|
227
|
+
return await response.json();
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get delivery log by ID
|
|
231
|
+
*
|
|
232
|
+
* @param logId - Log entry ID
|
|
233
|
+
* @returns Delivery log details
|
|
234
|
+
*/
|
|
235
|
+
async getLog(logId) {
|
|
236
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/logs/${logId}`, {
|
|
237
|
+
headers: {
|
|
238
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
if (!response.ok) {
|
|
242
|
+
throw new Error(`Failed to get delivery log: ${response.statusText}`);
|
|
243
|
+
}
|
|
244
|
+
return await response.json();
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Retry failed webhook delivery
|
|
248
|
+
*
|
|
249
|
+
* @param logId - Log entry ID to retry
|
|
250
|
+
* @returns Updated delivery log
|
|
251
|
+
*/
|
|
252
|
+
async retry(logId) {
|
|
253
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/logs/${logId}/retry`, {
|
|
254
|
+
method: 'POST',
|
|
255
|
+
headers: {
|
|
256
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
if (!response.ok) {
|
|
260
|
+
throw new Error(`Failed to retry webhook delivery: ${response.statusText}`);
|
|
261
|
+
}
|
|
262
|
+
return await response.json();
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Manually deliver an event to webhooks
|
|
266
|
+
*
|
|
267
|
+
* @param options - Event delivery options
|
|
268
|
+
* @returns Delivery result
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```typescript
|
|
272
|
+
* await sdk.webhooks.deliverEvent({
|
|
273
|
+
* event: 'custom.event',
|
|
274
|
+
* payload: { data: 'important data' },
|
|
275
|
+
* webhook_ids: ['webhook-123'] // Optional: target specific webhooks
|
|
276
|
+
* })
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
async deliverEvent(options) {
|
|
280
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/deliver`, {
|
|
281
|
+
method: 'POST',
|
|
282
|
+
headers: {
|
|
283
|
+
'Content-Type': 'application/json',
|
|
284
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
285
|
+
},
|
|
286
|
+
body: JSON.stringify(options)
|
|
287
|
+
});
|
|
288
|
+
if (!response.ok) {
|
|
289
|
+
throw new Error(`Failed to deliver event: ${response.statusText}`);
|
|
290
|
+
}
|
|
291
|
+
return await response.json();
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get available webhook events
|
|
295
|
+
*
|
|
296
|
+
* @returns List of available events
|
|
297
|
+
*/
|
|
298
|
+
async getAvailableEvents() {
|
|
299
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/events`, {
|
|
300
|
+
headers: {
|
|
301
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
if (!response.ok) {
|
|
305
|
+
throw new Error(`Failed to get available events: ${response.statusText}`);
|
|
306
|
+
}
|
|
307
|
+
const data = await response.json();
|
|
308
|
+
return data.events;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get webhook statistics
|
|
312
|
+
*
|
|
313
|
+
* @returns Webhook statistics
|
|
314
|
+
*/
|
|
315
|
+
async getStats() {
|
|
316
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/stats`, {
|
|
317
|
+
headers: {
|
|
318
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
if (!response.ok) {
|
|
322
|
+
throw new Error(`Failed to get webhook stats: ${response.statusText}`);
|
|
323
|
+
}
|
|
324
|
+
return await response.json();
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Verify webhook signature
|
|
328
|
+
*
|
|
329
|
+
* @param payload - Webhook payload (raw string)
|
|
330
|
+
* @param signature - Signature header value
|
|
331
|
+
* @param secret - Webhook secret key
|
|
332
|
+
* @returns True if signature is valid
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```typescript
|
|
336
|
+
* // In your webhook handler
|
|
337
|
+
* const isValid = await sdk.webhooks.verifySignature(
|
|
338
|
+
* JSON.stringify(req.body),
|
|
339
|
+
* req.headers['x-webhook-signature'],
|
|
340
|
+
* 'your-secret-key'
|
|
341
|
+
* )
|
|
342
|
+
* ```
|
|
343
|
+
*/
|
|
344
|
+
async verifySignature(payload, signature, secret) {
|
|
345
|
+
const response = await fetch(`${this.sdk.getAPIEndpoint()}/api/v1/webhooks/verify`, {
|
|
346
|
+
method: 'POST',
|
|
347
|
+
headers: {
|
|
348
|
+
'Content-Type': 'application/json',
|
|
349
|
+
...(this.sdk.getAPIKey() && { 'X-API-Key': this.sdk.getAPIKey() })
|
|
350
|
+
},
|
|
351
|
+
body: JSON.stringify({ payload, signature, secret })
|
|
352
|
+
});
|
|
353
|
+
if (!response.ok) {
|
|
354
|
+
throw new Error(`Failed to verify signature: ${response.statusText}`);
|
|
355
|
+
}
|
|
356
|
+
const data = await response.json();
|
|
357
|
+
return data.valid;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { WebhooksModule } from './WebhooksModule';
|
|
2
|
+
export type { WebhookStatus, DeliveryStatus, HttpMethod, RetryStrategy, RegisterWebhookOptions, UpdateWebhookOptions, ListWebhooksOptions, TestWebhookOptions, GetLogsOptions, DeliverEventOptions, Webhook, DeliveryLog, AvailableEvent, WebhookStats, TestDeliveryResult } from './WebhooksModule';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/webhooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,cAAc,EACd,YAAY,EACZ,kBAAkB,EACnB,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { WebhooksModule } from './WebhooksModule';
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Varity SDK - ZK Module
|
|
3
|
+
*
|
|
4
|
+
* Universal zero-knowledge proof generation and verification.
|
|
5
|
+
* Works across all templates (ISO, Healthcare, Retail, etc.)
|
|
6
|
+
*/
|
|
7
|
+
import type { VaritySDK } from '../../core/VaritySDK';
|
|
8
|
+
import type { ZKProof, ZKMLProof, ZKMLProofInput, ZKMLVerificationResult, ZKMLProofStats } from '../../core/types';
|
|
9
|
+
export interface ProofInputs {
|
|
10
|
+
public: any[];
|
|
11
|
+
private: any[];
|
|
12
|
+
}
|
|
13
|
+
export interface VerificationResult {
|
|
14
|
+
valid: boolean;
|
|
15
|
+
transactionHash?: string;
|
|
16
|
+
gasUsed?: bigint;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* ZKModule - Universal zero-knowledge proof operations
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Generate proof
|
|
24
|
+
* const proof = await sdk.zk.generateProof('login-circuit', {
|
|
25
|
+
* public: [address],
|
|
26
|
+
* private: [password]
|
|
27
|
+
* })
|
|
28
|
+
*
|
|
29
|
+
* // Verify proof on-chain
|
|
30
|
+
* const result = await sdk.zk.verifyProofOnChain(proof, [address])
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class ZKModule {
|
|
34
|
+
private sdk;
|
|
35
|
+
constructor(sdk: VaritySDK);
|
|
36
|
+
/**
|
|
37
|
+
* Generate zero-knowledge proof
|
|
38
|
+
*
|
|
39
|
+
* @param circuitId - Circuit identifier
|
|
40
|
+
* @param inputs - Proof inputs
|
|
41
|
+
* @returns ZK proof
|
|
42
|
+
*/
|
|
43
|
+
generateProof(circuitId: string, inputs: ProofInputs): Promise<ZKProof>;
|
|
44
|
+
/**
|
|
45
|
+
* Generate login proof (simplified)
|
|
46
|
+
*
|
|
47
|
+
* @param credentials - Login credentials
|
|
48
|
+
* @returns ZK proof
|
|
49
|
+
*/
|
|
50
|
+
generateLoginProof(credentials: any): Promise<ZKProof>;
|
|
51
|
+
/**
|
|
52
|
+
* Generate data ownership proof
|
|
53
|
+
*
|
|
54
|
+
* @param dataCID - Data CID
|
|
55
|
+
* @returns ZK proof
|
|
56
|
+
*/
|
|
57
|
+
generateDataOwnershipProof(dataCID: string): Promise<ZKProof>;
|
|
58
|
+
/**
|
|
59
|
+
* Verify proof on-chain
|
|
60
|
+
*
|
|
61
|
+
* @param proof - ZK proof
|
|
62
|
+
* @param publicInputs - Public inputs
|
|
63
|
+
* @returns Verification result
|
|
64
|
+
*/
|
|
65
|
+
verifyProofOnChain(proof: ZKProof, publicInputs: any[]): Promise<VerificationResult>;
|
|
66
|
+
/**
|
|
67
|
+
* Verify proof off-chain (local verification)
|
|
68
|
+
*
|
|
69
|
+
* @param proof - ZK proof
|
|
70
|
+
* @param publicInputs - Public inputs
|
|
71
|
+
* @returns True if valid
|
|
72
|
+
*/
|
|
73
|
+
verifyProofOffChain(proof: ZKProof, publicInputs: any[]): Promise<boolean>;
|
|
74
|
+
/**
|
|
75
|
+
* Prove ML inference with ZKML
|
|
76
|
+
*
|
|
77
|
+
* Generates a zero-knowledge proof that an ML inference was performed correctly
|
|
78
|
+
* without revealing the model weights or full input/output data.
|
|
79
|
+
*
|
|
80
|
+
* @param modelId - Model identifier
|
|
81
|
+
* @param input - Input data to the model
|
|
82
|
+
* @param output - Output from the model
|
|
83
|
+
* @param options - Additional proof generation options
|
|
84
|
+
* @returns ZKML proof with verification data
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const proof = await sdk.zk.proveMLInference(
|
|
89
|
+
* 'merchant-risk-model',
|
|
90
|
+
* { merchantData: {...} },
|
|
91
|
+
* { riskScore: 0.85 },
|
|
92
|
+
* { submitOnChain: true }
|
|
93
|
+
* )
|
|
94
|
+
* console.log('Proof ID:', proof.proofId)
|
|
95
|
+
* console.log('Verified:', proof.verified)
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
proveMLInference(modelId: string, input: any, output: any, options?: Partial<ZKMLProofInput>): Promise<ZKMLProof>;
|
|
99
|
+
/**
|
|
100
|
+
* Verify ZKML proof
|
|
101
|
+
*
|
|
102
|
+
* Verifies a ZKML proof either on-chain or off-chain.
|
|
103
|
+
*
|
|
104
|
+
* @param proof - ZKML proof to verify
|
|
105
|
+
* @param onChain - Whether to verify on-chain (default: false)
|
|
106
|
+
* @returns Verification result
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* // Off-chain verification (faster, no gas)
|
|
111
|
+
* const result = await sdk.zk.verifyMLProof(proof)
|
|
112
|
+
* console.log('Valid:', result.valid)
|
|
113
|
+
*
|
|
114
|
+
* // On-chain verification (slower, requires gas)
|
|
115
|
+
* const result = await sdk.zk.verifyMLProof(proof, true)
|
|
116
|
+
* console.log('Transaction:', result.txHash)
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
verifyMLProof(proof: ZKMLProof, onChain?: boolean): Promise<ZKMLVerificationResult>;
|
|
120
|
+
/**
|
|
121
|
+
* Get ZKML proof statistics
|
|
122
|
+
*
|
|
123
|
+
* Returns statistics about ZKML proof generation and verification.
|
|
124
|
+
*
|
|
125
|
+
* @returns Proof statistics
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const stats = await sdk.zk.getProofStats()
|
|
130
|
+
* console.log('Total proofs:', stats.totalProofsGenerated)
|
|
131
|
+
* console.log('Success rate:', stats.successRate)
|
|
132
|
+
* console.log('Avg generation time:', stats.avgGenerationTimeMs, 'ms')
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
getProofStats(): Promise<ZKMLProofStats>;
|
|
136
|
+
/**
|
|
137
|
+
* List available ZKML circuits
|
|
138
|
+
*
|
|
139
|
+
* Returns a list of compiled ZKML circuits available for proof generation.
|
|
140
|
+
*
|
|
141
|
+
* @returns Array of circuit configurations
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const circuits = await sdk.zk.listCircuits()
|
|
146
|
+
* circuits.forEach(circuit => {
|
|
147
|
+
* console.log(`${circuit.circuitId}: ${circuit.provingSystem}`)
|
|
148
|
+
* })
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
listCircuits(): Promise<any[]>;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=ZKModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZKModule.d.ts","sourceRoot":"","sources":["../../../src/modules/zk/ZKModule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,sBAAsB,EACtB,cAAc,EACf,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,GAAG,EAAE,CAAA;IACb,OAAO,EAAE,GAAG,EAAE,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,GAAG,CAAW;gBAEV,GAAG,EAAE,SAAS;IAI1B;;;;;;OAMG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB7E;;;;;OAKG;IACG,kBAAkB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5D;;;;;OAKG;IACG,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnE;;;;;;OAMG;IACG,kBAAkB,CACtB,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,GAAG,EAAE,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAe9B;;;;;;OAMG;IACG,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBhF;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAChC,OAAO,CAAC,SAAS,CAAC;IA8BrB;;;;;;;;;;;;;;;;;;;OAmBG;IACG,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,sBAAsB,CAAC;IAqBlC;;;;;;;;;;;;;;OAcG;IACG,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAmB9C;;;;;;;;;;;;;;OAcG;IACG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;CAkBrC"}
|