@spottoai/types-package 1.0.2-dev1138.2 → 1.0.2-dev1138.5

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 (261) hide show
  1. package/README.md +9 -0
  2. package/dist/accounts/accounts.d.ts +77 -4
  3. package/dist/accounts/accounts.d.ts.map +1 -1
  4. package/dist/accounts/accounts.js +2 -1
  5. package/dist/accounts/accounts.js.map +1 -1
  6. package/dist/accounts/azureManualOnboarding.d.ts +114 -0
  7. package/dist/accounts/azureManualOnboarding.d.ts.map +1 -0
  8. package/dist/accounts/azureManualOnboarding.js +12 -0
  9. package/dist/accounts/azureManualOnboarding.js.map +1 -0
  10. package/dist/accounts/azureSpSetup.d.ts +128 -31
  11. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  12. package/dist/accounts/azureSpSetup.js +15 -0
  13. package/dist/accounts/azureSpSetup.js.map +1 -1
  14. package/dist/accounts/azureSpSetupDurable.d.ts +8 -0
  15. package/dist/accounts/azureSpSetupDurable.d.ts.map +1 -1
  16. package/dist/accounts/azureSpSetupDurable.js +28 -0
  17. package/dist/accounts/azureSpSetupDurable.js.map +1 -1
  18. package/dist/accounts/index.d.ts +1 -0
  19. package/dist/accounts/index.d.ts.map +1 -1
  20. package/dist/accounts/index.js +1 -0
  21. package/dist/accounts/index.js.map +1 -1
  22. package/dist/accounts/readPermissions.d.ts +1 -1
  23. package/dist/accounts/readPermissions.d.ts.map +1 -1
  24. package/dist/accounts/readPermissions.js.map +1 -1
  25. package/dist/accounts/validation.d.ts +24 -0
  26. package/dist/accounts/validation.d.ts.map +1 -1
  27. package/dist/ai/index.d.ts +14 -1
  28. package/dist/ai/index.d.ts.map +1 -1
  29. package/dist/ai/index.js +12 -0
  30. package/dist/ai/index.js.map +1 -1
  31. package/dist/aws/commitments-planning.d.ts +5 -0
  32. package/dist/aws/commitments-planning.d.ts.map +1 -1
  33. package/dist/aws/commitments-planning.js +19 -0
  34. package/dist/aws/commitments-planning.js.map +1 -1
  35. package/dist/aws/estates.d.ts +1 -1
  36. package/dist/aws/estates.d.ts.map +1 -1
  37. package/dist/aws/estates.js +7 -1
  38. package/dist/aws/estates.js.map +1 -1
  39. package/dist/aws/index.d.ts +5 -0
  40. package/dist/aws/index.d.ts.map +1 -1
  41. package/dist/aws/index.js +5 -0
  42. package/dist/aws/index.js.map +1 -1
  43. package/dist/aws/onboarding.d.ts +3 -0
  44. package/dist/aws/onboarding.d.ts.map +1 -1
  45. package/dist/aws/organizationCommitments.d.ts +260 -0
  46. package/dist/aws/organizationCommitments.d.ts.map +1 -0
  47. package/dist/aws/organizationCommitments.js +53 -0
  48. package/dist/aws/organizationCommitments.js.map +1 -0
  49. package/dist/aws/organizationCommitmentsApiValidation.d.ts +21 -0
  50. package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +1 -0
  51. package/dist/aws/organizationCommitmentsApiValidation.js +226 -0
  52. package/dist/aws/organizationCommitmentsApiValidation.js.map +1 -0
  53. package/dist/aws/organizationCommitmentsValidation.d.ts +12 -0
  54. package/dist/aws/organizationCommitmentsValidation.d.ts.map +1 -0
  55. package/dist/aws/organizationCommitmentsValidation.js +228 -0
  56. package/dist/aws/organizationCommitmentsValidation.js.map +1 -0
  57. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts +9 -0
  58. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
  59. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +407 -0
  60. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
  61. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +17 -0
  62. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
  63. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +6 -0
  64. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +1 -0
  65. package/dist/aws/requests.d.ts +13 -2
  66. package/dist/aws/requests.d.ts.map +1 -1
  67. package/dist/aws/requests.js +1 -1
  68. package/dist/aws/requests.js.map +1 -1
  69. package/dist/azure/commitmentsPlanning.d.ts +2 -2
  70. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  71. package/dist/azure/financialAnalytics.d.ts +68 -2
  72. package/dist/azure/financialAnalytics.d.ts.map +1 -1
  73. package/dist/azure/financialAnalyticsDelivery.d.ts +2 -0
  74. package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
  75. package/dist/azure/financialAnalyticsDelivery.js +4 -1
  76. package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
  77. package/dist/azure/financialAnalyticsDisplayKernel.d.ts +12 -0
  78. package/dist/azure/financialAnalyticsDisplayKernel.d.ts.map +1 -0
  79. package/dist/azure/financialAnalyticsDisplayKernel.js +144 -0
  80. package/dist/azure/financialAnalyticsDisplayKernel.js.map +1 -0
  81. package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -1
  82. package/dist/azure/financialAnalyticsValidation.js +61 -7
  83. package/dist/azure/financialAnalyticsValidation.js.map +1 -1
  84. package/dist/azure/financialAuthorityProjectionKernel.d.ts +7 -0
  85. package/dist/azure/financialAuthorityProjectionKernel.d.ts.map +1 -0
  86. package/dist/azure/financialAuthorityProjectionKernel.js +165 -0
  87. package/dist/azure/financialAuthorityProjectionKernel.js.map +1 -0
  88. package/dist/azure/financialAuthorityView.d.ts +4 -0
  89. package/dist/azure/financialAuthorityView.d.ts.map +1 -1
  90. package/dist/azure/financialAuthorityView.js.map +1 -1
  91. package/dist/azure/financialAuthorityViewValidation.d.ts +3 -1
  92. package/dist/azure/financialAuthorityViewValidation.d.ts.map +1 -1
  93. package/dist/azure/financialAuthorityViewValidation.js +206 -2
  94. package/dist/azure/financialAuthorityViewValidation.js.map +1 -1
  95. package/dist/azure/financialChargeComposition.d.ts +81 -0
  96. package/dist/azure/financialChargeComposition.d.ts.map +1 -0
  97. package/dist/azure/financialChargeComposition.js +41 -0
  98. package/dist/azure/financialChargeComposition.js.map +1 -0
  99. package/dist/azure/financialChargeCompositionKernel.d.ts +3 -0
  100. package/dist/azure/financialChargeCompositionKernel.d.ts.map +1 -0
  101. package/dist/azure/financialChargeCompositionKernel.js +53 -0
  102. package/dist/azure/financialChargeCompositionKernel.js.map +1 -0
  103. package/dist/azure/financialChargeCompositionValidation.d.ts +8 -0
  104. package/dist/azure/financialChargeCompositionValidation.d.ts.map +1 -0
  105. package/dist/azure/financialChargeCompositionValidation.js +164 -0
  106. package/dist/azure/financialChargeCompositionValidation.js.map +1 -0
  107. package/dist/azure/financialDataflow.d.ts +8 -1
  108. package/dist/azure/financialDataflow.d.ts.map +1 -1
  109. package/dist/azure/financialDataflow.js.map +1 -1
  110. package/dist/azure/financialDataflowKernel.d.ts +2 -0
  111. package/dist/azure/financialDataflowKernel.d.ts.map +1 -1
  112. package/dist/azure/financialDataflowKernel.js +60 -7
  113. package/dist/azure/financialDataflowKernel.js.map +1 -1
  114. package/dist/azure/financialDataflowValidation.d.ts +1 -1
  115. package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
  116. package/dist/azure/financialDataflowValidation.js +146 -28
  117. package/dist/azure/financialDataflowValidation.js.map +1 -1
  118. package/dist/azure/financialPolicy.d.ts +3 -0
  119. package/dist/azure/financialPolicy.d.ts.map +1 -1
  120. package/dist/azure/financialPolicy.js.map +1 -1
  121. package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
  122. package/dist/azure/financialPolicyValidation.js +5 -0
  123. package/dist/azure/financialPolicyValidation.js.map +1 -1
  124. package/dist/azure/financialProjection.d.ts +11 -1
  125. package/dist/azure/financialProjection.d.ts.map +1 -1
  126. package/dist/azure/financialProjection.js.map +1 -1
  127. package/dist/azure/financialProjectionValidation.d.ts.map +1 -1
  128. package/dist/azure/financialProjectionValidation.js +43 -3
  129. package/dist/azure/financialProjectionValidation.js.map +1 -1
  130. package/dist/azure/financialSavingsAuthority.d.ts +25 -4
  131. package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
  132. package/dist/azure/financialSavingsAuthorityValidation.d.ts +6 -2
  133. package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
  134. package/dist/azure/financialSavingsAuthorityValidation.js +126 -2
  135. package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
  136. package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
  137. package/dist/azure/financialSavingsCoordinateValidation.js +62 -19
  138. package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -1
  139. package/dist/azure/financialSavingsSurfaceProjection.d.ts +58 -3
  140. package/dist/azure/financialSavingsSurfaceProjection.d.ts.map +1 -1
  141. package/dist/azure/financialSavingsSurfaceProjection.js +3 -1
  142. package/dist/azure/financialSavingsSurfaceProjection.js.map +1 -1
  143. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts +14 -0
  144. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts.map +1 -0
  145. package/dist/azure/financialSavingsSurfaceProjectionKernel.js +326 -0
  146. package/dist/azure/financialSavingsSurfaceProjectionKernel.js.map +1 -0
  147. package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts.map +1 -1
  148. package/dist/azure/financialSavingsSurfaceProjectionValidation.js +126 -12
  149. package/dist/azure/financialSavingsSurfaceProjectionValidation.js.map +1 -1
  150. package/dist/azure/financialScope.d.ts +6 -0
  151. package/dist/azure/financialScope.d.ts.map +1 -1
  152. package/dist/azure/financialScope.js +6 -0
  153. package/dist/azure/financialScope.js.map +1 -1
  154. package/dist/azure/governance.d.ts +145 -0
  155. package/dist/azure/governance.d.ts.map +1 -1
  156. package/dist/azure/governance.js +2 -1
  157. package/dist/azure/governance.js.map +1 -1
  158. package/dist/azure/metrics.d.ts +2 -2
  159. package/dist/azure/metrics.d.ts.map +1 -1
  160. package/dist/azure/payloads.d.ts +19 -0
  161. package/dist/azure/payloads.d.ts.map +1 -1
  162. package/dist/azure/prices.d.ts +16 -3
  163. package/dist/azure/prices.d.ts.map +1 -1
  164. package/dist/azure/recommendationState.d.ts +1 -1
  165. package/dist/azure/recommendationState.d.ts.map +1 -1
  166. package/dist/azure/recommendations.d.ts +15 -5
  167. package/dist/azure/recommendations.d.ts.map +1 -1
  168. package/dist/azure/reports.d.ts +3 -2
  169. package/dist/azure/reports.d.ts.map +1 -1
  170. package/dist/azure/reports.js.map +1 -1
  171. package/dist/azure/resources.d.ts +12 -0
  172. package/dist/azure/resources.d.ts.map +1 -1
  173. package/dist/azure/serviceRetirement.d.ts +33 -2
  174. package/dist/azure/serviceRetirement.d.ts.map +1 -1
  175. package/dist/azure/subscriptions.d.ts +13 -2
  176. package/dist/azure/subscriptions.d.ts.map +1 -1
  177. package/dist/azure/views.d.ts +26 -3
  178. package/dist/azure/views.d.ts.map +1 -1
  179. package/dist/azure/views.js.map +1 -1
  180. package/dist/azure/vmPatchManagement.d.ts +109 -0
  181. package/dist/azure/vmPatchManagement.d.ts.map +1 -0
  182. package/dist/azure/vmPatchManagement.js +7 -0
  183. package/dist/azure/vmPatchManagement.js.map +1 -0
  184. package/dist/common/provider.d.ts +53 -0
  185. package/dist/common/provider.d.ts.map +1 -1
  186. package/dist/common/provider.js.map +1 -1
  187. package/dist/environment/canonicalization.d.ts +12 -0
  188. package/dist/environment/canonicalization.d.ts.map +1 -0
  189. package/dist/environment/canonicalization.js +40 -0
  190. package/dist/environment/canonicalization.js.map +1 -0
  191. package/dist/environment/contracts.d.ts +196 -0
  192. package/dist/environment/contracts.d.ts.map +1 -0
  193. package/dist/environment/contracts.js +21 -0
  194. package/dist/environment/contracts.js.map +1 -0
  195. package/dist/environment/index.d.ts +5 -0
  196. package/dist/environment/index.d.ts.map +1 -0
  197. package/dist/environment/index.js +21 -0
  198. package/dist/environment/index.js.map +1 -0
  199. package/dist/environment/internal.d.ts +21 -0
  200. package/dist/environment/internal.d.ts.map +1 -0
  201. package/dist/environment/internal.js +113 -0
  202. package/dist/environment/internal.js.map +1 -0
  203. package/dist/environment/references.d.ts +18 -0
  204. package/dist/environment/references.d.ts.map +1 -0
  205. package/dist/environment/references.js +206 -0
  206. package/dist/environment/references.js.map +1 -0
  207. package/dist/environment/validation.d.ts +28 -0
  208. package/dist/environment/validation.d.ts.map +1 -0
  209. package/dist/environment/validation.js +320 -0
  210. package/dist/environment/validation.js.map +1 -0
  211. package/dist/esm/accounts/accounts.js +1 -0
  212. package/dist/esm/accounts/azureManualOnboarding.js +8 -0
  213. package/dist/esm/accounts/azureSpSetup.js +14 -1
  214. package/dist/esm/accounts/azureSpSetupDurable.js +27 -1
  215. package/dist/esm/accounts/index.js +1 -0
  216. package/dist/esm/ai/index.js +10 -1
  217. package/dist/esm/aws/commitments-planning.js +5 -0
  218. package/dist/esm/aws/estates.js +7 -1
  219. package/dist/esm/aws/index.js +5 -0
  220. package/dist/esm/aws/organizationCommitments.js +48 -0
  221. package/dist/esm/aws/organizationCommitmentsApiValidation.js +220 -0
  222. package/dist/esm/aws/organizationCommitmentsValidation.js +224 -0
  223. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +402 -0
  224. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +2 -0
  225. package/dist/esm/aws/requests.js +1 -1
  226. package/dist/esm/azure/financialAnalyticsDelivery.js +2 -0
  227. package/dist/esm/azure/financialAnalyticsDisplayKernel.js +139 -0
  228. package/dist/esm/azure/financialAnalyticsValidation.js +61 -7
  229. package/dist/esm/azure/financialAuthorityProjectionKernel.js +159 -0
  230. package/dist/esm/azure/financialAuthorityViewValidation.js +204 -1
  231. package/dist/esm/azure/financialChargeComposition.js +36 -0
  232. package/dist/esm/azure/financialChargeCompositionKernel.js +48 -0
  233. package/dist/esm/azure/financialChargeCompositionValidation.js +155 -0
  234. package/dist/esm/azure/financialDataflowKernel.js +60 -7
  235. package/dist/esm/azure/financialDataflowValidation.js +146 -28
  236. package/dist/esm/azure/financialPolicyValidation.js +5 -0
  237. package/dist/esm/azure/financialProjectionValidation.js +43 -3
  238. package/dist/esm/azure/financialSavingsAuthorityValidation.js +124 -2
  239. package/dist/esm/azure/financialSavingsCoordinateValidation.js +62 -19
  240. package/dist/esm/azure/financialSavingsSurfaceProjection.js +2 -0
  241. package/dist/esm/azure/financialSavingsSurfaceProjectionKernel.js +318 -0
  242. package/dist/esm/azure/financialSavingsSurfaceProjectionValidation.js +126 -12
  243. package/dist/esm/azure/financialScope.js +6 -0
  244. package/dist/esm/azure/governance.js +1 -0
  245. package/dist/esm/azure/vmPatchManagement.js +3 -0
  246. package/dist/esm/entries/commitments-planning.js +2 -2
  247. package/dist/esm/entries/environment.js +3 -0
  248. package/dist/esm/environment/canonicalization.js +34 -0
  249. package/dist/esm/environment/contracts.js +17 -0
  250. package/dist/esm/environment/index.js +4 -0
  251. package/dist/esm/environment/internal.js +97 -0
  252. package/dist/esm/environment/references.js +194 -0
  253. package/dist/esm/environment/validation.js +303 -0
  254. package/dist/esm/index.js +2 -0
  255. package/dist/index.d.ts +2 -0
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +2 -0
  258. package/dist/index.js.map +1 -1
  259. package/dist/portfolio/portfolioOperations.d.ts +1 -1
  260. package/dist/portfolio/portfolioOperations.d.ts.map +1 -1
  261. package/package.json +15 -3
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isFinancialSavingsAuthorityBoundToFinancialAuthorityV1 = exports.createFinancialSavingsAuthorityIdV1 = exports.canonicalizeFinancialSavingsAuthorityIdentityV1 = exports.createFinancialSavingsDenominatorIdV1 = exports.createFinancialSavingsAllocationIdV1 = exports.createFinancialSavingsActivationIdV1 = exports.canonicalizeFinancialSavingsDenominatorIdentityV1 = exports.canonicalizeFinancialSavingsAllocationIdentityV1 = exports.canonicalizeFinancialSavingsActivationIdentityV1 = exports.createFinancialEligibilityAssessmentIdV1 = exports.canonicalizeFinancialEligibilityAssessmentIdentityV1 = void 0;
3
+ exports.isFinancialSavingsResourceProjectionBoundToFinancialProjectionV1 = exports.isFinancialSavingsResourceProjectionV1 = exports.isFinancialSavingsAuthorityBoundToFinancialAuthorityV1 = exports.createFinancialSavingsAuthorityIdV1 = exports.canonicalizeFinancialSavingsAuthorityIdentityV1 = exports.createFinancialSavingsDenominatorIdV1 = exports.createFinancialSavingsAllocationIdV1 = exports.createFinancialSavingsActivationIdV1 = exports.canonicalizeFinancialSavingsDenominatorIdentityV1 = exports.canonicalizeFinancialSavingsAllocationIdentityV1 = exports.canonicalizeFinancialSavingsActivationIdentityV1 = exports.createFinancialEligibilityAssessmentIdV1 = exports.canonicalizeFinancialEligibilityAssessmentIdentityV1 = void 0;
4
4
  const sha256_1 = require("../common/sha256");
