@spottoai/types-package 1.0.2-beta.406 → 1.0.2-beta.408

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 (32) hide show
  1. package/dist/azure/reportEvidence.d.ts +516 -0
  2. package/dist/azure/reportEvidence.d.ts.map +1 -0
  3. package/dist/azure/reportEvidence.js +17 -0
  4. package/dist/azure/reportEvidence.js.map +1 -0
  5. package/dist/azure/reportEvidenceValidation.d.ts +5 -0
  6. package/dist/azure/reportEvidenceValidation.d.ts.map +1 -0
  7. package/dist/azure/reportEvidenceValidation.js +385 -0
  8. package/dist/azure/reportEvidenceValidation.js.map +1 -0
  9. package/dist/azure/reportEvidenceValidationHelpers.d.ts +27 -0
  10. package/dist/azure/reportEvidenceValidationHelpers.d.ts.map +1 -0
  11. package/dist/azure/reportEvidenceValidationHelpers.js +134 -0
  12. package/dist/azure/reportEvidenceValidationHelpers.js.map +1 -0
  13. package/dist/environment/validation.d.ts.map +1 -1
  14. package/dist/environment/validation.js +28 -3
  15. package/dist/environment/validation.js.map +1 -1
  16. package/dist/esm/azure/reportEvidence.js +13 -0
  17. package/dist/esm/azure/reportEvidenceValidation.js +378 -0
  18. package/dist/esm/azure/reportEvidenceValidationHelpers.js +106 -0
  19. package/dist/esm/environment/validation.js +29 -4
  20. package/dist/esm/index.js +2 -0
  21. package/dist/events/alertDefinitionRun.d.ts +4 -0
  22. package/dist/events/alertDefinitionRun.d.ts.map +1 -1
  23. package/dist/events/baseAlert.d.ts +1 -0
  24. package/dist/events/baseAlert.d.ts.map +1 -1
  25. package/dist/events/quickAlerts.d.ts +13 -4
  26. package/dist/events/quickAlerts.d.ts.map +1 -1
  27. package/dist/events/quickAlerts.js.map +1 -1
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -1
  32. package/package.json +1 -1
