@spottoai/types-package 1.0.2-dev1138.12 → 1.0.2-dev1138.13

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 (523) hide show
  1. package/README.md +0 -9
  2. package/dist/accounts/accounts.d.ts +5 -84
  3. package/dist/accounts/accounts.d.ts.map +1 -1
  4. package/dist/accounts/accounts.js +1 -2
  5. package/dist/accounts/accounts.js.map +1 -1
  6. package/dist/accounts/azureSpSetup.d.ts +31 -142
  7. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  8. package/dist/accounts/azureSpSetup.js +0 -15
  9. package/dist/accounts/azureSpSetup.js.map +1 -1
  10. package/dist/accounts/azureSpSetupDurable.d.ts +0 -8
  11. package/dist/accounts/azureSpSetupDurable.d.ts.map +1 -1
  12. package/dist/accounts/azureSpSetupDurable.js +0 -28
  13. package/dist/accounts/azureSpSetupDurable.js.map +1 -1
  14. package/dist/accounts/index.d.ts +0 -1
  15. package/dist/accounts/index.d.ts.map +1 -1
  16. package/dist/accounts/index.js +0 -1
  17. package/dist/accounts/index.js.map +1 -1
  18. package/dist/accounts/readPermissions.d.ts +1 -1
  19. package/dist/accounts/readPermissions.d.ts.map +1 -1
  20. package/dist/accounts/readPermissions.js.map +1 -1
  21. package/dist/accounts/validation.d.ts +0 -24
  22. package/dist/accounts/validation.d.ts.map +1 -1
  23. package/dist/ai/index.d.ts +6 -302
  24. package/dist/ai/index.d.ts.map +1 -1
  25. package/dist/ai/index.js +0 -25
  26. package/dist/ai/index.js.map +1 -1
  27. package/dist/aws/commitments-planning.d.ts +0 -5
  28. package/dist/aws/commitments-planning.d.ts.map +1 -1
  29. package/dist/aws/commitments-planning.js +0 -19
  30. package/dist/aws/commitments-planning.js.map +1 -1
  31. package/dist/aws/estates.d.ts +1 -1
  32. package/dist/aws/estates.d.ts.map +1 -1
  33. package/dist/aws/estates.js +1 -7
  34. package/dist/aws/estates.js.map +1 -1
  35. package/dist/aws/index.d.ts +0 -5
  36. package/dist/aws/index.d.ts.map +1 -1
  37. package/dist/aws/index.js +0 -5
  38. package/dist/aws/index.js.map +1 -1
  39. package/dist/aws/onboarding.d.ts +0 -3
  40. package/dist/aws/onboarding.d.ts.map +1 -1
  41. package/dist/aws/requests.d.ts +2 -13
  42. package/dist/aws/requests.d.ts.map +1 -1
  43. package/dist/aws/requests.js +1 -1
  44. package/dist/aws/requests.js.map +1 -1
  45. package/dist/azure/activityLogs.d.ts +0 -8
  46. package/dist/azure/activityLogs.d.ts.map +1 -1
  47. package/dist/azure/activityLogs.js.map +1 -1
  48. package/dist/azure/benefits.d.ts +1 -1
  49. package/dist/azure/benefits.d.ts.map +1 -1
  50. package/dist/azure/billingPlots.d.ts +1 -7
  51. package/dist/azure/billingPlots.d.ts.map +1 -1
  52. package/dist/azure/billingPlots.js +4 -45
  53. package/dist/azure/billingPlots.js.map +1 -1
  54. package/dist/azure/commitmentsPlanning.d.ts +2 -8
  55. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  56. package/dist/azure/common.d.ts +5 -26
  57. package/dist/azure/common.d.ts.map +1 -1
  58. package/dist/azure/common.js +0 -30
  59. package/dist/azure/common.js.map +1 -1
  60. package/dist/azure/costComposition.d.ts +1 -11
  61. package/dist/azure/costComposition.d.ts.map +1 -1
  62. package/dist/azure/costComposition.js +1 -84
  63. package/dist/azure/costComposition.js.map +1 -1
  64. package/dist/azure/dataProtection.d.ts +4 -4
  65. package/dist/azure/dataProtection.d.ts.map +1 -1
  66. package/dist/azure/financialAnalytics.d.ts +8 -80
  67. package/dist/azure/financialAnalytics.d.ts.map +1 -1
  68. package/dist/azure/financialAnalyticsDelivery.d.ts +3 -72
  69. package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
  70. package/dist/azure/financialAnalyticsDelivery.js +1 -7
  71. package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
  72. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts +1 -9
  73. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts.map +1 -1
  74. package/dist/azure/financialAnalyticsDeliveryValidation.js +10 -190
  75. package/dist/azure/financialAnalyticsDeliveryValidation.js.map +1 -1
  76. package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -1
  77. package/dist/azure/financialAnalyticsValidation.js +19 -101
  78. package/dist/azure/financialAnalyticsValidation.js.map +1 -1
  79. package/dist/azure/financialAuthorityView.d.ts +0 -13
  80. package/dist/azure/financialAuthorityView.d.ts.map +1 -1
  81. package/dist/azure/financialAuthorityView.js.map +1 -1
  82. package/dist/azure/financialAuthorityViewValidation.d.ts +1 -3
  83. package/dist/azure/financialAuthorityViewValidation.d.ts.map +1 -1
  84. package/dist/azure/financialAuthorityViewValidation.js +2 -273
  85. package/dist/azure/financialAuthorityViewValidation.js.map +1 -1
  86. package/dist/azure/financialDataflow.d.ts +2 -45
  87. package/dist/azure/financialDataflow.d.ts.map +1 -1
  88. package/dist/azure/financialDataflow.js.map +1 -1
  89. package/dist/azure/financialDataflowValidation.d.ts +2 -5
  90. package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
  91. package/dist/azure/financialDataflowValidation.js +30 -203
  92. package/dist/azure/financialDataflowValidation.js.map +1 -1
  93. package/dist/azure/financialEvidenceAssessmentValidation.d.ts.map +1 -1
  94. package/dist/azure/financialEvidenceAssessmentValidation.js +0 -7
  95. package/dist/azure/financialEvidenceAssessmentValidation.js.map +1 -1
  96. package/dist/azure/financialPolicy.d.ts +3 -19
  97. package/dist/azure/financialPolicy.d.ts.map +1 -1
  98. package/dist/azure/financialPolicy.js.map +1 -1
  99. package/dist/azure/financialPolicyDelivery.d.ts +1 -75
  100. package/dist/azure/financialPolicyDelivery.d.ts.map +1 -1
  101. package/dist/azure/financialPolicyDelivery.js +1 -5
  102. package/dist/azure/financialPolicyDelivery.js.map +1 -1
  103. package/dist/azure/financialPolicyDeliveryValidation.d.ts +2 -16
  104. package/dist/azure/financialPolicyDeliveryValidation.d.ts.map +1 -1
  105. package/dist/azure/financialPolicyDeliveryValidation.js +5 -238
  106. package/dist/azure/financialPolicyDeliveryValidation.js.map +1 -1
  107. package/dist/azure/financialPolicyValidation.d.ts +0 -1
  108. package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
  109. package/dist/azure/financialPolicyValidation.js +16 -111
  110. package/dist/azure/financialPolicyValidation.js.map +1 -1
  111. package/dist/azure/financialProjection.d.ts +1 -11
  112. package/dist/azure/financialProjection.d.ts.map +1 -1
  113. package/dist/azure/financialProjection.js.map +1 -1
  114. package/dist/azure/financialProjectionValidation.d.ts.map +1 -1
  115. package/dist/azure/financialProjectionValidation.js +3 -43
  116. package/dist/azure/financialProjectionValidation.js.map +1 -1
  117. package/dist/azure/financialSavingsAuthority.d.ts +4 -68
  118. package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
  119. package/dist/azure/financialSavingsAuthority.js +1 -2
  120. package/dist/azure/financialSavingsAuthority.js.map +1 -1
  121. package/dist/azure/financialSavingsAuthorityValidation.d.ts +2 -6
  122. package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
  123. package/dist/azure/financialSavingsAuthorityValidation.js +2 -188
  124. package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
  125. package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
  126. package/dist/azure/financialSavingsCoordinateValidation.js +19 -98
  127. package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -1
  128. package/dist/azure/financialSavingsSurfaceProjection.d.ts +3 -82
  129. package/dist/azure/financialSavingsSurfaceProjection.d.ts.map +1 -1
  130. package/dist/azure/financialSavingsSurfaceProjection.js +1 -3
  131. package/dist/azure/financialSavingsSurfaceProjection.js.map +1 -1
  132. package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts.map +1 -1
  133. package/dist/azure/financialSavingsSurfaceProjectionValidation.js +13 -199
  134. package/dist/azure/financialSavingsSurfaceProjectionValidation.js.map +1 -1
  135. package/dist/azure/financialScope.d.ts +0 -14
  136. package/dist/azure/financialScope.d.ts.map +1 -1
  137. package/dist/azure/financialScope.js +0 -14
  138. package/dist/azure/financialScope.js.map +1 -1
  139. package/dist/azure/financialScopeBaseline.d.ts +3 -11
  140. package/dist/azure/financialScopeBaseline.d.ts.map +1 -1
  141. package/dist/azure/financialScopeBaseline.js +1 -14
  142. package/dist/azure/financialScopeBaseline.js.map +1 -1
  143. package/dist/azure/financialScopeBaselineIdentity.d.ts.map +1 -1
  144. package/dist/azure/financialScopeBaselineIdentity.js +4 -24
  145. package/dist/azure/financialScopeBaselineIdentity.js.map +1 -1
  146. package/dist/azure/financialScopeBaselineValidation.d.ts.map +1 -1
  147. package/dist/azure/financialScopeBaselineValidation.js +4 -21
  148. package/dist/azure/financialScopeBaselineValidation.js.map +1 -1
  149. package/dist/azure/financialScopeEvidence.d.ts +1 -1
  150. package/dist/azure/financialScopeEvidence.d.ts.map +1 -1
  151. package/dist/azure/governance.d.ts +0 -145
  152. package/dist/azure/governance.d.ts.map +1 -1
  153. package/dist/azure/governance.js +1 -2
  154. package/dist/azure/governance.js.map +1 -1
  155. package/dist/azure/metrics.d.ts +2 -2
  156. package/dist/azure/metrics.d.ts.map +1 -1
  157. package/dist/azure/payloads.d.ts +1 -55
  158. package/dist/azure/payloads.d.ts.map +1 -1
  159. package/dist/azure/prices.d.ts +12 -41
  160. package/dist/azure/prices.d.ts.map +1 -1
  161. package/dist/azure/recommendationState.d.ts +1 -1
  162. package/dist/azure/recommendationState.d.ts.map +1 -1
  163. package/dist/azure/recommendations.d.ts +5 -141
  164. package/dist/azure/recommendations.d.ts.map +1 -1
  165. package/dist/azure/recommendations.js +1 -3
  166. package/dist/azure/recommendations.js.map +1 -1
  167. package/dist/azure/relationships.d.ts +1 -1
  168. package/dist/azure/relationships.d.ts.map +1 -1
  169. package/dist/azure/reports.d.ts +10 -32
  170. package/dist/azure/reports.d.ts.map +1 -1
  171. package/dist/azure/reports.js.map +1 -1
  172. package/dist/azure/resources.d.ts +12 -24
  173. package/dist/azure/resources.d.ts.map +1 -1
  174. package/dist/azure/serviceRetirement.d.ts +2 -33
  175. package/dist/azure/serviceRetirement.d.ts.map +1 -1
  176. package/dist/azure/storage-inventory.d.ts +0 -44
  177. package/dist/azure/storage-inventory.d.ts.map +1 -1
  178. package/dist/azure/subscriptions.d.ts +11 -57
  179. package/dist/azure/subscriptions.d.ts.map +1 -1
  180. package/dist/azure/subscriptions.js +0 -35
  181. package/dist/azure/subscriptions.js.map +1 -1
  182. package/dist/azure/views.d.ts +22 -86
  183. package/dist/azure/views.d.ts.map +1 -1
  184. package/dist/azure/views.js +1 -8
  185. package/dist/azure/views.js.map +1 -1
  186. package/dist/common/provider.d.ts +0 -53
  187. package/dist/common/provider.d.ts.map +1 -1
  188. package/dist/common/provider.js.map +1 -1
  189. package/dist/company/company.d.ts +0 -1
  190. package/dist/company/company.d.ts.map +1 -1
  191. package/dist/esm/accounts/accounts.js +0 -1
  192. package/dist/esm/accounts/azureSpSetup.js +1 -14
  193. package/dist/esm/accounts/azureSpSetupDurable.js +1 -27
  194. package/dist/esm/accounts/index.js +0 -1
  195. package/dist/esm/ai/index.js +1 -10
  196. package/dist/esm/aws/commitments-planning.js +0 -5
  197. package/dist/esm/aws/estates.js +1 -7
  198. package/dist/esm/aws/index.js +0 -5
  199. package/dist/esm/aws/requests.js +1 -1
  200. package/dist/esm/azure/billingPlots.js +4 -45
  201. package/dist/esm/azure/common.js +1 -28
  202. package/dist/esm/azure/costComposition.js +0 -80
  203. package/dist/esm/azure/financialAnalyticsDelivery.js +0 -5
  204. package/dist/esm/azure/financialAnalyticsDeliveryValidation.js +11 -184
  205. package/dist/esm/azure/financialAnalyticsValidation.js +19 -101
  206. package/dist/esm/azure/financialAuthorityViewValidation.js +1 -271
  207. package/dist/esm/azure/financialDataflowValidation.js +29 -199
  208. package/dist/esm/azure/financialEvidenceAssessmentValidation.js +0 -7
  209. package/dist/esm/azure/financialPolicyDelivery.js +0 -4
  210. package/dist/esm/azure/financialPolicyDeliveryValidation.js +7 -227
  211. package/dist/esm/azure/financialPolicyValidation.js +16 -110
  212. package/dist/esm/azure/financialProjectionValidation.js +3 -43
  213. package/dist/esm/azure/financialSavingsAuthority.js +0 -1
  214. package/dist/esm/azure/financialSavingsAuthorityValidation.js +2 -186
  215. package/dist/esm/azure/financialSavingsCoordinateValidation.js +19 -98
  216. package/dist/esm/azure/financialSavingsSurfaceProjection.js +0 -2
  217. package/dist/esm/azure/financialSavingsSurfaceProjectionValidation.js +13 -199
  218. package/dist/esm/azure/financialScope.js +0 -14
  219. package/dist/esm/azure/financialScopeBaseline.js +0 -12
  220. package/dist/esm/azure/financialScopeBaselineIdentity.js +4 -24
  221. package/dist/esm/azure/financialScopeBaselineValidation.js +4 -21
  222. package/dist/esm/azure/governance.js +0 -1
  223. package/dist/esm/azure/recommendations.js +0 -2
  224. package/dist/esm/azure/subscriptions.js +1 -33
  225. package/dist/esm/azure/views.js +1 -8
  226. package/dist/esm/entries/commitments-planning.js +2 -2
  227. package/dist/esm/identity/index.js +0 -1
  228. package/dist/esm/index.js +0 -13
  229. package/dist/esm/index.vite.js +0 -11
  230. package/dist/esm/scheduler/index.js +0 -3
  231. package/dist/events/alertDefinitionRun.d.ts +0 -4
  232. package/dist/events/alertDefinitionRun.d.ts.map +1 -1
  233. package/dist/events/baseAlert.d.ts +0 -1
  234. package/dist/events/baseAlert.d.ts.map +1 -1
  235. package/dist/events/cost.d.ts +0 -4
  236. package/dist/events/cost.d.ts.map +1 -1
  237. package/dist/events/quickAlerts.d.ts +4 -13
  238. package/dist/events/quickAlerts.d.ts.map +1 -1
  239. package/dist/events/quickAlerts.js.map +1 -1
  240. package/dist/features-and-permissions/access.d.ts +0 -79
  241. package/dist/features-and-permissions/access.d.ts.map +1 -1
  242. package/dist/identity/index.d.ts +0 -1
  243. package/dist/identity/index.d.ts.map +1 -1
  244. package/dist/identity/index.js +0 -1
  245. package/dist/identity/index.js.map +1 -1
  246. package/dist/index.d.ts +0 -13
  247. package/dist/index.d.ts.map +1 -1
  248. package/dist/index.js +0 -19
  249. package/dist/index.js.map +1 -1
  250. package/dist/index.vite.d.ts +0 -11
  251. package/dist/index.vite.d.ts.map +1 -1
  252. package/dist/index.vite.js +0 -15
  253. package/dist/index.vite.js.map +1 -1
  254. package/dist/portfolio/portfolioOperations.d.ts +1 -1
  255. package/dist/portfolio/portfolioOperations.d.ts.map +1 -1
  256. package/dist/scheduler/index.d.ts +0 -3
  257. package/dist/scheduler/index.d.ts.map +1 -1
  258. package/dist/scheduler/index.js +0 -3
  259. package/dist/scheduler/index.js.map +1 -1
  260. package/dist/scheduler/scheduler.d.ts +10 -14
  261. package/dist/scheduler/scheduler.d.ts.map +1 -1
  262. package/package.json +3 -20
  263. package/dist/accounts/azureManualOnboarding.d.ts +0 -114
  264. package/dist/accounts/azureManualOnboarding.d.ts.map +0 -1
  265. package/dist/accounts/azureManualOnboarding.js +0 -12
  266. package/dist/accounts/azureManualOnboarding.js.map +0 -1
  267. package/dist/ai/conversationHistory.d.ts +0 -52
  268. package/dist/ai/conversationHistory.d.ts.map +0 -1
  269. package/dist/ai/conversationHistory.js +0 -10
  270. package/dist/ai/conversationHistory.js.map +0 -1
  271. package/dist/ai/grounding.d.ts +0 -41
  272. package/dist/ai/grounding.d.ts.map +0 -1
  273. package/dist/ai/grounding.js +0 -86
  274. package/dist/ai/grounding.js.map +0 -1
  275. package/dist/ai/workspaceArtifacts.d.ts +0 -587
  276. package/dist/ai/workspaceArtifacts.d.ts.map +0 -1
  277. package/dist/ai/workspaceArtifacts.js +0 -162
  278. package/dist/ai/workspaceArtifacts.js.map +0 -1
  279. package/dist/aws/organizationCommitments.d.ts +0 -260
  280. package/dist/aws/organizationCommitments.d.ts.map +0 -1
  281. package/dist/aws/organizationCommitments.js +0 -53
  282. package/dist/aws/organizationCommitments.js.map +0 -1
  283. package/dist/aws/organizationCommitmentsApiValidation.d.ts +0 -21
  284. package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +0 -1
  285. package/dist/aws/organizationCommitmentsApiValidation.js +0 -226
  286. package/dist/aws/organizationCommitmentsApiValidation.js.map +0 -1
  287. package/dist/aws/organizationCommitmentsValidation.d.ts +0 -12
  288. package/dist/aws/organizationCommitmentsValidation.d.ts.map +0 -1
  289. package/dist/aws/organizationCommitmentsValidation.js +0 -228
  290. package/dist/aws/organizationCommitmentsValidation.js.map +0 -1
  291. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts +0 -9
  292. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +0 -1
  293. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +0 -407
  294. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +0 -1
  295. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +0 -17
  296. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +0 -1
  297. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +0 -6
  298. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +0 -1
  299. package/dist/azure/activityLogAnalysis.d.ts +0 -320
  300. package/dist/azure/activityLogAnalysis.d.ts.map +0 -1
  301. package/dist/azure/activityLogAnalysis.js +0 -70
  302. package/dist/azure/activityLogAnalysis.js.map +0 -1
  303. package/dist/azure/activityLogAnalysisPublicValidation.d.ts +0 -8
  304. package/dist/azure/activityLogAnalysisPublicValidation.d.ts.map +0 -1
  305. package/dist/azure/activityLogAnalysisPublicValidation.js +0 -368
  306. package/dist/azure/activityLogAnalysisPublicValidation.js.map +0 -1
  307. package/dist/azure/activityLogAnalysisPublicValidationHelpers.d.ts +0 -33
  308. package/dist/azure/activityLogAnalysisPublicValidationHelpers.d.ts.map +0 -1
  309. package/dist/azure/activityLogAnalysisPublicValidationHelpers.js +0 -197
  310. package/dist/azure/activityLogAnalysisPublicValidationHelpers.js.map +0 -1
  311. package/dist/azure/activityLogAnalysisValidation.d.ts +0 -5
  312. package/dist/azure/activityLogAnalysisValidation.d.ts.map +0 -1
  313. package/dist/azure/activityLogAnalysisValidation.js +0 -376
  314. package/dist/azure/activityLogAnalysisValidation.js.map +0 -1
  315. package/dist/azure/financialAnalyticsDisplayKernel.d.ts +0 -12
  316. package/dist/azure/financialAnalyticsDisplayKernel.d.ts.map +0 -1
  317. package/dist/azure/financialAnalyticsDisplayKernel.js +0 -144
  318. package/dist/azure/financialAnalyticsDisplayKernel.js.map +0 -1
  319. package/dist/azure/financialAuthorityProjectionKernel.d.ts +0 -8
  320. package/dist/azure/financialAuthorityProjectionKernel.d.ts.map +0 -1
  321. package/dist/azure/financialAuthorityProjectionKernel.js +0 -269
  322. package/dist/azure/financialAuthorityProjectionKernel.js.map +0 -1
  323. package/dist/azure/financialChargeComposition.d.ts +0 -81
  324. package/dist/azure/financialChargeComposition.d.ts.map +0 -1
  325. package/dist/azure/financialChargeComposition.js +0 -41
  326. package/dist/azure/financialChargeComposition.js.map +0 -1
  327. package/dist/azure/financialChargeCompositionKernel.d.ts +0 -3
  328. package/dist/azure/financialChargeCompositionKernel.d.ts.map +0 -1
  329. package/dist/azure/financialChargeCompositionKernel.js +0 -53
  330. package/dist/azure/financialChargeCompositionKernel.js.map +0 -1
  331. package/dist/azure/financialChargeCompositionValidation.d.ts +0 -8
  332. package/dist/azure/financialChargeCompositionValidation.d.ts.map +0 -1
  333. package/dist/azure/financialChargeCompositionValidation.js +0 -164
  334. package/dist/azure/financialChargeCompositionValidation.js.map +0 -1
  335. package/dist/azure/financialChargePolicy.d.ts +0 -215
  336. package/dist/azure/financialChargePolicy.d.ts.map +0 -1
  337. package/dist/azure/financialChargePolicy.js +0 -488
  338. package/dist/azure/financialChargePolicy.js.map +0 -1
  339. package/dist/azure/financialCurrentSpendSurfaceProjection.d.ts +0 -76
  340. package/dist/azure/financialCurrentSpendSurfaceProjection.d.ts.map +0 -1
  341. package/dist/azure/financialCurrentSpendSurfaceProjection.js +0 -6
  342. package/dist/azure/financialCurrentSpendSurfaceProjection.js.map +0 -1
  343. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.d.ts +0 -10
  344. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.d.ts.map +0 -1
  345. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.js +0 -196
  346. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.js.map +0 -1
  347. package/dist/azure/financialDataflowKernel.d.ts +0 -31
  348. package/dist/azure/financialDataflowKernel.d.ts.map +0 -1
  349. package/dist/azure/financialDataflowKernel.js +0 -170
  350. package/dist/azure/financialDataflowKernel.js.map +0 -1
  351. package/dist/azure/financialEvidenceCoverage.d.ts +0 -36
  352. package/dist/azure/financialEvidenceCoverage.d.ts.map +0 -1
  353. package/dist/azure/financialEvidenceCoverage.js +0 -111
  354. package/dist/azure/financialEvidenceCoverage.js.map +0 -1
  355. package/dist/azure/financialPolicyKernel.d.ts +0 -38
  356. package/dist/azure/financialPolicyKernel.d.ts.map +0 -1
  357. package/dist/azure/financialPolicyKernel.js +0 -232
  358. package/dist/azure/financialPolicyKernel.js.map +0 -1
  359. package/dist/azure/financialResourceSurfaceProjection.d.ts +0 -66
  360. package/dist/azure/financialResourceSurfaceProjection.d.ts.map +0 -1
  361. package/dist/azure/financialResourceSurfaceProjection.js +0 -6
  362. package/dist/azure/financialResourceSurfaceProjection.js.map +0 -1
  363. package/dist/azure/financialResourceSurfaceProjectionValidation.d.ts +0 -16
  364. package/dist/azure/financialResourceSurfaceProjectionValidation.d.ts.map +0 -1
  365. package/dist/azure/financialResourceSurfaceProjectionValidation.js +0 -252
  366. package/dist/azure/financialResourceSurfaceProjectionValidation.js.map +0 -1
  367. package/dist/azure/financialSavingsChargePolicyKernel.d.ts +0 -12
  368. package/dist/azure/financialSavingsChargePolicyKernel.d.ts.map +0 -1
  369. package/dist/azure/financialSavingsChargePolicyKernel.js +0 -34
  370. package/dist/azure/financialSavingsChargePolicyKernel.js.map +0 -1
  371. package/dist/azure/financialSavingsPercentageKernel.d.ts +0 -20
  372. package/dist/azure/financialSavingsPercentageKernel.d.ts.map +0 -1
  373. package/dist/azure/financialSavingsPercentageKernel.js +0 -49
  374. package/dist/azure/financialSavingsPercentageKernel.js.map +0 -1
  375. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts +0 -26
  376. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts.map +0 -1
  377. package/dist/azure/financialSavingsSurfaceProjectionKernel.js +0 -435
  378. package/dist/azure/financialSavingsSurfaceProjectionKernel.js.map +0 -1
  379. package/dist/azure/recommendationLifecycleOverlayValidation.d.ts +0 -5
  380. package/dist/azure/recommendationLifecycleOverlayValidation.d.ts.map +0 -1
  381. package/dist/azure/recommendationLifecycleOverlayValidation.js +0 -82
  382. package/dist/azure/recommendationLifecycleOverlayValidation.js.map +0 -1
  383. package/dist/azure/reportDailySpend.d.ts +0 -48
  384. package/dist/azure/reportDailySpend.d.ts.map +0 -1
  385. package/dist/azure/reportDailySpend.js +0 -6
  386. package/dist/azure/reportDailySpend.js.map +0 -1
  387. package/dist/azure/reportDailySpendValidation.d.ts +0 -3
  388. package/dist/azure/reportDailySpendValidation.d.ts.map +0 -1
  389. package/dist/azure/reportDailySpendValidation.js +0 -72
  390. package/dist/azure/reportDailySpendValidation.js.map +0 -1
  391. package/dist/azure/reportEvidence.d.ts +0 -615
  392. package/dist/azure/reportEvidence.d.ts.map +0 -1
  393. package/dist/azure/reportEvidence.js +0 -25
  394. package/dist/azure/reportEvidence.js.map +0 -1
  395. package/dist/azure/reportEvidenceCatalogueValidation.d.ts +0 -5
  396. package/dist/azure/reportEvidenceCatalogueValidation.d.ts.map +0 -1
  397. package/dist/azure/reportEvidenceCatalogueValidation.js +0 -109
  398. package/dist/azure/reportEvidenceCatalogueValidation.js.map +0 -1
  399. package/dist/azure/reportEvidenceValidation.d.ts +0 -7
  400. package/dist/azure/reportEvidenceValidation.d.ts.map +0 -1
  401. package/dist/azure/reportEvidenceValidation.js +0 -421
  402. package/dist/azure/reportEvidenceValidation.js.map +0 -1
  403. package/dist/azure/reportEvidenceValidationHelpers.d.ts +0 -27
  404. package/dist/azure/reportEvidenceValidationHelpers.d.ts.map +0 -1
  405. package/dist/azure/reportEvidenceValidationHelpers.js +0 -134
  406. package/dist/azure/reportEvidenceValidationHelpers.js.map +0 -1
  407. package/dist/azure/reportSavingsContributionValidation.d.ts +0 -5
  408. package/dist/azure/reportSavingsContributionValidation.d.ts.map +0 -1
  409. package/dist/azure/reportSavingsContributionValidation.js +0 -37
  410. package/dist/azure/reportSavingsContributionValidation.js.map +0 -1
  411. package/dist/azure/reportSpend.d.ts +0 -87
  412. package/dist/azure/reportSpend.d.ts.map +0 -1
  413. package/dist/azure/reportSpend.js +0 -5
  414. package/dist/azure/reportSpend.js.map +0 -1
  415. package/dist/azure/reportSpendValidation.d.ts +0 -7
  416. package/dist/azure/reportSpendValidation.d.ts.map +0 -1
  417. package/dist/azure/reportSpendValidation.js +0 -197
  418. package/dist/azure/reportSpendValidation.js.map +0 -1
  419. package/dist/azure/reportSpendValidationHelpers.d.ts +0 -7
  420. package/dist/azure/reportSpendValidationHelpers.d.ts.map +0 -1
  421. package/dist/azure/reportSpendValidationHelpers.js +0 -31
  422. package/dist/azure/reportSpendValidationHelpers.js.map +0 -1
  423. package/dist/azure/vmPatchManagement.d.ts +0 -109
  424. package/dist/azure/vmPatchManagement.d.ts.map +0 -1
  425. package/dist/azure/vmPatchManagement.js +0 -7
  426. package/dist/azure/vmPatchManagement.js.map +0 -1
  427. package/dist/environment/canonicalization.d.ts +0 -12
  428. package/dist/environment/canonicalization.d.ts.map +0 -1
  429. package/dist/environment/canonicalization.js +0 -40
  430. package/dist/environment/canonicalization.js.map +0 -1
  431. package/dist/environment/contracts.d.ts +0 -472
  432. package/dist/environment/contracts.d.ts.map +0 -1
  433. package/dist/environment/contracts.js +0 -73
  434. package/dist/environment/contracts.js.map +0 -1
  435. package/dist/environment/index.d.ts +0 -6
  436. package/dist/environment/index.d.ts.map +0 -1
  437. package/dist/environment/index.js +0 -22
  438. package/dist/environment/index.js.map +0 -1
  439. package/dist/environment/internal.d.ts +0 -21
  440. package/dist/environment/internal.d.ts.map +0 -1
  441. package/dist/environment/internal.js +0 -113
  442. package/dist/environment/internal.js.map +0 -1
  443. package/dist/environment/references.d.ts +0 -24
  444. package/dist/environment/references.d.ts.map +0 -1
  445. package/dist/environment/references.js +0 -243
  446. package/dist/environment/references.js.map +0 -1
  447. package/dist/environment/tenant.d.ts +0 -128
  448. package/dist/environment/tenant.d.ts.map +0 -1
  449. package/dist/environment/tenant.js +0 -203
  450. package/dist/environment/tenant.js.map +0 -1
  451. package/dist/environment/validation.d.ts +0 -34
  452. package/dist/environment/validation.d.ts.map +0 -1
  453. package/dist/environment/validation.js +0 -655
  454. package/dist/environment/validation.js.map +0 -1
  455. package/dist/esm/accounts/azureManualOnboarding.js +0 -8
  456. package/dist/esm/ai/conversationHistory.js +0 -6
  457. package/dist/esm/ai/grounding.js +0 -80
  458. package/dist/esm/ai/workspaceArtifacts.js +0 -158
  459. package/dist/esm/aws/organizationCommitments.js +0 -48
  460. package/dist/esm/aws/organizationCommitmentsApiValidation.js +0 -220
  461. package/dist/esm/aws/organizationCommitmentsValidation.js +0 -224
  462. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +0 -402
  463. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +0 -2
  464. package/dist/esm/azure/activityLogAnalysis.js +0 -64
  465. package/dist/esm/azure/activityLogAnalysisPublicValidation.js +0 -360
  466. package/dist/esm/azure/activityLogAnalysisPublicValidationHelpers.js +0 -172
  467. package/dist/esm/azure/activityLogAnalysisValidation.js +0 -365
  468. package/dist/esm/azure/financialAnalyticsDisplayKernel.js +0 -139
  469. package/dist/esm/azure/financialAuthorityProjectionKernel.js +0 -263
  470. package/dist/esm/azure/financialChargeComposition.js +0 -36
  471. package/dist/esm/azure/financialChargeCompositionKernel.js +0 -48
  472. package/dist/esm/azure/financialChargeCompositionValidation.js +0 -155
  473. package/dist/esm/azure/financialChargePolicy.js +0 -473
  474. package/dist/esm/azure/financialCurrentSpendSurfaceProjection.js +0 -2
  475. package/dist/esm/azure/financialCurrentSpendSurfaceProjectionValidation.js +0 -184
  476. package/dist/esm/azure/financialDataflowKernel.js +0 -164
  477. package/dist/esm/azure/financialEvidenceCoverage.js +0 -106
  478. package/dist/esm/azure/financialPolicyKernel.js +0 -225
  479. package/dist/esm/azure/financialResourceSurfaceProjection.js +0 -2
  480. package/dist/esm/azure/financialResourceSurfaceProjectionValidation.js +0 -243
  481. package/dist/esm/azure/financialSavingsChargePolicyKernel.js +0 -29
  482. package/dist/esm/azure/financialSavingsPercentageKernel.js +0 -44
  483. package/dist/esm/azure/financialSavingsSurfaceProjectionKernel.js +0 -427
  484. package/dist/esm/azure/recommendationLifecycleOverlayValidation.js +0 -75
  485. package/dist/esm/azure/reportDailySpend.js +0 -2
  486. package/dist/esm/azure/reportDailySpendValidation.js +0 -67
  487. package/dist/esm/azure/reportEvidence.js +0 -21
  488. package/dist/esm/azure/reportEvidenceCatalogueValidation.js +0 -103
  489. package/dist/esm/azure/reportEvidenceValidation.js +0 -413
  490. package/dist/esm/azure/reportEvidenceValidationHelpers.js +0 -106
  491. package/dist/esm/azure/reportSavingsContributionValidation.js +0 -30
  492. package/dist/esm/azure/reportSpend.js +0 -1
  493. package/dist/esm/azure/reportSpendValidation.js +0 -189
  494. package/dist/esm/azure/reportSpendValidationHelpers.js +0 -22
  495. package/dist/esm/azure/vmPatchManagement.js +0 -3
  496. package/dist/esm/entries/environment.js +0 -3
  497. package/dist/esm/environment/canonicalization.js +0 -34
  498. package/dist/esm/environment/contracts.js +0 -69
  499. package/dist/esm/environment/index.js +0 -5
  500. package/dist/esm/environment/internal.js +0 -97
  501. package/dist/esm/environment/references.js +0 -230
  502. package/dist/esm/environment/tenant.js +0 -190
  503. package/dist/esm/environment/validation.js +0 -635
  504. package/dist/esm/identity/microsoftSignInAdminConsent.js +0 -1
  505. package/dist/esm/scheduler/bastionSchedule.js +0 -1
  506. package/dist/esm/scheduler/bastionScheduleProfile.js +0 -206
  507. package/dist/esm/scheduler/bastionScheduleValidation.js +0 -401
  508. package/dist/identity/microsoftSignInAdminConsent.d.ts +0 -59
  509. package/dist/identity/microsoftSignInAdminConsent.d.ts.map +0 -1
  510. package/dist/identity/microsoftSignInAdminConsent.js +0 -3
  511. package/dist/identity/microsoftSignInAdminConsent.js.map +0 -1
  512. package/dist/scheduler/bastionSchedule.d.ts +0 -113
  513. package/dist/scheduler/bastionSchedule.d.ts.map +0 -1
  514. package/dist/scheduler/bastionSchedule.js +0 -3
  515. package/dist/scheduler/bastionSchedule.js.map +0 -1
  516. package/dist/scheduler/bastionScheduleProfile.d.ts +0 -24
  517. package/dist/scheduler/bastionScheduleProfile.d.ts.map +0 -1
  518. package/dist/scheduler/bastionScheduleProfile.js +0 -210
  519. package/dist/scheduler/bastionScheduleProfile.js.map +0 -1
  520. package/dist/scheduler/bastionScheduleValidation.d.ts +0 -10
  521. package/dist/scheduler/bastionScheduleValidation.d.ts.map +0 -1
  522. package/dist/scheduler/bastionScheduleValidation.js +0 -412
  523. package/dist/scheduler/bastionScheduleValidation.js.map +0 -1
