@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,52 +1,12 @@
1
1
  import { sha256Utf8 } from '../common/sha256.js';
2
2
  import { parseCanonicalDecimal } from '../common/exactDecimal.js';
3
3
  import { isCanonicalExactMoney } from './financialValidationPrimitives.js';
4
- import { isFinancialAnalyticsProjectionV1 } from './financialAnalyticsValidation.js';
5
- import { FINANCIAL_POLICY_ACTION_ATTEMPT_CONTRACT_VERSION_V1, FINANCIAL_POLICY_ACTION_COMPLETION_CONTRACT_VERSION_V1, FINANCIAL_POLICY_DEFINITION_COMMAND_CONTRACT_VERSION_V1, FINANCIAL_POLICY_READ_CURRENT_POINTER_CONTRACT_VERSION_V1, FINANCIAL_POLICY_READ_MANIFEST_CONTRACT_VERSION_V1, FINANCIAL_POLICY_READ_PROJECTION_CONTRACT_VERSION_V1, } from './financialPolicyDelivery.js';
6
- import { canonicalizeFinancialDataflowJsonV1, hasFinancialDataflowExactFieldsV1, isFinancialDataflowHashV1, isFinancialDataflowIdentityV1, isFinancialDataflowIsoInstantV1, isFinancialDataflowJsonGzipArtifactDescriptorV1, isFinancialDataflowRecordV1, } from './financialDataflowValidation.js';
7
- import { createFinancialPolicyDefinitionRevisionIdV1, createFinancialPolicyEvaluationActionAuditIdV1, createFinancialPolicyEvaluationReadProjectionIdV1, isFinancialPolicyDefinitionRevisionIdentityPreimageV1, isFinancialPolicyDefinitionRevisionV1, isFinancialPolicyEvaluationV1, } from './financialPolicyValidation.js';
4
+ import { FINANCIAL_POLICY_ACTION_ATTEMPT_CONTRACT_VERSION_V1, FINANCIAL_POLICY_READ_PROJECTION_CONTRACT_VERSION_V1, } from './financialPolicyDelivery.js';
5
+ import { canonicalizeFinancialDataflowJsonV1, hasFinancialDataflowExactFieldsV1, isFinancialDataflowHashV1, isFinancialDataflowIdentityV1, isFinancialDataflowIsoInstantV1, isFinancialDataflowRecordV1, } from './financialDataflowValidation.js';
6
+ import { createFinancialPolicyEvaluationActionAuditIdV1, createFinancialPolicyEvaluationReadProjectionIdV1, isFinancialPolicyDefinitionRevisionV1, isFinancialPolicyEvaluationV1, } from './financialPolicyValidation.js';
8
7
  const SIGNAL_KINDS = new Set(['budget-current-spend', 'budget-forecast', 'cost-anomaly']);
9
8
  const RESULTS = new Set(['matched', 'not-matched', 'partial', 'unavailable']);
10
9
  const ACTION_STATUSES = new Set(['succeeded', 'retryable-failure', 'terminal-failure']);
11
- const isCanonicalPolicyRevision = (value) => {
12
- if (typeof value !== 'string' || !/^[1-9]\d*$/.test(value))
13
- return false;
14
- const parsed = Number(value);
15
- return Number.isSafeInteger(parsed) && String(parsed) === value;
16
- };
17
- export const createFinancialPolicyDestinationsDigestV1 = (destinationRefIds) => `sha256:${sha256Utf8(canonicalizeFinancialDataflowJsonV1([...destinationRefIds].sort()))}`;
18
- export const isFinancialPolicyDefinitionCommandV1 = (value) => {
19
- if (!isFinancialDataflowRecordV1(value) ||
20
- !hasFinancialDataflowExactFieldsV1(value, ['schemaVersion', 'contractVersion', 'displayName', 'effectiveState', 'coordinateRequest', 'criteria', 'schedule', 'destinationRefIds'], ['expectedRevision']) ||
21
- value.schemaVersion !== 1 ||
22
- value.contractVersion !== FINANCIAL_POLICY_DEFINITION_COMMAND_CONTRACT_VERSION_V1 ||
23
- (value.expectedRevision !== undefined && !isCanonicalPolicyRevision(value.expectedRevision)) ||
24
- !isFinancialDataflowIdentityV1(value.displayName) ||
25
- (value.effectiveState !== 'enabled' && value.effectiveState !== 'disabled') ||
26
- !Array.isArray(value.destinationRefIds)) {
27
- return false;
28
- }
29
- const identity = {
30
- schemaVersion: 1,
31
- contractVersion: 'financial-policy-definition/v1',
32
- companyId: 'contract-company',
33
- definitionId: 'contract-definition',
34
- displayName: value.displayName,
35
- revision: '1',
36
- effectiveState: value.effectiveState,
37
- coordinateRequest: value.coordinateRequest,
38
- criteria: value.criteria,
39
- schedule: value.schedule,
40
- destinationRefIds: value.destinationRefIds,
41
- destinationsDigest: createFinancialPolicyDestinationsDigestV1(value.destinationRefIds),
42
- authoredAt: '2026-01-01T00:00:00.000Z',
43
- authoredByUserId: 'contract-author',
44
- };
45
- if (!isFinancialPolicyDefinitionRevisionIdentityPreimageV1(identity))
46
- return false;
47
- const definition = { ...identity, policyDefinitionRevisionId: createFinancialPolicyDefinitionRevisionIdV1(identity) };
48
- return isFinancialPolicyDefinitionRevisionV1(definition);
49
- };
50
10
  const isNonNegativeDecimal = (value) => {
51
11
  if (typeof value !== 'string' || !isCanonicalExactMoney({ amount: value, currencyCode: 'AUD' }))
52
12
  return false;
@@ -73,7 +33,6 @@ export const isFinancialPolicyEvaluationReadProjectionV1 = (value) => isFinancia
73
33
  'companyId',
74
34
  'definitionId',
75
35
  'definitionRevision',
76
- 'policyDefinitionRevisionId',
77
36
  'coordinateId',
78
37
  'currentSpendCompositionId',
79
38
  'signalKind',
@@ -81,7 +40,7 @@ export const isFinancialPolicyEvaluationReadProjectionV1 = (value) => isFinancia
81
40
  'result',
82
41
  'reasonCode',
83
42
  'matchedThresholds',
84
- ], ['analyticsProjectionId', 'analyticsProjection']) &&
43
+ ], ['analyticsProjectionId']) &&
85
44
  value.schemaVersion === 1 &&