@@ -0,0 +1,516 @@
1
+ import type { CostSavingsSummaryBasis } from './views';
2
+ import type { TenantMfaEnforcementStatus } from './governance';
3
+ export declare const REPORT_EVIDENCE_LIMITS: {
4
+ readonly detailRows: 50;
5
+ readonly currentRecommendations: 90;
6
+ readonly recommendationResources: 2;
7
+ readonly summaryDimensions: 25;
8
+ readonly summaryRows: 20;
9
+ readonly topRecommendationIds: 20;
10
+ readonly topRecommendationIdsPerPillar: 5;
11
+ readonly upcomingEvents: 20;
12
+ readonly historyPeriods: 13;
13
+ readonly historyRecommendations: 90;
14
+ readonly tenantGlobalAdministrators: 50;
15
+ };
16
+ /** An additive report section whose stable field-level contract has not yet been promoted. */
17
+ export type ReportProjectionRecord = Record<string, unknown>;
18
+ export interface ReportBoundedRows<T> {
19
+ totalCount: number;
20
+ rows: T[];
21
+ omittedCount: number;
22
+ }
23
+ export interface ReportSourceFileStatus {
24
+ path: string;
25
+ available: boolean;
26
+ recordCount?: number;
27
+ note?: string;
28
+ }
29
+ export interface ReportEvidenceReference {
30
+ source: string;
31
+ summary: string;
32
+ value?: string | number | boolean;
33
+ }
34
+ export interface ReportCompactRecommendationResource {
35
+ id: string;
36
+ name?: string;
37
+ type?: string;
38
+ resourceGroup?: string;
39
+ location?: string;
40
+ spend?: number;
41
+ spendAmortized?: number;
42
+ currency?: string;
43
+ currencySymbol?: string;
44
+ savings?: {
45
+ minAmount?: number;
46
+ maxAmount?: number;
47
+ };
48
+ }
49
+ export interface ReportCompactRecommendation {
50
+ recommendation: {
51
+ id: string;
52
+ name?: string;
53
+ title: string;
54
+ headline?: string;
55
+ plainSummary?: string;
56
+ bottomLine?: string;
57
+ description?: string;
58
+ remediation?: string;
59
+ impactReason?: string;
60
+ effortReason?: string;
61
+ potentialBenefits?: string;
62
+ considerations?: string;
63
+ technicalPlaybook?: string;
64
+ category?: string;
65
+ subCategory?: string;
66
+ impact?: string;
67
+ effort?: string;
68
+ effortHours?: number;
69
+ severity?: string;
70
+ risk?: string;
71
+ priority?: string;
72
+ priorityLabel?: string;
73
+ priorityTier?: string;
74
+ manualPriority?: string;
75
+ resolved?: boolean;
76
+ costImpact?: number;
77
+ costImpactUnit?: string;
78
+ potentialMonthlySavings?: number;
79
+ confidencePercentage?: number;
80
+ adjustedScore?: number;
81
+ finalScore?: number;
82
+ normalizedScore?: number;
83
+ };
84
+ resources: ReportCompactRecommendationResource[];
85
+ resourcesCount: number;
86
+ omittedResourceCount: number;
87
+ savings?: {
88
+ minAmount?: number;
89
+ maxAmount?: number;
90
+ };
91
+ currency?: string;
92
+ currencySymbol?: string;
93
+ }
94
+ export type ReportImpactBand = 'High' | 'Medium' | 'Low' | 'Unknown';
95
+ export type ReportEffortBand = 'Low' | 'Medium' | 'High' | 'Unknown';
96
+ export interface ReportCostSavingsCategory {
97
+ key: string;
98
+ label: string;
99
+ recommendationCount: number;
100
+ resourceCount: number;
101
+ currentMonthlyCost: number;
102
+ potentialMonthlyCost: number;
103
+ minimumMonthlySavings: number;
104
+ maximumMonthlySavings: number;
105
+ }
106
+ export interface ReportCostSavingsProjection {
107
+ currency: string;
108
+ currencySymbol?: string;
109
+ contributingRecommendationCount: number;
110
+ monthly: {
111
+ currentCost: number;
112
+ potentialCost: number;
113
+ minimumSavings: number;
114
+ maximumSavings: number;
115
+ minimumSavingsPercent?: number;
116
+ maximumSavingsPercent?: number;
117
+ };
118
+ annual: {
119
+ minimumSavings: number;
120
+ maximumSavings: number;
121
+ };
122
+ categories: ReportBoundedRows<ReportCostSavingsCategory>;
123
+ basis?: CostSavingsSummaryBasis;
124
+ }
125
+ export interface ReportRecommendationPortfolio {
126
+ sourceRecommendationCount: number;
127
+ activeRecommendationCount: number;
128
+ resolvedRecommendationCount: number;
129
+ highImpactCount: number;
130
+ quickWinCount: number;
131
+ byCategory: Record<string, number>;
132
+ byImpact: Record<ReportImpactBand, number>;
133
+ byEffort: Record<ReportEffortBand, number>;
134
+ impactEffortMatrix: Array<{
135
+ impact: ReportImpactBand;
136
+ effort: ReportEffortBand;
137
+ count: number;
138
+ }>;
139
+ affectedResources: {
140
+ count: number;
141
+ identifiedCount: number;
142
+ largestReportedRecommendationCount: number;
143
+ basis: 'exact' | 'lower-bound';
144
+ };
145
+ costSavings?: ReportCostSavingsProjection;
146
+ }
147
+ export interface ReportResourceExample {
148
+ name: string;
149
+ type?: string;
150
+ resourceGroup?: string;
151
+ location?: string;
152
+ }
153
+ export interface ReportSnapshotRow {
154
+ name: string;
155
+ resourceGroup?: string;
156
+ createdTime?: number;
157
+ }
158
+ export interface ReportAppliedTagCostRow {
159
+ tagKey: string;
160
+ tagValue: string;
161
+ resourceCount: number;
162
+ spend30Days: number;
163
+ }
164
+ export interface ReportInventoryResourceRow {
165
+ id: string;
166
+ name?: string;
167
+ type?: string;
168
+ resourceGroup?: string;
169
+ location?: string;
170
+ spend30Days?: number;
171
+ spend30DaysAmortized?: number;
172
+ createdTime?: number;
173
+ }
174
+ export interface ReportInventoryProjection {
175
+ totalResources: number;
176
+ untaggedResourceCount: number;
177
+ untaggedExamples: ReportBoundedRows<ReportResourceExample>;
178
+ snapshots: ReportBoundedRows<ReportSnapshotRow>;
179
+ appliedTagCosts: ReportBoundedRows<ReportAppliedTagCostRow>;
180
+ topSpendResources: ReportBoundedRows<ReportInventoryResourceRow>;
181
+ }
182
+ export interface ReportPrivilegedAccessRow {
183
+ principalId: string;
184
+ displayName: string;
185
+ userPrincipalName?: string;
186
+ roleName: string;
187
+ scope?: string;
188
+ scopeType?: string;
189
+ lastLogonDate?: string;
190
+ mfaStatus?: string;
191
+ }
192
+ export interface ReportGovernanceProjection extends ReportProjectionRecord {
193
+ generatedAt?: string;
194
+ coverage?: ReportProjectionRecord;
195
+ policySummary: ReportProjectionRecord;
196
+ rbacSummary: ReportProjectionRecord;
197
+ globalAdministratorSummary: ReportProjectionRecord;
198
+ complianceRows: ReportBoundedRows<ReportProjectionRecord>;
199
+ privilegedAccessRows: ReportBoundedRows<ReportPrivilegedAccessRow>;
200
+ findings: ReportBoundedRows<ReportProjectionRecord>;
201
+ limitations: ReportBoundedRows<ReportProjectionRecord>;
202
+ }
203
+ export interface ReportCommitmentInventorySummary {
204
+ totalCount: number;
205
+ statusCounts: Record<string, number>;
206
+ }
207
+ export interface ReportCommitmentInventoryRow {
208
+ id?: string;
209
+ benefitType?: string;
210
+ type?: string;
211
+ displayName?: string;
212
+ status?: string;
213
+ expiryDate?: string;
214
+ daysToExpiry?: number;
215
+ reservedQuantity?: number;
216
+ skuName?: string;
217
+ skuDescription?: string;
218
+ location?: string;
219
+ term?: string;
220
+ renew?: boolean;
221
+ annualCommittedCost?: ReportProjectionRecord;
222
+ doNotRenewAnnualImpact?: ReportProjectionRecord;
223
+ }
224
+ export interface ReportCommitmentsProjection extends ReportProjectionRecord {
225
+ inventorySummary: ReportCommitmentInventorySummary;
226
+ inventory: ReportBoundedRows<ReportCommitmentInventoryRow>;
227
+ coverage: ReportBoundedRows<ReportProjectionRecord>;
228
+ obsoleteCandidates: ReportBoundedRows<ReportProjectionRecord>;
229
+ reallocationOpportunities: ReportBoundedRows<ReportProjectionRecord>;
230
+ purchaseRecommendations: ReportBoundedRows<ReportProjectionRecord>;
231
+ renewals: ReportBoundedRows<ReportProjectionRecord>;
232
+ }
233
+ export interface ReportPatchManagementProjection extends ReportProjectionRecord {
234
+ machines: ReportBoundedRows<ReportProjectionRecord>;
235
+ }
236
+ export interface ReportDataProtectionProjection extends ReportProjectionRecord {
237
+ items: ReportBoundedRows<ReportProjectionRecord>;
238
+ issues: ReportBoundedRows<ReportProjectionRecord>;
239
+ }
240
+ export interface ReportResourceHealthProjection {
241
+ events: ReportProjectionRecord & {
242
+ events: ReportBoundedRows<ReportProjectionRecord>;
243
+ };
244
+ availabilityStatuses: ReportProjectionRecord & {
245
+ statuses: ReportBoundedRows<ReportProjectionRecord>;
246
+ };
247
+ }
248
+ export interface ReportServerUptimeProjection extends ReportProjectionRecord {
249
+ workspaces: ReportBoundedRows<ReportProjectionRecord>;
250
+ gaps: ReportBoundedRows<ReportProjectionRecord>;
251
+ servers: ReportBoundedRows<ReportProjectionRecord>;
252
+ }
253
+ export interface ReportPublicIpProjection extends ReportProjectionRecord {
254
+ items: ReportBoundedRows<ReportProjectionRecord>;
255
+ }
256
+ export interface ReportActivityProjection extends ReportProjectionRecord {
257
+ changes: ReportBoundedRows<ReportProjectionRecord>;
258
+ security: ReportBoundedRows<ReportProjectionRecord>;
259
+ health: ReportBoundedRows<ReportProjectionRecord>;
260
+ suppressed: ReportBoundedRows<ReportProjectionRecord>;
261
+ }
262
+ export interface SubscriptionReportingProjection {
263
+ dashboard: ReportProjectionRecord;
264
+ recommendationPortfolio: ReportRecommendationPortfolio;
265
+ recommendations: ReportBoundedRows<ReportCompactRecommendation>;
266
+ serviceRetirements: ReportBoundedRows<ReportProjectionRecord>;
267
+ inventory: ReportInventoryProjection;
268
+ governance: ReportGovernanceProjection;
269
+ patchManagement: ReportPatchManagementProjection;
270
+ dataProtection: ReportDataProtectionProjection;
271
+ resourceHealth: ReportResourceHealthProjection;
272
+ serverUptime: ReportServerUptimeProjection;
273
+ publicIpAddresses: ReportPublicIpProjection;
274
+ activity: ReportActivityProjection;
275
+ commitmentsPlanning: ReportCommitmentsProjection;
276
+ }
277
+ export interface SubscriptionReportResourceSummary {
278
+ total: number;
279
+ byType: Array<{
280
+ type: string;
281
+ count: number;
282
+ spend30Days?: number;
283
+ }>;
284
+ byLocation: Array<{
285
+ location: string;
286
+ count: number;
287
+ spend30Days?: number;
288
+ }>;
289
+ tagCoverage: {
290
+ withTags: number;
291
+ withoutTags: number;
292
+ coveragePercentage: number;
293
+ topTagKeys: Array<{
294
+ key: string;
295
+ count: number;
296
+ }>;
297
+ };
298
+ topSpendResources: Array<{
299
+ id: string;
300
+ name: string;
301
+ type: string;
302
+ location?: string;
303
+ spend30Days: number;
304
+ spend30DaysAmortized?: number;
305
+ }>;
306
+ }
307
+ export interface SubscriptionReportEvidencePack {
308
+ generatedAt: string;
309
+ generation: {
310
+ sourceRunId?: string;
311
+ sourceGeneratedAt?: string;
312
+ };
313
+ scope: {
314
+ companyId?: string;
315
+ tenantId?: string;
316
+ subscriptionId: string;
317
+ displayName?: string;
318
+ currency?: string;
319
+ currencySymbol?: string;
320
+ };
321
+ coverage: {
322
+ sourceFiles: Record<string, ReportSourceFileStatus>;
323
+ gaps: string[];
324
+ };
325
+ estate: SubscriptionReportResourceSummary;
326
+ cost: {
327
+ currency?: string;
328
+ currencySymbol?: string;
329
+ spend30Days?: number;
330
+ spend30DaysAmortized?: number;
331
+ totalRetailCost?: number;
332
+ miscCost?: number;
333
+ budget?: ReportProjectionRecord;
334
+ period?: {
335
+ type: 'rolling_30_days';
336
+ startDate?: string;
337
+ endDate?: string;
338
+ source: string;
339
+ };
340
+ sourceMetadata: {
341
+ spend30DaysSource: string;
342
+ spend30DaysAmortizedSource: string;
343
+ totalRetailCostSource: string;
344
+ rollingCostFile: string;
345
+ rollingCostRecordCount?: number;
346
+ };
347
+ rollingCostRecordCount?: number;
348
+ topSpendResources: SubscriptionReportResourceSummary['topSpendResources'];
349
+ };
350
+ recommendations: {
351
+ total: number;
352
+ byPillar: Record<string, number>;
353
+ byImpact: Record<string, number>;
354
+ byEffort: Record<string, number>;
355
+ topRecommendationIds: string[];
356
+ topRecommendationIdsByPillar: Record<string, string[]>;
357
+ };
358
+ security: {
359
+ secureScore?: number;
360
+ subscriptionSecurityStatus?: unknown;
361
+ publicIpExposure?: unknown;
362
+ governance?: {
363
+ policySummary?: unknown;
364
+ rbacSummary?: unknown;
365
+ accessSummary?: unknown;
366
+ findingCount?: number;
367
+ coverage?: unknown;
368
+ };
369
+ };
370
+ reliability: {
371
+ serviceRetirements: {
372
+ total: number;
373
+ sourceRecordCount: number;
374
+ excludedUnlinked: number;
375
+ excludedCommitmentExpiries: number;
376
+ within180Days: number;
377
+ expiredOrPastDue: number;
378
+ upcoming: Array<{
379
+ id?: string;
380
+ title?: string;
381
+ retirementDate?: string;
382
+ resourceCount: number;
383
+ }>;
384
+ };
385
+ relationshipGraph?: {
386
+ totalNodes?: number;
387
+ totalEdges?: number;
388
+ unresolvedCount?: number;
389
+ buildMs?: number;
390
+ };
391
+ recommendationCount: number;
392
+ };
393
+ commitments: {
394
+ expiries: {
395
+ total: number;
396
+ sourceRecordCount: number;
397
+ within180Days: number;
398
+ expiredOrPastDue: number;
399
+ upcoming: Array<{
400
+ id?: string;
401
+ title?: string;
402
+ expiryDate?: string;
403
+ resourceCount: number;
404
+ }>;
405
+ };
406
+ };
407
+ performance: {
408
+ recommendationCount: number;
409
+ topRecommendationIds: string[];
410
+ };
411
+ operationalExcellence: {
412
+ recommendationCount: number;
413
+ tagCoverage: SubscriptionReportResourceSummary['tagCoverage'];
414
+ activityLogSummary?: unknown;
415
+ };
416
+ reporting: SubscriptionReportingProjection;
417
+ evidence: ReportEvidenceReference[];
418
+ }
419
+ export interface ReportRecommendationFingerprint {
420
+ id: string;
421
+ title: string;
422
+ category?: string;
423
+ impact?: string;
424
+ severity?: string;
425
+ resolved?: boolean;
426
+ affectedResourceCount: number;
427
+ potentialMonthlySavings?: number;
428
+ maximumMonthlySavings?: number;
429
+ costImpact?: number;
430
+ currency?: string;
431
+ }
432
+ export interface SubscriptionReportHistoryMetrics {
433
+ subscriptionName?: string;
434
+ currency?: string;
435
+ currencySymbol?: string;
436
+ secureScore?: number;
437
+ advisorScore?: number;
438
+ spend30Days?: number;
439
+ spend30DaysAmortized?: number;
440
+ resourceCount: number;
441
+ recommendationCount: number;
442
+ impactedResourceCount: number;
443
+ securityRecommendationCount: number;
444
+ securityImpactedResourceCount: number;
445
+ maximumMonthlySavings?: number;
446
+ }
447
+ export interface SubscriptionReportHistoryPeriod {
448
+ period: string;
449
+ sourceRunId: string;
450
+ sourceGeneratedAt: string;
451
+ metrics: SubscriptionReportHistoryMetrics;
452
+ recommendations: ReportBoundedRows<ReportRecommendationFingerprint>;
453
+ }
454
+ export interface SubscriptionReportHistory {
455
+ subscriptionId: string;
456
+ generatedAt: string;
457
+ retention: {
458
+ maxPeriods: typeof REPORT_EVIDENCE_LIMITS.historyPeriods;
459
+ };
460
+ periods: SubscriptionReportHistoryPeriod[];
461
+ }
462
+ export interface TenantReportMfaSummary {
463
+ assessmentState?: string;
464
+ enumeratedUsers: number;
465
+ activeUsers: number;
466
+ disabledUsers: number;
467
+ assessedActiveUsers: number;
468
+ mfaCapableUsers?: number;
469
+ notMfaCapableUsers?: number;
470
+ unknownRegistrationUsers?: number;
471
+ enforcementKnownUsers: number;
472
+ enforcementUnknownUsers: number;
473
+ countsAreLowerBounds: boolean;
474
+ enforcement: Record<TenantMfaEnforcementStatus, number>;
475
+ }
476
+ export interface TenantReportCoverageSection {
477
+ state?: string;
478
+ source?: string;
479
+ reason?: string;
480
+ message?: string;
481
+ requiredPermissions?: string[];
482
+ lastAttemptedAt?: string;
483
+ lastSuccessfulAt?: string;
484
+ maximumSourceLagHours?: number;
485
+ }
486
+ export interface TenantReportGlobalAdministrator {
487
+ principalId: string;
488
+ principalType: string;
489
+ displayName?: string;
490
+ userPrincipalName?: string;
491
+ accountEnabled?: boolean;
492
+ mfaStatus?: string;
493
+ assignmentSource: string;
494
+ assignmentModes: string[];
495
+ isPimBacked: boolean;
496
+ lastActivatedAt?: string;
497
+ lastActivatedEvidence: string;
498
+ }
499
+ export interface TenantReportEvidencePack {
500
+ generatedAt: string;
501
+ scope: {
502
+ tenantId: string;
503
+ };
504
+ mfa: {
505
+ summary?: TenantReportMfaSummary;
506
+ tenantPolicy?: ReportProjectionRecord;
507
+ coverage?: Record<string, TenantReportCoverageSection>;
508
+ };
509
+ globalAdmins: {
510
+ summary: ReportProjectionRecord;
511
+ coverage: Record<string, TenantReportCoverageSection>;
512
+ warnings: ReportBoundedRows<ReportProjectionRecord>;
513
+ principals: ReportBoundedRows<TenantReportGlobalAdministrator>;
514
+ };
515
+ }
516
+ //# sourceMappingURL=reportEvidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportEvidence.d.ts","sourceRoot":"","sources":["../../src/azure/reportEvidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REPORT_EVIDENCE_LIMITS = void 0;
4
+ exports.REPORT_EVIDENCE_LIMITS = {
5
+ detailRows: 50,
6
+ currentRecommendations: 90,
7
+ recommendationResources: 2,
8
+ summaryDimensions: 25,
9
+ summaryRows: 20,
10
+ topRecommendationIds: 20,
11
+ topRecommendationIdsPerPillar: 5,
12
+ upcomingEvents: 20,
13
+ historyPeriods: 13,
14
+ historyRecommendations: 90,
15
+ tenantGlobalAdministrators: 50,
16
+ };
17
+ //# sourceMappingURL=reportEvidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportEvidence.js","sourceRoot":"","sources":["../../src/azure/reportEvidence.ts"],"names":[],"mappings":";;;AAGa,QAAA,sBAAsB,GAAG;IACpC,UAAU,EAAE,EAAE;IACd,sBAAsB,EAAE,EAAE;IAC1B,uBAAuB,EAAE,CAAC;IAC1B,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,oBAAoB,EAAE,EAAE;IACxB,6BAA6B,EAAE,CAAC;IAChC,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,sBAAsB,EAAE,EAAE;IAC1B,0BAA0B,EAAE,EAAE;CACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type SubscriptionReportEvidencePack, type SubscriptionReportHistory, type TenantReportEvidencePack } from './reportEvidence';
2
+ export declare const isSubscriptionReportEvidencePack: (value: unknown) => value is SubscriptionReportEvidencePack;
3
+ export declare const isSubscriptionReportHistory: (value: unknown) => value is SubscriptionReportHistory;
4
+ export declare const isTenantReportEvidencePack: (value: unknown) => value is TenantReportEvidencePack;
5
+ //# sourceMappingURL=reportEvidenceValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportEvidenceValidation.d.ts","sourceRoot":"","sources":["../../src/azure/reportEvidenceValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,8BAA8B,EAEnC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAE9B,MAAM,kBAAkB,CAAC;AA6S1B,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BA+C1E,CAAC;AA0BF,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,yBAmCrE,CAAC;AAoDF,eAAO,MAAM,0BAA0B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,wBAmBpE,CAAC"}