5
5
  const financialSavingsAuthority_1 = require("./financialSavingsAuthority");
6
6
  const financialEligibilityAssessmentValidation_1 = require("./financialEligibilityAssessmentValidation");
@@ -39,7 +39,7 @@ const canonicalizeFinancialSavingsAuthorityIdentityV1 = (value) => JSON.stringif
39
39
  .map(allocation => ({
40
40
  ...allocation,
41
41
  billableComponentIds: [...allocation.billableComponentIds].sort(),
42
- eligibility: allocation.eligibility.kind === 'not-applicable'
42
+ eligibility: allocation.eligibility.kind !== 'mapped'
43
43
  ? allocation.eligibility
44
44
  : {
45
45
  ...allocation.eligibility,
@@ -129,4 +129,128 @@ const isFinancialSavingsAuthorityBoundToFinancialAuthorityV1 = (value, authority
129
129
  return savingsAuthority.savingsAuthorityId === (0, exports.createFinancialSavingsAuthorityIdV1)(identity);
130
130
  };
131
131
  exports.isFinancialSavingsAuthorityBoundToFinancialAuthorityV1 = isFinancialSavingsAuthorityBoundToFinancialAuthorityV1;
132
+ const RESOURCE_PROJECTION_UNAVAILABLE_REASONS = new Set([
133
+ 'scenario-coverage-unproven',
134
+ 'unmigrated-scenario-producer',
135
+ 'projection-unavailable',
136
+ 'activation-unavailable',
137
+ 'allocation-unavailable',
138
+ ]);
139
+ const RESOURCE_PROJECTION_CURRENCY = /^[A-Z]{3}$/;
140
+ const normalizeResourceScope = (value) => value.trim().toLowerCase().replace(/\/+$/, '');
141
+ const isResourceContribution = (value, scopeId) => (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value) &&
142
+ (0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value, ['ownerScopeId', 'allocationIds', 'savingsMinorUnits']) &&
143
+ (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(value.ownerScopeId) &&
144
+ normalizeResourceScope(value.ownerScopeId) === scopeId &&
145
+ Array.isArray(value.allocationIds) &&
146
+ value.allocationIds.length > 0 &&
147
+ value.allocationIds.length <= 20000 &&
148
+ value.allocationIds.every(financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash) &&
149
+ new Set(value.allocationIds).size === value.allocationIds.length &&
150
+ (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsMinorUnits)(value.savingsMinorUnits);
151
+ const isRecommendationContribution = (value, scopeId) => (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value) &&
152
+ (0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value, ['ownerScopeId', 'recommendationId', 'allocationIds', 'savingsMinorUnits']) &&
153
+ (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(value.ownerScopeId) &&
154
+ normalizeResourceScope(value.ownerScopeId) === scopeId &&
155
+ (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(value.recommendationId) &&
156
+ Array.isArray(value.allocationIds) &&
157
+ value.allocationIds.length > 0 &&
158
+ value.allocationIds.length <= 20000 &&
159
+ value.allocationIds.every(financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash) &&
160
+ new Set(value.allocationIds).size === value.allocationIds.length &&
161
+ (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsMinorUnits)(value.savingsMinorUnits);
162
+ const isSavingsResourceCoordinate = (value, scopeId) => {
163
+ if (!(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value) || !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.coordinateId))
164
+ return false;
165
+ if (value.status === 'unavailable') {
166
+ return ((0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value, ['status', 'coordinateId', 'unavailableReason'], ['currentAggregateBaselineId']) &&
167
+ (value.currentAggregateBaselineId === undefined || (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.currentAggregateBaselineId)) &&
168
+ typeof value.unavailableReason === 'string' &&
169
+ RESOURCE_PROJECTION_UNAVAILABLE_REASONS.has(value.unavailableReason));
170
+ }
171
+ const partial = value.status === 'partial';
172
+ if (value.status !== 'available' &&
173
+ !partial)
174
+ return false;
175
+ if (!(0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value, [
176
+ 'status',
177
+ 'coordinateId',
178
+ 'currentAggregateBaselineId',
179
+ 'accountingCurrencyCode',
180
+ 'minorUnitScale',
181
+ 'roundingMode',
182
+ 'recommendationContributions',
183
+ ...(partial ? ['unavailableScenarioIds'] : []),
184
+ ], ['resourceContribution']) ||
185
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.currentAggregateBaselineId) ||
186
+ typeof value.accountingCurrencyCode !== 'string' ||
187
+ !RESOURCE_PROJECTION_CURRENCY.test(value.accountingCurrencyCode) ||
188
+ !Number.isSafeInteger(value.minorUnitScale) ||
189
+ Number(value.minorUnitScale) < 0 ||
190
+ Number(value.minorUnitScale) > 6 ||
191
+ value.roundingMode !== 'half-away-from-zero' ||
192
+ (value.resourceContribution !== undefined && !isResourceContribution(value.resourceContribution, scopeId)) ||
193
+ !Array.isArray(value.recommendationContributions) ||
194
+ value.recommendationContributions.length > 20000 ||
195
+ !value.recommendationContributions.every(contribution => isRecommendationContribution(contribution, scopeId)) ||
196
+ (partial &&
197
+ (!Array.isArray(value.unavailableScenarioIds) ||
198
+ value.unavailableScenarioIds.length === 0 ||
199
+ value.unavailableScenarioIds.length > 20000 ||
200
+ !value.unavailableScenarioIds.every(financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity) ||
201
+ new Set(value.unavailableScenarioIds).size !== value.unavailableScenarioIds.length)))
202
+ return false;
203
+ const recommendationIds = value.recommendationContributions.map(contribution => contribution.recommendationId);
204
+ const allocationIds = value.recommendationContributions.flatMap(contribution => contribution.allocationIds);
205
+ const contributionSum = (0, financialSavingsAuthorityValidationPrimitives_1.sumFinancialSavingsMinorUnits)(value.recommendationContributions.map(contribution => contribution.savingsMinorUnits));
206
+ const resourceContribution = value.resourceContribution;
207
+ return (new Set(recommendationIds).size === recommendationIds.length &&
208
+ new Set(allocationIds).size === allocationIds.length &&
209
+ contributionSum !== undefined &&
210
+ (resourceContribution === undefined
211
+ ? allocationIds.length === 0 && contributionSum === 0
212
+ : (0, financialSavingsAuthorityValidationPrimitives_1.haveSameFinancialSavingsSet)(allocationIds, resourceContribution.allocationIds) &&
213
+ contributionSum === resourceContribution.savingsMinorUnits));
214
+ };
215
+ /** Strict structural and arithmetic validation for one bounded resource savings projection. */
216
+ const isFinancialSavingsResourceProjectionV1 = (value) => {
217
+ if (!(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value) ||
218
+ !(0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value, [
219
+ 'contractVersion',
220
+ 'savingsAuthorityId',
221
+ 'financialAuthorityId',
222
+ 'artifactGeneration',
223
+ 'scopeId',
224
+ 'coordinates',
225
+ ]) ||
226
+ value.contractVersion !== 'financial-savings-resource-projection/v1' ||
227
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.savingsAuthorityId) ||
228
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.financialAuthorityId) ||
229
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value.artifactGeneration) ||
230
+ !(0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value.artifactGeneration, ['runId', 'generatedAt']) ||
231
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(value.artifactGeneration.runId) ||
232
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIsoInstant)(value.artifactGeneration.generatedAt) ||
233
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(value.scopeId) ||
234
+ value.scopeId !== normalizeResourceScope(value.scopeId) ||
235
+ !Array.isArray(value.coordinates) ||
236
+ value.coordinates.length === 0 ||
237
+ value.coordinates.length > 128)
238
+ return false;
239
+ const projection = value;
240
+ return (projection.coordinates.every(coordinate => isSavingsResourceCoordinate(coordinate, projection.scopeId)) &&
241
+ new Set(projection.coordinates.map(coordinate => coordinate.coordinateId)).size === projection.coordinates.length);
242
+ };
243
+ exports.isFinancialSavingsResourceProjectionV1 = isFinancialSavingsResourceProjectionV1;
244
+ /** Verifies that the bounded savings projection is the exact companion of one bounded Financial Authority projection. */
245
+ const isFinancialSavingsResourceProjectionBoundToFinancialProjectionV1 = (value, financialProjection) => {
246
+ if (!(0, exports.isFinancialSavingsResourceProjectionV1)(value))
247
+ return false;
248
+ const financialCoordinateIds = financialProjection.coordinates.map(coordinate => coordinate.coordinateId);
249
+ return (value.financialAuthorityId === financialProjection.authorityId &&
250
+ normalizeResourceScope(value.scopeId) === normalizeResourceScope(financialProjection.scopeId) &&
251
+ value.artifactGeneration.runId === financialProjection.artifactGeneration.runId &&
252
+ value.artifactGeneration.generatedAt === financialProjection.artifactGeneration.generatedAt &&
253
+ (0, financialSavingsAuthorityValidationPrimitives_1.haveSameFinancialSavingsSet)(value.coordinates.map(coordinate => coordinate.coordinateId), financialCoordinateIds));
254
+ };
255
+ exports.isFinancialSavingsResourceProjectionBoundToFinancialProjectionV1 = isFinancialSavingsResourceProjectionBoundToFinancialProjectionV1;
132
256
  //# sourceMappingURL=financialSavingsAuthorityValidation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"financialSavingsAuthorityValidation.js","sourceRoot":"","sources":["../../src/azure/financialSavingsAuthorityValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"financialSavingsAuthorityValidation.js","sourceRoot":"","sources":["../../src/azure/financialSavingsAuthorityValidation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"financialSavingsCoordinateValidation.d.ts","sourceRoot":"","sources":["../../src/azure/financialSavingsCoordinateValidation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAEV,gCAAgC,EAChC,4CAA4C,EAC5C,4CAA4C,EAC5C,oCAAoC,EACpC,6CAA6C,EAC9C,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAwC7E,eAAO,MAAM,iDAAiD,GAAI,OAAO,6CAA6C,KAAG,MAStH,CAAC;AAEJ,eAAO,MAAM,qCAAqC,GAAI,OAAO,6CAA6C,KAAG,MAC3B,CAAC;AAEnF,eAAO,MAAM,gDAAgD,GAAI,OAAO,4CAA4C,KAAG,MAapH,CAAC;AAEJ,eAAO,MAAM,oCAAoC,GAAI,OAAO,4CAA4C,KAAG,MAC1B,CAAC;AAElF,eAAO,MAAM,gDAAgD,GAAI,OAAO,4CAA4C,KAAG,MAoBpH,CAAC;AAEJ,eAAO,MAAM,oCAAoC,GAAI,OAAO,4CAA4C,KAAG,MAC1B,CAAC;AAyUlF,eAAO,MAAM,4CAA4C,GACvD,OAAO,OAAO,EACd,qBAAqB,8BAA8B,EACnD,iBAAiB,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAC9D,cAAc,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,EACvD,sBAAsB,MAAM,EAC5B,gBAAgB,MAAM,KACrB,KAAK,IAAI,oCAuBX,CAAC"}
1
+ {"version":3,"file":"financialSavingsCoordinateValidation.d.ts","sourceRoot":"","sources":["../../src/azure/financialSavingsCoordinateValidation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAGV,gCAAgC,EAChC,4CAA4C,EAC5C,4CAA4C,EAC5C,oCAAoC,EACpC,6CAA6C,EAC9C,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAiD7E,eAAO,MAAM,iDAAiD,GAAI,OAAO,6CAA6C,KAAG,MAStH,CAAC;AAEJ,eAAO,MAAM,qCAAqC,GAAI,OAAO,6CAA6C,KAAG,MAC3B,CAAC;AAEnF,eAAO,MAAM,gDAAgD,GAAI,OAAO,4CAA4C,KAAG,MAcpH,CAAC;AAEJ,eAAO,MAAM,oCAAoC,GAAI,OAAO,4CAA4C,KAAG,MAC1B,CAAC;AAElF,eAAO,MAAM,gDAAgD,GAAI,OAAO,4CAA4C,KAAG,MAqBpH,CAAC;AAEJ,eAAO,MAAM,oCAAoC,GAAI,OAAO,4CAA4C,KAAG,MAC1B,CAAC;AAkXlF,eAAO,MAAM,4CAA4C,GACvD,OAAO,OAAO,EACd,qBAAqB,8BAA8B,EACnD,iBAAiB,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAC9D,cAAc,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,EACvD,sBAAsB,MAAM,EAC5B,gBAAgB,MAAM,KACrB,KAAK,IAAI,oCAuBX,CAAC"}
@@ -26,8 +26,17 @@ const ACTIVATION_REASONS = new Set([
26
26
  'lifecycle-conflict',
27
27
  'unrecognized-lifecycle',
28
28
  'generation-mismatch',
29
+ 'projection-unavailable',
30
+ 'eligibility-unavailable',
31
+ ]);
32
+ const UNAVAILABLE_ACTIVATION_REASONS = new Set([
33
+ 'lifecycle-stale',
34
+ 'lifecycle-unavailable',
35
+ 'lifecycle-conflict',
36
+ 'generation-mismatch',
37
+ 'projection-unavailable',
38
+ 'eligibility-unavailable',
29
39
  ]);
30
- const UNAVAILABLE_ACTIVATION_REASONS = new Set(['lifecycle-stale', 'lifecycle-unavailable', 'lifecycle-conflict', 'generation-mismatch']);
31
40
  const canonicalizeFinancialSavingsDenominatorIdentityV1 = (value) => JSON.stringify((0, financialSavingsAuthorityValidationPrimitives_1.canonicalizeFinancialSavingsJsonValue)({
32
41
  kind: value.kind,
33
42
  baselineId: value.baselineId,
@@ -40,7 +49,8 @@ const createFinancialSavingsDenominatorIdV1 = (value) => `sha256:${(0, sha256_1.
40
49
  exports.createFinancialSavingsDenominatorIdV1 = createFinancialSavingsDenominatorIdV1;
41
50
  const canonicalizeFinancialSavingsActivationIdentityV1 = (value) => JSON.stringify((0, financialSavingsAuthorityValidationPrimitives_1.canonicalizeFinancialSavingsJsonValue)({
42
51
  recommendationId: value.recommendationId,
43
- projectionId: value.projectionId,
52
+ scenarioId: value.scenarioId,
53
+ ...(value.projectionId === undefined ? {} : { projectionId: value.projectionId }),
44
54
  lifecycleState: value.lifecycleState,
45
55
  lifecycleVersion: value.lifecycleVersion,
46
56
  lifecycleEvidenceRefId: value.lifecycleEvidenceRefId,
@@ -56,10 +66,11 @@ const canonicalizeFinancialSavingsAllocationIdentityV1 = (value) => JSON.stringi
56
66
  ownerScopeId: value.ownerScopeId,
57
67
  billableComponentIds: [...value.billableComponentIds].sort(),
58
68
  recommendationId: value.recommendationId,
69
+ scenarioId: value.scenarioId,
59
70
  baselineId: value.baselineId,
60
71
  projectionId: value.projectionId,
61
72
  denominatorId: value.denominatorId,
62
- eligibility: value.eligibility.kind === 'not-applicable'
73
+ eligibility: value.eligibility.kind !== 'mapped'
63
74
  ? value.eligibility
64
75
  : {
65
76
  ...value.eligibility,
@@ -107,10 +118,23 @@ const isActivationDecision = (state, result, reason) => {
107
118
  return UNAVAILABLE_ACTIVATION_REASONS.has(reason);
108
119
  };
109
120
  const isEligibility = (value) => {
110
- if (!(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value) || (value.kind !== 'not-applicable' && value.kind !== 'mapped'))
121
+ if (!(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value) || !['not-applicable', 'unavailable', 'mapped'].includes(String(value.kind)))
111
122
  return false;
112
123
  if (value.kind === 'not-applicable')
113
124
  return Object.keys(value).length === 1;
125
+ if (value.kind === 'unavailable') {
126
+ return (Object.keys(value).length === 2 &&
127
+ typeof value.reason === 'string' &&
128
+ [
129
+ 'rule-evidence-unavailable',
130
+ 'eligibility-baseline-unavailable',
131
+ 'eligible-components-unavailable',
132
+ 'denominator-unavailable',
133
+ 'current-baseline-mapping-unavailable',
134
+ 'currency-conflict',
135
+ 'reconciliation-failure',
136
+ ].includes(value.reason));
137
+ }
114
138
  return (Object.keys(value).length === 5 &&
115
139
  (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.eligibilityId) &&
116
140
  (0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.eligibilityBaselineId) &&
@@ -123,7 +147,7 @@ const isEligibility = (value) => {
123
147
  value.eligibilityComponentIds.every(financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity) &&
124
148
  new Set(value.eligibilityComponentIds).size === value.eligibilityComponentIds.length);
125
149
  };
126
- const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById, evidenceById, authorityGeneratedAt, authorityRunId) => {
150
+ const validateComposedCoordinate = (value, authorityCoordinate, eligibilityById, evidenceById, authorityGeneratedAt, authorityRunId) => {
127
151
  if (!(0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value, [
128
152
  'status',
129
153
  'coordinateId',
@@ -149,7 +173,7 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
149
173
  value.roundingMode !== 'half-away-from-zero' ||
150
174
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(value.scenarioCoverage) ||
151
175
  !(0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(value.scenarioCoverage, ['status', 'evidenceRefId', 'scenarioIds']) ||
152
- value.scenarioCoverage.status !== 'complete' ||
176
+ value.scenarioCoverage.status !== (value.status === 'available' ? 'complete' : 'partial') ||
153
177
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(value.scenarioCoverage.evidenceRefId) ||
154
178
  !Array.isArray(value.scenarioCoverage.scenarioIds) ||
155
179
  value.scenarioCoverage.scenarioIds.length > 20000 ||
@@ -175,15 +199,17 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
175
199
  Date.parse(scenarioCoverageEvidence.intrinsicTime.at) > Date.parse(authorityGeneratedAt))
176
200
  return false;
177
201
  const projectionById = new Map(authorityCoordinate.projections.flatMap(projection => (projection.status === 'available' ? [[projection.projectionId, projection]] : [])));
202
+ const availableProjectionScenarioIds = new Set(authorityCoordinate.projections.flatMap(projection => (projection.status === 'available' ? [projection.scenarioId] : [])));
203
+ const unavailableEligibilityScenarioIds = new Set([...eligibilityById.values()].flatMap(assessment => (assessment.status === 'unavailable' ? [assessment.scenarioId] : [])));
178
204
  const activationById = new Map();
179
- const activationByRecommendationId = new Map();
205
+ const activationByScenarioId = new Map();
180
206
  for (const activation of value.activations) {
181
207
  const lifecycleEvidence = evidenceById.get(activation.lifecycleEvidenceRefId);
182
208
  if (!(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsRecord)(activation) ||
183
209
  !(0, financialSavingsAuthorityValidationPrimitives_1.hasExactFinancialSavingsFields)(activation, [
184
210
  'activationId',
211
+ 'scenarioId',
185
212
  'recommendationId',
186
- 'projectionId',
187
213
  'lifecycleState',
188
214
  'lifecycleVersion',
189
215
  'lifecycleEvidenceRefId',
@@ -191,19 +217,29 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
191
217
  'reason',
192
218
  'evaluatedAt',
193
219
  'policyVersion',
194
- ]) ||
220
+ ], ['projectionId']) ||
195
221
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(activation.activationId) ||
196
222
  activationById.has(activation.activationId) ||
197
- activationByRecommendationId.has(activation.recommendationId) ||
223
+ activationByScenarioId.has(activation.scenarioId) ||
224
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(activation.scenarioId) ||
198
225
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(activation.recommendationId) ||
199
- !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(activation.projectionId) ||
226
+ (activation.projectionId !== undefined && !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(activation.projectionId)) ||
200
227
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(activation.lifecycleVersion) ||
201
228
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(activation.lifecycleEvidenceRefId) ||
202
229
  !isActivationDecision(activation.lifecycleState, activation.result, activation.reason) ||
203
230
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIsoInstant)(activation.evaluatedAt) ||
204
231
  Date.parse(activation.evaluatedAt) > Date.parse(authorityGeneratedAt) ||
205
232
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(activation.policyVersion) ||
206
- projectionById.get(activation.projectionId)?.scenarioId !== activation.recommendationId ||
233
+ (activation.result === 'included' &&
234
+ (activation.projectionId === undefined || projectionById.get(activation.projectionId)?.scenarioId !== activation.scenarioId)) ||
235
+ (activation.result === 'excluded' &&
236
+ activation.projectionId !== undefined &&
237
+ projectionById.get(activation.projectionId)?.scenarioId !== activation.scenarioId) ||
238
+ (activation.result === 'unavailable' &&
239
+ (activation.projectionId !== undefined ||
240
+ (activation.reason === 'projection-unavailable' && availableProjectionScenarioIds.has(activation.scenarioId)) ||
241
+ (activation.reason === 'eligibility-unavailable' &&
242
+ !unavailableEligibilityScenarioIds.has(activation.scenarioId)))) ||
207
243
  lifecycleEvidence?.role !== 'recommendation-lifecycle' ||
208
244
  lifecycleEvidence.revisionId !== activation.lifecycleVersion ||
209
245
  Date.parse(lifecycleEvidence.intrinsicTime.at) > Date.parse(authorityGeneratedAt))
@@ -212,12 +248,15 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
212
248
  if (activation.activationId !== (0, exports.createFinancialSavingsActivationIdV1)(activationIdentity))
213
249
  return false;
214
250
  activationById.set(activation.activationId, activation);
215
- activationByRecommendationId.set(activation.recommendationId, activation);
251
+ activationByScenarioId.set(activation.scenarioId, activation);
216
252
  }
217
253
  const coveredScenarioIds = new Set(value.scenarioCoverage.scenarioIds);
218
- const activatedScenarioIds = new Set(value.activations.map(activation => activation.recommendationId));
254
+ const activatedScenarioIds = new Set(value.activations.map(activation => activation.scenarioId));
219
255
  if (value.scenarioCoverage.scenarioIds.some(scenarioId => !activatedScenarioIds.has(scenarioId)) ||
220
- value.activations.some(activation => !coveredScenarioIds.has(activation.recommendationId)))
256
+ value.activations.some(activation => !coveredScenarioIds.has(activation.scenarioId)))
257
+ return false;
258
+ const hasUnavailableActivation = value.activations.some(activation => activation.result === 'unavailable');
259
+ if ((value.status === 'available' && hasUnavailableActivation) || (value.status === 'partial' && !hasUnavailableActivation))
221
260
  return false;
222
261
  const allocationById = new Map();
223
262
  const allocatedBaselineComponents = new Set();
@@ -227,7 +266,7 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
227
266
  const eligibility = allocation.eligibility.kind === 'mapped' ? eligibilityById.get(allocation.eligibility.eligibilityId) : undefined;
228
267
  const expectedDenominatorId = allocation.eligibility.kind === 'mapped' && eligibility?.status === 'available'
229
268
  ? eligibility.denominator.denominatorId
230
- : projection
269
+ : allocation.eligibility.kind === 'not-applicable' && projection
231
270
  ? (0, exports.createFinancialSavingsDenominatorIdV1)({
232
271
  kind: 'projection-affected-current',
233
272
  baselineId: projection.baselineId,
@@ -241,6 +280,7 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
241
280
  'allocationId',
242
281
  'ownerScopeId',
243
282
  'billableComponentIds',
283
+ 'scenarioId',
244
284
  'recommendationId',
245
285
  'baselineId',
246
286
  'projectionId',
@@ -257,6 +297,7 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
257
297
  allocation.billableComponentIds.length > 20000 ||
258
298
  !allocation.billableComponentIds.every(financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity) ||
259
299
  new Set(allocation.billableComponentIds).size !== allocation.billableComponentIds.length ||
300
+ !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(allocation.scenarioId) ||
260
301
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsIdentity)(allocation.recommendationId) ||
261
302
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(allocation.baselineId) ||
262
303
  !(0, financialSavingsAuthorityValidationPrimitives_1.isFinancialSavingsHash)(allocation.projectionId) ||
@@ -270,15 +311,17 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
270
311
  projection.baselineId !== allocation.baselineId ||
271
312
  !(0, financialSavingsAuthorityValidationPrimitives_1.haveSameFinancialSavingsSet)(projection.affectedComponentIds, allocation.billableComponentIds) ||
272
313
  decimalToMinorUnits(projection.change.savings, value.minorUnitScale) !== allocation.savingsMinorUnits ||
314
+ projection.scenarioId !== allocation.scenarioId ||
273
315
  !activation ||
274
316
  activation.result !== 'included' ||
317
+ activation.scenarioId !== allocation.scenarioId ||
275
318
  activation.recommendationId !== allocation.recommendationId ||
276
319
  activation.projectionId !== allocation.projectionId ||
277
320
  (allocation.eligibility.kind === 'mapped' &&
278
321
  (!eligibility ||
279
322
  eligibility.status !== 'available' ||
280
323
  eligibility.scopeId !== allocation.ownerScopeId ||
281
- eligibility.scenarioId !== allocation.recommendationId ||
324
+ eligibility.scenarioId !== allocation.scenarioId ||
282
325
  eligibility.eligibilityBaselineId !== allocation.eligibility.eligibilityBaselineId ||
283
326
  eligibility.denominator.denominatorId !== allocation.denominatorId ||
284
327
  eligibility.currentBaselineMapping.currentBaselineId !== allocation.baselineId ||
@@ -369,8 +412,8 @@ const validateFinancialSavingsCoordinateEnvelopeV1 = (value, authorityCoordinate
369
412
  ? value.currentAggregateBaselineId === authorityCoordinate.aggregateBaseline.baselineId
370
413
  : value.currentAggregateBaselineId === undefined));
371
414
  }
372
- return (value.status === 'available' &&
373
- validateAvailableCoordinate(value, authorityCoordinate, eligibilityById, evidenceById, authorityGeneratedAt, authorityRunId));
415
+ return ((value.status === 'available' || value.status === 'partial') &&
416
+ validateComposedCoordinate(value, authorityCoordinate, eligibilityById, evidenceById, authorityGeneratedAt, authorityRunId));
374
417
  };
375
418
  exports.validateFinancialSavingsCoordinateEnvelopeV1 = validateFinancialSavingsCoordinateEnvelopeV1;
376
419
  //# sourceMappingURL=financialSavingsCoordinateValidation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"financialSavingsCoordinateValidation.js","sourceRoot":"","sources":["../../src/azure/financialSavingsCoordinateValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"financialSavingsCoordinateValidation.js","sourceRoot":"","sources":["../../src/azure/financialSavingsCoordinateValidation.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,29 @@
1
1
  import type { ArtifactGeneration } from '../common/artifactGeneration';
2
2
  import type { CostBasis, EstimateLens } from './costComposition';
3
- import type { FinancialBaselinePeriodV2 } from './financialScopeBaseline';
3
+ import type { FinancialBaselinePeriodV2, FinancialChargeInclusionPolicyRefV2 } from './financialScopeBaseline';
4
4
  import type { FinancialSavingsUnavailableReasonV1 } from './financialSavingsAuthority';
5
5
  export declare const FINANCIAL_SAVINGS_SURFACE_PROJECTION_SCHEMA_VERSION_V1: 1;
6
6
  export declare const FINANCIAL_SAVINGS_SURFACE_PROJECTION_CONTRACT_VERSION_V1: "financial-savings-surface-projection/v1";
7
- export type FinancialSavingsSurfaceV1 = 'recommendations' | 'dashboard';
7
+ export type FinancialSavingsSurfaceV1 = 'recommendations' | 'resources' | 'dashboard';
8
+ export declare const FINANCIAL_SAVINGS_QUERY_SELECTION_CONTRACT_VERSION_V1: "financial-savings-query-selection/v1";
9
+ /**
10
+ * Non-monetary query membership selected by an authorized transport. The UI
11
+ * Financial Domain applies this membership to a producer-owned full projection
12
+ * through the shared Kernel; the API never composes financial totals.
13
+ */
14
+ export interface FinancialSavingsQuerySelectionV1 {
15
+ contractVersion: typeof FINANCIAL_SAVINGS_QUERY_SELECTION_CONTRACT_VERSION_V1;
16
+ filterFingerprint: string;
17
+ recommendationIds: string[];
18
+ }
19
+ export declare const FINANCIAL_SAVINGS_RESOURCE_QUERY_SELECTION_CONTRACT_VERSION_V1: "financial-savings-resource-query-selection/v1";
20
+ /** Non-monetary canonical allocation membership selected by a resource query. */
21
+ export interface FinancialSavingsResourceQuerySelectionV1 {
22
+ contractVersion: typeof FINANCIAL_SAVINGS_RESOURCE_QUERY_SELECTION_CONTRACT_VERSION_V1;
23
+ filterFingerprint: string;
24
+ allocationIds: string[];
25
+ recommendationIds: string[];
26
+ }
8
27
  export type FinancialSavingsSurfaceScopeV1 = {
9
28
  kind: 'subscription-full';
10
29
  } | {
@@ -12,11 +31,38 @@ export type FinancialSavingsSurfaceScopeV1 = {
12
31
  filterFingerprint: string;
13
32
  /** Complete matched recommendation set before sorting and pagination. */
14
33
  recommendationIds: string[];
34
+ } | {
35
+ kind: 'resource-query';
36
+ filterFingerprint: string;
37
+ /** Complete canonical allocation set owned by matched resources before pagination. */
38
+ allocationIds: string[];
39
+ recommendationIds: string[];
15
40
  };
41
+ export interface FinancialSavingsAllocationContributionV1 {
42
+ allocationId: string;
43
+ savingsMinorUnits: number;
44
+ }
16
45
  export interface FinancialSavingsRecommendationContributionV1 {
17
46
  recommendationId: string;
18
47
  allocationIds: [string, ...string[]];
19
48
  savingsMinorUnits: number;
49
+ /**
50
+ * Exact allocation amounts retained so resource membership can be composed
51
+ * without approximation. Optional only for V1 projections produced before
52
+ * resource-query composition was introduced; resource-query projection
53
+ * fails closed when this evidence is absent.
54
+ */
55
+ allocations?: [FinancialSavingsAllocationContributionV1, ...FinancialSavingsAllocationContributionV1[]];
56
+ }
57
+ /**
58
+ * Non-monetary lifecycle membership retained with a full savings surface.
59
+ * It lets a reader invalidate an immutable projection when a resource-scoped
60
+ * recommendation changes state without reading or recomputing financial data.
61
+ */
62
+ export interface FinancialSavingsLifecycleBindingV1 {
63
+ resourceId: string;
64
+ recommendationId: string;
65
+ allocationIds: [string, ...string[]];
20
66
  }
21
67
  interface FinancialSavingsSurfaceCoordinateCommonV1 {
22
68
  /** Identity of the exact source Financial Authority coordinate. */
@@ -25,6 +71,8 @@ interface FinancialSavingsSurfaceCoordinateCommonV1 {
25
71
  period: FinancialBaselinePeriodV2;
26
72
  costBasis: CostBasis;
27
73
  estimateLens: EstimateLens;
74
+ /** Exact charge scope inherited from the current Financial Authority baseline. */
75
+ chargeInclusionPolicyRef: FinancialChargeInclusionPolicyRefV2;
28
76
  requestedCurrencyCode?: string;
29
77
  currentAggregateBaselineId?: string;
30
78
  }
@@ -44,11 +92,16 @@ export interface AvailableFinancialSavingsSurfaceCoordinateV1 extends FinancialS
44
92
  savingsMinorUnits: number;
45
93
  };
46
94
  }
95
+ /** Proven contributions retained while one or more in-scope scenarios lack target evidence. */
96
+ export interface PartialFinancialSavingsSurfaceCoordinateV1 extends Omit<AvailableFinancialSavingsSurfaceCoordinateV1, 'status'> {
97
+ status: 'partial';
98
+ unavailableRecommendationIds: [string, ...string[]];
99
+ }
47
100
  export interface UnavailableFinancialSavingsSurfaceCoordinateV1 extends FinancialSavingsSurfaceCoordinateCommonV1 {
48
101
  status: 'unavailable';
49
102
  unavailableReason: FinancialSavingsUnavailableReasonV1;
50
103
  }
51
- export type FinancialSavingsSurfaceCoordinateEnvelopeV1 = AvailableFinancialSavingsSurfaceCoordinateV1 | UnavailableFinancialSavingsSurfaceCoordinateV1;
104
+ export type FinancialSavingsSurfaceCoordinateEnvelopeV1 = AvailableFinancialSavingsSurfaceCoordinateV1 | PartialFinancialSavingsSurfaceCoordinateV1 | UnavailableFinancialSavingsSurfaceCoordinateV1;
52
105
  export interface FinancialSavingsSurfaceProjectionV1 {
53
106
  schemaVersion: typeof FINANCIAL_SAVINGS_SURFACE_PROJECTION_SCHEMA_VERSION_V1;
54
107
  contractVersion: typeof FINANCIAL_SAVINGS_SURFACE_PROJECTION_CONTRACT_VERSION_V1;
@@ -60,6 +113,8 @@ export interface FinancialSavingsSurfaceProjectionV1 {
60
113
  artifactGeneration: ArtifactGeneration;
61
114
  financialAuthorityId: string;
62
115
  savingsAuthorityId: string;
116
+ /** Optional for pre-binding V1 artifacts; readers fail savings closed when required evidence is absent. */
117
+ lifecycleBindings?: [FinancialSavingsLifecycleBindingV1, ...FinancialSavingsLifecycleBindingV1[]];
63
118
  coordinates: [FinancialSavingsSurfaceCoordinateEnvelopeV1, ...FinancialSavingsSurfaceCoordinateEnvelopeV1[]];
64
119
  }
65
120
  export type FinancialSavingsSurfaceProjectionIdentityPreimageV1 = Omit<FinancialSavingsSurfaceProjectionV1, 'projectionId'>;
@@ -1 +1 @@
1
- {"version":3,"file":"financialSavingsSurfaceProjection.d.ts","sourceRoot":"","sources":["../../src/azure/financialSavingsSurfaceProjection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,6BAA6B,CAAC;AAEvF,eAAO,MAAM,sDAAsD,EAAG,CAAU,CAAC;AACjF,eAAO,MAAM,wDAAwD,EAAG,yCAAkD,CAAC;AAE3H,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAExE,MAAM,MAAM,8BAA8B,GACtC;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,4CAA4C;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,yCAAyC;IACjD,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,MAAM,EAAE,yBAAyB,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,4CAA6C,SAAQ,yCAAyC;IAC7G,MAAM,EAAE,WAAW,CAAC;IACpB,0BAA0B,EAAE,MAAM,CAAC;IACnC,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,qBAAqB,CAAC;IACpC,2BAA2B,EAAE,4CAA4C,EAAE,CAAC;IAC5E,SAAS,EAAE;QACT,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,8CAA+C,SAAQ,yCAAyC;IAC/G,MAAM,EAAE,aAAa,CAAC;IACtB,iBAAiB,EAAE,mCAAmC,CAAC;CACxD;AAED,MAAM,MAAM,2CAA2C,GACnD,4CAA4C,GAC5C,8CAA8C,CAAC;AAEnD,MAAM,WAAW,mCAAmC;IAClD,aAAa,EAAE,OAAO,sDAAsD,CAAC;IAC7E,eAAe,EAAE,OAAO,wDAAwD,CAAC;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,8BAA8B,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,CAAC,2CAA2C,EAAE,GAAG,2CAA2C,EAAE,CAAC,CAAC;CAC9G;AAED,MAAM,MAAM,mDAAmD,GAAG,IAAI,CAAC,mCAAmC,EAAE,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"financialSavingsSurfaceProjection.d.ts","sourceRoot":"","sources":["../../src/azure/financialSavingsSurfaceProjection.ts"],"names":[],"mappings":"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"}