@spottoai/types-package 1.0.2-beta.17 → 1.0.2-beta.171

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 (178) hide show
  1. package/LICENSE +18 -40
  2. package/README.md +4 -11
  3. package/dist/accounts/accounts.d.ts +32 -3
  4. package/dist/accounts/accounts.d.ts.map +1 -1
  5. package/dist/accounts/index.d.ts +1 -0
  6. package/dist/accounts/index.d.ts.map +1 -1
  7. package/dist/accounts/index.js +1 -0
  8. package/dist/accounts/index.js.map +1 -1
  9. package/dist/accounts/writePermissions.d.ts +34 -0
  10. package/dist/accounts/writePermissions.d.ts.map +1 -0
  11. package/dist/accounts/writePermissions.js +37 -0
  12. package/dist/accounts/writePermissions.js.map +1 -0
  13. package/dist/ai/index.d.ts +944 -9
  14. package/dist/ai/index.d.ts.map +1 -1
  15. package/dist/ai/index.js +1 -1
  16. package/dist/ai/index.js.map +1 -1
  17. package/dist/azure/benefits.d.ts +119 -0
  18. package/dist/azure/benefits.d.ts.map +1 -0
  19. package/dist/azure/benefits.js +3 -0
  20. package/dist/azure/benefits.js.map +1 -0
  21. package/dist/azure/billingPlots.d.ts +108 -0
  22. package/dist/azure/billingPlots.d.ts.map +1 -0
  23. package/dist/azure/billingPlots.js +6 -0
  24. package/dist/azure/billingPlots.js.map +1 -0
  25. package/dist/azure/budgets.d.ts +4 -0
  26. package/dist/azure/budgets.d.ts.map +1 -1
  27. package/dist/azure/commitmentsPlanning.d.ts +108 -0
  28. package/dist/azure/commitmentsPlanning.d.ts.map +1 -0
  29. package/dist/azure/commitmentsPlanning.js +3 -0
  30. package/dist/azure/commitmentsPlanning.js.map +1 -0
  31. package/dist/azure/common.d.ts +34 -0
  32. package/dist/azure/common.d.ts.map +1 -1
  33. package/dist/azure/configs.d.ts +12 -0
  34. package/dist/azure/configs.d.ts.map +1 -1
  35. package/dist/azure/costEstimation.d.ts +78 -0
  36. package/dist/azure/costEstimation.d.ts.map +1 -0
  37. package/dist/azure/costEstimation.js +3 -0
  38. package/dist/azure/costEstimation.js.map +1 -0
  39. package/dist/azure/metrics.d.ts +40 -0
  40. package/dist/azure/metrics.d.ts.map +1 -1
  41. package/dist/azure/payloads.d.ts +9 -0
  42. package/dist/azure/payloads.d.ts.map +1 -1
  43. package/dist/azure/prices.d.ts +140 -0
  44. package/dist/azure/prices.d.ts.map +1 -1
  45. package/dist/azure/recommendationAudit.d.ts +113 -0
  46. package/dist/azure/recommendationAudit.d.ts.map +1 -0
  47. package/dist/azure/recommendationAudit.js +10 -0
  48. package/dist/azure/recommendationAudit.js.map +1 -0
  49. package/dist/azure/recommendationState.d.ts +91 -2
  50. package/dist/azure/recommendationState.d.ts.map +1 -1
  51. package/dist/azure/recommendations.d.ts +249 -5
  52. package/dist/azure/recommendations.d.ts.map +1 -1
  53. package/dist/azure/recommendations.js.map +1 -1
  54. package/dist/azure/relationships.d.ts +77 -0
  55. package/dist/azure/relationships.d.ts.map +1 -0
  56. package/dist/azure/relationships.js +3 -0
  57. package/dist/azure/relationships.js.map +1 -0
  58. package/dist/azure/reports.d.ts +218 -0
  59. package/dist/azure/reports.d.ts.map +1 -1
  60. package/dist/azure/reports.js +13 -0
  61. package/dist/azure/reports.js.map +1 -1
  62. package/dist/azure/resources.d.ts +14 -0
  63. package/dist/azure/resources.d.ts.map +1 -1
  64. package/dist/azure/reviewChecklist.d.ts +139 -0
  65. package/dist/azure/reviewChecklist.d.ts.map +1 -0
  66. package/dist/azure/reviewChecklist.js +3 -0
  67. package/dist/azure/reviewChecklist.js.map +1 -0
  68. package/dist/azure/security.d.ts +15 -1
  69. package/dist/azure/security.d.ts.map +1 -1
  70. package/dist/azure/serviceRetirement.d.ts +28 -0
  71. package/dist/azure/serviceRetirement.d.ts.map +1 -0
  72. package/dist/azure/serviceRetirement.js +3 -0
  73. package/dist/azure/serviceRetirement.js.map +1 -0
  74. package/dist/azure/serviceRetirementState.d.ts +22 -0
  75. package/dist/azure/serviceRetirementState.d.ts.map +1 -0
  76. package/dist/azure/serviceRetirementState.js +3 -0
  77. package/dist/azure/serviceRetirementState.js.map +1 -0
  78. package/dist/azure/storage-inventory.d.ts +241 -0
  79. package/dist/azure/storage-inventory.d.ts.map +1 -0
  80. package/dist/azure/storage-inventory.js +3 -0
  81. package/dist/azure/storage-inventory.js.map +1 -0
  82. package/dist/azure/subscriptions.d.ts +30 -13
  83. package/dist/azure/subscriptions.d.ts.map +1 -1
  84. package/dist/azure/views.d.ts +110 -2
  85. package/dist/azure/views.d.ts.map +1 -1
  86. package/dist/common/index.d.ts +1 -0
  87. package/dist/common/index.d.ts.map +1 -1
  88. package/dist/common/index.js +1 -0
  89. package/dist/common/index.js.map +1 -1
  90. package/dist/common/pagination.d.ts +3 -0
  91. package/dist/common/pagination.d.ts.map +1 -1
  92. package/dist/common/provider.d.ts +9 -0
  93. package/dist/common/provider.d.ts.map +1 -0
  94. package/dist/common/provider.js +9 -0
  95. package/dist/common/provider.js.map +1 -0
  96. package/dist/company/billingAccount.d.ts +30 -0
  97. package/dist/company/billingAccount.d.ts.map +1 -0
  98. package/dist/company/billingAccount.js +3 -0
  99. package/dist/company/billingAccount.js.map +1 -0
  100. package/dist/company/company.d.ts +26 -1
  101. package/dist/company/company.d.ts.map +1 -1
  102. package/dist/company/index.d.ts +1 -0
  103. package/dist/company/index.d.ts.map +1 -1
  104. package/dist/company/index.js +1 -0
  105. package/dist/company/index.js.map +1 -1
  106. package/dist/company/notification.d.ts +31 -1
  107. package/dist/company/notification.d.ts.map +1 -1
  108. package/dist/company/notification.js +24 -12
  109. package/dist/company/notification.js.map +1 -1
  110. package/dist/company/survey.d.ts +3 -0
  111. package/dist/company/survey.d.ts.map +1 -1
  112. package/dist/events/alertDefinitionRun.d.ts +23 -0
  113. package/dist/events/alertDefinitionRun.d.ts.map +1 -0
  114. package/dist/events/alertDefinitionRun.js +3 -0
  115. package/dist/events/alertDefinitionRun.js.map +1 -0
  116. package/dist/events/baseAlert.d.ts +130 -0
  117. package/dist/events/baseAlert.d.ts.map +1 -0
  118. package/dist/events/baseAlert.js +3 -0
  119. package/dist/events/baseAlert.js.map +1 -0
  120. package/dist/events/cost.d.ts +361 -0
  121. package/dist/events/cost.d.ts.map +1 -0
  122. package/dist/events/cost.js +3 -0
  123. package/dist/events/cost.js.map +1 -0
  124. package/dist/events/costAnomalies.d.ts +47 -0
  125. package/dist/events/costAnomalies.d.ts.map +1 -0
  126. package/dist/events/costAnomalies.js +3 -0
  127. package/dist/events/costAnomalies.js.map +1 -0
  128. package/dist/events/costViews.d.ts +23 -0
  129. package/dist/events/costViews.d.ts.map +1 -0
  130. package/dist/events/costViews.js +3 -0
  131. package/dist/events/costViews.js.map +1 -0
  132. package/dist/events/eventStatus.d.ts +67 -0
  133. package/dist/events/eventStatus.d.ts.map +1 -0
  134. package/dist/events/eventStatus.js +3 -0
  135. package/dist/events/eventStatus.js.map +1 -0
  136. package/dist/events/index.d.ts +7 -0
  137. package/dist/events/index.d.ts.map +1 -0
  138. package/dist/events/index.js +23 -0
  139. package/dist/events/index.js.map +1 -0
  140. package/dist/feedbacks/feedback.d.ts +9 -0
  141. package/dist/feedbacks/feedback.d.ts.map +1 -1
  142. package/dist/identity/apikey.d.ts +67 -0
  143. package/dist/identity/apikey.d.ts.map +1 -0
  144. package/dist/identity/apikey.js +3 -0
  145. package/dist/identity/apikey.js.map +1 -0
  146. package/dist/identity/index.d.ts +2 -0
  147. package/dist/identity/index.d.ts.map +1 -0
  148. package/dist/identity/index.js +18 -0
  149. package/dist/identity/index.js.map +1 -0
  150. package/dist/index.d.ts +16 -0
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +16 -1
  153. package/dist/index.js.map +1 -1
  154. package/dist/integrations/halo.d.ts +76 -0
  155. package/dist/integrations/halo.d.ts.map +1 -0
  156. package/dist/integrations/halo.js +3 -0
  157. package/dist/integrations/halo.js.map +1 -0
  158. package/dist/integrations/index.d.ts +3 -0
  159. package/dist/integrations/index.d.ts.map +1 -0
  160. package/dist/integrations/index.js +19 -0
  161. package/dist/integrations/index.js.map +1 -0
  162. package/dist/integrations/integrationTickets.d.ts +67 -0
  163. package/dist/integrations/integrationTickets.d.ts.map +1 -0
  164. package/dist/integrations/integrationTickets.js +3 -0
  165. package/dist/integrations/integrationTickets.js.map +1 -0
  166. package/dist/tags/index.d.ts +2 -0
  167. package/dist/tags/index.d.ts.map +1 -0
  168. package/dist/tags/index.js +18 -0
  169. package/dist/tags/index.js.map +1 -0
  170. package/dist/tags/tags.d.ts +26 -0
  171. package/dist/tags/tags.d.ts.map +1 -0
  172. package/dist/tags/tags.js +10 -0
  173. package/dist/tags/tags.js.map +1 -0
  174. package/dist/unknown/services.d.ts +12 -0
  175. package/dist/unknown/services.d.ts.map +1 -0
  176. package/dist/unknown/services.js +3 -0
  177. package/dist/unknown/services.js.map +1 -0
  178. package/package.json +2 -2