@@ -1,64 +0,0 @@
1
- export const ACTIVITY_LOG_TAXONOMY_VERSION = 'v1';
2
- export const ACTIVITY_LOG_ANALYSIS_VERSION = 'v1';
3
- export const CONFORMED_ACTIVITY_ANALYSIS_SCHEMA_VERSION = 1;
4
- export const PORTAL_ACTIVITY_ANALYSIS_RESPONSE_SCHEMA_VERSION = 1;
5
- export const CONFORMED_ACTIVITY_ANALYSIS_LIMITS_V1 = Object.freeze({
6
- sourceShardFingerprintCodeUnits: 512 * 1024,
7
- });
8
- export const PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1 = Object.freeze({
9
- tagAssignmentsPerEvent: 32,
10
- facetTagRows: 64,
11
- facetOperationRows: 4096,
12
- facetProviderRows: 512,
13
- facetResourceTypeRows: 4096,
14
- facetResultRows: 256,
15
- facetOperationEffectRows: 8,
16
- facetExecutionOriginRows: 8,
17
- activitySeries: 10000,
18
- resourceSummaries: 10000,
19
- operationSummaries: 4096,
20
- securitySensitive: 4096,
21
- powerPatterns: 4096,
22
- operationCountsPerItem: 256,
23
- resultCountsPerItem: 256,
24
- tagCountsPerItem: 64,
25
- executionOriginCountsPerItem: 8,
26
- evidenceIdsPerItem: 20,
27
- reasonCodesPerItem: 32,
28
- resourceIdCodeUnits: 2048,
29
- operationCodeUnits: 512,
30
- providerCodeUnits: 256,
31
- resourceTypeCodeUnits: 512,
32
- resourceNameCodeUnits: 512,
33
- reasonCodeUnits: 128,
34
- responseUtf8Bytes: 33554432,
35
- });
36
- export const ACTIVITY_LOG_TAG_IDS = [
37
- 'actor.manual',
38
- 'actor.workload-automation',
39
- 'actor.azure-platform',
40
- 'actor.unknown',
41
- 'change.material',
42
- 'intent.credential-access',
43
- 'intent.remote-execution',
44
- 'intent.power-control',
45
- 'security.sensitive-operation',
46
- 'security.credential-access',
47
- 'security.remote-execution',
48
- 'security.privileged-access-change',
49
- 'security.security-boundary-change',
50
- 'security.protection-control-change',
51
- 'security.destructive-action',
52
- 'scheduler.power-operation',
53
- ];
54
- const CANONICAL_MONTH = /^\d{4}-(0[1-9]|1[0-2])$/;
55
- const CONFORMED_ACTIVITY_ANALYSIS_NAME = /^activity-logs\/activity_analysis-(\d{4}-(?:0[1-9]|1[0-2]))\.json$/;
56
- export function buildConformedActivityAnalysisLogicalName(month) {
57
- if (!CANONICAL_MONTH.test(month)) {
58
- throw new Error('Activity Analysis month must use canonical YYYY-MM format.');
59
- }
60
- return `activity-logs/activity_analysis-${month}.json`;
61
- }
62
- export function parseConformedActivityAnalysisLogicalName(logicalName) {
63
- return CONFORMED_ACTIVITY_ANALYSIS_NAME.exec(logicalName)?.[1];
64
- }
@@ -1,360 +0,0 @@
1
- import { PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1, PORTAL_ACTIVITY_ANALYSIS_RESPONSE_SCHEMA_VERSION, } from './activityLogAnalysis.js';
2
- import { CONFIDENCES, EFFECTS, LIMITATIONS, MONTH, ORIGINS, POWER_SUFFICIENCY, TAG_IDS, countRowsTotal, hasExactKeys, hasValidTimes, isChronologicalCountRows, isCount, isCountRows, isDate, isEvidenceIds, isGroupIds, isPortalActivityAnalysisGroupId, isPortalActivityEvidenceId, isPortalActivityLogClassification, isPositiveCount, isReasons, isRecord, isScope, isSortedUniqueStrings, isText, isTimestamp, isTags, utf8ByteLength, } from './activityLogAnalysisPublicValidationHelpers.js';
3
- export { isPortalActivityAnalysisGroupId, isPortalActivityEvidenceId, isPortalActivityLogClassification };
4
- const isSeries = (value, subscriptionId, resourceId, requestedMonths) => {
5
- if (!hasExactKeys(value, [
6
- 'seriesId',
7
- 'scope',
8
- 'operation',
9
- 'result',
10
- 'executionOrigin',
11
- 'operationEffect',
12
- 'tagIds',
13
- 'eventCount',
14
- 'firstTimestamp',
15
- 'lastTimestamp',
16
- 'monthCounts',
17
- 'dailyCounts',
18
- 'utcWeekdayHourDistribution',
19
- 'confidence',
20
- 'evidenceIds',
21
- 'evidenceTruncated',
22
- ]) ||
23
- !isPortalActivityAnalysisGroupId(value.seriesId) ||
24
- !isScope(value.scope, subscriptionId, resourceId) ||
25
- !isText(value.operation, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.operationCodeUnits) ||
26
- !isText(value.result, 256) ||
27
- typeof value.executionOrigin !== 'string' ||
28
- !ORIGINS.has(value.executionOrigin) ||
29
- typeof value.operationEffect !== 'string' ||
30
- !EFFECTS.has(value.operationEffect) ||
31
- !isTags(value.tagIds) ||
32
- !isPositiveCount(value.eventCount) ||
33
- !hasValidTimes(value) ||
34
- !isChronologicalCountRows(value.monthCounts, month => MONTH.test(month) && requestedMonths.has(month)) ||
35
- !Array.isArray(value.dailyCounts) ||
36
- !Array.isArray(value.utcWeekdayHourDistribution) ||
37
- typeof value.confidence !== 'string' ||
38
- !CONFIDENCES.has(value.confidence) ||
39
- !isEvidenceIds(value.evidenceIds) ||
40
- typeof value.evidenceTruncated !== 'boolean')
41
- return false;
42
- let dailyTotal = 0;
43
- for (let index = 0; index < value.dailyCounts.length; index += 1) {
44
- const row = value.dailyCounts[index];
45
- if (!hasExactKeys(row, ['date', 'count']) ||
46
- !isDate(row.date) ||
47
- !isPositiveCount(row.count) ||
48
- (index > 0 && value.dailyCounts[index - 1].date >= row.date))
49
- return false;
50
- if (!requestedMonths.has(row.date.slice(0, 7)))
51
- return false;
52
- dailyTotal += row.count;
53
- }
54
- let timeTotal = 0;
55
- let previousBucket = -1;
56
- for (const row of value.utcWeekdayHourDistribution) {
57
- if (!hasExactKeys(row, ['weekday', 'hour', 'count']) ||
58
- !isCount(row.weekday) ||
59
- row.weekday > 6 ||
60
- !isCount(row.hour) ||
61
- row.hour > 23 ||
62
- !isPositiveCount(row.count))
63
- return false;
64
- const bucket = row.weekday * 24 + row.hour;
65
- if (bucket <= previousBucket)
66
- return false;
67
- previousBucket = bucket;
68
- timeTotal += row.count;
69
- }
70
- return countRowsTotal(value.monthCounts) === value.eventCount && dailyTotal === value.eventCount && timeTotal === value.eventCount;
71
- };
72
- const isResource = (value, subscriptionId, resourceId) => {
73
- if (!hasExactKeys(value, [
74
- 'scope',
75
- 'eventCount',
76
- 'firstTimestamp',
77
- 'lastTimestamp',
78
- 'operationCounts',
79
- 'resultCounts',
80
- 'tagCounts',
81
- 'executionOriginCounts',
82
- 'relatedGroupIds',
83
- 'confidence',
84
- ]) ||
85
- !isScope(value.scope, subscriptionId, resourceId) ||
86
- value.scope.level !== 'resource' ||
87
- !isPositiveCount(value.eventCount) ||
88
- !hasValidTimes(value) ||
89
- !isCountRows(value.operationCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.operationCountsPerItem, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.operationCodeUnits) ||
90
- !isCountRows(value.resultCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resultCountsPerItem, 256) ||
91
- !isCountRows(value.tagCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.tagCountsPerItem, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.reasonCodeUnits, TAG_IDS) ||
92
- !isCountRows(value.executionOriginCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.executionOriginCountsPerItem, 32, ORIGINS) ||
93
- !isGroupIds(value.relatedGroupIds) ||
94
- typeof value.confidence !== 'string' ||
95
- !CONFIDENCES.has(value.confidence))
96
- return false;
97
- return (countRowsTotal(value.operationCounts) === value.eventCount &&
98
- countRowsTotal(value.resultCounts) === value.eventCount &&
99
- countRowsTotal(value.executionOriginCounts) === value.eventCount);
100
- };
101
- const DERIVED_BASE_KEYS = [
102
- 'scope',
103
- 'eventCount',
104
- 'firstTimestamp',
105
- 'lastTimestamp',
106
- 'confidence',
107
- 'tagIds',
108
- 'reasons',
109
- 'evidenceIds',
110
- 'evidenceTruncated',
111
- ];
112
- const isDerivedBase = (value, subscriptionId, resourceId) => isScope(value.scope, subscriptionId, resourceId) &&
113
- isPositiveCount(value.eventCount) &&
114
- hasValidTimes(value) &&
115
- typeof value.confidence === 'string' &&
116
- CONFIDENCES.has(value.confidence) &&
117
- isTags(value.tagIds) &&
118
- isReasons(value.reasons) &&
119
- isEvidenceIds(value.evidenceIds) &&
120
- typeof value.evidenceTruncated === 'boolean';
121
- const isDerived = (value, subscriptionId, resourceId) => {
122
- if (!isRecord(value) || typeof value.derivedType !== 'string')
123
- return false;
124
- if (value.derivedType === 'operationSummary') {
125
- return (hasExactKeys(value, ['groupId', 'derivedType', ...DERIVED_BASE_KEYS, 'operation', 'operationEffect', 'executionOrigin', 'distinctResourceCount', 'resultCounts'], ['provider', 'resourceType']) &&
126
- isPortalActivityAnalysisGroupId(value.groupId) &&
127
- isDerivedBase(value, subscriptionId, resourceId) &&
128
- isText(value.operation, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.operationCodeUnits) &&
129
- (value.provider === undefined || isText(value.provider, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.providerCodeUnits)) &&
130
- (value.resourceType === undefined || isText(value.resourceType, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceTypeCodeUnits)) &&
131
- typeof value.operationEffect === 'string' &&
132
- EFFECTS.has(value.operationEffect) &&
133
- typeof value.executionOrigin === 'string' &&
134
- ORIGINS.has(value.executionOrigin) &&
135
- isCount(value.distinctResourceCount) &&
136
- value.distinctResourceCount <= value.eventCount &&
137
- isCountRows(value.resultCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resultCountsPerItem, 256) &&
138
- countRowsTotal(value.resultCounts) === value.eventCount);
139
- }
140
- if (value.derivedType === 'securitySensitiveActivity') {
141
- return (hasExactKeys(value, ['groupId', 'derivedType', ...DERIVED_BASE_KEYS, 'capabilityTag', 'operation', 'executionOrigin', 'resultCounts']) &&
142
- isPortalActivityAnalysisGroupId(value.groupId) &&
143
- isDerivedBase(value, subscriptionId, resourceId) &&
144
- typeof value.capabilityTag === 'string' &&
145
- value.capabilityTag.startsWith('security.') &&
146
- value.capabilityTag !== 'security.sensitive-operation' &&
147
- TAG_IDS.has(value.capabilityTag) &&
148
- value.tagIds.includes(value.capabilityTag) &&
149
- isText(value.operation, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.operationCodeUnits) &&
150
- typeof value.executionOrigin === 'string' &&
151
- ORIGINS.has(value.executionOrigin) &&
152
- isCountRows(value.resultCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resultCountsPerItem, 256) &&
153
- countRowsTotal(value.resultCounts) === value.eventCount);
154
- }
155
- return isPowerPattern(value, subscriptionId, resourceId);
156
- };
157
- const isPowerPattern = (value, subscriptionId, resourceId) => {
158
- if (!hasExactKeys(value, [
159
- 'patternId',
160
- 'derivedType',
161
- ...DERIVED_BASE_KEYS,
162
- 'startCount',
163
- 'stopCount',
164
- 'opposingPairCount',
165
- 'utcActiveDayCount',
166
- 'utcHourDistribution',
167
- 'executionOriginCounts',
168
- 'resultCounts',
169
- 'dataSufficiency',
170
- ]) ||
171
- value.derivedType !== 'powerPatternEvidence' ||
172
- !isPortalActivityAnalysisGroupId(value.patternId) ||
173
- !isDerivedBase(value, subscriptionId, resourceId) ||
174
- value.scope.level !== 'resource' ||
175
- !isCount(value.startCount) ||
176
- !isCount(value.stopCount) ||
177
- value.startCount + value.stopCount !== value.eventCount ||
178
- !isCount(value.opposingPairCount) ||
179
- value.opposingPairCount !== Math.min(value.startCount, value.stopCount) ||
180
- !isPositiveCount(value.utcActiveDayCount) ||
181
- value.utcActiveDayCount > value.eventCount ||
182
- !Array.isArray(value.utcHourDistribution) ||
183
- !isCountRows(value.executionOriginCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.executionOriginCountsPerItem, 32, ORIGINS) ||
184
- !isCountRows(value.resultCounts, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resultCountsPerItem, 256) ||
185
- typeof value.dataSufficiency !== 'string' ||
186
- !POWER_SUFFICIENCY.has(value.dataSufficiency))
187
- return false;
188
- let total = 0;
189
- let previousHour = -1;
190
- for (const row of value.utcHourDistribution) {
191
- if (!hasExactKeys(row, ['hour', 'count']) || !isCount(row.hour) || row.hour > 23 || row.hour <= previousHour || !isPositiveCount(row.count))
192
- return false;
193
- previousHour = row.hour;
194
- total += row.count;
195
- }
196
- return (total === value.eventCount &&
197
- countRowsTotal(value.executionOriginCounts) === value.eventCount &&
198
- countRowsTotal(value.resultCounts) === value.eventCount);
199
- };
200
- const isCollection = (value, maximum, validator) => hasExactKeys(value, ['totalCount', 'returnedCount', 'truncated', 'items']) &&
201
- isCount(value.totalCount) &&
202
- isCount(value.returnedCount) &&
203
- typeof value.truncated === 'boolean' &&
204
- Array.isArray(value.items) &&
205
- value.items.length <= maximum &&
206
- value.returnedCount === value.items.length &&
207
- value.totalCount >= value.returnedCount &&
208
- value.truncated === value.totalCount > value.returnedCount &&
209
- value.items.every(validator);
210
- const isRanked = (items, key) => items.every((item, index) => {
211
- if (index === 0)
212
- return true;
213
- const previous = items[index - 1];
214
- return (previous.eventCount > item.eventCount ||
215
- (previous.eventCount === item.eventCount &&
216
- (previous.lastTimestamp > item.lastTimestamp || (previous.lastTimestamp === item.lastTimestamp && key(previous) < key(item)))));
217
- });
218
- const isFacets = (value) => {
219
- if (!hasExactKeys(value, ['tags', 'operations', 'providers', 'resourceTypes', 'results', 'operationEffects', 'executionOrigins']))
220
- return false;
221
- const facet = (candidate, maximum, textMaximum, allowed) => isCollection(candidate, maximum, (row) => isCountRows([row], 1, textMaximum, allowed));
222
- return (facet(value.tags, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.facetTagRows, 128, TAG_IDS) &&
223
- facet(value.operations, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.facetOperationRows, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.operationCodeUnits) &&
224
- facet(value.providers, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.facetProviderRows, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.providerCodeUnits) &&
225
- facet(value.resourceTypes, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.facetResourceTypeRows, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceTypeCodeUnits) &&
226
- facet(value.results, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.facetResultRows, 256) &&
227
- facet(value.operationEffects, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.facetOperationEffectRows, 32, EFFECTS) &&
228
- facet(value.executionOrigins, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.facetExecutionOriginRows, 32, ORIGINS) &&
229
- Object.values(value).every(collection => {
230
- const items = collection.items;
231
- return (new Set(items.map(row => row.value)).size === items.length &&
232
- items.every((row, index) => index === 0 || items[index - 1].count > row.count || (items[index - 1].count === row.count && items[index - 1].value < row.value)));
233
- }));
234
- };
235
- const isMonthList = (value) => isSortedUniqueStrings(value, 1200, month => MONTH.test(month));
236
- const containsOnly = (values, parent) => values.every(value => parent.has(value));
237
- const areDisjoint = (left, right) => left.every(value => !right.includes(value));
238
- const isContiguousRange = (months, from, to) => {
239
- if (months.length === 0 || months[0] !== from || months[months.length - 1] !== to)
240
- return false;
241
- for (let index = 1; index < months.length; index += 1) {
242
- const [year, month] = months[index - 1].split('-').map(Number);
243
- const next = new Date(Date.UTC(year, month, 1)).toISOString().slice(0, 7);
244
- if (months[index] !== next)
245
- return false;
246
- }
247
- return true;
248
- };
249
- /** Validates the exact, bounded, consumer-safe V1 Activity Analysis response. */
250
- export const isPortalActivityAnalysisResponse = (value) => {
251
- if (!hasExactKeys(value, [
252
- 'schemaVersion',
253
- 'generatedAt',
254
- 'subscriptionId',
255
- 'fromMonth',
256
- 'toMonth',
257
- 'requestedMonths',
258
- 'availableMonths',
259
- 'missingMonths',
260
- 'partialMonths',
261
- 'staleMonths',
262
- 'freshnessUnknownMonths',
263
- 'analysisVersions',
264
- 'taxonomyVersions',
265
- 'facets',
266
- 'activitySeries',
267
- 'resources',
268
- 'operationSummaries',
269
- 'securitySensitive',
270
- 'powerPatterns',
271
- 'limitations',
272
- ], ['resourceId']) ||
273
- value.schemaVersion !== PORTAL_ACTIVITY_ANALYSIS_RESPONSE_SCHEMA_VERSION ||
274
- !isTimestamp(value.generatedAt) ||
275
- !isText(value.subscriptionId, 2048) ||
276
- typeof value.fromMonth !== 'string' ||
277
- !MONTH.test(value.fromMonth) ||
278
- typeof value.toMonth !== 'string' ||
279
- !MONTH.test(value.toMonth) ||
280
- !isMonthList(value.requestedMonths) ||
281
- !isContiguousRange(value.requestedMonths, value.fromMonth, value.toMonth) ||
282
- !isMonthList(value.availableMonths) ||
283
- !isMonthList(value.missingMonths) ||
284
- !isMonthList(value.partialMonths) ||
285
- !isMonthList(value.staleMonths) ||
286
- !isMonthList(value.freshnessUnknownMonths) ||
287
- !isSortedUniqueStrings(value.analysisVersions, 32, item => isText(item, 64)) ||
288
- !isSortedUniqueStrings(value.taxonomyVersions, 32, item => isText(item, 64)) ||
289
- (value.resourceId !== undefined && !isText(value.resourceId, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceIdCodeUnits)) ||
290
- !isFacets(value.facets))
291
- return false;
292
- const requested = new Set(value.requestedMonths);
293
- const available = new Set(value.availableMonths);
294
- if (!containsOnly(value.availableMonths, requested) ||
295
- !containsOnly(value.missingMonths, requested) ||
296
- !areDisjoint(value.availableMonths, value.missingMonths) ||
297
- value.availableMonths.length + value.missingMonths.length !== value.requestedMonths.length ||
298
- !containsOnly(value.partialMonths, available) ||
299
- !containsOnly(value.staleMonths, available) ||
300
- !containsOnly(value.freshnessUnknownMonths, available) ||
301
- !areDisjoint(value.staleMonths, value.freshnessUnknownMonths))
302
- return false;
303
- const subscriptionId = value.subscriptionId;
304
- const resourceId = value.resourceId;
305
- if (!isCollection(value.activitySeries, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.activitySeries, (item) => isSeries(item, subscriptionId, resourceId, available)) ||
306
- !isCollection(value.resources, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceSummaries, (item) => isResource(item, subscriptionId, resourceId)) ||
307
- !isCollection(value.operationSummaries, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.operationSummaries, (item) => isDerived(item, subscriptionId, resourceId) && item.derivedType === 'operationSummary') ||
308
- !isCollection(value.securitySensitive, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.securitySensitive, (item) => isDerived(item, subscriptionId, resourceId) && item.derivedType === 'securitySensitiveActivity') ||
309
- !isCollection(value.powerPatterns, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.powerPatterns, (item) => isDerived(item, subscriptionId, resourceId) && item.derivedType === 'powerPatternEvidence'))
310
- return false;
311
- if (!isRanked(value.activitySeries.items, item => item.seriesId) ||
312
- !isRanked(value.resources.items, item => item.scope.resourceId) ||
313
- !isRanked(value.operationSummaries.items, item => item.groupId) ||
314
- !isRanked(value.securitySensitive.items, item => item.groupId) ||
315
- !isRanked(value.powerPatterns.items, item => item.patternId))
316
- return false;
317
- const publicIds = [
318
- ...value.activitySeries.items.map(item => item.seriesId),
319
- ...value.operationSummaries.items.map(item => item.groupId),
320
- ...value.securitySensitive.items.map(item => item.groupId),
321
- ...value.powerPatterns.items.map(item => item.patternId),
322
- ];
323
- if (new Set(publicIds).size !== publicIds.length)
324
- return false;
325
- if (!isSortedUniqueStrings(value.limitations, LIMITATIONS.size, item => LIMITATIONS.has(item)))
326
- return false;
327
- const limitations = new Set(value.limitations);
328
- const facetTruncated = Object.values(value.facets).some(collection => collection.truncated);
329
- const responseTruncated = facetTruncated ||
330
- value.activitySeries.truncated ||
331
- value.resources.truncated ||
332
- value.operationSummaries.truncated ||
333
- value.securitySensitive.truncated ||
334
- value.powerPatterns.truncated ||
335
- limitations.has('nested-values-truncated');
336
- if (limitations.has('response-truncated') !== responseTruncated ||
337
- limitations.has('facet-values-truncated') !== facetTruncated ||
338
- limitations.has('resource-summaries-truncated') !== value.resources.truncated ||
339
- limitations.has('operation-summaries-truncated') !== value.operationSummaries.truncated ||
340
- limitations.has('security-sensitive-truncated') !== value.securitySensitive.truncated ||
341
- limitations.has('power-patterns-truncated') !== value.powerPatterns.truncated ||
342
- limitations.has('month-missing') !== value.missingMonths.length > 0 ||
343
- limitations.has('month-partial') !== value.partialMonths.length > 0 ||
344
- limitations.has('month-stale') !== value.staleMonths.length > 0 ||
345
- limitations.has('month-freshness-unknown') !== value.freshnessUnknownMonths.length > 0 ||
346
- limitations.has('mixed-analysis-versions') !== value.analysisVersions.length > 1 ||
347
- limitations.has('mixed-taxonomy-versions') !== value.taxonomyVersions.length > 1)
348
- return false;
349
- try {
350
- return utf8ByteLength(JSON.stringify(value)) <= PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.responseUtf8Bytes;
351
- }
352
- catch {
353
- return false;
354
- }
355
- };
356
- /** Throws when a value is not the exact public V1 Activity Analysis response. */
357
- export function assertPortalActivityAnalysisResponse(value) {
358
- if (!isPortalActivityAnalysisResponse(value))
359
- throw new Error('Invalid Portal Activity Analysis response.');
360
- }
@@ -1,172 +0,0 @@
1
- import { ACTIVITY_LOG_TAG_IDS, ACTIVITY_LOG_TAXONOMY_VERSION, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1, } from './activityLogAnalysis.js';
2
- export const MONTH = /^\d{4}-(0[1-9]|1[0-2])$/;
3
- const TIMESTAMP = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
4
- const EVIDENCE_ID = /^aev1_[a-f0-9]{64}$/;
5
- const GROUP_ID = /^aag1_[a-f0-9]{64}$/;
6
- export const TAG_IDS = new Set(ACTIVITY_LOG_TAG_IDS);
7
- export const ORIGINS = new Set(['manual', 'workloadAutomation', 'azurePlatform', 'unknown']);
8
- export const EFFECTS = new Set(['write', 'delete', 'action', 'read', 'other']);
9
- export const CONFIDENCES = new Set(['high', 'medium', 'low']);
10
- export const POWER_SUFFICIENCY = new Set(['oneSided', 'oneOff', 'sameDayRepeat', 'repeated']);
11
- export const LIMITATIONS = new Set([
12
- 'source-coverage-partial',
13
- 'unclassified-events',
14
- 'facet-values-truncated',
15
- 'resource-summaries-truncated',
16
- 'operation-summaries-truncated',
17
- 'security-sensitive-truncated',
18
- 'power-patterns-truncated',
19
- 'artifact-size-budget',
20
- 'month-missing',
21
- 'month-partial',
22
- 'month-stale',
23
- 'month-freshness-unknown',
24
- 'nested-values-truncated',
25
- 'mixed-analysis-versions',
26
- 'mixed-taxonomy-versions',
27
- 'response-truncated',
28
- ]);
29
- const SCOPE_LEVELS = new Set(['subscription', 'resourceGroup', 'resource', 'unknown']);
30
- const RESERVED_KEYS = new Set(['__proto__', 'prototype', 'constructor']);
31
- export const isRecord = (value) => {
32
- if (value === null || typeof value !== 'object' || Array.isArray(value))
33
- return false;
34
- const prototype = Object.getPrototypeOf(value);
35
- return prototype === Object.prototype || prototype === null;
36
- };
37
- export const hasExactKeys = (value, required, optional = []) => {
38
- if (!isRecord(value))
39
- return false;
40
- const allowed = new Set([...required, ...optional]);
41
- const keys = Object.keys(value);
42
- return required.every(key => Object.prototype.hasOwnProperty.call(value, key)) && keys.every(key => allowed.has(key) && !RESERVED_KEYS.has(key));
43
- };
44
- export const isText = (value, maximum) => typeof value === 'string' && value.length > 0 && value.length <= maximum && value.trim() === value;
45
- export const isCount = (value) => Number.isSafeInteger(value) && value >= 0;
46
- export const isPositiveCount = (value) => isCount(value) && value > 0;
47
- export const isTimestamp = (value) => {
48
- if (typeof value !== 'string' || !TIMESTAMP.test(value))
49
- return false;
50
- const milliseconds = Date.parse(value);
51
- return Number.isFinite(milliseconds) && new Date(milliseconds).toISOString() === value;
52
- };
53
- export const isDate = (value) => {
54
- if (typeof value !== 'string' || !/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/.test(value))
55
- return false;
56
- return new Date(`${value}T00:00:00.000Z`).toISOString().slice(0, 10) === value;
57
- };
58
- export const isSortedUniqueStrings = (value, maximum, predicate) => Array.isArray(value) &&
59
- value.length <= maximum &&
60
- value.every((item, index) => typeof item === 'string' && predicate(item) && (index === 0 || value[index - 1] < item));
61
- export const countRowsTotal = (rows) => {
62
- let total = 0;
63
- for (const row of rows) {
64
- total += row.count;
65
- if (!Number.isSafeInteger(total))
66
- return undefined;
67
- }
68
- return total;
69
- };
70
- export const isCountRows = (value, maximum, valueMaximum, allowed) => {
71
- if (!Array.isArray(value) || value.length > maximum)
72
- return false;
73
- for (let index = 0; index < value.length; index += 1) {
74
- const row = value[index];
75
- if (!hasExactKeys(row, ['value', 'count']) || !isText(row.value, valueMaximum) || !isPositiveCount(row.count))
76
- return false;
77
- if (allowed && !allowed.has(row.value))
78
- return false;
79
- const previous = value[index - 1];
80
- if (previous && (previous.count < row.count || (previous.count === row.count && previous.value >= row.value)))
81
- return false;
82
- }
83
- return true;
84
- };
85
- export const isChronologicalCountRows = (value, predicate) => Array.isArray(value) &&
86
- value.every((row, index) => hasExactKeys(row, ['value', 'count']) &&
87
- typeof row.value === 'string' &&
88
- predicate(row.value) &&
89
- isPositiveCount(row.count) &&
90
- (index === 0 || value[index - 1].value < row.value));
91
- export const isScope = (value, subscriptionId, resourceId) => {
92
- if (!hasExactKeys(value, ['subscriptionId', 'level'], ['resourceId', 'resourceGroup', 'provider', 'resourceType', 'resourceName']) ||
93
- value.subscriptionId !== subscriptionId ||
94
- typeof value.level !== 'string' ||
95
- !SCOPE_LEVELS.has(value.level))
96
- return false;
97
- if (value.resourceId !== undefined && !isText(value.resourceId, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceIdCodeUnits))
98
- return false;
99
- if (value.resourceGroup !== undefined && !isText(value.resourceGroup, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceNameCodeUnits))
100
- return false;
101
- if (value.provider !== undefined && !isText(value.provider, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.providerCodeUnits))
102
- return false;
103
- if (value.resourceType !== undefined && !isText(value.resourceType, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceTypeCodeUnits))
104
- return false;
105
- if (value.resourceName !== undefined && !isText(value.resourceName, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.resourceNameCodeUnits))
106
- return false;
107
- if (value.level === 'resource' && typeof value.resourceId !== 'string')
108
- return false;
109
- if (value.level === 'resource') {
110
- const scopedSubscriptionId = /^\/subscriptions\/([^/]+)\//i.exec(value.resourceId)?.[1];
111
- if (!scopedSubscriptionId || scopedSubscriptionId.toLowerCase() !== subscriptionId.toLowerCase())
112
- return false;
113
- }
114
- if (value.level === 'resourceGroup' && typeof value.resourceGroup !== 'string')
115
- return false;
116
- if (value.level === 'subscription' && (value.resourceId !== undefined || value.resourceGroup !== undefined))
117
- return false;
118
- return resourceId === undefined || value.resourceId === resourceId;
119
- };
120
- /** Validates the exact additive classification carried by one Portal Activity Log entry. */
121
- export const isPortalActivityLogClassification = (value) => {
122
- if (!hasExactKeys(value, ['taxonomyVersion', 'executionOrigin', 'operationEffect', 'scope', 'tags']) ||
123
- value.taxonomyVersion !== ACTIVITY_LOG_TAXONOMY_VERSION ||
124
- typeof value.executionOrigin !== 'string' ||
125
- !ORIGINS.has(value.executionOrigin) ||
126
- typeof value.operationEffect !== 'string' ||
127
- !EFFECTS.has(value.operationEffect) ||
128
- !isRecord(value.scope) ||
129
- typeof value.scope.subscriptionId !== 'string' ||
130
- !isScope(value.scope, value.scope.subscriptionId) ||
131
- !Array.isArray(value.tags) ||
132
- value.tags.length > PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.tagAssignmentsPerEvent)
133
- return false;
134
- const tags = value.tags;
135
- return tags.every((tag, index) => {
136
- if (!hasExactKeys(tag, ['tagId', 'dimension', 'confidence']) ||
137
- typeof tag.tagId !== 'string' ||
138
- !TAG_IDS.has(tag.tagId) ||
139
- tag.dimension !== tag.tagId.slice(0, tag.tagId.indexOf('.')) ||
140
- typeof tag.confidence !== 'string' ||
141
- !CONFIDENCES.has(tag.confidence))
142
- return false;
143
- return index === 0 || tags[index - 1].tagId < tag.tagId;
144
- });
145
- };
146
- /** Validates the opaque V1 public Activity Log evidence ID syntax. */
147
- export const isPortalActivityEvidenceId = (value) => typeof value === 'string' && EVIDENCE_ID.test(value);
148
- /** Validates the opaque V1 public Activity Analysis group ID syntax. */
149
- export const isPortalActivityAnalysisGroupId = (value) => typeof value === 'string' && GROUP_ID.test(value);
150
- export const isEvidenceIds = (value) => Array.isArray(value) &&
151
- value.length <= PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.evidenceIdsPerItem &&
152
- value.every(isPortalActivityEvidenceId) &&
153
- new Set(value).size === value.length;
154
- export const isGroupIds = (value) => isSortedUniqueStrings(value, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.evidenceIdsPerItem, isPortalActivityAnalysisGroupId);
155
- export const isTags = (value) => isSortedUniqueStrings(value, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.tagCountsPerItem, tag => TAG_IDS.has(tag));
156
- export const isReasons = (value) => isSortedUniqueStrings(value, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.reasonCodesPerItem, reason => {
157
- if (!isText(reason, PORTAL_ACTIVITY_ANALYSIS_LIMITS_V1.reasonCodeUnits))
158
- return false;
159
- return (reason === 'derived.operation-summary' ||
160
- reason === 'derived.security-sensitive-activity' ||
161
- reason === 'derived.power-pattern-evidence' ||
162
- (reason.startsWith('tag.') && TAG_IDS.has(reason.slice(4))));
163
- });
164
- export const hasValidTimes = (value) => isTimestamp(value.firstTimestamp) && isTimestamp(value.lastTimestamp) && value.firstTimestamp <= value.lastTimestamp;
165
- export const utf8ByteLength = (value) => {
166
- let bytes = 0;
167
- for (const character of value) {
168
- const codePoint = character.codePointAt(0);
169
- bytes += codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4;
170
- }
171
- return bytes;
172
- };