86
45
  value.contractVersion === FINANCIAL_POLICY_READ_PROJECTION_CONTRACT_VERSION_V1 &&
87
46
  isFinancialDataflowHashV1(value.evaluationId) &&
@@ -89,24 +48,12 @@ export const isFinancialPolicyEvaluationReadProjectionV1 = (value) => isFinancia
89
48
  isFinancialDataflowIdentityV1(value.companyId) &&
90
49
  isFinancialDataflowIdentityV1(value.definitionId) &&
91
50
  isFinancialDataflowIdentityV1(value.definitionRevision) &&
92
- isFinancialDataflowHashV1(value.policyDefinitionRevisionId) &&
93
51
  isFinancialDataflowHashV1(value.coordinateId) &&
94
52
  isFinancialDataflowHashV1(value.currentSpendCompositionId) &&
95
53
  (value.analyticsProjectionId === undefined || isFinancialDataflowHashV1(value.analyticsProjectionId)) &&
96
- (value.analyticsProjection === undefined || isFinancialAnalyticsProjectionV1(value.analyticsProjection)) &&
97
- (value.analyticsProjectionId === undefined
98
- ? value.analyticsProjection === undefined
99
- : value.analyticsProjection?.analyticsProjectionId === value.analyticsProjectionId &&
100
- value.analyticsProjection.currentSpendCompositionId === value.currentSpendCompositionId &&
101
- value.analyticsProjection.coordinate.companyId === value.companyId &&
102
- value.analyticsProjection.coordinate.periodRole === 'projection-target') &&
103
54
  typeof value.signalKind === 'string' &&
104
55
  SIGNAL_KINDS.has(value.signalKind) &&
105
- (value.signalKind === 'budget-current-spend'
106
- ? value.analyticsProjectionId === undefined
107
- : value.result === 'unavailable'
108
- ? value.analyticsProjectionId === undefined || isFinancialDataflowHashV1(value.analyticsProjectionId)
109
- : value.analyticsProjectionId !== undefined) &&
56
+ (value.signalKind === 'budget-current-spend' ? value.analyticsProjectionId === undefined : value.analyticsProjectionId !== undefined) &&
110
57
  isFinancialDataflowIsoInstantV1(value.evaluatedAt) &&
111
58
  typeof value.result === 'string' &&
112
59
  RESULTS.has(value.result) &&
@@ -114,7 +61,7 @@ export const isFinancialPolicyEvaluationReadProjectionV1 = (value) => isFinancia
114
61
  isMatchedThresholds(value.matchedThresholds) &&
115
62
  Array.isArray(value.matchedThresholds) &&
116
63
  (value.result === 'matched' ? value.matchedThresholds.length > 0 : value.matchedThresholds.length === 0);