@@ -0,0 +1,77 @@
1
+ export type RelationshipSnapshotNodeKind = 'subscription' | 'resourceGroup' | 'resource' | 'location' | 'availabilityZone' | 'managementGroup';
2
+ export type RelationshipSnapshotEdgeKind = 'contains' | 'depends_on';
3
+ export interface RelationshipSnapshotCostOverlay {
4
+ spend30d?: number;
5
+ spend30dAmortized?: number;
6
+ }
7
+ export interface RelationshipSnapshotNodeData {
8
+ resourceGroup?: string;
9
+ name?: string;
10
+ type?: string;
11
+ location?: string;
12
+ tags?: Record<string, string>;
13
+ placeholder?: boolean;
14
+ displayName?: string;
15
+ icon?: string;
16
+ label1?: string;
17
+ label2?: string;
18
+ label3?: string;
19
+ properties?: Record<string, unknown>;
20
+ }
21
+ export interface RelationshipSnapshotNode {
22
+ id: string;
23
+ kind: RelationshipSnapshotNodeKind;
24
+ data: RelationshipSnapshotNodeData;
25
+ cost?: RelationshipSnapshotCostOverlay;
26
+ }
27
+ export interface RelationshipSnapshotEdgeEvidence {
28
+ method: string;
29
+ ruleName?: string;
30
+ propertyPath?: string;
31
+ matchedValue?: string;
32
+ }
33
+ export interface RelationshipSnapshotEdge {
34
+ id: string;
35
+ from: string;
36
+ to: string;
37
+ kind: RelationshipSnapshotEdgeKind;
38
+ relationshipTypes: string[];
39
+ confidence: number;
40
+ evidence: RelationshipSnapshotEdgeEvidence[];
41
+ costImpact?: {
42
+ type: 'full' | 'partial' | 'indirect' | 'none';
43
+ weight?: number;
44
+ category?: string;
45
+ description?: string;
46
+ };
47
+ }
48
+ export interface UnresolvedRelationshipReference {
49
+ sourceId: string;
50
+ ruleName?: string;
51
+ propertyPath?: string;
52
+ value: string;
53
+ resolverTried?: string;
54
+ reason?: string;
55
+ }
56
+ export interface RelationshipSnapshotStats {
57
+ totalNodes: number;
58
+ totalEdges: number;
59
+ unresolvedCount: number;
60
+ buildMs: number;
61
+ unresolvedTruncated?: boolean;
62
+ edgesTruncated?: boolean;
63
+ edgesDroppedCount?: number;
64
+ snapshotBytes?: number;
65
+ }
66
+ export interface RelationshipSnapshot {
67
+ schemaVersion: 1;
68
+ generatedAt: string;
69
+ subscriptionId: string;
70
+ currency?: string;
71
+ currencySymbol?: string;
72
+ nodes: RelationshipSnapshotNode[];
73
+ edges: RelationshipSnapshotEdge[];
74
+ unresolved: UnresolvedRelationshipReference[];
75
+ stats: RelationshipSnapshotStats;
76
+ }
77
+ //# sourceMappingURL=relationships.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/azure/relationships.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=relationships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/azure/relationships.ts"],"names":[],"mappings":""}
@@ -1,14 +1,43 @@
1
+ import { Tags } from '../tags';
1
2
  export interface DecompositionTreeNode {
3
+ /** e.g., "Resource Group A", "Storage", "Standard Page Blob v2", "Storage Account", "mystorageaccount" */
2
4
  name: string;
3
5
  cost: number;
4
6
  costAmortized?: number;
5
7
  costPrevious?: number;
6
8
  costAmortizedPrevious?: number;
9
+ /** e.g., 80.5 (for 80.5%) */
7
10
  percentageOfTotal: number;
11
+ /** Absolute change from previous period */
8
12
  costChange?: number;
13
+ /** Percentage change from previous period */
9
14
  costChangePercent?: number;
10
15
  children?: DecompositionTreeNode[];
16
+ /** Total spend at this level (for percentage calculation) */
11
17
  totalSpend: number;
18
+ /** Analysis of why costs changed (only present on leaf nodes) */
19
+ changeAnalysis?: CostChangeAnalysis;
20
+ /** Only present on leaf nodes (individual resources) */
21
+ meterDetails?: MeterDetail[];
22
+ tags?: Record<string, string>;
23
+ spottoTags?: Tags;
24
+ resourceId?: string;
25
+ }
26
+ export interface MeterDetail {
27
+ /** "P1 v3 App" */
28
+ meter: string;
29
+ /** "Azure App Service" */
30
+ meterCategory: string;
31
+ /** "Premium Plan" */
32
+ meterSubCategory: string;
33
+ /** 24 (hours, GB, etc.) */
34
+ quantity: number;
35
+ /** 12.721536 */
36
+ cost: number;
37
+ /** 12.721536 */
38
+ costAmortized: number;
39
+ /** cost / quantity = rate per unit */
40
+ unitCost?: number;
12
41
  }
