@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,349 @@
|
|
|
1
|
+
import type { VaritySDK } from '../../core/VaritySDK';
|
|
2
|
+
/**
|
|
3
|
+
* Analytics Module
|
|
4
|
+
*
|
|
5
|
+
* Universal analytics, reporting, KPIs, and metrics across all templates.
|
|
6
|
+
* Works identically for ISO, Healthcare, Finance, Retail, etc.
|
|
7
|
+
* Template configuration determines data sources and entities.
|
|
8
|
+
*/
|
|
9
|
+
export interface KPIOptions {
|
|
10
|
+
period?: 'current_month' | 'current_quarter' | 'current_year' | 'custom';
|
|
11
|
+
startDate?: string;
|
|
12
|
+
endDate?: string;
|
|
13
|
+
granularity?: 'day' | 'week' | 'month' | 'quarter' | 'year';
|
|
14
|
+
entities?: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface KPIResult {
|
|
17
|
+
name: string;
|
|
18
|
+
value: number;
|
|
19
|
+
change?: number;
|
|
20
|
+
changeDirection?: 'up' | 'down' | 'stable';
|
|
21
|
+
unit?: string;
|
|
22
|
+
metadata?: Record<string, any>;
|
|
23
|
+
}
|
|
24
|
+
export interface KPISummary {
|
|
25
|
+
period: {
|
|
26
|
+
start: string;
|
|
27
|
+
end: string;
|
|
28
|
+
type: string;
|
|
29
|
+
};
|
|
30
|
+
kpis: KPIResult[];
|
|
31
|
+
summary: {
|
|
32
|
+
totalEntities: number;
|
|
33
|
+
totalVolume: number;
|
|
34
|
+
totalRevenue?: number;
|
|
35
|
+
growthRate?: number;
|
|
36
|
+
};
|
|
37
|
+
timestamp: string;
|
|
38
|
+
}
|
|
39
|
+
export interface TrendOptions {
|
|
40
|
+
metric: string;
|
|
41
|
+
period: string;
|
|
42
|
+
granularity?: 'hour' | 'day' | 'week' | 'month';
|
|
43
|
+
comparison?: 'mom' | 'yoy' | 'qoq';
|
|
44
|
+
entity?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface TrendDataPoint {
|
|
47
|
+
timestamp: string;
|
|
48
|
+
value: number;
|
|
49
|
+
label?: string;
|
|
50
|
+
metadata?: Record<string, any>;
|
|
51
|
+
}
|
|
52
|
+
export interface TrendResult {
|
|
53
|
+
metric: string;
|
|
54
|
+
period: string;
|
|
55
|
+
data: TrendDataPoint[];
|
|
56
|
+
statistics: {
|
|
57
|
+
min: number;
|
|
58
|
+
max: number;
|
|
59
|
+
avg: number;
|
|
60
|
+
median: number;
|
|
61
|
+
total: number;
|
|
62
|
+
};
|
|
63
|
+
trend: 'increasing' | 'decreasing' | 'stable';
|
|
64
|
+
growthRate?: number;
|
|
65
|
+
comparison?: {
|
|
66
|
+
current: number;
|
|
67
|
+
previous: number;
|
|
68
|
+
change: number;
|
|
69
|
+
changePercent: number;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export interface LeaderboardOptions {
|
|
73
|
+
metric: string;
|
|
74
|
+
limit?: number;
|
|
75
|
+
period?: string;
|
|
76
|
+
entity?: string;
|
|
77
|
+
startDate?: string;
|
|
78
|
+
endDate?: string;
|
|
79
|
+
sortOrder?: 'asc' | 'desc';
|
|
80
|
+
}
|
|
81
|
+
export interface LeaderboardEntry {
|
|
82
|
+
rank: number;
|
|
83
|
+
entityId: string;
|
|
84
|
+
entityName?: string;
|
|
85
|
+
value: number;
|
|
86
|
+
change?: number;
|
|
87
|
+
changePercent?: number;
|
|
88
|
+
metadata?: Record<string, any>;
|
|
89
|
+
}
|
|
90
|
+
export interface LeaderboardResult {
|
|
91
|
+
metric: string;
|
|
92
|
+
period: string;
|
|
93
|
+
entity: string;
|
|
94
|
+
entries: LeaderboardEntry[];
|
|
95
|
+
totalEntries: number;
|
|
96
|
+
timestamp: string;
|
|
97
|
+
}
|
|
98
|
+
export interface GrowthMetricsOptions {
|
|
99
|
+
metrics?: string[];
|
|
100
|
+
period?: string;
|
|
101
|
+
comparison?: 'mom' | 'yoy' | 'qoq' | 'wow';
|
|
102
|
+
entities?: string[];
|
|
103
|
+
}
|
|
104
|
+
export interface GrowthMetric {
|
|
105
|
+
metric: string;
|
|
106
|
+
current: number;
|
|
107
|
+
previous: number;
|
|
108
|
+
change: number;
|
|
109
|
+
changePercent: number;
|
|
110
|
+
trend: 'increasing' | 'decreasing' | 'stable';
|
|
111
|
+
cagr?: number;
|
|
112
|
+
}
|
|
113
|
+
export interface GrowthMetricsResult {
|
|
114
|
+
period: {
|
|
115
|
+
current: {
|
|
116
|
+
start: string;
|
|
117
|
+
end: string;
|
|
118
|
+
};
|
|
119
|
+
previous: {
|
|
120
|
+
start: string;
|
|
121
|
+
end: string;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
metrics: GrowthMetric[];
|
|
125
|
+
overallGrowth: number;
|
|
126
|
+
timestamp: string;
|
|
127
|
+
}
|
|
128
|
+
export interface TimeSeriesOptions {
|
|
129
|
+
metric: string;
|
|
130
|
+
startDate: string;
|
|
131
|
+
endDate: string;
|
|
132
|
+
granularity: 'hour' | 'day' | 'week' | 'month';
|
|
133
|
+
aggregation?: 'sum' | 'avg' | 'count' | 'min' | 'max';
|
|
134
|
+
filters?: Record<string, any>;
|
|
135
|
+
entity?: string;
|
|
136
|
+
}
|
|
137
|
+
export interface TimeSeriesResult {
|
|
138
|
+
metric: string;
|
|
139
|
+
granularity: string;
|
|
140
|
+
aggregation: string;
|
|
141
|
+
data: TrendDataPoint[];
|
|
142
|
+
statistics: {
|
|
143
|
+
min: number;
|
|
144
|
+
max: number;
|
|
145
|
+
avg: number;
|
|
146
|
+
median: number;
|
|
147
|
+
total: number;
|
|
148
|
+
stdDev?: number;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
export interface ComparativeAnalysisOptions {
|
|
152
|
+
metrics: string[];
|
|
153
|
+
periods: Array<{
|
|
154
|
+
start: string;
|
|
155
|
+
end: string;
|
|
156
|
+
label?: string;
|
|
157
|
+
}>;
|
|
158
|
+
entities?: string[];
|
|
159
|
+
breakdownBy?: string;
|
|
160
|
+
}
|
|
161
|
+
export interface ComparativeResult {
|
|
162
|
+
metric: string;
|
|
163
|
+
periods: Array<{
|
|
164
|
+
label: string;
|
|
165
|
+
value: number;
|
|
166
|
+
breakdown?: Record<string, number>;
|
|
167
|
+
}>;
|
|
168
|
+
comparison: {
|
|
169
|
+
maxPeriod: string;
|
|
170
|
+
minPeriod: string;
|
|
171
|
+
maxValue: number;
|
|
172
|
+
minValue: number;
|
|
173
|
+
variance: number;
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* AnalyticsModule - Universal analytics and reporting
|
|
178
|
+
*
|
|
179
|
+
* Provides KPIs, trends, leaderboards, growth metrics, and time-series analysis.
|
|
180
|
+
* Works across all templates (ISO, Healthcare, Finance, Retail, etc.)
|
|
181
|
+
* by reading template configuration to determine data sources.
|
|
182
|
+
*/
|
|
183
|
+
export declare class AnalyticsModule {
|
|
184
|
+
private sdk;
|
|
185
|
+
constructor(sdk: VaritySDK);
|
|
186
|
+
/**
|
|
187
|
+
* Get KPI summary for a given period
|
|
188
|
+
*
|
|
189
|
+
* Universal method - works for any template.
|
|
190
|
+
* Template configuration determines which KPIs to calculate.
|
|
191
|
+
*
|
|
192
|
+
* @example ISO Dashboard
|
|
193
|
+
* ```typescript
|
|
194
|
+
* const kpis = await sdk.analytics.getKPIs({ period: 'current_month' })
|
|
195
|
+
* // Returns: total_volume, active_merchants, gross_residuals, etc.
|
|
196
|
+
* ```
|
|
197
|
+
*
|
|
198
|
+
* @example Healthcare Dashboard
|
|
199
|
+
* ```typescript
|
|
200
|
+
* const kpis = await sdk.analytics.getKPIs({ period: 'current_month' })
|
|
201
|
+
* // Returns: total_patients, active_appointments, provider_utilization, etc.
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
getKPIs(options?: KPIOptions): Promise<KPISummary>;
|
|
205
|
+
/**
|
|
206
|
+
* Get trend data for a specific metric
|
|
207
|
+
*
|
|
208
|
+
* Universal method - analyzes trends for any metric across any template.
|
|
209
|
+
*
|
|
210
|
+
* @example ISO Dashboard
|
|
211
|
+
* ```typescript
|
|
212
|
+
* const trends = await sdk.analytics.getTrends({
|
|
213
|
+
* metric: 'residuals',
|
|
214
|
+
* period: '30d',
|
|
215
|
+
* comparison: 'mom'
|
|
216
|
+
* })
|
|
217
|
+
* ```
|
|
218
|
+
*
|
|
219
|
+
* @example Healthcare Dashboard
|
|
220
|
+
* ```typescript
|
|
221
|
+
* const trends = await sdk.analytics.getTrends({
|
|
222
|
+
* metric: 'appointments',
|
|
223
|
+
* period: '90d',
|
|
224
|
+
* granularity: 'week'
|
|
225
|
+
* })
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
getTrends(options: TrendOptions): Promise<TrendResult>;
|
|
229
|
+
/**
|
|
230
|
+
* Get leaderboard for a specific metric
|
|
231
|
+
*
|
|
232
|
+
* Universal method - ranks entities by any performance metric.
|
|
233
|
+
*
|
|
234
|
+
* @example ISO Dashboard
|
|
235
|
+
* ```typescript
|
|
236
|
+
* const leaderboard = await sdk.analytics.getLeaderboard({
|
|
237
|
+
* metric: 'residuals',
|
|
238
|
+
* entity: 'reps',
|
|
239
|
+
* limit: 10,
|
|
240
|
+
* period: 'month'
|
|
241
|
+
* })
|
|
242
|
+
* // Returns: top 10 reps by residuals
|
|
243
|
+
* ```
|
|
244
|
+
*
|
|
245
|
+
* @example Healthcare Dashboard
|
|
246
|
+
* ```typescript
|
|
247
|
+
* const leaderboard = await sdk.analytics.getLeaderboard({
|
|
248
|
+
* metric: 'patient_satisfaction',
|
|
249
|
+
* entity: 'providers',
|
|
250
|
+
* limit: 20
|
|
251
|
+
* })
|
|
252
|
+
* // Returns: top 20 providers by patient satisfaction
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
getLeaderboard(options: LeaderboardOptions): Promise<LeaderboardResult>;
|
|
256
|
+
/**
|
|
257
|
+
* Get growth metrics comparing current vs previous periods
|
|
258
|
+
*
|
|
259
|
+
* Universal method - calculates growth across any metrics and periods.
|
|
260
|
+
*
|
|
261
|
+
* @example ISO Dashboard
|
|
262
|
+
* ```typescript
|
|
263
|
+
* const growth = await sdk.analytics.getGrowthMetrics({
|
|
264
|
+
* metrics: ['volume', 'residuals', 'active_merchants'],
|
|
265
|
+
* comparison: 'mom'
|
|
266
|
+
* })
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* @example Finance Dashboard
|
|
270
|
+
* ```typescript
|
|
271
|
+
* const growth = await sdk.analytics.getGrowthMetrics({
|
|
272
|
+
* metrics: ['aum', 'trades', 'revenue'],
|
|
273
|
+
* comparison: 'qoq',
|
|
274
|
+
* period: 'quarter'
|
|
275
|
+
* })
|
|
276
|
+
* ```
|
|
277
|
+
*/
|
|
278
|
+
getGrowthMetrics(options?: GrowthMetricsOptions): Promise<GrowthMetricsResult>;
|
|
279
|
+
/**
|
|
280
|
+
* Query time-series data for a metric
|
|
281
|
+
*
|
|
282
|
+
* Universal method - retrieves granular time-series data for any metric.
|
|
283
|
+
* Supports flexible aggregation and filtering.
|
|
284
|
+
*
|
|
285
|
+
* @example ISO Dashboard
|
|
286
|
+
* ```typescript
|
|
287
|
+
* const timeSeries = await sdk.analytics.queryTimeSeries({
|
|
288
|
+
* metric: 'daily_volume',
|
|
289
|
+
* startDate: '2025-01-01',
|
|
290
|
+
* endDate: '2025-01-31',
|
|
291
|
+
* granularity: 'day',
|
|
292
|
+
* aggregation: 'sum'
|
|
293
|
+
* })
|
|
294
|
+
* ```
|
|
295
|
+
*
|
|
296
|
+
* @example Healthcare Dashboard
|
|
297
|
+
* ```typescript
|
|
298
|
+
* const timeSeries = await sdk.analytics.queryTimeSeries({
|
|
299
|
+
* metric: 'patient_visits',
|
|
300
|
+
* startDate: '2025-01-01',
|
|
301
|
+
* endDate: '2025-03-31',
|
|
302
|
+
* granularity: 'week',
|
|
303
|
+
* aggregation: 'count',
|
|
304
|
+
* filters: { department: 'cardiology' }
|
|
305
|
+
* })
|
|
306
|
+
* ```
|
|
307
|
+
*/
|
|
308
|
+
queryTimeSeries(options: TimeSeriesOptions): Promise<TimeSeriesResult>;
|
|
309
|
+
/**
|
|
310
|
+
* Perform comparative analysis across multiple metrics and periods
|
|
311
|
+
*
|
|
312
|
+
* Universal method - compares any metrics across any time periods.
|
|
313
|
+
* Useful for period-over-period analysis and identifying patterns.
|
|
314
|
+
*
|
|
315
|
+
* @example ISO Dashboard
|
|
316
|
+
* ```typescript
|
|
317
|
+
* const comparison = await sdk.analytics.compareMetrics({
|
|
318
|
+
* metrics: ['volume', 'residuals'],
|
|
319
|
+
* periods: [
|
|
320
|
+
* { start: '2024-01-01', end: '2024-03-31', label: 'Q1 2024' },
|
|
321
|
+
* { start: '2024-04-01', end: '2024-06-30', label: 'Q2 2024' },
|
|
322
|
+
* { start: '2024-07-01', end: '2024-09-30', label: 'Q3 2024' }
|
|
323
|
+
* ],
|
|
324
|
+
* breakdownBy: 'merchant_status'
|
|
325
|
+
* })
|
|
326
|
+
* ```
|
|
327
|
+
*/
|
|
328
|
+
compareMetrics(options: ComparativeAnalysisOptions): Promise<ComparativeResult[]>;
|
|
329
|
+
/**
|
|
330
|
+
* Get real-time analytics snapshot
|
|
331
|
+
*
|
|
332
|
+
* Universal method - provides current real-time metrics.
|
|
333
|
+
* Useful for live dashboards and monitoring.
|
|
334
|
+
*
|
|
335
|
+
* @example
|
|
336
|
+
* ```typescript
|
|
337
|
+
* const snapshot = await sdk.analytics.getRealTimeSnapshot({
|
|
338
|
+
* metrics: ['active_users', 'pending_transactions', 'system_load']
|
|
339
|
+
* })
|
|
340
|
+
* ```
|
|
341
|
+
*/
|
|
342
|
+
getRealTimeSnapshot(options?: {
|
|
343
|
+
metrics?: string[];
|
|
344
|
+
}): Promise<{
|
|
345
|
+
metrics: KPIResult[];
|
|
346
|
+
timestamp: string;
|
|
347
|
+
}>;
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=AnalyticsModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsModule.d.ts","sourceRoot":"","sources":["../../../src/modules/analytics/AnalyticsModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAA;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IAC3D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,IAAI,EAAE,SAAS,EAAE,CAAA;IACjB,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;IAC/C,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAA;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAA;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QACN,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;QACvC,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KACzC,CAAA;IACD,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;IAC9C,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAA;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACnC,CAAC,CAAA;IACF,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAElC;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAoB5D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAoB5D;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoB7E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,gBAAgB,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoBxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB5E;;;;;;;;;;;;;;;;;;OAkBG;IACG,cAAc,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAoBvF;;;;;;;;;;;;OAYG;IACG,mBAAmB,CAAC,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC;QACvE,OAAO,EAAE,SAAS,EAAE,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAC;CAmBH"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnalyticsModule - Universal analytics and reporting
|
|
3
|
+
*
|
|
4
|
+
* Provides KPIs, trends, leaderboards, growth metrics, and time-series analysis.
|
|
5
|
+
* Works across all templates (ISO, Healthcare, Finance, Retail, etc.)
|
|
6
|
+
* by reading template configuration to determine data sources.
|
|
7
|
+
*/
|
|
8
|
+
export class AnalyticsModule {
|
|
9
|
+
constructor(sdk) {
|
|
10
|
+
this.sdk = sdk;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get KPI summary for a given period
|
|
14
|
+
*
|
|
15
|
+
* Universal method - works for any template.
|
|
16
|
+
* Template configuration determines which KPIs to calculate.
|
|
17
|
+
*
|
|
18
|
+
* @example ISO Dashboard
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const kpis = await sdk.analytics.getKPIs({ period: 'current_month' })
|
|
21
|
+
* // Returns: total_volume, active_merchants, gross_residuals, etc.
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example Healthcare Dashboard
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const kpis = await sdk.analytics.getKPIs({ period: 'current_month' })
|
|
27
|
+
* // Returns: total_patients, active_appointments, provider_utilization, etc.
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
async getKPIs(options = {}) {
|
|
31
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
32
|
+
const apiKey = this.sdk.getAPIKey();
|
|
33
|
+
const response = await fetch(`${apiEndpoint}/api/v1/analytics/kpis`, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
38
|
+
},
|
|
39
|
+
body: JSON.stringify(options)
|
|
40
|
+
});
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
throw new Error(`Failed to fetch KPIs: ${response.statusText}`);
|
|
43
|
+
}
|
|
44
|
+
return await response.json();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get trend data for a specific metric
|
|
48
|
+
*
|
|
49
|
+
* Universal method - analyzes trends for any metric across any template.
|
|
50
|
+
*
|
|
51
|
+
* @example ISO Dashboard
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const trends = await sdk.analytics.getTrends({
|
|
54
|
+
* metric: 'residuals',
|
|
55
|
+
* period: '30d',
|
|
56
|
+
* comparison: 'mom'
|
|
57
|
+
* })
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @example Healthcare Dashboard
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const trends = await sdk.analytics.getTrends({
|
|
63
|
+
* metric: 'appointments',
|
|
64
|
+
* period: '90d',
|
|
65
|
+
* granularity: 'week'
|
|
66
|
+
* })
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
async getTrends(options) {
|
|
70
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
71
|
+
const apiKey = this.sdk.getAPIKey();
|
|
72
|
+
const response = await fetch(`${apiEndpoint}/api/v1/analytics/trends`, {
|
|
73
|
+
method: 'POST',
|
|
74
|
+
headers: {
|
|
75
|
+
'Content-Type': 'application/json',
|
|
76
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
77
|
+
},
|
|
78
|
+
body: JSON.stringify(options)
|
|
79
|
+
});
|
|
80
|
+
if (!response.ok) {
|
|
81
|
+
throw new Error(`Failed to fetch trends: ${response.statusText}`);
|
|
82
|
+
}
|
|
83
|
+
return await response.json();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get leaderboard for a specific metric
|
|
87
|
+
*
|
|
88
|
+
* Universal method - ranks entities by any performance metric.
|
|
89
|
+
*
|
|
90
|
+
* @example ISO Dashboard
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const leaderboard = await sdk.analytics.getLeaderboard({
|
|
93
|
+
* metric: 'residuals',
|
|
94
|
+
* entity: 'reps',
|
|
95
|
+
* limit: 10,
|
|
96
|
+
* period: 'month'
|
|
97
|
+
* })
|
|
98
|
+
* // Returns: top 10 reps by residuals
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @example Healthcare Dashboard
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const leaderboard = await sdk.analytics.getLeaderboard({
|
|
104
|
+
* metric: 'patient_satisfaction',
|
|
105
|
+
* entity: 'providers',
|
|
106
|
+
* limit: 20
|
|
107
|
+
* })
|
|
108
|
+
* // Returns: top 20 providers by patient satisfaction
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
async getLeaderboard(options) {
|
|
112
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
113
|
+
const apiKey = this.sdk.getAPIKey();
|
|
114
|
+
const response = await fetch(`${apiEndpoint}/api/v1/analytics/leaderboard`, {
|
|
115
|
+
method: 'POST',
|
|
116
|
+
headers: {
|
|
117
|
+
'Content-Type': 'application/json',
|
|
118
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
119
|
+
},
|
|
120
|
+
body: JSON.stringify(options)
|
|
121
|
+
});
|
|
122
|
+
if (!response.ok) {
|
|
123
|
+
throw new Error(`Failed to fetch leaderboard: ${response.statusText}`);
|
|
124
|
+
}
|
|
125
|
+
return await response.json();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get growth metrics comparing current vs previous periods
|
|
129
|
+
*
|
|
130
|
+
* Universal method - calculates growth across any metrics and periods.
|
|
131
|
+
*
|
|
132
|
+
* @example ISO Dashboard
|
|
133
|
+
* ```typescript
|
|
134
|
+
* const growth = await sdk.analytics.getGrowthMetrics({
|
|
135
|
+
* metrics: ['volume', 'residuals', 'active_merchants'],
|
|
136
|
+
* comparison: 'mom'
|
|
137
|
+
* })
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @example Finance Dashboard
|
|
141
|
+
* ```typescript
|
|
142
|
+
* const growth = await sdk.analytics.getGrowthMetrics({
|
|
143
|
+
* metrics: ['aum', 'trades', 'revenue'],
|
|
144
|
+
* comparison: 'qoq',
|
|
145
|
+
* period: 'quarter'
|
|
146
|
+
* })
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
async getGrowthMetrics(options = {}) {
|
|
150
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
151
|
+
const apiKey = this.sdk.getAPIKey();
|
|
152
|
+
const response = await fetch(`${apiEndpoint}/api/v1/analytics/growth-metrics`, {
|
|
153
|
+
method: 'POST',
|
|
154
|
+
headers: {
|
|
155
|
+
'Content-Type': 'application/json',
|
|
156
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
157
|
+
},
|
|
158
|
+
body: JSON.stringify(options)
|
|
159
|
+
});
|
|
160
|
+
if (!response.ok) {
|
|
161
|
+
throw new Error(`Failed to fetch growth metrics: ${response.statusText}`);
|
|
162
|
+
}
|
|
163
|
+
return await response.json();
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Query time-series data for a metric
|
|
167
|
+
*
|
|
168
|
+
* Universal method - retrieves granular time-series data for any metric.
|
|
169
|
+
* Supports flexible aggregation and filtering.
|
|
170
|
+
*
|
|
171
|
+
* @example ISO Dashboard
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const timeSeries = await sdk.analytics.queryTimeSeries({
|
|
174
|
+
* metric: 'daily_volume',
|
|
175
|
+
* startDate: '2025-01-01',
|
|
176
|
+
* endDate: '2025-01-31',
|
|
177
|
+
* granularity: 'day',
|
|
178
|
+
* aggregation: 'sum'
|
|
179
|
+
* })
|
|
180
|
+
* ```
|
|
181
|
+
*
|
|
182
|
+
* @example Healthcare Dashboard
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const timeSeries = await sdk.analytics.queryTimeSeries({
|
|
185
|
+
* metric: 'patient_visits',
|
|
186
|
+
* startDate: '2025-01-01',
|
|
187
|
+
* endDate: '2025-03-31',
|
|
188
|
+
* granularity: 'week',
|
|
189
|
+
* aggregation: 'count',
|
|
190
|
+
* filters: { department: 'cardiology' }
|
|
191
|
+
* })
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
async queryTimeSeries(options) {
|
|
195
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
196
|
+
const apiKey = this.sdk.getAPIKey();
|
|
197
|
+
const response = await fetch(`${apiEndpoint}/api/v1/analytics/time-series`, {
|
|
198
|
+
method: 'POST',
|
|
199
|
+
headers: {
|
|
200
|
+
'Content-Type': 'application/json',
|
|
201
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
202
|
+
},
|
|
203
|
+
body: JSON.stringify(options)
|
|
204
|
+
});
|
|
205
|
+
if (!response.ok) {
|
|
206
|
+
throw new Error(`Failed to query time-series: ${response.statusText}`);
|
|
207
|
+
}
|
|
208
|
+
return await response.json();
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Perform comparative analysis across multiple metrics and periods
|
|
212
|
+
*
|
|
213
|
+
* Universal method - compares any metrics across any time periods.
|
|
214
|
+
* Useful for period-over-period analysis and identifying patterns.
|
|
215
|
+
*
|
|
216
|
+
* @example ISO Dashboard
|
|
217
|
+
* ```typescript
|
|
218
|
+
* const comparison = await sdk.analytics.compareMetrics({
|
|
219
|
+
* metrics: ['volume', 'residuals'],
|
|
220
|
+
* periods: [
|
|
221
|
+
* { start: '2024-01-01', end: '2024-03-31', label: 'Q1 2024' },
|
|
222
|
+
* { start: '2024-04-01', end: '2024-06-30', label: 'Q2 2024' },
|
|
223
|
+
* { start: '2024-07-01', end: '2024-09-30', label: 'Q3 2024' }
|
|
224
|
+
* ],
|
|
225
|
+
* breakdownBy: 'merchant_status'
|
|
226
|
+
* })
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
async compareMetrics(options) {
|
|
230
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
231
|
+
const apiKey = this.sdk.getAPIKey();
|
|
232
|
+
const response = await fetch(`${apiEndpoint}/api/v1/analytics/comparative`, {
|
|
233
|
+
method: 'POST',
|
|
234
|
+
headers: {
|
|
235
|
+
'Content-Type': 'application/json',
|
|
236
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
237
|
+
},
|
|
238
|
+
body: JSON.stringify(options)
|
|
239
|
+
});
|
|
240
|
+
if (!response.ok) {
|
|
241
|
+
throw new Error(`Failed to perform comparative analysis: ${response.statusText}`);
|
|
242
|
+
}
|
|
243
|
+
return await response.json();
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get real-time analytics snapshot
|
|
247
|
+
*
|
|
248
|
+
* Universal method - provides current real-time metrics.
|
|
249
|
+
* Useful for live dashboards and monitoring.
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* const snapshot = await sdk.analytics.getRealTimeSnapshot({
|
|
254
|
+
* metrics: ['active_users', 'pending_transactions', 'system_load']
|
|
255
|
+
* })
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
async getRealTimeSnapshot(options = {}) {
|
|
259
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
260
|
+
const apiKey = this.sdk.getAPIKey();
|
|
261
|
+
const response = await fetch(`${apiEndpoint}/api/v1/analytics/realtime`, {
|
|
262
|
+
method: 'POST',
|
|
263
|
+
headers: {
|
|
264
|
+
'Content-Type': 'application/json',
|
|
265
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
266
|
+
},
|
|
267
|
+
body: JSON.stringify(options)
|
|
268
|
+
});
|
|
269
|
+
if (!response.ok) {
|
|
270
|
+
throw new Error(`Failed to fetch real-time snapshot: ${response.statusText}`);
|
|
271
|
+
}
|
|
272
|
+
return await response.json();
|
|
273
|
+
}
|
|
274
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { AnalyticsModule } from './AnalyticsModule';
|
|
2
|
+
export type { KPIOptions, KPIResult, KPISummary, TrendOptions, TrendDataPoint, TrendResult, LeaderboardOptions, LeaderboardEntry, LeaderboardResult, GrowthMetricsOptions, GrowthMetric, GrowthMetricsResult, TimeSeriesOptions, TimeSeriesResult, ComparativeAnalysisOptions, ComparativeResult } from './AnalyticsModule';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AnalyticsModule } from './AnalyticsModule';
|