117
- export const isFinancialPolicyEvaluationReadProjectionCompatibleV1 = (projection, evaluation, analyticsProjection) => {
64
+ export const isFinancialPolicyEvaluationReadProjectionCompatibleV1 = (projection, evaluation) => {
118
65
  if (!isFinancialPolicyEvaluationReadProjectionV1(projection) || !isFinancialPolicyEvaluationV1(evaluation))
119
66
  return false;
120
67
  const expected = {
@@ -125,138 +72,17 @@ export const isFinancialPolicyEvaluationReadProjectionCompatibleV1 = (projection
125
72
  companyId: evaluation.companyId,
126
73
  definitionId: evaluation.definitionId,
127
74
  definitionRevision: evaluation.definitionRevision,
128
- policyDefinitionRevisionId: evaluation.policyDefinitionRevisionId,
129
75
  coordinateId: evaluation.coordinateId,
130
76
  currentSpendCompositionId: evaluation.currentSpendCompositionId,
131
77
  ...(evaluation.analyticsProjectionId === undefined ? {} : { analyticsProjectionId: evaluation.analyticsProjectionId }),
132
- ...(analyticsProjection === undefined ? {} : { analyticsProjection }),
133
78
  signalKind: evaluation.signalKind,
134
79
  evaluatedAt: evaluation.evaluatedAt,
135
80
  result: evaluation.result,
136
81
  reasonCode: evaluation.reasonCode,
137
82
  matchedThresholds: evaluation.matchedThresholds,
138
83
  };
139
- return ((evaluation.analyticsProjectionId === undefined
140
- ? analyticsProjection === undefined
141
- : analyticsProjection?.analyticsProjectionId === evaluation.analyticsProjectionId) &&
142
- canonicalizeFinancialDataflowJsonV1(projection) === canonicalizeFinancialDataflowJsonV1(expected));
143
- };
144
- export const canonicalizeFinancialPolicyEvaluationReadCurrentPointerIdentityV1 = (value) => {
145
- if (!isFinancialDataflowRecordV1(value) ||
146
- !hasFinancialDataflowExactFieldsV1(value, [
147
- 'schemaVersion',
148
- 'contractVersion',
149
- 'companyId',
150
- 'definitionId',
151
- 'signalKind',
152
- 'pointerRevision',
153
- 'definitionRevision',
154
- 'policyDefinitionRevisionId',
155
- 'evaluationId',
156
- 'readProjectionId',
157
- 'projectionArtifactDigest',
158
- 'evaluatedAt',
159
- 'promotedAt',
160
- ]) ||
161
- value.schemaVersion !== 1 ||
162
- value.contractVersion !== FINANCIAL_POLICY_READ_CURRENT_POINTER_CONTRACT_VERSION_V1 ||
163
- !isFinancialDataflowIdentityV1(value.companyId) ||
164
- !isFinancialDataflowIdentityV1(value.definitionId) ||
165
- typeof value.signalKind !== 'string' ||
166
- !SIGNAL_KINDS.has(value.signalKind) ||
167
- !Number.isSafeInteger(value.pointerRevision) ||
168
- value.pointerRevision < 1 ||
169
- !isFinancialDataflowIdentityV1(value.definitionRevision) ||
170
- !isFinancialDataflowHashV1(value.policyDefinitionRevisionId) ||
171
- !isFinancialDataflowHashV1(value.evaluationId) ||
172
- value.readProjectionId !== createFinancialPolicyEvaluationReadProjectionIdV1(value.evaluationId) ||
173
- !isFinancialDataflowHashV1(value.projectionArtifactDigest) ||
174
- !isFinancialDataflowIsoInstantV1(value.evaluatedAt) ||
175
- !isFinancialDataflowIsoInstantV1(value.promotedAt)) {
176
- throw new TypeError('Invalid FinancialPolicyEvaluationReadCurrentPointerIdentityPreimageV1.');
177
- }
178
- return canonicalizeFinancialDataflowJsonV1(value);
179
- };
180
- export const createFinancialPolicyEvaluationReadCurrentPointerDigestV1 = (value) => `sha256:${sha256Utf8(canonicalizeFinancialPolicyEvaluationReadCurrentPointerIdentityV1(value))}`;
181
- export const isFinancialPolicyEvaluationReadCurrentPointerV1 = (value) => {
182
- if (!isFinancialDataflowRecordV1(value) || !Object.prototype.hasOwnProperty.call(value, 'pointerDigest'))
183
- return false;
184
- const { pointerDigest, ...identity } = value;
185
- try {
186
- return (isFinancialDataflowHashV1(pointerDigest) &&
187
- pointerDigest === createFinancialPolicyEvaluationReadCurrentPointerDigestV1(identity));
188
- }
189
- catch {
190
- return false;
191
- }
192
- };
193
- export const isFinancialPolicyEvaluationReadCurrentPointerCompatibleV1 = (pointer, projection, projectionArtifactDigest) => isFinancialPolicyEvaluationReadCurrentPointerV1(pointer) &&
194
- isFinancialPolicyEvaluationReadProjectionV1(projection) &&
195
- isFinancialDataflowHashV1(projectionArtifactDigest) &&
196
- pointer.companyId === projection.companyId &&
197
- pointer.definitionId === projection.definitionId &&
198
- pointer.signalKind === projection.signalKind &&
199
- pointer.definitionRevision === projection.definitionRevision &&
200
- pointer.policyDefinitionRevisionId === projection.policyDefinitionRevisionId &&
201
- pointer.evaluationId === projection.evaluationId &&
202
- pointer.readProjectionId === projection.readProjectionId &&
203
- pointer.projectionArtifactDigest === projectionArtifactDigest &&
204
- pointer.evaluatedAt === projection.evaluatedAt;
205
- const isReadManifestIdentity = (value) => isFinancialDataflowRecordV1(value) &&
206
- hasFinancialDataflowExactFieldsV1(value, [
207
- 'schemaVersion',
208
- 'contractVersion',
209
- 'companyId',
210
- 'definitionId',
211
- 'policyDefinitionRevisionId',
212
- 'definitionRevision',
213
- 'evaluationId',
214
- 'readProjectionId',
215
- 'signalKind',
216
- 'projection',
217
- 'publishedAt',
218
- ]) &&
219
- value.schemaVersion === 1 &&
220
- value.contractVersion === FINANCIAL_POLICY_READ_MANIFEST_CONTRACT_VERSION_V1 &&
221
- isFinancialDataflowIdentityV1(value.companyId) &&
222
- isFinancialDataflowIdentityV1(value.definitionId) &&
223
- isFinancialDataflowHashV1(value.policyDefinitionRevisionId) &&
224
- isFinancialDataflowIdentityV1(value.definitionRevision) &&
225
- isFinancialDataflowHashV1(value.evaluationId) &&
226
- value.readProjectionId === createFinancialPolicyEvaluationReadProjectionIdV1(value.evaluationId) &&
227
- typeof value.signalKind === 'string' &&
228
- SIGNAL_KINDS.has(value.signalKind) &&
229
- isFinancialDataflowJsonGzipArtifactDescriptorV1(value.projection) &&
230
- isFinancialDataflowIsoInstantV1(value.publishedAt);
231
- export const createFinancialPolicyEvaluationReadManifestDigestV1 = (value) => {
232
- if (!isReadManifestIdentity(value))
233
- throw new TypeError('Invalid FinancialPolicyEvaluationReadManifestIdentityPreimageV1.');
234
- return `sha256:${sha256Utf8(canonicalizeFinancialDataflowJsonV1(value))}`;
235
- };
236
- export const isFinancialPolicyEvaluationReadManifestV1 = (value) => {
237
- if (!isFinancialDataflowRecordV1(value) || !Object.prototype.hasOwnProperty.call(value, 'manifestDigest'))
238
- return false;
239
- const { manifestDigest, ...identity } = value;
240
- try {
241
- return (isFinancialDataflowHashV1(manifestDigest) &&
242
- manifestDigest === createFinancialPolicyEvaluationReadManifestDigestV1(identity));
243
- }
244
- catch {
245
- return false;
246
- }
84
+ return canonicalizeFinancialDataflowJsonV1(projection) === canonicalizeFinancialDataflowJsonV1(expected);
247
85
  };
248
- export const isFinancialPolicyEvaluationReadManifestCompatibleV1 = (manifest, projection, verifiedProjectionArtifactDigest) => isFinancialPolicyEvaluationReadManifestV1(manifest) &&
249
- isFinancialPolicyEvaluationReadProjectionV1(projection) &&
250
- isFinancialDataflowHashV1(verifiedProjectionArtifactDigest) &&
251
- manifest.companyId === projection.companyId &&
252
- manifest.definitionId === projection.definitionId &&
253
- manifest.policyDefinitionRevisionId === projection.policyDefinitionRevisionId &&
254
- manifest.definitionRevision === projection.definitionRevision &&
255
- manifest.evaluationId === projection.evaluationId &&
256
- manifest.readProjectionId === projection.readProjectionId &&
257
- manifest.signalKind === projection.signalKind &&
258
- manifest.publishedAt === projection.evaluatedAt &&
259
- manifest.projection.sha256 === verifiedProjectionArtifactDigest;
260
86
  const isActionAttemptIdentity = (value) => isFinancialDataflowRecordV1(value) &&
261
87
  hasFinancialDataflowExactFieldsV1(value, [
262
88
  'schemaVersion',
@@ -309,49 +135,3 @@ export const isFinancialPolicyActionAttemptCompatibleV1 = (attempt, evaluation,
309
135
  Date.parse(attempt.attemptedAt) >= Date.parse(evaluation.evaluatedAt) &&
310
136
  evaluation.policyDefinitionRevisionId === definition.policyDefinitionRevisionId &&
311
137
  definition.destinationRefIds.includes(attempt.destinationRefId);
312
- export const canonicalizeFinancialPolicyActionCompletionIdentityV1 = (value) => {
313
- if (!isFinancialDataflowRecordV1(value) ||
314
- !hasFinancialDataflowExactFieldsV1(value, [
315
- 'schemaVersion',
316
- 'contractVersion',
317
- 'actionAuditId',
318
- 'evaluationId',
319
- 'companyId',
320
- 'destinationRefId',
321
- 'completedAt',
322
- 'executorVersion',
323
- ]) ||
324
- value.schemaVersion !== 1 ||
325
- value.contractVersion !== FINANCIAL_POLICY_ACTION_COMPLETION_CONTRACT_VERSION_V1 ||
326
- !isFinancialDataflowHashV1(value.actionAuditId) ||
327
- !isFinancialDataflowHashV1(value.evaluationId) ||
328
- !isFinancialDataflowIdentityV1(value.companyId) ||
329
- !isFinancialDataflowIdentityV1(value.destinationRefId) ||
330
- !isFinancialDataflowIsoInstantV1(value.completedAt) ||
331
- !isFinancialDataflowIdentityV1(value.executorVersion)) {
332
- throw new TypeError('Invalid FinancialPolicyActionCompletionIdentityPreimageV1.');
333
- }
334
- return canonicalizeFinancialDataflowJsonV1(value);
335
- };
336
- export const createFinancialPolicyActionCompletionIdV1 = (value) => `sha256:${sha256Utf8(canonicalizeFinancialPolicyActionCompletionIdentityV1(value))}`;
337
- export const isFinancialPolicyActionCompletionV1 = (value) => {
338
- if (!isFinancialDataflowRecordV1(value) || !Object.prototype.hasOwnProperty.call(value, 'completionId'))
339
- return false;
340
- const { completionId, ...identity } = value;
341
- try {
342
- return (isFinancialDataflowHashV1(completionId) &&
343
- completionId === createFinancialPolicyActionCompletionIdV1(identity));
344
- }
345
- catch {
346
- return false;
347
- }
348
- };
349
- export const isFinancialPolicyActionCompletionCompatibleV1 = (completion, evaluation, definition) => isFinancialPolicyActionCompletionV1(completion) &&
350
- isFinancialPolicyEvaluationV1(evaluation) &&
351
- isFinancialPolicyDefinitionRevisionV1(definition) &&
352
- completion.actionAuditId === evaluation.actionAuditId &&
353
- completion.evaluationId === evaluation.evaluationId &&
354
- completion.companyId === evaluation.companyId &&
355
- completion.completedAt === evaluation.evaluatedAt &&
356
- definition.companyId === completion.companyId &&
357
- definition.destinationRefIds.includes(completion.destinationRefId);
@@ -1,9 +1,8 @@
1
1
  import { multiplyExactDecimalValues, parseCanonicalDecimal, subtractExactDecimalValues } from '../common/exactDecimal.js';
2
2
  import { sha256Utf8 } from '../common/sha256.js';
3
3
  import { isCanonicalExactMoney } from './financialValidationPrimitives.js';
4
- import { isFinancialChargeInclusionPolicyRefV1 } from './financialChargeCompositionValidation.js';
5
4
  import { FINANCIAL_POLICY_DEFINITION_CONTRACT_VERSION_V1, FINANCIAL_POLICY_EVALUATION_CONTRACT_VERSION_V1, } from './financialPolicy.js';
6
- import { FINANCIAL_DATAFLOW_LIMITS_V1, canonicalizeFinancialDataflowJsonV1, canonicalizeFinancialDataflowCoordinateV1, hasFinancialDataflowExactFieldsV1, isFinancialDataflowCurrencyV1, createFinancialDataflowCoordinateIdV1, isFinancialDataflowHashV1, isFinancialDataflowIdentityV1, isFinancialDataflowIsoInstantV1, isFinancialDataflowRecordV1, isFinancialDataflowScopeSelectorV1, isFinancialDataflowSortedUniqueStringsV1, isFinancialDataflowValueWithinLimitsV1, } from './financialDataflowValidation.js';
5
+ import { FINANCIAL_DATAFLOW_LIMITS_V1, canonicalizeFinancialDataflowJsonV1, canonicalizeFinancialDataflowCoordinateV1, hasFinancialDataflowExactFieldsV1, isFinancialDataflowCurrencyV1, createFinancialDataflowCoordinateIdV1, isFinancialDataflowHashV1, isFinancialDataflowIdentityV1, isFinancialDataflowIsoInstantV1, isFinancialDataflowRecordV1, isFinancialDataflowScopeV1, isFinancialDataflowSortedUniqueStringsV1, isFinancialDataflowValueWithinLimitsV1, } from './financialDataflowValidation.js';
7
6
  import { isCurrentSpendCompositionV1 } from './financialDataflowValidation.js';
8
7
  import { isFinancialAnalyticsProjectionV1 } from './financialAnalyticsValidation.js';
9
8
  const COST_BASES = new Set(['billed', 'amortized']);
@@ -11,12 +10,6 @@ const ESTIMATE_LENSES = new Set(['billing-only', 'include-estimates', 'estimates
11
10
  const MATCHED_THRESHOLD_KINDS = new Set(['amount', 'percent', 'minimum-amount', 'minimum-delta', 'minimum-percent-change']);
12
11
  const MAX_THRESHOLDS = 64;
13
12
  const MAX_DESTINATIONS = 256;
14
- const isCanonicalPolicyRevision = (value) => {
15
- if (typeof value !== 'string' || !/^[1-9]\d*$/.test(value))
16
- return false;
17
- const parsed = Number(value);
18
- return Number.isSafeInteger(parsed) && String(parsed) === value;
19
- };
20
13
  const isCanonicalDecimal = (value) => typeof value === 'string' && isCanonicalExactMoney({ amount: value, currencyCode: 'AUD' });
21
14
  const isNonNegativeDecimal = (value) => {
22
15
  if (!isCanonicalDecimal(value))
@@ -53,63 +46,28 @@ const isThresholdSet = (value) => {
53
46
  }
54
47
  return new Set(value.amounts).size === value.amounts.length && new Set(value.percents).size === value.percents.length;
55
48
  };
56
- const isScopeSelectorBoundToProviderAccounts = (selector, providerAccountRefs) => {
57
- if (!isFinancialDataflowScopeSelectorV1(selector) || !Array.isArray(providerAccountRefs))
58
- return false;
59
- const providerSubscriptions = providerAccountRefs.map(value => {
60
- if (typeof value !== 'string' || !value.toLowerCase().startsWith('azure-subscription:'))
61
- return undefined;
62
- const subscriptionId = value.slice('azure-subscription:'.length).trim().toLowerCase();
63
- return subscriptionId || undefined;
64
- });
65
- if (providerSubscriptions.some(value => value === undefined))
66
- return false;
67
- const authorized = new Set(providerSubscriptions);
68
- if (selector.kind === 'subscription' || selector.kind === 'multi-subscription') {
69
- const selected = selector.subscriptionIds.map(value => value.trim().toLowerCase());
70
- return selected.length === authorized.size && selected.every(value => authorized.has(value));
71
- }
72
- if (selector.kind === 'tag-scope')
73
- return true;
74
- const ids = selector.kind === 'resource' ? selector.resourceIds : selector.resourceGroupIds;
75
- return ids.every(value => {
76
- const match = /^\/subscriptions\/([^/]+)(?:\/|$)/i.exec(value.trim());
77
- return match?.[1] !== undefined && authorized.has(match[1].toLowerCase());
78
- });
79
- };
80
49
  const isCoordinateRequest = (value, companyId) => isFinancialDataflowRecordV1(value) &&
81
50
  hasFinancialDataflowExactFieldsV1(value, [
82
51
  'provider',
83
52
  'providerAccountRefs',
84
53
  'scope',
85
- 'scopeSelector',
86
54
  'period',
87
55
  'costBasis',
88
56
  'estimateLens',
89
- 'chargeInclusionPolicyRef',
90
57
  'requiredAccountingCurrencyCode',
91
58
  ]) &&
92
59
  value.provider === 'azure' &&
93
60
  isFinancialDataflowSortedUniqueStringsV1(value.providerAccountRefs, FINANCIAL_DATAFLOW_LIMITS_V1.maximumProviderAccounts) &&
94
61
  value.providerAccountRefs.length > 0 &&
95
- isFinancialDataflowRecordV1(value.scope) &&
96
- hasFinancialDataflowExactFieldsV1(value.scope, ['kind', 'scopeId']) &&
97
- ['resource', 'resource-group', 'subscription', 'tag-scope', 'multi-subscription'].includes(String(value.scope.kind)) &&
98
- isFinancialDataflowIdentityV1(value.scope.scopeId) &&
99
- isFinancialDataflowScopeSelectorV1(value.scopeSelector) &&
100
- value.scopeSelector.kind === value.scope.kind &&
101
- isScopeSelectorBoundToProviderAccounts(value.scopeSelector, value.providerAccountRefs) &&
62
+ isFinancialDataflowScopeV1(value.scope) &&
102
63
  isFinancialDataflowRecordV1(value.period) &&
103
- hasFinancialDataflowExactFieldsV1(value.period, ['kind', 'dateBasis'], ['timeZone']) &&
64
+ hasFinancialDataflowExactFieldsV1(value.period, ['kind', 'timeZone']) &&
104
65
  (value.period.kind === 'calendar-month' || value.period.kind === 'rolling-30-days') &&
105
- (value.period.dateBasis === 'utc'
106
- ? value.period.timeZone === undefined
107
- : value.period.dateBasis === 'company-local' && isFinancialDataflowIdentityV1(value.period.timeZone)) &&
66
+ isFinancialDataflowIdentityV1(value.period.timeZone) &&
108
67
  typeof value.costBasis === 'string' &&
109
68
  COST_BASES.has(value.costBasis) &&
110
69
  typeof value.estimateLens === 'string' &&
111
70
  ESTIMATE_LENSES.has(value.estimateLens) &&
112
- isFinancialChargeInclusionPolicyRefV1(value.chargeInclusionPolicyRef) &&
113
71
  isFinancialDataflowCurrencyV1(value.requiredAccountingCurrencyCode) &&
114
72
  isFinancialDataflowIdentityV1(companyId);
115
73
  const isCriteria = (value, currencyCode) => {
@@ -131,14 +89,13 @@ const isCriteria = (value, currencyCode) => {
131
89
  (value.minimumDelta === undefined || isNonNegativeDecimal(value.minimumDelta)) &&
132
90
  (value.minimumPercentChange === undefined || isNonNegativeDecimal(value.minimumPercentChange)));
133
91
  };
134
- export const isFinancialPolicyDefinitionRevisionIdentityPreimageV1 = (value) => {
92
+ const isDefinitionIdentity = (value) => {
135
93
  if (!isFinancialDataflowRecordV1(value) ||
136
94
  !hasFinancialDataflowExactFieldsV1(value, [
137
95
  'schemaVersion',
138
96
  'contractVersion',
139
97
  'companyId',
140
98
  'definitionId',
141
- 'displayName',
142
99
  'revision',
143
100
  'effectiveState',
144
101
  'coordinateRequest',
@@ -153,8 +110,7 @@ export const isFinancialPolicyDefinitionRevisionIdentityPreimageV1 = (value) =>
153
110
  value.contractVersion !== FINANCIAL_POLICY_DEFINITION_CONTRACT_VERSION_V1 ||
154
111
  !isFinancialDataflowIdentityV1(value.companyId) ||
155
112
  !isFinancialDataflowIdentityV1(value.definitionId) ||
156
- !isFinancialDataflowIdentityV1(value.displayName) ||
157
- !isCanonicalPolicyRevision(value.revision) ||
113
+ !isFinancialDataflowIdentityV1(value.revision) ||
158
114
  !['enabled', 'disabled', 'deleted'].includes(String(value.effectiveState)) ||
159
115
  !isCoordinateRequest(value.coordinateRequest, value.companyId) ||
160
116
  !isFinancialDataflowRecordV1(value.coordinateRequest) ||
@@ -170,22 +126,10 @@ export const isFinancialPolicyDefinitionRevisionIdentityPreimageV1 = (value) =>
170
126
  !isFinancialDataflowIdentityV1(value.authoredByUserId)) {
171
127
  return false;
172
128
  }
173
- if (value.criteria.kind === 'budget' &&
174
- value.criteria.forecastThresholds !== undefined &&
175
- (value.coordinateRequest.period.kind !== 'calendar-month' || value.coordinateRequest.estimateLens !== 'billing-only')) {
176
- return false;
177
- }
178
- if (value.criteria.kind === 'cost-anomaly' &&
179
- (value.coordinateRequest.period.kind !== 'rolling-30-days' || value.coordinateRequest.estimateLens !== 'billing-only')) {
180
- return false;
181
- }
182
- // Alert Instance state is the canonical internal policy side effect.
183
- // External destinations are optional and must not determine whether an
184
- // enabled policy is valid or evaluable.
185
- return true;
129
+ return value.effectiveState !== 'enabled' || value.destinationRefIds.length > 0;
186
130
  };
187
131
  export const canonicalizeFinancialPolicyDefinitionRevisionIdentityV1 = (value) => {
188
- if (!isFinancialDataflowValueWithinLimitsV1(value) || !isFinancialPolicyDefinitionRevisionIdentityPreimageV1(value)) {
132
+ if (!isFinancialDataflowValueWithinLimitsV1(value) || !isDefinitionIdentity(value)) {
189
133
  throw new TypeError('Invalid FinancialPolicyDefinitionRevisionIdentityPreimageV1.');
190
134
  }
191
135
  const criteria = value.criteria.kind === 'budget'
@@ -227,7 +171,7 @@ export const isFinancialPolicyDefinitionRevisionV1 = (value) => {
227
171
  return false;
228
172
  const { policyDefinitionRevisionId, ...identity } = value;
229
173
  return (isFinancialDataflowHashV1(policyDefinitionRevisionId) &&
230
- isFinancialPolicyDefinitionRevisionIdentityPreimageV1(identity) &&
174
+ isDefinitionIdentity(identity) &&
231
175
  policyDefinitionRevisionId === createFinancialPolicyDefinitionRevisionIdV1(identity));
232
176
  };
233
177
  const isMatchedThresholds = (value) => Array.isArray(value) &&
@@ -272,12 +216,8 @@ const isEvaluationIdentity = (value) => {
272
216
  !isMatchedThresholds(value.matchedThresholds)) {
273
217
  return false;
274
218
  }
275
- const analyticsSignal = value.signalKind === 'budget-forecast' || value.signalKind === 'cost-anomaly';
276
- if (!analyticsSignal)
277
- return value.analyticsProjectionId === undefined;
278
- if (value.result !== 'unavailable')
279
- return isFinancialDataflowHashV1(value.analyticsProjectionId);
280
- return value.analyticsProjectionId === undefined || isFinancialDataflowHashV1(value.analyticsProjectionId);
219
+ const analyticsRequired = value.signalKind === 'budget-forecast' || value.signalKind === 'cost-anomaly';
220
+ return analyticsRequired ? isFinancialDataflowHashV1(value.analyticsProjectionId) : value.analyticsProjectionId === undefined;
281
221
  };
282
222
  export const canonicalizeFinancialPolicyEvaluationIdentityV1 = (value) => {
283
223
  if (!isFinancialDataflowValueWithinLimitsV1(value) || !isEvaluationIdentity(value)) {
@@ -392,10 +332,6 @@ const safeAnomalyMatchedThresholds = (definition, analyticsProjection) => {
392
332
  return undefined;
393
333
  }
394
334
  };
395
- const isExpectedCalendarMonthTargetPartial = (composition) => composition.coordinate.period.windowKind === 'calendar-month' &&
396
- composition.amount.status === 'partial' &&
397
- composition.amount.reasonCodes.length === 1 &&
398
- composition.amount.reasonCodes[0] === 'coverage-incomplete';
399
335
  /** Validates definition, coordinate, financial input, and signal links after authorization. */
400
336
  export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition, currentSpendComposition, analyticsProjection) => {
401
337
  if (!isFinancialPolicyEvaluationV1(evaluation) ||
@@ -419,17 +355,13 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
419
355
  !sameStrings(request.providerAccountRefs, coordinate.providerAccountRefs) ||
420
356
  request.scope.kind !== coordinate.scope.kind ||
421
357
  request.scope.scopeId !== coordinate.scope.scopeId ||
358
+ request.scope.scopeFingerprint !== coordinate.scope.scopeFingerprint ||
422
359
  request.costBasis !== coordinate.costBasis ||
423
360
  request.estimateLens !== coordinate.estimateLens ||
424
- canonicalizeFinancialDataflowJsonV1(request.chargeInclusionPolicyRef) !==
425
- canonicalizeFinancialDataflowJsonV1(coordinate.chargeInclusionPolicyRef) ||
361
+ request.requiredAccountingCurrencyCode !== currency ||
426
362
  coordinate.requestedCurrencyCode !== request.requiredAccountingCurrencyCode ||
427
- (currency === undefined
428
- ? currentSpendComposition.amount.status !== 'unavailable'
429
- : request.requiredAccountingCurrencyCode !== currency) ||
430
363
  request.period.kind !== coordinate.period.windowKind ||
431
- request.period.dateBasis !== coordinate.period.requested.dateBasis ||
432
- (request.period.dateBasis === 'company-local' && request.period.timeZone !== periodTimeZone)) {
364
+ request.period.timeZone !== periodTimeZone) {
433
365
  return false;
434
366
  }
435
367
  if (evaluation.result === 'matched' ? evaluation.matchedThresholds.length === 0 : evaluation.matchedThresholds.length > 0)
@@ -471,16 +403,7 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
471
403
  return evaluation.result === 'unavailable' && evaluation.matchedThresholds.length === 0;
472
404
  }
473
405
  if (currentSpendComposition.amount.status === 'partial') {
474
- if (!isExpectedCalendarMonthTargetPartial(currentSpendComposition)) {
475
- return evaluation.result === 'partial' && evaluation.matchedThresholds.length === 0;
476
- }
477
- if (definition.criteria.kind !== 'budget' || definition.criteria.currentSpendThresholds === undefined)
478
- return false;
479
- const expectedThresholds = safeBudgetMatchedThresholds(currentSpendComposition.amount.knownAmount, definition.criteria.budget.amount, definition.criteria.currentSpendThresholds);
480
- if (expectedThresholds === undefined)
481
- return false;
482
- return (evaluation.result === (expectedThresholds.length > 0 ? 'matched' : 'not-matched') &&
483
- hasExactMatchedThresholds(evaluation.matchedThresholds, expectedThresholds));
406
+ return evaluation.result === 'partial' && evaluation.matchedThresholds.length === 0;
484
407
  }
485
408
  if (definition.criteria.kind !== 'budget' || definition.criteria.currentSpendThresholds === undefined)
486
409
  return false;
@@ -490,12 +413,6 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
490
413
  return (evaluation.result === (expectedThresholds.length > 0 ? 'matched' : 'not-matched') &&
491
414
  hasExactMatchedThresholds(evaluation.matchedThresholds, expectedThresholds));
492
415
  }
493
- if (evaluation.result === 'unavailable' &&
494
- evaluation.analyticsProjectionId === undefined &&
495
- analyticsProjection === undefined &&
496
- (evaluation.signalKind === 'budget-forecast' || evaluation.signalKind === 'cost-anomaly')) {
497
- return evaluation.matchedThresholds.length === 0 && evaluation.reasonCode === 'analytics-projection-unavailable';
498
- }
499
416
  if (!isFinancialAnalyticsProjectionV1(analyticsProjection) ||
500
417
  evaluation.analyticsProjectionId !== analyticsProjection.analyticsProjectionId ||
501
418
  analyticsProjection.coordinate.companyId !== coordinate.companyId ||
@@ -512,21 +429,10 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
512
429
  const actualAnalyticsKind = analyticsProjection.status === 'unavailable' ? analyticsProjection.resultKind : analyticsProjection.result.kind;
513
430
  if (actualAnalyticsKind !== expectedAnalyticsKind)
514
431
  return false;
515
- if (analyticsProjection.currentSpendCompositionId !== undefined &&
516
- analyticsProjection.currentSpendCompositionId !== currentSpendComposition.compositionId) {
517
- return false;
518
- }
519
- if (evaluation.signalKind === 'budget-forecast' &&
520
- analyticsProjection.status !== 'unavailable' &&
521
- analyticsProjection.currentSpendCompositionId !== currentSpendComposition.compositionId) {
522
- return false;
523
- }
524
432
  if (currentSpendComposition.amount.status === 'unavailable' || analyticsProjection.status === 'unavailable') {
525
433
  return evaluation.result === 'unavailable' && evaluation.matchedThresholds.length === 0;
526
434
  }
527
- if (analyticsProjection.status === 'partial' ||
528
- (currentSpendComposition.amount.status === 'partial' &&
529
- !(evaluation.signalKind === 'budget-forecast' && isExpectedCalendarMonthTargetPartial(currentSpendComposition)))) {
435
+ if (currentSpendComposition.amount.status === 'partial' || analyticsProjection.status === 'partial') {
530
436
  return evaluation.result === 'partial' && evaluation.matchedThresholds.length === 0;
531
437
  }
532
438
  if (evaluation.result !== 'matched' && evaluation.result !== 'not-matched')
@@ -4,15 +4,7 @@ import { isCanonicalExactMoney } from './financialValidationPrimitives.js';
4
4
  import { FINANCIAL_PROJECTION_CONTRACT_VERSION_V1, FINANCIAL_PROJECTION_SCHEMA_VERSION_V1, FINANCIAL_PROJECTION_UNAVAILABLE_REASONS_V1, } from './financialProjection.js';
5
5
  const SHA256_ID = /^sha256:[0-9a-f]{64}$/;
6
6
  const CURRENCY = /^[A-Z]{3}$/;
7
- const OPERATIONS = new Set([
8
- 'unclassified',
9
- 'replace-rate',
10
- 'replace-quantity',
11
- 'replace-quantity-and-rate',
12
- 'remove-component',
13
- 'schedule-quantity',
14
- 'commitment-coverage',
15
- ]);
7
+ const OPERATIONS = new Set(['replace-rate', 'replace-quantity', 'remove-component', 'schedule-quantity', 'commitment-coverage']);
16
8
  const COST_BASES = new Set(['billed', 'amortized']);
17
9
  const ESTIMATE_LENSES = new Set(['actual-only', 'actual-plus-estimated', 'estimates-only']);
18
10
  const TARGET_PROVENANCE = new Set(['retail-derived', 'provider-quote-derived', 'billing-backed', 'estimated', 'configuration-derived']);
@@ -40,16 +32,6 @@ const isNonNegativeDecimal = (value, currency = 'AUD') => {
40
32
  }
41
33
  };
42
34
  const isUnit = (value) => isIdentity(value) && value.length <= 512;
43
- const isReplayedProduct = (quantity, rate, targetAmount, currency) => {
44
- if (!isNonNegativeDecimal(quantity) || !isNonNegativeDecimal(rate, currency) || !isDecimal(targetAmount, currency))
45
- return false;
46
- try {
47
- return equalsDecimal(multiplyExactDecimalValues(parseCanonicalDecimal(quantity), parseCanonicalDecimal(rate)), parseCanonicalDecimal(targetAmount));
48
- }
49
- catch {
50
- return false;
51
- }
52
- };
53
35
  const isCanonicalDate = (value) => typeof value === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(value) && Number.isFinite(Date.parse(`${value}T00:00:00.000Z`));
54
36
  const isNormalizedAverageMonthProfile = (value) => isRecord(value) &&
55
37
  hasExactFields(value, ['kind', 'annualDayCount', 'monthDivisor', 'hoursPerDay', 'normalizedHours']) &&
@@ -221,8 +203,7 @@ const isAppliedComponentTargets = (value, operationKind, targetProvenance, targe
221
203
  !isNonNegativeDecimal(target.targetRate.amount) ||
222
204
  target.targetRate.currencyCode !== accountingCurrencyCode ||
223
205
  !isUnit(target.targetRate.quantityUnit) ||
224
- target.targetRate.quantityUnit !== target.sourceQuantity.unit ||
225
- !isReplayedProduct(target.sourceQuantity.amount, target.targetRate.amount, target.targetAmount, accountingCurrencyCode))
206
+ target.targetRate.quantityUnit !== target.sourceQuantity.unit)
226
207
  return false;
227
208
  continue;
228
209
  }
@@ -237,24 +218,7 @@ const isAppliedComponentTargets = (value, operationKind, targetProvenance, targe
237
218
  !hasExactFields(target.targetQuantity, ['amount', 'unit']) ||
238
219
  !isNonNegativeDecimal(target.targetQuantity.amount) ||
239
220
  !isUnit(target.targetQuantity.unit) ||
240
- target.targetQuantity.unit !== target.sourceRate.unit ||
241
- !isReplayedProduct(target.targetQuantity.amount, target.sourceRate.amount, target.targetAmount, accountingCurrencyCode))
242
- return false;
243
- continue;
244
- }
245
- if (operationKind === 'replace-quantity-and-rate') {
246
- if (!hasExactFields(target, ['componentId', 'targetAmount', 'targetConfigurationId', 'targetEvidenceRefIds', 'targetQuantity', 'targetRate']) ||
247
- !isRecord(target.targetQuantity) ||
248
- !hasExactFields(target.targetQuantity, ['amount', 'unit']) ||
249
- !isNonNegativeDecimal(target.targetQuantity.amount) ||
250
- !isUnit(target.targetQuantity.unit) ||
251
- !isRecord(target.targetRate) ||
252
- !hasExactFields(target.targetRate, ['amount', 'currencyCode', 'quantityUnit']) ||
253
- !isNonNegativeDecimal(target.targetRate.amount, accountingCurrencyCode) ||
254
- target.targetRate.currencyCode !== accountingCurrencyCode ||
255
- !isUnit(target.targetRate.quantityUnit) ||
256
- target.targetRate.quantityUnit !== target.targetQuantity.unit ||
257
- !isReplayedProduct(target.targetQuantity.amount, target.targetRate.amount, target.targetAmount, accountingCurrencyCode))
221
+ target.targetQuantity.unit !== target.sourceRate.unit)
258
222
  return false;
259
223
  continue;
260
224
  }
@@ -464,10 +428,6 @@ const isUnavailable = (value) => {
464
428
  !TARGET_PERIOD_CONVENTIONS.has(value.targetPeriodConvention) ||
465
429
  !isTargetPeriodProfileCompatible(value.targetPeriodConvention, value.targetPeriodProfile, false) ||
466
430
  (isObservedPeriodProfile(value.targetPeriodProfile) && value.operationKind !== 'commitment-coverage') ||
467
- (value.operationKind === 'unclassified' &&
468
- (value.unavailableReason !== 'target-evidence-unavailable' ||
469
- !Array.isArray(value.affectedComponentIds) ||
470
- value.affectedComponentIds.length !== 0)) ||
471
431
  (value.targetProvenance === 'configuration-derived' && value.operationKind !== 'remove-component') ||
472
432
  (value.operationKind === 'commitment-coverage' && value.targetProvenance !== 'provider-quote-derived') ||
473
433
  !isPossiblyEmptyHashArray(value.affectedComponentIds) ||
@@ -1,5 +1,4 @@
1
1
  export const FINANCIAL_SAVINGS_AUTHORITY_SCHEMA_VERSION_V1 = 1;
2
2
  export const FINANCIAL_SAVINGS_AUTHORITY_CONTRACT_VERSION_V1 = 'financial-savings-authority/v1';
3
- export const FINANCIAL_SAVINGS_RESOURCE_PROJECTION_CONTRACT_VERSION_V1 = 'financial-savings-resource-projection/v1';
4
3
  export const FINANCIAL_ELIGIBILITY_ASSESSMENT_SCHEMA_VERSION_V1 = 1;
5
4
  export const FINANCIAL_ELIGIBILITY_ASSESSMENT_CONTRACT_VERSION_V1 = 'financial-eligibility-assessment/v1';