@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 +0,0 @@
1
- export const REPORT_SPEND_LIMITS = { periods: 14, servicesPerPeriod: 100, periodDays: 92, assumptions: 10, textLength: 500 };
@@ -1,189 +0,0 @@
1
- import { isPublicCostComposition } from './costComposition.js';
2
- import { isBoundedRows, isRecord } from './reportEvidenceValidationHelpers.js';
3
- import { REPORT_SPEND_LIMITS, } from './reportSpend.js';
4
- import { isReportCalendarDate, isReportCurrency, isReportText, isReportUtcTimestamp, reportMoneyUnits } from './reportSpendValidationHelpers.js';
5
- const bases = ['billed', 'amortized'];
6
- const coverageStates = new Set(['complete', 'partial', 'unavailable']);
7
- const exactFields = (value, required, optional = []) => required.every(key => Object.prototype.hasOwnProperty.call(value, key)) &&
8
- Object.keys(value).every(key => [...required, ...optional].includes(key));
9
- export const isReportSavingsBasis = (value) => typeof value === 'string' && ['billed', 'amortized', 'retail', 'mixed', 'unknown'].includes(value);
10
- const amountOf = (value) => value.status === 'available' ? reportMoneyUnits(value.component.amount) : undefined;
11
- function isBasisConsistent(basis, coverage, lens) {
12
- if (!isRecord(coverage) || !exactFields(coverage, ['actual', 'estimated', 'combined']))
13
- return false;
14
- const components = { actual: basis.actual.availability, estimated: basis.estimated.availability, combined: basis.combined };
15
- for (const key of ['actual', 'estimated', 'combined']) {
16
- if (!coverageStates.has(coverage[key]))
17
- return false;
18
- const available = components[key].status === 'available';
19
- if (available !== (coverage[key] !== 'unavailable'))
20
- return false;
21
- if (available && amountOf(components[key]) === undefined)
22
- return false;
23
- if (key !== 'combined' && available && basis[key].support !== 'supported')
24
- return false;
25
- }
26
- const actual = amountOf(components.actual);
27
- const estimated = amountOf(components.estimated);
28
- const expectedStatus = actual !== undefined
29
- ? estimated !== undefined
30
- ? 'actual-plus-estimated'
31
- : 'actual-only'
32
- : estimated !== undefined
33
- ? 'estimated-only'
34
- : 'unavailable';
35
- if (basis.status !== expectedStatus)
36
- return false;
37
- const combined = amountOf(basis.combined);
38
- // Reconciliation may withhold the combined amount even when individual components are available.
39
- if (combined === undefined)
40
- return true;
41
- if (lens === 'actual-only')
42
- return actual === combined && coverage.combined === coverage.actual;
43
- if (lens === 'estimates-only')
44
- return estimated === combined && coverage.combined === coverage.estimated;
45
- if (actual === undefined && estimated === undefined)
46
- return false;
47
- if (combined !== (actual ?? 0n) + (estimated ?? 0n))
48
- return false;
49
- // A single partial component cannot become a complete combined total. Two components require producer coverage proof.
50
- if (actual === undefined)
51
- return coverage.combined === coverage.estimated;
52
- if (estimated === undefined)
53
- return coverage.combined === coverage.actual;
54
- return true;
55
- }
56
- export function isReportSpendAmounts(value, currency, generatedAt) {
57
- if (!isRecord(value) || !exactFields(value, ['composition', 'coverage', 'retail'], ['estimates']) || !isPublicCostComposition(value.composition))
58
- return false;
59
- if (!isRecord(value.coverage) || !exactFields(value.coverage, [...bases]))
60
- return false;
61
- if (currency !== undefined && !isReportCurrency(currency))
62
- return false;
63
- if (generatedAt !== undefined && !isReportUtcTimestamp(generatedAt))
64
- return false;
65
- if (value.estimates !== undefined && (!isRecord(value.estimates) || !exactFields(value.estimates, [], [...bases])))
66
- return false;
67
- const currencies = new Set();
68
- if (currency)
69
- currencies.add(currency);
70
- for (const key of bases) {
71
- const basis = value.composition[key];
72
- if (!isBasisConsistent(basis, value.coverage[key], value.composition.selectedLens))
73
- return false;
74
- for (const item of [basis.actual.availability, basis.estimated.availability, basis.combined]) {
75
- if (item.status === 'available') {
76
- if (!isReportCurrency(item.component.currencyCode))
77
- return false;
78
- currencies.add(item.component.currencyCode);
79
- }
80
- }
81
- const estimate = isRecord(value.estimates) ? value.estimates[key] : undefined;
82
- if (basis.estimated.availability.status === 'available') {
83
- if (!isRecord(estimate) ||
84
- !exactFields(estimate, ['reason', 'method', 'observedAt']) ||
85
- !['billing-lag', 'billing-unavailable-sponsorship', 'other'].includes(estimate.reason) ||
86
- !isReportText(estimate.method) ||
87
- !isReportUtcTimestamp(estimate.observedAt) ||
88
- (generatedAt !== undefined && Date.parse(estimate.observedAt) > Date.parse(generatedAt)))
89
- return false;
90
- }
91
- else if (estimate !== undefined)
92
- return false;
93
- }
94
- const retail = value.retail;
95
- if (!isRecord(retail))
96
- return false;
97
- if (retail.status === 'unavailable') {
98
- if (!exactFields(retail, ['status']))
99
- return false;
100
- }
101
- else {
102
- if (retail.status !== 'available' ||
103
- !exactFields(retail, ['status', 'component', 'coverage', 'scopeDescription', 'pricingSource', 'pricedAt', 'assumptions']) ||
104
- !isRecord(retail.component) ||
105
- !exactFields(retail.component, ['amount', 'currencyCode']) ||
106
- !isReportCurrency(retail.component.currencyCode) ||
107
- !['complete', 'partial'].includes(retail.coverage) ||
108
- !isReportText(retail.scopeDescription) ||
109
- !isReportText(retail.pricingSource) ||
110
- !isReportUtcTimestamp(retail.pricedAt) ||
111
- (generatedAt !== undefined && Date.parse(retail.pricedAt) > Date.parse(generatedAt)) ||
112
- !Array.isArray(retail.assumptions) ||
113
- retail.assumptions.length > REPORT_SPEND_LIMITS.assumptions ||
114
- !retail.assumptions.every(isReportText))
115
- return false;
116
- const amount = reportMoneyUnits(retail.component.amount);
117
- if (amount === undefined || amount < 0n)
118
- return false;
119
- currencies.add(retail.component.currencyCode);
120
- }
121
- return currencies.size <= 1;
122
- }
123
- export const hasReportSpendValue = (value) => value.retail.status === 'available' ||
124
- bases.some(key => value.composition[key].actual.availability.status === 'available' || value.composition[key].estimated.availability.status === 'available');
125
- /** Dates, population completeness and actual/estimated selection remain independent checks. */
126
- export const isReportSpendProjection = (value) => {
127
- if (!isRecord(value) ||
128
- !exactFields(value, ['currency', 'dateBasis', 'generatedAt', 'freshness', 'periods'], ['sourceObservedAt']) ||
129
- !isReportCurrency(value.currency) ||
130
- value.dateBasis !== 'billing-calendar' ||
131
- !isReportUtcTimestamp(value.generatedAt) ||
132
- !['current', 'stale', 'unavailable'].includes(value.freshness) ||
133
- !Array.isArray(value.periods) ||
134
- value.periods.length > REPORT_SPEND_LIMITS.periods)
135
- return false;
136
- if (value.sourceObservedAt !== undefined &&
137
- (!isReportUtcTimestamp(value.sourceObservedAt) || Date.parse(value.sourceObservedAt) > Date.parse(value.generatedAt)))
138
- return false;
139
- const seen = new Set();
140
- let rollingCount = 0;
141
- let historicalCount = 0;
142
- let available = false;
143
- for (const period of value.periods) {
144
- if (!isRecord(period) ||
145
- !exactFields(period, ['kind', 'startDate', 'endDate', 'amounts'], ['services']) ||
146
- !['calendar-month', 'billing-period', 'rolling-30-days'].includes(period.kind) ||
147
- !isReportCalendarDate(period.startDate) ||
148
- !isReportCalendarDate(period.endDate))
149
- return false;
150
- const days = (Date.parse(period.endDate) - Date.parse(period.startDate)) / 86400000 + 1;
151
- if (days < 1 || days > REPORT_SPEND_LIMITS.periodDays)
152
- return false;
153
- if (period.kind === 'calendar-month') {
154
- const following = new Date(Date.parse(period.endDate) + 86400000).toISOString().slice(0, 10);
155
- if (!period.startDate.endsWith('-01') || period.startDate.slice(0, 7) !== period.endDate.slice(0, 7) || !following.endsWith('-01'))
156
- return false;
157
- }
158
- if (period.kind === 'rolling-30-days') {
159
- if (days !== 30 || ++rollingCount > 1)
160
- return false;
161
- }
162
- else if (++historicalCount > 13)
163
- return false;
164
- const key = `${period.kind}:${period.startDate}:${period.endDate}`;
165
- if (seen.has(key))
166
- return false;
167
- seen.add(key);
168
- if (!isReportSpendAmounts(period.amounts, value.currency, value.generatedAt))
169
- return false;
170
- available || (available = hasReportSpendValue(period.amounts));
171
- if (period.services !== undefined) {
172
- const serviceKeys = new Set();
173
- if (!isBoundedRows(period.services, REPORT_SPEND_LIMITS.servicesPerPeriod, (row) => {
174
- if (!isRecord(row) ||
175
- !exactFields(row, ['serviceKey', 'name', 'amounts']) ||
176
- !isReportText(row.serviceKey) ||
177
- !isReportText(row.name) ||
178
- serviceKeys.has(row.serviceKey) ||
179
- !isReportSpendAmounts(row.amounts, value.currency, value.generatedAt))
180
- return false;
181
- serviceKeys.add(row.serviceKey);
182
- available || (available = hasReportSpendValue(row.amounts));
183
- return true;
184
- }))
185
- return false;
186
- }
187
- }
188
- return available ? value.sourceObservedAt !== undefined && value.freshness !== 'unavailable' : value.freshness === 'unavailable';
189
- };
@@ -1,22 +0,0 @@
1
- import { REPORT_SPEND_LIMITS } from './reportSpend.js';
2
- export const isReportCalendarDate = (value) => {
3
- if (typeof value !== 'string' || !/^\d{4}-\d{2}-\d{2}$/.test(value))
4
- return false;
5
- const time = Date.parse(`${value}T00:00:00.000Z`);
6
- return Number.isFinite(time) && new Date(time).toISOString().slice(0, 10) === value;
7
- };
8
- export const isReportUtcTimestamp = (value) => typeof value === 'string' &&
9
- /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/.test(value) &&
10
- isReportCalendarDate(value.slice(0, 10)) &&
11
- Number.isFinite(Date.parse(value)) &&
12
- new Date(value).toISOString() === (value.length === 20 ? value.replace('Z', '.000Z') : value);
13
- export const isReportCurrency = (value) => typeof value === 'string' && /^[A-Z]{3}$/.test(value);
14
- export const isReportText = (value) => typeof value === 'string' && value.trim().length > 0 && value.length <= REPORT_SPEND_LIMITS.textLength;
15
- /** Bounded exact arithmetic avoids binary floating point and pathological decimal-string input. */
16
- export const reportMoneyUnits = (value) => {
17
- if (typeof value !== 'string' || value.length > 25 || !/^-?(?:0|[1-9]\d{0,14})(?:\.\d{1,8})?$/.test(value))
18
- return undefined;
19
- const [whole, fraction = ''] = value.replace(/^-/, '').split('.');
20
- const amount = BigInt(whole) * 100000000n + BigInt(fraction.padEnd(8, '0'));
21
- return value.startsWith('-') ? -amount : amount;
22
- };
@@ -1,3 +0,0 @@
1
- export const VM_PATCH_MANAGEMENT_SCHEMA_VERSION = 1;
2
- export const PATCH_MANAGEMENT_PORTAL_FILE_NAME = 'patch-management.json.gz';
3
- export const AZURE_VM_PATCH_MANAGEMENT_RESOURCE_TYPE = 'microsoft.compute/virtualmachines';
@@ -1,3 +0,0 @@
1
- export * from '../environment/index.js';
2
- import * as namespace from '../environment/index.js';
3
- export default namespace;
@@ -1,34 +0,0 @@
1
- import { isEnvironmentDocumentDescriptorSetV1, isEnvironmentScopeV1 } from './validation.js';
2
- const compareUnicodeCodePoints = (left, right) => {
3
- const leftPoints = Array.from(left, character => character.codePointAt(0));
4
- const rightPoints = Array.from(right, character => character.codePointAt(0));
5
- const length = Math.min(leftPoints.length, rightPoints.length);
6
- for (let index = 0; index < length; index += 1) {
7
- const difference = leftPoints[index] - rightPoints[index];
8
- if (difference !== 0)
9
- return difference;
10
- }
11
- return leftPoints.length - rightPoints.length;
12
- };
13
- /**
14
- * Builds the canonical scope-qualified artifact subject used inside opaque
15
- * logical references. The JSON tuple is an identifier, never a storage path.
16
- */
17
- export const buildEnvironmentScopeQualifiedSubjectV1 = (scope) => {
18
- if (!isEnvironmentScopeV1(scope))
19
- throw new TypeError('Invalid V1 environment scope.');
20
- return JSON.stringify([scope.kind, scope.tenantId, scope.companyId, scope.subscriptionId]);
21
- };
22
- /**
23
- * Produces the exact compact UTF-8 tree-digest preimage. Hashing remains the
24
- * caller's responsibility so this helper stays browser-safe.
25
- */
26
- export const buildEnvironmentTreeDigestPreimageV1 = (descriptors) => {
27
- if (!isEnvironmentDocumentDescriptorSetV1(descriptors)) {
28
- throw new TypeError('V1 environment tree digests require each allowlisted document exactly once.');
29
- }
30
- const pairs = descriptors
31
- .map(descriptor => [descriptor.name, descriptor.contentSha256])
32
- .sort((left, right) => compareUnicodeCodePoints(left[0], right[0]));
33
- return JSON.stringify(pairs);
34
- };
@@ -1,69 +0,0 @@
1
- /** Single pre-release multi-pillar environment contract shared by producers and consumers. */
2
- export const ENVIRONMENT_CONTRACT_LIMITS_V1 = Object.freeze({
3
- completedPointerBytes: 16 * 1024,
4
- projectionBytes: 256 * 1024,
5
- environmentIndexBytes: 8 * 1024,
6
- pillarDocumentBytes: 8 * 1024,
7
- boundedListItems: 50,
8
- /**
9
- * Row cap for the optional structured detail sections. Deliberately far below
10
- * `boundedListItems`: the core lists already consume most of the projection byte budget,
11
- * and a detail section is a summary, not an inventory.
12
- */
13
- sectionListItems: 10,
14
- customerStringScalars: 4096,
15
- safeLabelScalars: 512,
16
- scopeIdentifierScalars: 2048,
17
- environmentRunIdAsciiCharacters: 128,
18
- sourceIdentityScalars: 256,
19
- logicalReferencePayloadBytes: 4 * 1024,
20
- validatedContainerDepth: 10,
21
- });
22
- export const ENVIRONMENT_PILLARS_V1 = ['cost', 'security', 'governance', 'reliability', 'performance', 'operations'];
23
- export const ENVIRONMENT_DOCUMENT_NAMES_V1 = [
24
- 'projection.json',
25
- 'environment-index.md',
26
- 'pillars/cost.md',
27
- 'pillars/security.md',
28
- 'pillars/governance.md',
29
- 'pillars/reliability.md',
30
- 'pillars/performance.md',
31
- 'pillars/operations.md',
32
- ];
33
- export const ENVIRONMENT_ARTIFACT_KINDS_V1 = [
34
- 'subscription-summary',
35
- 'subscription-resources',
36
- 'subscription-recommendations',
37
- 'subscription-service-retirements',
38
- 'subscription-monitor-alerts',
39
- 'subscription-data-protection',
40
- 'subscription-system-tracks',
41
- 'subscription-metrics',
42
- // API-issued evidence kind: a bounded projection of one compiled `projection.json` detail section
43
- // (commitments, budgets, idle resources, ...). Never emitted by the compiler as a source reference.
44
- 'subscription-projection',
45
- 'tenant-governance',
46
- 'tenant-governance-access',
47
- 'tenant-reservations',
48
- 'tenant-savings-plans',
49
- 'tenant-applications',
50
- 'tenant-service-principals',
51
- ];
52
- export const ENVIRONMENT_FINDING_KINDS_V1 = [
53
- 'recommendation',
54
- 'security-posture',
55
- 'public-exposure',
56
- 'governance',
57
- 'compliance',
58
- 'service-retirement',
59
- 'data-protection',
60
- 'health',
61
- 'performance',
62
- 'scaling',
63
- 'operations',
64
- 'monitoring',
65
- 'topology',
66
- ];
67
- export const ENVIRONMENT_SEVERITIES_V1 = ['critical', 'high', 'medium', 'low', 'informational', 'unknown'];
68
- export const ENVIRONMENT_IMPACTS_V1 = ['high', 'medium', 'low', 'unknown'];
69
- export const ENVIRONMENT_EFFORTS_V1 = ['high', 'medium', 'low', 'unknown'];
@@ -1,5 +0,0 @@
1
- export * from './contracts.js';
2
- export * from './references.js';
3
- export * from './validation.js';
4
- export * from './canonicalization.js';
5
- export * from './tenant.js';
@@ -1,97 +0,0 @@
1
- import { ENVIRONMENT_CONTRACT_LIMITS_V1 } from './contracts.js';
2
- export const SHA256_PATTERN = /^[a-f0-9]{64}$/u;
3
- export const ENVIRONMENT_RUN_ID_PATTERN = /^[A-Za-z0-9._-]+$/u;
4
- export const DECIMAL_PATTERN = /^(?:0|[1-9]\d*)(?:\.\d+)?$/u;
5
- export const CURRENCY_PATTERN = /^[A-Z]{3}$/u;
6
- export const PROTOTYPE_KEYS = new Set(['__proto__', 'prototype', 'constructor']);
7
- export const hasControlCharacter = (value) => {
8
- for (const character of value) {
9
- const codePoint = character.codePointAt(0);
10
- if (codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f))
11
- return true;
12
- }
13
- return false;
14
- };
15
- export const isRecord = (value) => {
16
- if (typeof value !== 'object' || value === null || Array.isArray(value))
17
- return false;
18
- const prototype = Object.getPrototypeOf(value);
19
- return prototype === Object.prototype || prototype === null;
20
- };
21
- export const hasExactKeys = (value, required, optional = []) => {
22
- const allowed = new Set([...required, ...optional]);
23
- const keys = Object.keys(value);
24
- return required.every(key => Object.prototype.hasOwnProperty.call(value, key)) && keys.every(key => allowed.has(key) && !PROTOTYPE_KEYS.has(key));
25
- };
26
- const scalarLength = (value) => {
27
- let count = 0;
28
- for (let index = 0; index < value.length; index += 1) {
29
- const codeUnit = value.charCodeAt(index);
30
- if (codeUnit >= 0xd800 && codeUnit <= 0xdbff) {
31
- const trailing = value.charCodeAt(index + 1);
32
- if (!(trailing >= 0xdc00 && trailing <= 0xdfff))
33
- return null;
34
- index += 1;
35
- }
36
- else if (codeUnit >= 0xdc00 && codeUnit <= 0xdfff) {
37
- return null;
38
- }
39
- count += 1;
40
- }
41
- return count;
42
- };
43
- export const isBoundedString = (value, maximumScalars, options = {}) => {
44
- if (typeof value !== 'string')
45
- return false;
46
- if (options.trimmed && (value.length === 0 || value.trim() !== value))
47
- return false;
48
- if (options.controls && hasControlCharacter(value))
49
- return false;
50
- const length = scalarLength(value);
51
- return length !== null && length <= maximumScalars;
52
- };
53
- export const isCustomerString = (value) => isBoundedString(value, ENVIRONMENT_CONTRACT_LIMITS_V1.customerStringScalars, { controls: true });
54
- export const isSafeLabel = (value) => isBoundedString(value, ENVIRONMENT_CONTRACT_LIMITS_V1.safeLabelScalars, { trimmed: true, controls: true });
55
- export const isScopeIdentifier = (value) => isBoundedString(value, ENVIRONMENT_CONTRACT_LIMITS_V1.scopeIdentifierScalars, { trimmed: true, controls: true });
56
- export const isSourceIdentity = (value) => isBoundedString(value, ENVIRONMENT_CONTRACT_LIMITS_V1.sourceIdentityScalars, { trimmed: true, controls: true });
57
- export const isNonNegativeInteger = (value) => Number.isSafeInteger(value) && value >= 0;
58
- export const isCanonicalUtcTimestamp = (value) => {
59
- if (typeof value !== 'string' || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u.test(value))
60
- return false;
61
- const milliseconds = Date.parse(value);
62
- return Number.isFinite(milliseconds) && new Date(milliseconds).toISOString() === value;
63
- };
64
- export const utf8ByteLength = (value) => {
65
- let bytes = 0;
66
- for (const character of value) {
67
- const codePoint = character.codePointAt(0);
68
- if (codePoint <= 0x7f)
69
- bytes += 1;
70
- else if (codePoint <= 0x7ff)
71
- bytes += 2;
72
- else if (codePoint <= 0xffff)
73
- bytes += 3;
74
- else
75
- bytes += 4;
76
- }
77
- return bytes;
78
- };
79
- export const hasSafeContainerShape = (value, depth = 0, seen = new Set()) => {
80
- if (depth > ENVIRONMENT_CONTRACT_LIMITS_V1.validatedContainerDepth)
81
- return false;
82
- if (typeof value !== 'object' || value === null)
83
- return true;
84
- if (seen.has(value))
85
- return false;
86
- seen.add(value);
87
- if (Array.isArray(value)) {
88
- const valid = value.length <= ENVIRONMENT_CONTRACT_LIMITS_V1.boundedListItems && value.every(item => hasSafeContainerShape(item, depth + 1, seen));
89
- seen.delete(value);
90
- return valid;
91
- }
92
- if (!isRecord(value))
93
- return false;
94
- const valid = Object.keys(value).every(key => !PROTOTYPE_KEYS.has(key) && hasSafeContainerShape(value[key], depth + 1, seen));
95
- seen.delete(value);
96
- return valid;
97
- };
@@ -1,230 +0,0 @@
1
- import { ENVIRONMENT_ARTIFACT_KINDS_V1, ENVIRONMENT_CONTRACT_LIMITS_V1, } from './contracts.js';
2
- import { hasControlCharacter, isBoundedString, utf8ByteLength } from './internal.js';
3
- const BASE64URL_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
4
- const ARTIFACT_PREFIX = 'spotto://artifact/v1/';
5
- const RESOURCE_PREFIX = 'spotto://resource/v1/';
6
- const ARTIFACT_KINDS = new Set(ENVIRONMENT_ARTIFACT_KINDS_V1);
7
- const isCanonicalScopeQualifiedSubject = (value) => {
8
- try {
9
- const parsed = JSON.parse(value);
10
- return (Array.isArray(parsed) &&
11
- ((parsed.length === 4 && parsed[0] === 'azure-subscription') || (parsed.length === 2 && parsed[0] === 'azure-tenant')) &&
12
- parsed
13
- .slice(1)
14
- .every(item => isBoundedString(item, ENVIRONMENT_CONTRACT_LIMITS_V1.scopeIdentifierScalars, { trimmed: true, controls: true })) &&
15
- JSON.stringify(parsed) === value);
16
- }
17
- catch {
18
- return false;
19
- }
20
- };
21
- const encodeUtf8 = (value) => {
22
- const bytes = [];
23
- for (const character of value) {
24
- const codePoint = character.codePointAt(0);
25
- if (codePoint <= 0x7f)
26
- bytes.push(codePoint);
27
- else if (codePoint <= 0x7ff)
28
- bytes.push(0xc0 | (codePoint >> 6), 0x80 | (codePoint & 0x3f));
29
- else if (codePoint <= 0xffff)
30
- bytes.push(0xe0 | (codePoint >> 12), 0x80 | ((codePoint >> 6) & 0x3f), 0x80 | (codePoint & 0x3f));
31
- else
32
- bytes.push(0xf0 | (codePoint >> 18), 0x80 | ((codePoint >> 12) & 0x3f), 0x80 | ((codePoint >> 6) & 0x3f), 0x80 | (codePoint & 0x3f));
33
- }
34
- return bytes;
35
- };
36
- const encodeBase64Url = (bytes) => {
37
- let output = '';
38
- for (let index = 0; index < bytes.length; index += 3) {
39
- const first = bytes[index];
40
- const second = bytes[index + 1];
41
- const third = bytes[index + 2];
42
- output += BASE64URL_ALPHABET[first >> 2];
43
- output += BASE64URL_ALPHABET[((first & 0x03) << 4) | ((second ?? 0) >> 4)];
44
- if (second !== undefined)
45
- output += BASE64URL_ALPHABET[((second & 0x0f) << 2) | ((third ?? 0) >> 6)];
46
- if (third !== undefined)
47
- output += BASE64URL_ALPHABET[third & 0x3f];
48
- }
49
- return output;
50
- };
51
- const decodeBase64Url = (value) => {
52
- if (!/^[A-Za-z0-9_-]+$/u.test(value) || value.length % 4 === 1)
53
- return null;
54
- const bytes = [];
55
- for (let index = 0; index < value.length; index += 4) {
56
- const first = BASE64URL_ALPHABET.indexOf(value[index]);
57
- const second = BASE64URL_ALPHABET.indexOf(value[index + 1]);
58
- const thirdCharacter = value[index + 2];
59
- const fourthCharacter = value[index + 3];
60
- const third = thirdCharacter === undefined ? 0 : BASE64URL_ALPHABET.indexOf(thirdCharacter);
61
- const fourth = fourthCharacter === undefined ? 0 : BASE64URL_ALPHABET.indexOf(fourthCharacter);
62
- if (first < 0 || second < 0 || third < 0 || fourth < 0)
63
- return null;
64
- bytes.push((first << 2) | (second >> 4));
65
- if (thirdCharacter !== undefined)
66
- bytes.push(((second & 0x0f) << 4) | (third >> 2));
67
- if (fourthCharacter !== undefined)
68
- bytes.push(((third & 0x03) << 6) | fourth);
69
- }
70
- return encodeBase64Url(bytes) === value ? bytes : null;
71
- };
72
- const decodeUtf8 = (bytes) => {
73
- let output = '';
74
- for (let index = 0; index < bytes.length;) {
75
- const first = bytes[index];
76
- let codePoint;
77
- let continuationCount;
78
- if (first <= 0x7f) {
79
- codePoint = first;
80
- continuationCount = 0;
81
- }
82
- else if (first >= 0xc2 && first <= 0xdf) {
83
- codePoint = first & 0x1f;
84
- continuationCount = 1;
85
- }
86
- else if (first >= 0xe0 && first <= 0xef) {
87
- codePoint = first & 0x0f;
88
- continuationCount = 2;
89
- }
90
- else if (first >= 0xf0 && first <= 0xf4) {
91
- codePoint = first & 0x07;
92
- continuationCount = 3;
93
- }
94
- else
95
- return null;
96
- if (index + continuationCount >= bytes.length)
97
- return null;
98
- for (let offset = 1; offset <= continuationCount; offset += 1) {
99
- const next = bytes[index + offset];
100
- if ((next & 0xc0) !== 0x80)
101
- return null;
102
- codePoint = (codePoint << 6) | (next & 0x3f);
103
- }
104
- if ((continuationCount === 2 && codePoint < 0x800) ||
105
- (continuationCount === 3 && codePoint < 0x10000) ||
106
- (codePoint >= 0xd800 && codePoint <= 0xdfff) ||
107
- codePoint > 0x10ffff) {
108
- return null;
109
- }
110
- output += String.fromCodePoint(codePoint);
111
- index += continuationCount + 1;
112
- }
113
- return output;
114
- };
115
- const decodePayload = (value) => {
116
- const bytes = decodeBase64Url(value);
117
- if (bytes === null || bytes.length > ENVIRONMENT_CONTRACT_LIMITS_V1.logicalReferencePayloadBytes)
118
- return null;
119
- const decoded = decodeUtf8(bytes);
120
- if (decoded === null || encodeBase64Url(encodeUtf8(decoded)) !== value)
121
- return null;
122
- return decoded;
123
- };
124
- const assertReferencePayload = (value, label, maximumScalars) => {
125
- if (!isBoundedString(value, maximumScalars, { trimmed: true, controls: true })) {
126
- throw new TypeError(`${label} must be a non-empty, trimmed, bounded Unicode string without control characters.`);
127
- }
128
- if (utf8ByteLength(value) > ENVIRONMENT_CONTRACT_LIMITS_V1.logicalReferencePayloadBytes) {
129
- throw new RangeError(`${label} exceeds the V1 logical-reference payload limit.`);
130
- }
131
- };
132
- const isCanonicalAzureResourceId = (value) => {
133
- if (!/^\/subscriptions\/[^/]+\/(?:resourceGroups\/[^/]+\/)?providers\/[^/]+\/[^/]+\/[^/]+(?:\/[^/]+\/[^/]+)*$/iu.test(value) ||
134
- value.includes('\\') ||
135
- value.includes('?') ||
136
- value.includes('#') ||
137
- value.includes('%') ||
138
- hasControlCharacter(value)) {
139
- return false;
140
- }
141
- return value.split('/').every(segment => segment !== '.' && segment !== '..');
142
- };
143
- /** Builds an opaque logical artifact reference. The decoded subject is never a storage path. */
144
- export const buildEnvironmentLogicalArtifactReferenceV1 = (artifactKind, canonicalScopeQualifiedSubject) => {
145
- if (!ARTIFACT_KINDS.has(artifactKind))
146
- throw new TypeError('Unsupported V1 environment artifact kind.');
147
- assertReferencePayload(canonicalScopeQualifiedSubject, 'Artifact subject', ENVIRONMENT_CONTRACT_LIMITS_V1.customerStringScalars);
148
- if (!isCanonicalScopeQualifiedSubject(canonicalScopeQualifiedSubject)) {
149
- throw new TypeError('Artifact subject is not a canonical V1 scope-qualified subject.');
150
- }
151
- return `${ARTIFACT_PREFIX}${artifactKind}/${encodeBase64Url(encodeUtf8(canonicalScopeQualifiedSubject))}`;
152
- };
153
- /** Parses a V1 logical artifact reference into its allowlisted kind and opaque subject. */
154
- export const parseEnvironmentLogicalArtifactReferenceV1 = (value) => {
155
- if (typeof value !== 'string' || !value.startsWith(ARTIFACT_PREFIX))
156
- return null;
157
- const remainder = value.slice(ARTIFACT_PREFIX.length);
158
- const separator = remainder.indexOf('/');
159
- if (separator <= 0 || remainder.indexOf('/', separator + 1) >= 0)
160
- return null;
161
- const artifactKind = remainder.slice(0, separator);
162
- if (!ARTIFACT_KINDS.has(artifactKind))
163
- return null;
164
- const subject = decodePayload(remainder.slice(separator + 1));
165
- if (subject === null || !isCanonicalScopeQualifiedSubject(subject)) {
166
- return null;
167
- }
168
- return { kind: 'artifact', artifactKind: artifactKind, subject };
169
- };
170
- /** Builds an opaque logical Azure resource reference from a canonical resource ID. */
171
- export const buildEnvironmentLogicalResourceReferenceV1 = (canonicalAzureResourceId) => {
172
- assertReferencePayload(canonicalAzureResourceId, 'Azure resource ID', ENVIRONMENT_CONTRACT_LIMITS_V1.scopeIdentifierScalars);
173
- if (!isCanonicalAzureResourceId(canonicalAzureResourceId))
174
- throw new TypeError('Azure resource ID is not canonical or safe.');
175
- return `${RESOURCE_PREFIX}${encodeBase64Url(encodeUtf8(canonicalAzureResourceId))}`;
176
- };
177
- /** Parses a V1 logical resource reference into a canonical Azure resource ID. */
178
- export const parseEnvironmentLogicalResourceReferenceV1 = (value) => {
179
- if (typeof value !== 'string' || !value.startsWith(RESOURCE_PREFIX))
180
- return null;
181
- const resourceId = decodePayload(value.slice(RESOURCE_PREFIX.length));
182
- if (resourceId === null || !isCanonicalAzureResourceId(resourceId))
183
- return null;
184
- return { kind: 'resource', resourceId };
185
- };
186
- /**
187
- * Derives the canonical Azure resource type from a canonical ARM resource ID.
188
- * Resource names are consumed structurally, so a resource named `providers`
189
- * cannot be mistaken for an extension-resource provider boundary.
190
- */
191
- export const deriveEnvironmentAzureResourceTypeV1 = (canonicalAzureResourceId) => {
192
- if (!isCanonicalAzureResourceId(canonicalAzureResourceId))
193
- return null;
194
- const segments = canonicalAzureResourceId.toLowerCase().split('/').filter(Boolean);
195
- const firstProviderIndex = segments.indexOf('providers');
196
- if (firstProviderIndex < 0)
197
- return null;
198
- let providerIndex = firstProviderIndex;
199
- let namespace = segments[providerIndex + 1];
200
- let typeSegments = [];
201
- let index = providerIndex + 2;
202
- while (namespace && index < segments.length) {
203
- const typeOrProviderMarker = segments[index];
204
- if (!typeOrProviderMarker)
205
- return null;
206
- if (typeOrProviderMarker === 'providers') {
207
- providerIndex = index;
208
- namespace = segments[providerIndex + 1];
209
- typeSegments = [];
210
- index = providerIndex + 2;
211
- continue;
212
- }
213
- typeSegments.push(typeOrProviderMarker);
214
- if (segments[index + 1] === undefined)
215
- return null;
216
- index += 2;
217
- }
218
- if (!namespace || typeSegments.length === 0)
219
- return null;
220
- const resourceType = `${namespace}/${typeSegments.join('/')}`;
221
- return [...resourceType].length <= ENVIRONMENT_CONTRACT_LIMITS_V1.safeLabelScalars ? resourceType : null;
222
- };
223
- /** Parses either closed V1 logical evidence-reference kind. */
224
- export const parseEnvironmentLogicalEvidenceReferenceV1 = (value) => parseEnvironmentLogicalArtifactReferenceV1(value) ?? parseEnvironmentLogicalResourceReferenceV1(value);
225
- /** Returns true when a value is a canonical V1 logical artifact reference. */
226
- export const isEnvironmentLogicalArtifactReferenceV1 = (value) => parseEnvironmentLogicalArtifactReferenceV1(value) !== null;
227
- /** Returns true when a value is a canonical V1 logical resource reference. */
228
- export const isEnvironmentLogicalResourceReferenceV1 = (value) => parseEnvironmentLogicalResourceReferenceV1(value) !== null;
229
- /** Returns true when a value is one of the closed V1 logical evidence-reference kinds. */
230
- export const isEnvironmentLogicalEvidenceReferenceV1 = (value) => parseEnvironmentLogicalEvidenceReferenceV1(value) !== null;