13
42
  export interface DecompositionTree {
14
43
  root: DecompositionTreeNode;
@@ -24,8 +53,117 @@ export interface DecompositionTree {
24
53
  totalSpendAmortizedPrevious?: number;
25
54
  currency: string;
26
55
  currencySymbol: string;
56
+ version?: string;
57
+ }
58
+ export interface EstimationTree extends DecompositionTree {
59
+ dataSource: 'estimated' | 'blended' | 'actual' | 'metrics_pricing';
60
+ coveragePercent?: number;
61
+ confidence?: number;
62
+ actualShare?: number;
63
+ estimatedShare?: number;
64
+ billingReconciliationStatus?: 'pending' | 'matched' | 'mismatch';
65
+ actualArrivedAt?: string;
66
+ lastActualCoverageAt?: string;
67
+ reconciledAt?: string;
68
+ root: EstimationTreeNode;
69
+ }
70
+ export interface EstimationTreeNode extends DecompositionTreeNode {
71
+ dataSource?: 'estimated' | 'actual' | 'blended' | 'metrics_pricing';
72
+ coveragePercent?: number;
73
+ coverageDays?: number;
74
+ actualShare?: number;
75
+ estimatedShare?: number;
76
+ confidence?: number;
77
+ serviceCategory?: 'A' | 'B' | 'C' | 'D';
78
+ componentCategory?: 'A' | 'B' | 'C' | 'D';
79
+ metricsInput?: Record<string, unknown>;
80
+ unitRates?: Record<string, number>;
81
+ pricingSource?: 'billing' | 'retail' | 'manual';
82
+ estimationMethod?: string;
83
+ estimatedDays?: string[];
84
+ estimatedDaysSource?: 'metrics' | 'ma7' | 'ma14' | 'ma';
85
+ estimatedDaysBySource?: {
86
+ metrics?: string[];
87
+ ma7?: string[];
88
+ ma14?: string[];
89
+ ma?: string[];
90
+ };
91
+ /**
92
+ * Type of this node: 'subscription' | 'resourceGroup' | 'provider' | 'service' | 'resource' | 'deployment' | 'component'
93
+ * Helps frontend understand the hierarchy and render appropriately
94
+ */
95
+ nodeType?: 'subscription' | 'resourceGroup' | 'provider' | 'service' | 'resource' | 'deployment' | 'component';
96
+ /**
97
+ * Azure resource type (e.g., "microsoft.cognitiveservices/accounts")
98
+ * Only present on resource nodes and their children
99
+ * Helps frontend determine how to display child nodes
100
+ */
101
+ resourceType?: string;
102
+ /**
103
+ * For deployment/component nodes: identifies the parent resource
104
+ * For resource nodes: same as resourceId
105
+ */
106
+ parentResourceId?: string;
107
+ /**
108
+ * Deployment-specific metadata (only for cognitive services)
109
+ * Frontend can use this to display deployment-level details
110
+ */
111
+ deployment?: string;
112
+ model?: string;
113
+ /**
114
+ * Generic metadata for other resource types
115
+ * Allows extensibility for future resource types with sub-components
116
+ */
117
+ metadata?: Record<string, unknown>;
118
+ blendedComponents?: Array<{
119
+ componentCategory?: 'A' | 'B' | 'C' | 'D';
120
+ dataSource?: 'estimated' | 'actual' | 'blended' | 'metrics_pricing';
121
+ actualCost: number;
122
+ estimatedCost: number;
123
+ estimatedCostByMetrics?: number;
124
+ estimatedCostByMA?: number;
125
+ coverageDays: number;
126
+ coveragePercent?: number;
127
+ missingDays: number;
128
+ method: string;
129
+ estimationMethod?: string;
130
+ estimatedDays?: string[];
131
+ estimatedDaysSource?: 'metrics' | 'ma7' | 'ma14' | 'ma';
132
+ estimatedDaysBySource?: {
133
+ metrics?: string[];
134
+ ma7?: string[];
135
+ ma14?: string[];
136
+ ma?: string[];
137
+ };
138
+ pricingSource?: 'billing' | 'retail' | 'manual';
139
+ actualShare?: number;
140
+ estimatedShare?: number;
141
+ }> | {
142
+ componentCategory?: 'A' | 'B' | 'C' | 'D';
143
+ dataSource?: 'estimated' | 'actual' | 'blended' | 'metrics_pricing';
144
+ actualCost: number;
145
+ estimatedCost: number;
146
+ estimatedCostByMetrics?: number;
147
+ estimatedCostByMA?: number;
148
+ coverageDays: number;
149
+ missingDays: number;
150
+ method: string;
151
+ estimationMethod?: string;
152
+ estimatedDays?: string[];
153
+ estimatedDaysSource?: 'metrics' | 'ma7' | 'ma14' | 'ma';
154
+ estimatedDaysBySource?: {
155
+ metrics?: string[];
156
+ ma7?: string[];
157
+ ma14?: string[];
158
+ ma?: string[];
159
+ };
160
+ actualShare?: number;
161
+ estimatedShare?: number;
162
+ };
163
+ children?: EstimationTreeNode[];
27
164
  }
28
165
  export interface DecompositionTreeEntry {
166
+ /** e.g., "2025-01" for calendar month, "2025-01-01_2025-01-31" for billing period */
29
167
  period: string;
30
168
  startDate: string;
31
169
  endDate: string;
@@ -35,4 +173,84 @@ export interface DecompositionTreeSummary {
35
173
  entries: DecompositionTreeEntry[];
36
174
  lastUpdated: string;
37
175
  }
176
+ /** Type of change detected in cost analysis */
177
+ export type ChangeType = 'increase' | 'decrease' | 'no_change' | 'new_resource' | 'removed_resource';
178
+ /** Specific reason types for cost changes */
179
+ export declare enum ChangeReasonType {
180
+ NEW_RESOURCE = "new_resource",
181
+ REMOVED_RESOURCE = "removed_resource",
182
+ QUANTITY_INCREASE = "quantity_increase",
183
+ QUANTITY_DECREASE = "quantity_decrease",
184
+ RATE_CHANGE = "rate_change",
185
+ SKU_CHANGE = "sku_change",
186
+ NEW_METER = "new_meter",
187
+ REMOVED_METER = "removed_meter"
188
+ }
189
+ export type BillingModifierType = 'reservation' | 'savings_plan' | 'spot' | 'promotion' | 'other';
190
+ export interface BillingModifierDetail {
191
+ type: BillingModifierType;
192
+ name?: string;
193
+ coverageHours?: number;
194
+ coveragePercent?: number;
195
+ previousCoveragePercent?: number;
196
+ coveragePercentDelta?: number;
197
+ notes?: string;
198
+ }
199
+ export interface RateChangeContext {
200
+ previousEffectiveRate?: number;
201
+ currentEffectiveRate?: number;
202
+ previousPaidRate?: number;
203
+ currentPaidRate?: number;
204
+ totalHours?: number;
205
+ paidHours?: number;
206
+ coveredHours?: number;
207
+ previousCoveredHours?: number;
208
+ previousCoveredPercent?: number;
209
+ currentCoveredPercent?: number;
210
+ coverageDeltaPercent?: number;
211
+ modifier?: BillingModifierDetail;
212
+ }
213
+ /** Details about a specific change reason */
214
+ export interface ChangeReasonDetails {
215
+ /** The meter name (e.g., "P1 v3 App") */
216
+ meter?: string;
217
+ /** The meter category (e.g., "Azure App Service") */
218
+ meterCategory?: string;
219
+ /** The meter sub-category */
220
+ meterSubCategory?: string;
221
+ /** Previous value (could be cost, quantity, rate, or SKU name) */
222
+ oldValue?: string | number;
223
+ /** New value (could be cost, quantity, rate, or SKU name) */
224
+ newValue?: string | number;
225
+ /** Human-readable description of the change */
226
+ description: string;
227
+ /** Additional rate-change context (coverage shifts, modifier attribution, etc.) */
228
+ rateContext?: RateChangeContext;
229
+ /** Optional narrative fragments to help surface a story in the UI */
230
+ storyFragments?: string[];
231
+ }
232
+ /** A single reason explaining a cost change */
233
+ export interface ChangeReason {
234
+ /** Type of change */
235
+ type: ChangeReasonType;
236
+ /** Dollar impact of this change (can be positive or negative) */
237
+ impact: number;
238
+ /** Percentage of total change this reason represents */
239
+ impactPercent: number;
240
+ /** Detailed information about the change */
241
+ details: ChangeReasonDetails;
242
+ /** Optional narrative fragments tied to this reason */
243
+ storyFragments?: string[];
244
+ }
245
+ /** Complete analysis of cost changes for a resource */
246
+ export interface CostChangeAnalysis {
247
+ /** Overall type of change */
248
+ changeType: ChangeType;
249
+ /** List of specific reasons for the change, ordered by impact */
250
+ changeReasons: ChangeReason[];
251
+ /** Human-readable summary of the changes */
252
+ summary: string;
253
+ /** Optional narrative fragments surfaced for display */
254
+ storyFragments?: string[];
255
+ }
38
256
  //# sourceMappingURL=reports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/azure/reports.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;KAC/D,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/azure/reports.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChangeReasonType = void 0;
4
+ /** Specific reason types for cost changes */
5
+ var ChangeReasonType;
6
+ (function (ChangeReasonType) {
7
+ ChangeReasonType["NEW_RESOURCE"] = "new_resource";
8
+ ChangeReasonType["REMOVED_RESOURCE"] = "removed_resource";
9
+ ChangeReasonType["QUANTITY_INCREASE"] = "quantity_increase";
10
+ ChangeReasonType["QUANTITY_DECREASE"] = "quantity_decrease";
11
+ ChangeReasonType["RATE_CHANGE"] = "rate_change";
12
+ ChangeReasonType["SKU_CHANGE"] = "sku_change";
13
+ ChangeReasonType["NEW_METER"] = "new_meter";
14
+ ChangeReasonType["REMOVED_METER"] = "removed_meter";
15
+ })(ChangeReasonType || (exports.ChangeReasonType = ChangeReasonType = {}));
3
16
  //# sourceMappingURL=reports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/azure/reports.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/azure/reports.ts"],"names":[],"mappings":";;;AA8LA,6CAA6C;AAC7C,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,yDAAqC,CAAA;IACrC,2DAAuC,CAAA;IACvC,2DAAuC,CAAA;IACvC,+CAA2B,CAAA;IAC3B,6CAAyB,CAAA;IACzB,2CAAuB,CAAA;IACvB,mDAA+B,CAAA;AACjC,CAAC,EATW,gBAAgB,gCAAhB,gBAAgB,QAS3B"}
@@ -1,32 +1,46 @@
1
1
  export interface ResourcesByType {
2
2
  type: string;
3
3
  resources: number;
4
+ /** total spend in the current billing period */
4
5
  spendBilling?: number;
6
+ /** total amortized spend in the current billing period */
5
7
  spendBillingAmortized?: number;
8
+ /** total spend in the previous billing period */
6
9
  spendPreviousBilling?: number;
7
10
  spendPreviousBillingAmortized?: number;
11
+ /** total spend over the last 30 days */
8
12
  spend30Days?: number;
9
13
  spend30DaysAmortized?: number;
14
+ /** total spend over the previous 30 days */
10
15
  spendPrevious30Days?: number;
11
16
  spendPrevious30DaysAmortized?: number;
17
+ /** total spend over the last 7 days */
12
18
  spend7Days?: number;
13
19
  spend7DaysAmortized?: number;
20
+ /** total spend over the previous 7 days */
14
21
  spendPrevious7Days?: number;
15
22
  spendPrevious7DaysAmortized?: number;
16
23
  }
17
24
  export interface ResourceByLocation {
18
25
  location: string;
19
26
  resources: number;
27
+ /** total spend in the current billing period */
20
28
  spendBilling?: number;
29
+ /** total amortized spend in the current billing period */
21
30
  spendBillingAmortized?: number;
31
+ /** total spend in the previous billing period */
22
32
  spendPreviousBilling?: number;
23
33
  spendPreviousBillingAmortized?: number;
34
+ /** total spend over the last 30 days */
24
35
  spend30Days?: number;
25
36
  spend30DaysAmortized?: number;
37
+ /** total spend over the previous 30 days */
26
38
  spendPrevious30Days?: number;
27
39
  spendPrevious30DaysAmortized?: number;
40
+ /** total spend over the last 7 days */
28
41
  spend7Days?: number;
29
42
  spend7DaysAmortized?: number;
43
+ /** total spend over the previous 7 days */
30
44
  spendPrevious7Days?: number;
31
45
  spendPrevious7DaysAmortized?: number;
32
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/azure/resources.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/azure/resources.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,139 @@
1
+ export interface ReviewChecklistRequest {
2
+ tenantId?: string;
3
+ subscriptionIds: string[];
4
+ checklistId?: string;
5
+ categories?: string[];
6
+ onlyFailed?: boolean;
7
+ limitEvidence?: number;
8
+ }
9
+ export interface ReviewChecklistPayload extends ReviewChecklistRequest {
10
+ cloudAccountId: string;
11
+ }
12
+ export interface ReviewChecklistScanRequest {
13
+ cloudAccountId: string;
14
+ subscriptionId: string;
15
+ }
16
+ export type ReviewChecklistItemStatus = 'NotVerified' | 'Open' | 'Fulfilled' | 'Error' | 'NotRequired' | 'NA';
17
+ export interface ReviewChecklistItem {
18
+ guid: string;
19
+ id?: string;
20
+ category?: string;
21
+ subcategory?: string;
22
+ text?: string;
23
+ description?: string;
24
+ severity?: string;
25
+ waf?: string;
26
+ service?: string;
27
+ topics?: string[];
28
+ link?: string;
29
+ training?: string;
30
+ headline?: string;
31
+ plainSummary?: string;
32
+ effortHours?: number;
33
+ effortReason?: string;
34
+ graph?: string;
35
+ hasGraph?: boolean;
36
+ graphSourceAI?: boolean;
37
+ }
38
+ export interface ReviewChecklistItemState {
39
+ guid: string;
40
+ checklistId: string;
41
+ subscriptionId: string;
42
+ status?: ReviewChecklistItemStatus;
43
+ statusSource?: 'system' | 'user';
44
+ comments?: string;
45
+ lastUpdated?: string;
46
+ updatedBy?: string;
47
+ updatedByUserId?: string;
48
+ }
49
+ export interface ReviewChecklistItemStateUpdateRequest {
50
+ status?: ReviewChecklistItemStatus;
51
+ comments?: string;
52
+ }
53
+ export interface ReviewChecklistDefinition {
54
+ checklistId: string;
55
+ source?: {
56
+ commit?: string;
57
+ syncedAt?: string;
58
+ };
59
+ metadata?: {
60
+ name?: string;
61
+ state?: string;
62
+ timestamp?: string;
63
+ [key: string]: unknown;
64
+ };
65
+ categories?: string[];
66
+ items: ReviewChecklistItem[];
67
+ }
68
+ export interface ReviewChecklistItemResult {
69
+ guid: string;
70
+ status: ReviewChecklistItemStatus;
71
+ compliantCount: number;
72
+ nonCompliantCount: number;
73
+ compliantIds: string[];
74
+ nonCompliantIds: string[];
75
+ error?: string;
76
+ }
77
+ export interface ReviewChecklistItemOutput extends ReviewChecklistItemResult {
78
+ id: string | null;
79
+ category: string | null;
80
+ subcategory: string | null;
81
+ text: string | null;
82
+ description: string | null;
83
+ severity: string | null;
84
+ waf: string | null;
85
+ service: string | null;
86
+ link: string | null;
87
+ training: string | null;
88
+ headline: string | null;
89
+ plainSummary: string | null;
90
+ effortHours: number | null;
91
+ effortReason: string | null;
92
+ hasGraph: boolean | null;
93
+ graphSourceAI: boolean | null;
94
+ comments?: string | null;
95
+ statusSource?: 'system' | 'user';
96
+ lastUpdated?: string | null;
97
+ updatedBy?: string | null;
98
+ }
99
+ export interface ReviewChecklistSubscriptionResult {
100
+ subscriptionId: string;
101
+ items: ReviewChecklistItemOutput[];
102
+ }
103
+ export type ChecklistScanStatus = 'Completed' | 'Failed' | 'In Progress';
104
+ export interface ReviewChecklistDocument {
105
+ checklistId: string;
106
+ tenantId: string;
107
+ subscriptionId: string;
108
+ sourceVersion?: string;
109
+ name: string | null;
110
+ state: string | null;
111
+ timestamp: string | null;
112
+ scanStatus: ChecklistScanStatus;
113
+ /** ISO 8601 timestamp */
114
+ generatedAt: string;
115
+ items: ReviewChecklistItemOutput[];
116
+ }
117
+ export interface ReviewChecklistRunResult {
118
+ checklistId: string;
119
+ tenantId: string;
120
+ sourceVersion?: string;
121
+ name: string | null;
122
+ state: string | null;
123
+ timestamp: string | null;
124
+ scanStatus: ChecklistScanStatus;
125
+ generatedAt: string;
126
+ subscriptions: ReviewChecklistSubscriptionResult[];
127
+ }
128
+ export type ReviewChecklistCatalogueState = 'Preview' | 'preview' | 'GA' | 'Deprecated' | string | null;
129
+ export interface ReviewChecklistCatalogueEntry {
130
+ id: string;
131
+ name: string;
132
+ serviceName: string;
133
+ state: ReviewChecklistCatalogueState;
134
+ /** ISO 8601 date (YYYY-MM-DD) */
135
+ lastModified: string;
136
+ star: boolean;
137
+ }
138
+ export type ReviewChecklistCatalogue = ReviewChecklistCatalogueEntry[];
139
+ //# sourceMappingURL=reviewChecklist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewChecklist.d.ts","sourceRoot":"","sources":["../../src/azure/reviewChecklist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=reviewChecklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewChecklist.js","sourceRoot":"","sources":["../../src/azure/reviewChecklist.ts"],"names":[],"mappings":""}
@@ -1,7 +1,8 @@
1
1
  export interface SecurityImpact {
2
- subscriptionId: string;
2
+ id?: string;
3
3
  controlDisplayName: string;
4
4
  controlName: string;
5
+ /** Recommendation ids */
5
6
  recommendationIds: string[];
6
7
  notApplicableResourceCount: number;
7
8
  unhealthyResourceCount: number;
@@ -11,4 +12,17 @@ export interface SecurityImpact {
11
12
  currentScore: number;
12
13
  potentialScoreIncrease: number;
13
14
  }
15
+ /** For individual resource status */
16
+ export interface SecurityAssessmentStatus {
17
+ resourceId: string;
18
+ status: 'Healthy' | 'Unhealthy' | 'NotApplicable';
19
+ }
20
+ /** For subscription level */
21
+ export interface SubscriptionSecurityStatus {
22
+ activeRecommendations: number;
23
+ totalRecommendations: number;
24
+ healthyResources: number;
25
+ unhealthyResources: number;
26
+ notApplicableResources: number;
27
+ }
14
28
  //# sourceMappingURL=security.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/azure/security.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;CAChC"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/azure/security.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,qCAAqC;AACrC,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,eAAe,CAAC;CACnD;AAED,6BAA6B;AAC7B,MAAM,WAAW,0BAA0B;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;CAChC"}
@@ -0,0 +1,28 @@
1
+ import { Tags } from '../tags';
2
+ import { ServiceRetirementRecommendation } from './recommendations';
3
+ import type { BenefitCoverageSummary } from './views.js';
4
+ export interface ServiceRetirement {
5
+ id: string;
6
+ subscriptionId: string;
7
+ resourceId: string;
8
+ resourceName: string;
9
+ resourceType: string;
10
+ resourceGroup: string;
11
+ location: string;
12
+ retiringFeature: string;
13
+ retirementDate: string;
14
+ effort?: 'high' | 'medium' | 'low';
15
+ effortHours?: number;
16
+ tags?: Record<string, string>;
17
+ spottoTags?: Tags;
18
+ }
19
+ export interface ServiceRetirementPortalResource {
20
+ id: string;
21
+ name?: string;
22
+ resourceType?: string;
23
+ benefitsCoverage?: BenefitCoverageSummary;
24
+ }
25
+ export interface ServiceRetirementPortalEntry extends ServiceRetirementRecommendation {
26
+ resources: ServiceRetirementPortalResource[];
27
+ }
28
+ //# sourceMappingURL=serviceRetirement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceRetirement.d.ts","sourceRoot":"","sources":["../../src/azure/serviceRetirement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,+BAA+B;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED,MAAM,WAAW,4BAA6B,SAAQ,+BAA+B;IACnF,SAAS,EAAE,+BAA+B,EAAE,CAAC;CAC9C"}