@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,164 +0,0 @@
1
- import { formatExactDecimalValue, parseCanonicalDecimal, subtractExactDecimalValues, sumCanonicalDecimals, } from '../common/exactDecimal.js';
2
- import { FINANCIAL_CURRENT_SPEND_COMPOSITION_CONTRACT_VERSION_V1, FINANCIAL_DATAFLOW_SCHEMA_VERSION_V1, } from './financialDataflow.js';
3
- import { selectFinancialChargesV1 } from './financialChargeCompositionValidation.js';
4
- import { createCurrentSpendCompositionIdV1, createCurrentSpendMembershipDigestV1, isCurrentSpendCompositionCompatibleV1, } from './financialDataflowValidation.js';
5
- import { isCompleteFinancialBaselinePeriodV2 } from './financialScopeBaseline.js';
6
- export const CURRENT_SPEND_COMPOSITION_ALGORITHM_VERSION_V1 = 'current-spend-composition/shared-v1';
7
- const exactPercentAtSixDecimalPlaces = (change, comparison) => {
8
- if (comparison.coefficient === 0n)
9
- return undefined;
10
- const numerator = change.coefficient * 100n * 10n ** BigInt(comparison.scale);
11
- const denominator = comparison.coefficient * 10n ** BigInt(change.scale);
12
- for (let scale = 0; scale <= 6; scale += 1) {
13
- const scaledNumerator = numerator * 10n ** BigInt(scale);
14
- if (scaledNumerator % denominator === 0n) {
15
- return formatExactDecimalValue({ coefficient: scaledNumerator / denominator, scale });
16
- }
17
- }
18
- return undefined;
19
- };
20
- /**
21
- * Shared exact current-versus-comparison semantics for display composition.
22
- * Canonical analytics projections use the same direction/change/percentage
23
- * rules; this helper does not create or impersonate an analytics authority.
24
- */
25
- export const compareFinancialExactAmountsV1 = (request) => {
26
- if (request.currentAmount === undefined || request.comparisonAmount === undefined)
27
- return { status: 'unavailable' };
28
- try {
29
- const current = parseCanonicalDecimal(request.currentAmount);
30
- const comparison = parseCanonicalDecimal(request.comparisonAmount);
31
- if (formatExactDecimalValue(current) !== request.currentAmount ||
32
- formatExactDecimalValue(comparison) !== request.comparisonAmount) {
33
- return { status: 'unavailable' };
34
- }
35
- const change = subtractExactDecimalValues(current, comparison);
36
- const direction = change.coefficient === 0n ? 'flat' : change.coefficient > 0n ? 'increasing' : 'decreasing';
37
- const percentChange = exactPercentAtSixDecimalPlaces(change, comparison);
38
- return {
39
- status: 'available',
40
- direction,
41
- changeAmount: formatExactDecimalValue(change),
42
- ...(percentChange === undefined ? {} : { percentChange }),
43
- };
44
- }
45
- catch {
46
- return { status: 'unavailable' };
47
- }
48
- };
49
- const uniqueSorted = (values) => {
50
- const result = Array.from(new Set(values)).sort();
51
- if (result.length === 0)
52
- throw new TypeError('Current-spend unavailable state requires at least one reason code.');
53
- return result;
54
- };
55
- /** Portable exact-decimal composition kernel shared by Cloud and browser runtimes. */
56
- export const composeCurrentSpendV1 = (request) => {
57
- if (request.coordinate.periodRole !== 'current-spend' && request.coordinate.periodRole !== 'comparison') {
58
- throw new TypeError('Current-spend composition requires a current-spend or comparison coordinate.');
59
- }
60
- if (request.baselines.length === 0)
61
- throw new TypeError('Current-spend composition requires an authoritative baseline member.');
62
- if (request.chargeCompositions.length > request.baselines.length) {
63
- throw new TypeError('Current-spend composition has more charge compositions than baseline members.');
64
- }
65
- const chargeCompositionByBaselineId = new Map(request.chargeCompositions.map(composition => [composition.baselineId, composition]));
66
- if (chargeCompositionByBaselineId.size !== request.chargeCompositions.length) {
67
- throw new TypeError('Current-spend composition cannot contain duplicate charge compositions.');
68
- }
69
- const sortedBaselines = [...request.baselines].sort((left, right) => left.scopeId.localeCompare(right.scopeId));
70
- if (new Set(sortedBaselines.map(baseline => baseline.scopeId)).size !== sortedBaselines.length) {
71
- throw new TypeError('Current-spend composition cannot contain duplicate member scopes.');
72
- }
73
- const selections = new Map();
74
- const members = sortedBaselines.map(baseline => {
75
- if (baseline.status === 'unavailable') {
76
- return { memberScopeId: baseline.scopeId, status: 'unavailable', reasonCode: baseline.unavailableReason };
77
- }
78
- if (baseline.baselineKind !== 'owner') {
79
- return { memberScopeId: baseline.scopeId, status: 'unavailable', reasonCode: 'charge-composition-requires-owner-baseline' };
80
- }
81
- const chargeComposition = chargeCompositionByBaselineId.get(baseline.baselineId);
82
- if (!chargeComposition || chargeComposition.ownerScopeId !== baseline.scopeId) {
83
- return { memberScopeId: baseline.scopeId, status: 'unavailable', reasonCode: 'charge-composition-unavailable' };
84
- }
85
- const selection = selectFinancialChargesV1(chargeComposition, request.coordinate.chargeInclusionPolicyRef);
86
- selections.set(baseline.baselineId, selection);
87
- return {
88
- memberScopeId: baseline.scopeId,
89
- baselineId: baseline.baselineId,
90
- chargeCompositionId: chargeComposition.chargeCompositionId,
91
- status: 'included',
92
- };
93
- });
94
- const available = sortedBaselines.filter((baseline) => baseline.status === 'available');
95
- const includedBaselineIds = new Set(members.flatMap(member => (member.status === 'included' ? [member.baselineId] : [])));
96
- const includedBaselines = available.filter(baseline => includedBaselineIds.has(baseline.baselineId));
97
- const unavailableReasons = new Set(sortedBaselines
98
- .filter((baseline) => baseline.status === 'unavailable')
99
- .map(baseline => baseline.unavailableReason));
100
- members.filter(member => member.status === 'unavailable').forEach(member => unavailableReasons.add(member.reasonCode));
101
- const selectionReasonCodes = new Set();
102
- selections.forEach(selection => selection.reasonCodes?.forEach(reason => {
103
- selectionReasonCodes.add(reason);
104
- unavailableReasons.add(reason);
105
- }));
106
- if (available.some(baseline => !isCompleteFinancialBaselinePeriodV2(baseline.period)))
107
- unavailableReasons.add('coverage-incomplete');
108
- if (request.coordinate.accountingCurrency.status === 'unresolved') {
109
- unavailableReasons.add(request.coordinate.accountingCurrency.reasonCode);
110
- }
111
- const common = {
112
- schemaVersion: FINANCIAL_DATAFLOW_SCHEMA_VERSION_V1,
113
- contractVersion: FINANCIAL_CURRENT_SPEND_COMPOSITION_CONTRACT_VERSION_V1,
114
- coordinate: request.coordinate,
115
- members,
116
- membershipDigest: createCurrentSpendMembershipDigestV1(members),
117
- algorithmVersion: request.algorithmVersion ?? CURRENT_SPEND_COMPOSITION_ALGORITHM_VERSION_V1,
118
- };
119
- const currency = request.coordinate.accountingCurrency.status === 'resolved' ? request.coordinate.accountingCurrency.currencyCode : undefined;
120
- let identity;
121
- if (!currency || includedBaselines.length === 0) {
122
- identity = {
123
- ...common,
124
- amount: {
125
- status: 'unavailable',
126
- reasonCodes: uniqueSorted(unavailableReasons.size > 0 ? unavailableReasons : ['evidence-unavailable']),
127
- },
128
- };
129
- }
130
- else {
131
- const includedSelections = members.flatMap(member => member.status === 'included' ? [selections.get(member.baselineId)] : []);
132
- const aggregateSelection = {
133
- status: includedSelections.some(selection => selection.status === 'partial') ? 'partial' : 'available',
134
- includedAmount: formatExactDecimalValue(sumCanonicalDecimals(includedSelections.map(selection => selection.includedAmount))),
135
- excludedAmount: formatExactDecimalValue(sumCanonicalDecimals(includedSelections.map(selection => selection.excludedAmount))),
136
- withheldAmount: formatExactDecimalValue(sumCanonicalDecimals(includedSelections.map(selection => selection.withheldAmount))),
137
- forecastEligibleAmount: formatExactDecimalValue(sumCanonicalDecimals(includedSelections.map(selection => selection.forecastEligibleAmount))),
138
- oneTimeAmount: formatExactDecimalValue(sumCanonicalDecimals(includedSelections.map(selection => selection.oneTimeAmount))),
139
- unknownRecurrenceAmount: formatExactDecimalValue(sumCanonicalDecimals(includedSelections.map(selection => selection.unknownRecurrenceAmount))),
140
- forecastStatus: includedSelections.some(selection => selection.forecastStatus === 'partial') ? 'partial' : 'available',
141
- currencyCode: currency,
142
- ...(selectionReasonCodes.size === 0 ? {} : { reasonCodes: uniqueSorted(selectionReasonCodes) }),
143
- ...(includedSelections.every(selection => selection.forecastReasonCodes === undefined)
144
- ? {}
145
- : {
146
- forecastReasonCodes: uniqueSorted(includedSelections.flatMap(selection => selection.forecastReasonCodes ?? [])),
147
- }),
148
- };
149
- const knownAmount = aggregateSelection.includedAmount;
150
- identity =
151
- unavailableReasons.size === 0
152
- ? { ...common, amount: { status: 'available', amount: knownAmount, currencyCode: currency }, chargeSelection: aggregateSelection }
153
- : {
154
- ...common,
155
- amount: { status: 'partial', knownAmount, currencyCode: currency, reasonCodes: uniqueSorted(unavailableReasons) },
156
- chargeSelection: aggregateSelection,
157
- };
158
- }
159
- const composition = { ...identity, compositionId: createCurrentSpendCompositionIdV1(identity) };
160
- if (!isCurrentSpendCompositionCompatibleV1(composition, sortedBaselines, request.chargeCompositions)) {
161
- throw new TypeError('Current-spend composition does not reconcile to its authoritative baseline members.');
162
- }
163
- return composition;
164
- };
@@ -1,106 +0,0 @@
1
- export const FINANCIAL_EVIDENCE_COVERAGE_CONTRACT_VERSION_V1 = 'financial-evidence-coverage/v1';
2
- export const FINANCIAL_EVIDENCE_COVERAGE_REASONS_V1 = [
3
- 'coverage-complete',
4
- 'capability-passport-missing',
5
- 'capability-passport-invalid',
6
- 'capability-passport-ownership-mismatch',
7
- 'capability-passport-read-failed',
8
- 'billing-capability-partial',
9
- 'billing-capability-stale',
10
- 'billing-capability-missing',
11
- 'billing-capability-unavailable',
12
- 'billing-capability-unknown',
13
- 'billing-dependency-partial',
14
- 'billing-dependency-stale',
15
- 'billing-dependency-missing',
16
- 'billing-dependency-unavailable',
17
- 'billing-dependency-unverified',
18
- 'billing-dependency-wrong-generation',
19
- 'subscription-coverage-missing',
20
- 'subscription-coverage-invalid',
21
- 'filtered-scope-coverage-unproven',
22
- ];
23
- const STATES = new Set(['complete', 'partial', 'stale', 'missing', 'unavailable', 'unknown']);
24
- const STATE_PRIORITY = {
25
- complete: 0,
26
- partial: 1,
27
- stale: 2,
28
- unknown: 3,
29
- missing: 4,
30
- unavailable: 5,
31
- };
32
- const REASONS = new Set(FINANCIAL_EVIDENCE_COVERAGE_REASONS_V1);
33
- const ISO_TIMESTAMP_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/;
34
- const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
35
- const hasExactFields = (value, required, optional = []) => {
36
- const allowed = new Set([...required, ...optional]);
37
- return required.every(field => Object.prototype.hasOwnProperty.call(value, field)) && Object.keys(value).every(field => allowed.has(field));
38
- };
39
- const isNonEmptyString = (value) => typeof value === 'string' && value.trim() === value && value.length > 0;
40
- const isCanonicalTimestamp = (value) => typeof value === 'string' &&
41
- ISO_TIMESTAMP_PATTERN.test(value) &&
42
- Number.isFinite(Date.parse(value)) &&
43
- new Date(Date.parse(value)).toISOString() === value;
44
- const isReasonList = (value) => Array.isArray(value) && value.length > 0 && new Set(value).size === value.length && value.every(reason => typeof reason === 'string' && REASONS.has(reason));
45
- const isSource = (value) => {
46
- if (!isRecord(value) || !hasExactFields(value, ['state', 'reasons'], ['generationId', 'completeThrough']))
47
- return false;
48
- if (typeof value.state !== 'string' || !STATES.has(value.state) || !isReasonList(value.reasons))
49
- return false;
50
- if (value.state === 'complete' ? value.reasons.length !== 1 || value.reasons[0] !== 'coverage-complete' : value.reasons.includes('coverage-complete')) {
51
- return false;
52
- }
53
- if (value.generationId !== undefined && !isNonEmptyString(value.generationId))
54
- return false;
55
- return value.completeThrough === undefined || isCanonicalTimestamp(value.completeThrough);
56
- };
57
- /** Exact dependency-free validator for the API/UI coverage boundary. */
58
- export const isFinancialEvidenceCoverageProjectionV1 = (value) => {
59
- if (!isRecord(value) ||
60
- !hasExactFields(value, [
61
- 'contractVersion',
62
- 'provider',
63
- 'subscriptionId',
64
- 'publicationId',
65
- 'artifactGeneration',
66
- 'scope',
67
- 'state',
68
- 'reasons',
69
- 'sources',
70
- ]) ||
71
- value.contractVersion !== FINANCIAL_EVIDENCE_COVERAGE_CONTRACT_VERSION_V1 ||
72
- value.provider !== 'azure' ||
73
- !isNonEmptyString(value.subscriptionId) ||
74
- !isNonEmptyString(value.publicationId) ||
75
- typeof value.state !== 'string' ||
76
- !STATES.has(value.state) ||
77
- !isReasonList(value.reasons)) {
78
- return false;
79
- }
80
- if (!isRecord(value.artifactGeneration) ||
81
- !hasExactFields(value.artifactGeneration, ['runId', 'generatedAt']) ||
82
- !isNonEmptyString(value.artifactGeneration.runId) ||
83
- !isCanonicalTimestamp(value.artifactGeneration.generatedAt)) {
84
- return false;
85
- }
86
- if (!isRecord(value.scope) ||
87
- !hasExactFields(value.scope, ['kind', 'subscriptionId']) ||
88
- value.scope.kind !== 'subscription' ||
89
- value.scope.subscriptionId !== value.subscriptionId) {
90
- return false;
91
- }
92
- if (!isRecord(value.sources) ||
93
- !hasExactFields(value.sources, ['capabilityPassport', 'billingDependency']) ||
94
- !isSource(value.sources.capabilityPassport) ||
95
- !isSource(value.sources.billingDependency)) {
96
- return false;
97
- }
98
- const sources = [value.sources.capabilityPassport, value.sources.billingDependency];
99
- const expectedState = sources.reduce((current, candidate) => (STATE_PRIORITY[candidate.state] > STATE_PRIORITY[current] ? candidate.state : current), 'complete');
100
- if (value.state !== expectedState)
101
- return false;
102
- const expectedReasons = new Set(expectedState === 'complete'
103
- ? ['coverage-complete']
104
- : sources.flatMap(candidate => candidate.reasons).filter(reason => reason !== 'coverage-complete'));
105
- return expectedReasons.size === value.reasons.length && value.reasons.every(reason => expectedReasons.has(reason));
106
- };
@@ -1,225 +0,0 @@
1
- import { formatExactDecimalValue, multiplyExactDecimalValues, parseCanonicalDecimal, subtractExactDecimalValues, } from '../common/exactDecimal.js';
2
- import { createFinancialDataflowCoordinateIdV1 } from './financialDataflowValidation.js';
3
- import { FINANCIAL_POLICY_EVALUATION_CONTRACT_VERSION_V1, } from './financialPolicy.js';
4
- import { createFinancialPolicyEvaluationActionAuditIdV1, createFinancialPolicyEvaluationIdV1, createFinancialPolicyEvaluationReadProjectionIdV1, isFinancialPolicyEvaluationCompatibleV1, } from './financialPolicyValidation.js';
5
- export const FINANCIAL_POLICY_ALGORITHM_VERSION_V1 = 'financial-policy/shared-v1';
6
- const compare = (left, right) => {
7
- const difference = subtractExactDecimalValues(parseCanonicalDecimal(left), parseCanonicalDecimal(right)).coefficient;
8
- return difference < 0n ? -1 : difference > 0n ? 1 : 0;
9
- };
10
- const percentageMatched = (amount, denominator, threshold) => {
11
- const parsedDenominator = parseCanonicalDecimal(denominator);
12
- if (parsedDenominator.coefficient <= 0n)
13
- return false;
14
- const left = multiplyExactDecimalValues(parseCanonicalDecimal(amount), parseCanonicalDecimal('100'));
15
- const right = multiplyExactDecimalValues(parsedDenominator, parseCanonicalDecimal(threshold));
16
- return subtractExactDecimalValues(left, right).coefficient >= 0n;
17
- };
18
- /**
19
- * Shared exact-decimal display classification for Budget surfaces. This is a
20
- * read-model policy only; alert matching continues to use the thresholds in a
21
- * versioned Financial Policy Definition.
22
- */
23
- export const classifyFinancialBudgetPositionV1 = (request) => {
24
- if (request.budgetAmount === undefined)
25
- return { status: 'unbudgeted' };
26
- if (request.amount === undefined)
27
- return { status: 'unavailable' };
28
- try {
29
- const atRiskPercent = request.atRiskPercent ?? '95';
30
- const amount = parseCanonicalDecimal(request.amount);
31
- const budget = parseCanonicalDecimal(request.budgetAmount);
32
- const risk = parseCanonicalDecimal(atRiskPercent);
33
- if (budget.coefficient <= 0n || risk.coefficient < 0n || compare(atRiskPercent, '100') > 0) {
34
- return { status: 'unbudgeted' };
35
- }
36
- const varianceAmount = formatExactDecimalValue(subtractExactDecimalValues(amount, budget));
37
- const status = compare(request.amount, request.budgetAmount) > 0
38
- ? 'over-budget'
39
- : percentageMatched(request.amount, request.budgetAmount, atRiskPercent)
40
- ? 'at-risk'
41
- : 'on-track';
42
- return {
43
- status,
44
- varianceAmount,
45
- amount: request.amount,
46
- budgetAmount: request.budgetAmount,
47
- atRiskPercent,
48
- };
49
- }
50
- catch {
51
- return { status: 'unavailable' };
52
- }
53
- };
54
- const isExpectedCalendarMonthTargetPartial = (composition) => composition.coordinate.period.windowKind === 'calendar-month' &&
55
- composition.amount.status === 'partial' &&
56
- composition.amount.reasonCodes.length === 1 &&
57
- composition.amount.reasonCodes[0] === 'coverage-incomplete';
58
- /**
59
- * Returns the exact current amount that Budget semantics may compare. An open
60
- * calendar month is intentionally partial until the period closes; every
61
- * other partial/unavailable state remains non-comparable.
62
- */
63
- export const selectFinancialBudgetComparableCurrentAmountV1 = (composition) => composition.amount.status === 'available'
64
- ? composition.amount.amount
65
- : isExpectedCalendarMonthTargetPartial(composition)
66
- ? composition.amount.knownAmount
67
- : undefined;
68
- const budgetThresholds = (amount, budget, thresholds) => [
69
- ...thresholds.amounts
70
- .filter(threshold => compare(amount, threshold) >= 0)
71
- .map(configuredValue => ({ thresholdKind: 'amount', configuredValue })),
72
- ...thresholds.percents
73
- .filter(threshold => percentageMatched(amount, budget, threshold))
74
- .map(configuredValue => ({ thresholdKind: 'percent', configuredValue })),
75
- ];
76
- const anomalyThresholds = (definition, projection) => {
77
- if (definition.criteria.kind !== 'cost-anomaly' || projection.status === 'unavailable' || projection.result.kind !== 'anomaly')
78
- return [];
79
- const configured = [
80
- ...(definition.criteria.minimumAmount === undefined
81
- ? []
82
- : [{ thresholdKind: 'minimum-amount', configuredValue: definition.criteria.minimumAmount }]),
83
- ...(definition.criteria.minimumDelta === undefined
84
- ? []
85
- : [{ thresholdKind: 'minimum-delta', configuredValue: definition.criteria.minimumDelta }]),
86
- ...(definition.criteria.minimumPercentChange === undefined
87
- ? []
88
- : [{ thresholdKind: 'minimum-percent-change', configuredValue: definition.criteria.minimumPercentChange }]),
89
- ];
90
- return projection.result.events.some(event => configured.every(threshold => {
91
- if (threshold.thresholdKind === 'minimum-amount')
92
- return compare(event.observed.amount, threshold.configuredValue) >= 0;
93
- if (threshold.thresholdKind === 'minimum-delta')
94
- return compare(event.delta.amount, threshold.configuredValue) >= 0;
95
- return percentageMatched(event.delta.amount, event.expected.amount, threshold.configuredValue);
96
- }))
97
- ? configured
98
- : [];
99
- };
100
- const materialize = (identity, definition, currentSpend, analytics) => {
101
- const evaluationId = createFinancialPolicyEvaluationIdV1(identity);
102
- const evaluation = {
103
- ...identity,
104
- evaluationId,
105
- readProjectionId: createFinancialPolicyEvaluationReadProjectionIdV1(evaluationId),
106
- actionAuditId: createFinancialPolicyEvaluationActionAuditIdV1(evaluationId),
107
- };
108
- if (!isFinancialPolicyEvaluationCompatibleV1(evaluation, definition, currentSpend, analytics)) {
109
- throw new TypeError('Financial policy evaluation does not bind its definition and exact financial inputs.');
110
- }
111
- return evaluation;
112
- };
113
- export const evaluateFinancialPolicyV1 = (request) => {
114
- if (request.definition.effectiveState !== 'enabled')
115
- return [];
116
- const common = {
117
- schemaVersion: 1,
118
- contractVersion: FINANCIAL_POLICY_EVALUATION_CONTRACT_VERSION_V1,
119
- companyId: request.definition.companyId,
120
- policyDefinitionRevisionId: request.definition.policyDefinitionRevisionId,
121
- definitionId: request.definition.definitionId,
122
- definitionRevision: request.definition.revision,
123
- coordinateId: createFinancialDataflowCoordinateIdV1(request.currentSpend.coordinate),
124
- currentSpendCompositionId: request.currentSpend.compositionId,
125
- evaluatedAt: request.evaluatedAt,
126
- policyAlgorithmVersion: FINANCIAL_POLICY_ALGORITHM_VERSION_V1,
127
- };
128
- if (request.definition.criteria.kind === 'budget') {
129
- const evaluations = [];
130
- const currentThresholds = request.definition.criteria.currentSpendThresholds;
131
- if (currentThresholds) {
132
- const expectedOpenCalendarMonth = isExpectedCalendarMonthTargetPartial(request.currentSpend);
133
- const comparableCurrentAmount = selectFinancialBudgetComparableCurrentAmountV1(request.currentSpend);
134
- const matched = comparableCurrentAmount === undefined
135
- ? []
136
- : budgetThresholds(comparableCurrentAmount, request.definition.criteria.budget.amount, currentThresholds);
137
- const unavailable = request.currentSpend.amount.status === 'unavailable';
138
- const partial = request.currentSpend.amount.status === 'partial' && !expectedOpenCalendarMonth;
139
- evaluations.push(materialize({
140
- ...common,
141
- signalKind: 'budget-current-spend',
142
- result: unavailable ? 'unavailable' : partial ? 'partial' : matched.length > 0 ? 'matched' : 'not-matched',
143
- reasonCode: unavailable
144
- ? 'current-spend-unavailable'
145
- : partial
146
- ? 'current-spend-partial'
147
- : expectedOpenCalendarMonth && matched.length > 0
148
- ? 'current-spend-threshold-matched-open-period'
149
- : expectedOpenCalendarMonth
150
- ? 'current-spend-threshold-not-matched-open-period'
151
- : matched.length > 0
152
- ? 'current-spend-threshold-matched'
153
- : 'current-spend-threshold-not-matched',
154
- matchedThresholds: matched,
155
- }, request.definition, request.currentSpend));
156
- }
157
- const forecastThresholds = request.definition.criteria.forecastThresholds;
158
- if (forecastThresholds) {
159
- const projection = request.analytics?.forecast;
160
- if (!projection) {
161
- evaluations.push(materialize({
162
- ...common,
163
- signalKind: 'budget-forecast',
164
- result: 'unavailable',
165
- reasonCode: 'analytics-projection-unavailable',
166
- matchedThresholds: [],
167
- }, request.definition, request.currentSpend));
168
- }
169
- else {
170
- const unavailable = projection.status === 'unavailable' || request.currentSpend.amount.status === 'unavailable';
171
- const partial = projection.status === 'partial' ||
172
- (request.currentSpend.amount.status === 'partial' && !isExpectedCalendarMonthTargetPartial(request.currentSpend));
173
- const matched = !unavailable && !partial && projection.result.kind === 'forecast'
174
- ? budgetThresholds(projection.result.projectedTotal.amount, request.definition.criteria.budget.amount, forecastThresholds)
175
- : [];
176
- evaluations.push(materialize({
177
- ...common,
178
- analyticsProjectionId: projection.analyticsProjectionId,
179
- signalKind: 'budget-forecast',
180
- result: unavailable ? 'unavailable' : partial ? 'partial' : matched.length > 0 ? 'matched' : 'not-matched',
181
- reasonCode: unavailable
182
- ? 'forecast-unavailable'
183
- : partial
184
- ? 'forecast-partial'
185
- : matched.length > 0
186
- ? 'forecast-threshold-matched'
187
- : 'forecast-threshold-not-matched',
188
- matchedThresholds: matched,
189
- }, request.definition, request.currentSpend, projection));
190
- }
191
- }
192
- return evaluations;
193
- }
194
- const projection = request.analytics?.anomaly;
195
- if (!projection) {
196
- return [
197
- materialize({
198
- ...common,
199
- signalKind: 'cost-anomaly',
200
- result: 'unavailable',
201
- reasonCode: 'analytics-projection-unavailable',
202
- matchedThresholds: [],
203
- }, request.definition, request.currentSpend),
204
- ];
205
- }
206
- const unavailable = projection.status === 'unavailable' || request.currentSpend.amount.status === 'unavailable';
207
- const partial = projection.status === 'partial' || request.currentSpend.amount.status === 'partial';
208
- const matched = unavailable || partial ? [] : anomalyThresholds(request.definition, projection);
209
- return [
210
- materialize({
211
- ...common,
212
- analyticsProjectionId: projection.analyticsProjectionId,
213
- signalKind: 'cost-anomaly',
214
- result: unavailable ? 'unavailable' : partial ? 'partial' : matched.length > 0 ? 'matched' : 'not-matched',
215
- reasonCode: unavailable
216
- ? 'anomaly-unavailable'
217
- : partial
218
- ? 'anomaly-partial'
219
- : matched.length > 0
220
- ? 'anomaly-threshold-matched'
221
- : 'anomaly-threshold-not-matched',
222
- matchedThresholds: matched,
223
- }, request.definition, request.currentSpend, projection),
224
- ];
225
- };
@@ -1,2 +0,0 @@
1
- export const FINANCIAL_RESOURCE_SURFACE_PROJECTION_SCHEMA_VERSION_V1 = 1;
2
- export const FINANCIAL_RESOURCE_SURFACE_PROJECTION_CONTRACT_VERSION_V1 = 'financial-resource-surface-projection/v1';