@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.
- package/README.md +9 -0
- package/dist/accounts/accounts.d.ts +77 -4
- package/dist/accounts/accounts.d.ts.map +1 -1
- package/dist/accounts/accounts.js +2 -1
- package/dist/accounts/accounts.js.map +1 -1
- package/dist/accounts/azureManualOnboarding.d.ts +114 -0
- package/dist/accounts/azureManualOnboarding.d.ts.map +1 -0
- package/dist/accounts/azureManualOnboarding.js +12 -0
- package/dist/accounts/azureManualOnboarding.js.map +1 -0
- package/dist/accounts/azureSpSetup.d.ts +128 -31
- package/dist/accounts/azureSpSetup.d.ts.map +1 -1
- package/dist/accounts/azureSpSetup.js +15 -0
- package/dist/accounts/azureSpSetup.js.map +1 -1
- package/dist/accounts/azureSpSetupDurable.d.ts +8 -0
- package/dist/accounts/azureSpSetupDurable.d.ts.map +1 -1
- package/dist/accounts/azureSpSetupDurable.js +28 -0
- package/dist/accounts/azureSpSetupDurable.js.map +1 -1
- package/dist/accounts/index.d.ts +1 -0
- package/dist/accounts/index.d.ts.map +1 -1
- package/dist/accounts/index.js +1 -0
- package/dist/accounts/index.js.map +1 -1
- package/dist/accounts/readPermissions.d.ts +1 -1
- package/dist/accounts/readPermissions.d.ts.map +1 -1
- package/dist/accounts/readPermissions.js.map +1 -1
- package/dist/accounts/validation.d.ts +24 -0
- package/dist/accounts/validation.d.ts.map +1 -1
- package/dist/ai/index.d.ts +14 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +12 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/aws/commitments-planning.d.ts +5 -0
- package/dist/aws/commitments-planning.d.ts.map +1 -1
- package/dist/aws/commitments-planning.js +19 -0
- package/dist/aws/commitments-planning.js.map +1 -1
- package/dist/aws/estates.d.ts +1 -1
- package/dist/aws/estates.d.ts.map +1 -1
- package/dist/aws/estates.js +7 -1
- package/dist/aws/estates.js.map +1 -1
- package/dist/aws/index.d.ts +5 -0
- package/dist/aws/index.d.ts.map +1 -1
- package/dist/aws/index.js +5 -0
- package/dist/aws/index.js.map +1 -1
- package/dist/aws/onboarding.d.ts +3 -0
- package/dist/aws/onboarding.d.ts.map +1 -1
- package/dist/aws/organizationCommitments.d.ts +260 -0
- package/dist/aws/organizationCommitments.d.ts.map +1 -0
- package/dist/aws/organizationCommitments.js +53 -0
- package/dist/aws/organizationCommitments.js.map +1 -0
- package/dist/aws/organizationCommitmentsApiValidation.d.ts +21 -0
- package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +1 -0
- package/dist/aws/organizationCommitmentsApiValidation.js +226 -0
- package/dist/aws/organizationCommitmentsApiValidation.js.map +1 -0
- package/dist/aws/organizationCommitmentsValidation.d.ts +12 -0
- package/dist/aws/organizationCommitmentsValidation.d.ts.map +1 -0
- package/dist/aws/organizationCommitmentsValidation.js +228 -0
- package/dist/aws/organizationCommitmentsValidation.js.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts +9 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +407 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +17 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +6 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +1 -0
- package/dist/aws/requests.d.ts +13 -2
- package/dist/aws/requests.d.ts.map +1 -1
- package/dist/aws/requests.js +1 -1
- package/dist/aws/requests.js.map +1 -1
- package/dist/azure/commitmentsPlanning.d.ts +2 -2
- package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
- package/dist/azure/financialAnalytics.d.ts +68 -2
- package/dist/azure/financialAnalytics.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.d.ts +2 -0
- package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.js +4 -1
- package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
- package/dist/azure/financialAnalyticsDisplayKernel.d.ts +12 -0
- package/dist/azure/financialAnalyticsDisplayKernel.d.ts.map +1 -0
- package/dist/azure/financialAnalyticsDisplayKernel.js +144 -0
- package/dist/azure/financialAnalyticsDisplayKernel.js.map +1 -0
- package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsValidation.js +61 -7
- package/dist/azure/financialAnalyticsValidation.js.map +1 -1
- package/dist/azure/financialAuthorityProjectionKernel.d.ts +7 -0
- package/dist/azure/financialAuthorityProjectionKernel.d.ts.map +1 -0
- package/dist/azure/financialAuthorityProjectionKernel.js +165 -0
- package/dist/azure/financialAuthorityProjectionKernel.js.map +1 -0
- package/dist/azure/financialAuthorityView.d.ts +4 -0
- package/dist/azure/financialAuthorityView.d.ts.map +1 -1
- package/dist/azure/financialAuthorityView.js.map +1 -1
- package/dist/azure/financialAuthorityViewValidation.d.ts +3 -1
- package/dist/azure/financialAuthorityViewValidation.d.ts.map +1 -1
- package/dist/azure/financialAuthorityViewValidation.js +206 -2
- package/dist/azure/financialAuthorityViewValidation.js.map +1 -1
- package/dist/azure/financialChargeComposition.d.ts +81 -0
- package/dist/azure/financialChargeComposition.d.ts.map +1 -0
- package/dist/azure/financialChargeComposition.js +41 -0
- package/dist/azure/financialChargeComposition.js.map +1 -0
- package/dist/azure/financialChargeCompositionKernel.d.ts +3 -0
- package/dist/azure/financialChargeCompositionKernel.d.ts.map +1 -0
- package/dist/azure/financialChargeCompositionKernel.js +53 -0
- package/dist/azure/financialChargeCompositionKernel.js.map +1 -0
- package/dist/azure/financialChargeCompositionValidation.d.ts +8 -0
- package/dist/azure/financialChargeCompositionValidation.d.ts.map +1 -0
- package/dist/azure/financialChargeCompositionValidation.js +164 -0
- package/dist/azure/financialChargeCompositionValidation.js.map +1 -0
- package/dist/azure/financialDataflow.d.ts +8 -1
- package/dist/azure/financialDataflow.d.ts.map +1 -1
- package/dist/azure/financialDataflow.js.map +1 -1
- package/dist/azure/financialDataflowKernel.d.ts +2 -0
- package/dist/azure/financialDataflowKernel.d.ts.map +1 -1
- package/dist/azure/financialDataflowKernel.js +60 -7
- package/dist/azure/financialDataflowKernel.js.map +1 -1
- package/dist/azure/financialDataflowValidation.d.ts +1 -1
- package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
- package/dist/azure/financialDataflowValidation.js +146 -28
- package/dist/azure/financialDataflowValidation.js.map +1 -1
- package/dist/azure/financialPolicy.d.ts +3 -0
- package/dist/azure/financialPolicy.d.ts.map +1 -1
- package/dist/azure/financialPolicy.js.map +1 -1
- package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
- package/dist/azure/financialPolicyValidation.js +5 -0
- package/dist/azure/financialPolicyValidation.js.map +1 -1
- package/dist/azure/financialProjection.d.ts +11 -1
- package/dist/azure/financialProjection.d.ts.map +1 -1
- package/dist/azure/financialProjection.js.map +1 -1
- package/dist/azure/financialProjectionValidation.d.ts.map +1 -1
- package/dist/azure/financialProjectionValidation.js +43 -3
- package/dist/azure/financialProjectionValidation.js.map +1 -1
- package/dist/azure/financialSavingsAuthority.d.ts +25 -4
- package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.d.ts +6 -2
- package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.js +126 -2
- package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.js +62 -19
- package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjection.d.ts +58 -3
- package/dist/azure/financialSavingsSurfaceProjection.d.ts.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjection.js +3 -1
- package/dist/azure/financialSavingsSurfaceProjection.js.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts +14 -0
- package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts.map +1 -0
- package/dist/azure/financialSavingsSurfaceProjectionKernel.js +326 -0
- package/dist/azure/financialSavingsSurfaceProjectionKernel.js.map +1 -0
- package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjectionValidation.js +126 -12
- package/dist/azure/financialSavingsSurfaceProjectionValidation.js.map +1 -1
- package/dist/azure/financialScope.d.ts +6 -0
- package/dist/azure/financialScope.d.ts.map +1 -1
- package/dist/azure/financialScope.js +6 -0
- package/dist/azure/financialScope.js.map +1 -1
- package/dist/azure/governance.d.ts +145 -0
- package/dist/azure/governance.d.ts.map +1 -1
- package/dist/azure/governance.js +2 -1
- package/dist/azure/governance.js.map +1 -1
- package/dist/azure/metrics.d.ts +2 -2
- package/dist/azure/metrics.d.ts.map +1 -1
- package/dist/azure/payloads.d.ts +19 -0
- package/dist/azure/payloads.d.ts.map +1 -1
- package/dist/azure/prices.d.ts +16 -3
- package/dist/azure/prices.d.ts.map +1 -1
- package/dist/azure/recommendationState.d.ts +1 -1
- package/dist/azure/recommendationState.d.ts.map +1 -1
- package/dist/azure/recommendations.d.ts +15 -5
- package/dist/azure/recommendations.d.ts.map +1 -1
- package/dist/azure/reports.d.ts +3 -2
- package/dist/azure/reports.d.ts.map +1 -1
- package/dist/azure/reports.js.map +1 -1
- package/dist/azure/resources.d.ts +12 -0
- package/dist/azure/resources.d.ts.map +1 -1
- package/dist/azure/serviceRetirement.d.ts +33 -2
- package/dist/azure/serviceRetirement.d.ts.map +1 -1
- package/dist/azure/subscriptions.d.ts +13 -2
- package/dist/azure/subscriptions.d.ts.map +1 -1
- package/dist/azure/views.d.ts +26 -3
- package/dist/azure/views.d.ts.map +1 -1
- package/dist/azure/views.js.map +1 -1
- package/dist/azure/vmPatchManagement.d.ts +109 -0
- package/dist/azure/vmPatchManagement.d.ts.map +1 -0
- package/dist/azure/vmPatchManagement.js +7 -0
- package/dist/azure/vmPatchManagement.js.map +1 -0
- package/dist/common/provider.d.ts +53 -0
- package/dist/common/provider.d.ts.map +1 -1
- package/dist/common/provider.js.map +1 -1
- package/dist/environment/canonicalization.d.ts +12 -0
- package/dist/environment/canonicalization.d.ts.map +1 -0
- package/dist/environment/canonicalization.js +40 -0
- package/dist/environment/canonicalization.js.map +1 -0
- package/dist/environment/contracts.d.ts +196 -0
- package/dist/environment/contracts.d.ts.map +1 -0
- package/dist/environment/contracts.js +21 -0
- package/dist/environment/contracts.js.map +1 -0
- package/dist/environment/index.d.ts +5 -0
- package/dist/environment/index.d.ts.map +1 -0
- package/dist/environment/index.js +21 -0
- package/dist/environment/index.js.map +1 -0
- package/dist/environment/internal.d.ts +21 -0
- package/dist/environment/internal.d.ts.map +1 -0
- package/dist/environment/internal.js +113 -0
- package/dist/environment/internal.js.map +1 -0
- package/dist/environment/references.d.ts +18 -0
- package/dist/environment/references.d.ts.map +1 -0
- package/dist/environment/references.js +206 -0
- package/dist/environment/references.js.map +1 -0
- package/dist/environment/validation.d.ts +28 -0
- package/dist/environment/validation.d.ts.map +1 -0
- package/dist/environment/validation.js +320 -0
- package/dist/environment/validation.js.map +1 -0
- package/dist/esm/accounts/accounts.js +1 -0
- package/dist/esm/accounts/azureManualOnboarding.js +8 -0
- package/dist/esm/accounts/azureSpSetup.js +14 -1
- package/dist/esm/accounts/azureSpSetupDurable.js +27 -1
- package/dist/esm/accounts/index.js +1 -0
- package/dist/esm/ai/index.js +10 -1
- package/dist/esm/aws/commitments-planning.js +5 -0
- package/dist/esm/aws/estates.js +7 -1
- package/dist/esm/aws/index.js +5 -0
- package/dist/esm/aws/organizationCommitments.js +48 -0
- package/dist/esm/aws/organizationCommitmentsApiValidation.js +220 -0
- package/dist/esm/aws/organizationCommitmentsValidation.js +224 -0
- package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +402 -0
- package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +2 -0
- package/dist/esm/aws/requests.js +1 -1
- package/dist/esm/azure/financialAnalyticsDelivery.js +2 -0
- package/dist/esm/azure/financialAnalyticsDisplayKernel.js +139 -0
- package/dist/esm/azure/financialAnalyticsValidation.js +61 -7
- package/dist/esm/azure/financialAuthorityProjectionKernel.js +159 -0
- package/dist/esm/azure/financialAuthorityViewValidation.js +204 -1
- package/dist/esm/azure/financialChargeComposition.js +36 -0
- package/dist/esm/azure/financialChargeCompositionKernel.js +48 -0
- package/dist/esm/azure/financialChargeCompositionValidation.js +155 -0
- package/dist/esm/azure/financialDataflowKernel.js +60 -7
- package/dist/esm/azure/financialDataflowValidation.js +146 -28
- package/dist/esm/azure/financialPolicyValidation.js +5 -0
- package/dist/esm/azure/financialProjectionValidation.js +43 -3
- package/dist/esm/azure/financialSavingsAuthorityValidation.js +124 -2
- package/dist/esm/azure/financialSavingsCoordinateValidation.js +62 -19
- package/dist/esm/azure/financialSavingsSurfaceProjection.js +2 -0
- package/dist/esm/azure/financialSavingsSurfaceProjectionKernel.js +318 -0
- package/dist/esm/azure/financialSavingsSurfaceProjectionValidation.js +126 -12
- package/dist/esm/azure/financialScope.js +6 -0
- package/dist/esm/azure/governance.js +1 -0
- package/dist/esm/azure/vmPatchManagement.js +3 -0
- package/dist/esm/entries/commitments-planning.js +2 -2
- package/dist/esm/entries/environment.js +3 -0
- package/dist/esm/environment/canonicalization.js +34 -0
- package/dist/esm/environment/contracts.js +17 -0
- package/dist/esm/environment/index.js +4 -0
- package/dist/esm/environment/internal.js +97 -0
- package/dist/esm/environment/references.js +194 -0
- package/dist/esm/environment/validation.js +303 -0
- package/dist/esm/index.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/portfolio/portfolioOperations.d.ts +1 -1
- package/dist/portfolio/portfolioOperations.d.ts.map +1 -1
- package/package.json +15 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isFinancialAuthorityViewBoundToArtifactGenerationV1 = exports.isFinancialAuthorityViewV1 = exports.createFinancialAuthorityViewIdV1 = exports.canonicalizeFinancialAuthorityViewIdentityV1 = exports.createFinancialAuthorityCoordinateIdV1 = exports.canonicalizeFinancialAuthorityCoordinateIdentityV1 = void 0;
|
|
3
|
+
exports.isFinancialAuthorityResourceProjectionV1 = exports.isFinancialAuthorityViewBoundToArtifactGenerationV1 = exports.isFinancialAuthorityViewV1 = exports.createFinancialAuthorityViewIdV1 = exports.canonicalizeFinancialAuthorityViewIdentityV1 = exports.createFinancialAuthorityCoordinateIdV1 = exports.canonicalizeFinancialAuthorityCoordinateIdentityV1 = void 0;
|
|
4
4
|
const sha256_1 = require("../common/sha256");
|
|
5
5
|
const financialAuthorityView_1 = require("./financialAuthorityView");
|
|
6
6
|
const financialProjectionValidation_1 = require("./financialProjectionValidation");
|
|
@@ -8,6 +8,8 @@ const financialEvidenceAssessmentValidation_1 = require("./financialEvidenceAsse
|
|
|
8
8
|
const exactDecimal_1 = require("../common/exactDecimal");
|
|
9
9
|
const financialScopeBaselineValidation_1 = require("./financialScopeBaselineValidation");
|
|
10
10
|
const financialDisplayRollupValidation_1 = require("./financialDisplayRollupValidation");
|
|
11
|
+
const financialChargeComposition_1 = require("./financialChargeComposition");
|
|
12
|
+
const financialChargeCompositionValidation_1 = require("./financialChargeCompositionValidation");
|
|
11
13
|
const SHA256_ID = /^sha256:[0-9a-f]{64}$/;
|
|
12
14
|
const CURRENCY = /^[A-Z]{3}$/;
|
|
13
15
|
const AZURE_RESOURCE_TYPE = /^[a-z0-9.-]+\/[a-z0-9._/-]+$/;
|
|
@@ -58,6 +60,7 @@ const canonicalCoordinatePreimage = (value) => ({
|
|
|
58
60
|
ownerBaselines: [...value.ownerBaselines].sort((left, right) => left.scopeId.localeCompare(right.scopeId)),
|
|
59
61
|
residualBaseline: value.residualBaseline,
|
|
60
62
|
aggregateBaseline: value.aggregateBaseline,
|
|
63
|
+
chargeCompositions: [...value.chargeCompositions].sort((left, right) => left.baselineId.localeCompare(right.baselineId)),
|
|
61
64
|
componentDescriptors: [...value.componentDescriptors].sort((left, right) => `${left.baselineId}\u0000${left.componentId}`.localeCompare(`${right.baselineId}\u0000${right.componentId}`)),
|
|
62
65
|
displayRollups: [...value.displayRollups].sort((left, right) => left.displayRollupId.localeCompare(right.displayRollupId)),
|
|
63
66
|
projections: [...value.projections].sort((left, right) => left.scenarioId.localeCompare(right.scenarioId)),
|
|
@@ -102,6 +105,7 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
|
|
|
102
105
|
'ownerBaselines',
|
|
103
106
|
'residualBaseline',
|
|
104
107
|
'aggregateBaseline',
|
|
108
|
+
'chargeCompositions',
|
|
105
109
|
'componentDescriptors',
|
|
106
110
|
'displayRollups',
|
|
107
111
|
'projections',
|
|
@@ -120,6 +124,9 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
|
|
|
120
124
|
!value.ownerBaselines.every(financialScopeBaselineValidation_1.isFinancialScopeBaselineEnvelopeV2) ||
|
|
121
125
|
!(0, financialScopeBaselineValidation_1.isFinancialScopeBaselineEnvelopeV2)(value.residualBaseline) ||
|
|
122
126
|
!(0, financialScopeBaselineValidation_1.isFinancialScopeBaselineEnvelopeV2)(value.aggregateBaseline) ||
|
|
127
|
+
!Array.isArray(value.chargeCompositions) ||
|
|
128
|
+
value.chargeCompositions.length > 20001 ||
|
|
129
|
+
!value.chargeCompositions.every(financialChargeCompositionValidation_1.isFinancialChargeCompositionV1) ||
|
|
123
130
|
!Array.isArray(value.componentDescriptors) ||
|
|
124
131
|
value.componentDescriptors.length > 20000 ||
|
|
125
132
|
!value.componentDescriptors.every(financialDisplayRollupValidation_1.isFinancialAuthorityComponentDescriptorV1) ||
|
|
@@ -180,6 +187,38 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
|
|
|
180
187
|
}
|
|
181
188
|
if (coordinate.residualBaseline.status === 'available' && !bundleIds.has(coordinate.residualBaseline.evidenceBundleId))
|
|
182
189
|
return false;
|
|
190
|
+
const composableBaselines = [...coordinate.ownerBaselines, coordinate.residualBaseline].filter((baseline) => baseline.status === 'available' && baseline.baselineKind === 'owner');
|
|
191
|
+
const chargeCompositionByBaselineId = new Map(coordinate.chargeCompositions.map(composition => [composition.baselineId, composition]));
|
|
192
|
+
if (chargeCompositionByBaselineId.size !== coordinate.chargeCompositions.length ||
|
|
193
|
+
coordinate.chargeCompositions.length !== composableBaselines.length)
|
|
194
|
+
return false;
|
|
195
|
+
for (const baseline of composableBaselines) {
|
|
196
|
+
const composition = chargeCompositionByBaselineId.get(baseline.baselineId);
|
|
197
|
+
if (composition === undefined ||
|
|
198
|
+
canonicalText(baseline.chargeInclusionPolicyRef) !== canonicalText(financialChargeComposition_1.AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef) ||
|
|
199
|
+
composition.ownerScopeId !== baseline.scopeId ||
|
|
200
|
+
periodText(composition.period) !== periodText(baseline.period) ||
|
|
201
|
+
composition.costBasis !== baseline.costBasis ||
|
|
202
|
+
composition.estimateLens !== baseline.estimateLens ||
|
|
203
|
+
composition.accountingCurrencyCode !== baseline.total.currencyCode ||
|
|
204
|
+
composition.reconciliation.sourceTotal !== baseline.total.amount)
|
|
205
|
+
return false;
|
|
206
|
+
const baselineComponentById = new Map(baseline.components.map(component => [component.componentId, component]));
|
|
207
|
+
const partitionedComponentIds = composition.buckets.flatMap(bucket => bucket.componentIds);
|
|
208
|
+
if (partitionedComponentIds.length !== baseline.components.length ||
|
|
209
|
+
new Set(partitionedComponentIds).size !== partitionedComponentIds.length ||
|
|
210
|
+
partitionedComponentIds.some(componentId => !baselineComponentById.has(componentId)))
|
|
211
|
+
return false;
|
|
212
|
+
for (const bucket of composition.buckets) {
|
|
213
|
+
try {
|
|
214
|
+
if ((0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(bucket.componentIds.map(componentId => baselineComponentById.get(componentId).amount))) !== bucket.amount)
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
183
222
|
const financialOwnerBaselines = coordinate.ownerBaselines.filter(baseline => financialRoleByScope.get(baseline.scopeId) === 'owner');
|
|
184
223
|
const availableMembers = [...financialOwnerBaselines, coordinate.residualBaseline]
|
|
185
224
|
.filter(baseline => baseline.status === 'available')
|
|
@@ -263,7 +302,7 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
|
|
|
263
302
|
(projection.targetEvidenceBundleId !== undefined && !bundleIds.has(projection.targetEvidenceBundleId)) ||
|
|
264
303
|
(targetAssessment !== undefined &&
|
|
265
304
|
(targetAssessment.request.scopeId !== projection.scopeId ||
|
|
266
|
-
targetAssessment.result !== 'available' ||
|
|
305
|
+
(projection.status === 'available' && targetAssessment.result !== 'available') ||
|
|
267
306
|
targetAssessment.evidenceBundleId !== projection.targetEvidenceBundleId)) ||
|
|
268
307
|
(projection.baselineId !== undefined && (owner.status !== 'available' || projection.baselineId !== owner.baselineId)) ||
|
|
269
308
|
(projection.status === 'available' && owner.status !== 'available'))
|
|
@@ -335,6 +374,15 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
|
|
|
335
374
|
return false;
|
|
336
375
|
continue;
|
|
337
376
|
}
|
|
377
|
+
if (projection.operationKind === 'replace-quantity-and-rate') {
|
|
378
|
+
if (!('targetQuantity' in applied) || !('targetRate' in applied))
|
|
379
|
+
return false;
|
|
380
|
+
if (applied.targetQuantity.unit !== applied.targetRate.quantityUnit ||
|
|
381
|
+
applied.targetRate.currencyCode !== projection.accountingCurrencyCode ||
|
|
382
|
+
(0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.multiplyExactDecimalValues)((0, exactDecimal_1.parseCanonicalDecimal)(applied.targetQuantity.amount), (0, exactDecimal_1.parseCanonicalDecimal)(applied.targetRate.amount))) !== applied.targetAmount)
|
|
383
|
+
return false;
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
338
386
|
if (!('sourceRate' in applied) || !('targetQuantity' in applied) || component.effectiveRate === undefined)
|
|
339
387
|
return false;
|
|
340
388
|
if (applied.sourceRate.amount !== component.effectiveRate.amount ||
|
|
@@ -504,4 +552,160 @@ const isFinancialAuthorityViewBoundToArtifactGenerationV1 = (value, expected) =>
|
|
|
504
552
|
value.artifactGeneration.runId === expected.runId &&
|
|
505
553
|
value.artifactGeneration.generatedAt === expected.generatedAt;
|
|
506
554
|
exports.isFinancialAuthorityViewBoundToArtifactGenerationV1 = isFinancialAuthorityViewBoundToArtifactGenerationV1;
|
|
555
|
+
const isSameProviderAccountSet = (left, right) => {
|
|
556
|
+
if (left.length !== right.length)
|
|
557
|
+
return false;
|
|
558
|
+
const sortedLeft = [...left].sort();
|
|
559
|
+
const sortedRight = [...right].sort();
|
|
560
|
+
return sortedLeft.every((value, index) => value === sortedRight[index]);
|
|
561
|
+
};
|
|
562
|
+
const isResourceProjectionCoordinate = (value, projection, assessmentById, bundleIds) => {
|
|
563
|
+
if (!isRecord(value) ||
|
|
564
|
+
!hasExactFields(value, [
|
|
565
|
+
'coordinateId',
|
|
566
|
+
'periodRole',
|
|
567
|
+
'period',
|
|
568
|
+
'costBasis',
|
|
569
|
+
'estimateLens',
|
|
570
|
+
'ownerBaseline',
|
|
571
|
+
'componentDescriptors',
|
|
572
|
+
'displayRollups',
|
|
573
|
+
'projections',
|
|
574
|
+
], ['requestedCurrencyCode', 'chargeComposition']) ||
|
|
575
|
+
!isHash(value.coordinateId) ||
|
|
576
|
+
(value.periodRole !== 'current' && value.periodRole !== 'previous') ||
|
|
577
|
+
!(0, financialScopeBaselineValidation_1.isFinancialBaselinePeriodV2)(value.period) ||
|
|
578
|
+
typeof value.costBasis !== 'string' ||
|
|
579
|
+
!COST_BASES.has(value.costBasis) ||
|
|
580
|
+
typeof value.estimateLens !== 'string' ||
|
|
581
|
+
!ESTIMATE_LENSES.has(value.estimateLens) ||
|
|
582
|
+
(value.requestedCurrencyCode !== undefined && (typeof value.requestedCurrencyCode !== 'string' || !CURRENCY.test(value.requestedCurrencyCode))) ||
|
|
583
|
+
!(0, financialScopeBaselineValidation_1.isFinancialScopeBaselineEnvelopeV2)(value.ownerBaseline) ||
|
|
584
|
+
(value.chargeComposition !== undefined && !(0, financialChargeCompositionValidation_1.isFinancialChargeCompositionV1)(value.chargeComposition)) ||
|
|
585
|
+
!Array.isArray(value.componentDescriptors) ||
|
|
586
|
+
value.componentDescriptors.length > 20000 ||
|
|
587
|
+
!value.componentDescriptors.every(financialDisplayRollupValidation_1.isFinancialAuthorityComponentDescriptorV1) ||
|
|
588
|
+
!Array.isArray(value.displayRollups) ||
|
|
589
|
+
value.displayRollups.length > 20000 ||
|
|
590
|
+
!value.displayRollups.every(financialDisplayRollupValidation_1.isFinancialDisplayRollupV1) ||
|
|
591
|
+
!Array.isArray(value.projections) ||
|
|
592
|
+
value.projections.length > 20000 ||
|
|
593
|
+
!value.projections.every(financialProjectionValidation_1.isFinancialProjectionEnvelopeV1))
|
|
594
|
+
return false;
|
|
595
|
+
const coordinate = value;
|
|
596
|
+
const baseline = coordinate.ownerBaseline;
|
|
597
|
+
const assessment = assessmentById.get(baseline.assessmentId);
|
|
598
|
+
if (normalizeScopeId(baseline.scopeId) !== projection.scopeId ||
|
|
599
|
+
baseline.costBasis !== coordinate.costBasis ||
|
|
600
|
+
baseline.estimateLens !== coordinate.estimateLens ||
|
|
601
|
+
periodText(baseline.period) !== periodText(coordinate.period) ||
|
|
602
|
+
baseline.requestedCurrencyCode !== coordinate.requestedCurrencyCode ||
|
|
603
|
+
!isSameProviderAccountSet(baseline.providerAccountRefs, projection.providerAccountRefs) ||
|
|
604
|
+
!assessment ||
|
|
605
|
+
assessment.request.scopeId !== baseline.scopeId ||
|
|
606
|
+
assessment.request.scopeKind !== baseline.scopeKind ||
|
|
607
|
+
assessment.result !== baseline.status)
|
|
608
|
+
return false;
|
|
609
|
+
if (projection.financialRole === 'display-only' && (baseline.status !== 'unavailable' || baseline.unavailableReason !== 'unsupported-scope')) {
|
|
610
|
+
return false;
|
|
611
|
+
}
|
|
612
|
+
if (projection.financialRole === 'unclassified' && (baseline.status !== 'unavailable' || baseline.unavailableReason !== 'ownership-unresolved')) {
|
|
613
|
+
return false;
|
|
614
|
+
}
|
|
615
|
+
if (baseline.status !== 'available' || baseline.baselineKind !== 'owner') {
|
|
616
|
+
return (coordinate.chargeComposition === undefined &&
|
|
617
|
+
coordinate.componentDescriptors.length === 0 &&
|
|
618
|
+
coordinate.displayRollups.length === 0 &&
|
|
619
|
+
coordinate.projections.every(projectionValue => normalizeScopeId(projectionValue.scopeId) === projection.scopeId) &&
|
|
620
|
+
new Set(coordinate.projections.map(projectionValue => projectionValue.scenarioId)).size === coordinate.projections.length);
|
|
621
|
+
}
|
|
622
|
+
if (baseline.scopeKind !== 'canonical-resource-owner' && baseline.scopeKind !== 'composite-resource')
|
|
623
|
+
return false;
|
|
624
|
+
if (!bundleIds.has(baseline.evidenceBundleId) || assessment.evidenceBundleId !== baseline.evidenceBundleId)
|
|
625
|
+
return false;
|
|
626
|
+
const composition = coordinate.chargeComposition;
|
|
627
|
+
if (!composition ||
|
|
628
|
+
composition.baselineId !== baseline.baselineId ||
|
|
629
|
+
normalizeScopeId(composition.ownerScopeId) !== projection.scopeId ||
|
|
630
|
+
periodText(composition.period) !== periodText(baseline.period) ||
|
|
631
|
+
composition.costBasis !== baseline.costBasis ||
|
|
632
|
+
composition.estimateLens !== baseline.estimateLens ||
|
|
633
|
+
composition.accountingCurrencyCode !== baseline.total.currencyCode ||
|
|
634
|
+
composition.reconciliation.sourceTotal !== baseline.total.amount)
|
|
635
|
+
return false;
|
|
636
|
+
const componentKeys = new Set(baseline.components.map(component => `${baseline.baselineId}\u0000${component.componentId}`));
|
|
637
|
+
const descriptorKeys = coordinate.componentDescriptors.map(descriptor => `${descriptor.baselineId}\u0000${descriptor.componentId}`);
|
|
638
|
+
if (descriptorKeys.length !== componentKeys.size ||
|
|
639
|
+
new Set(descriptorKeys).size !== descriptorKeys.length ||
|
|
640
|
+
descriptorKeys.some(key => !componentKeys.has(key)) ||
|
|
641
|
+
coordinate.displayRollups.some(rollup => normalizeScopeId(rollup.displayScopeId) !== projection.scopeId ||
|
|
642
|
+
rollup.members.some(member => !componentKeys.has(`${member.baselineId}\u0000${member.componentId}`))) ||
|
|
643
|
+
coordinate.projections.some(projectionValue => normalizeScopeId(projectionValue.scopeId) !== projection.scopeId))
|
|
644
|
+
return false;
|
|
645
|
+
const rolledUpKeys = coordinate.displayRollups.flatMap(rollup => rollup.members.map(member => `${member.baselineId}\u0000${member.componentId}`));
|
|
646
|
+
return (rolledUpKeys.length === componentKeys.size &&
|
|
647
|
+
new Set(rolledUpKeys).size === rolledUpKeys.length &&
|
|
648
|
+
rolledUpKeys.every(key => componentKeys.has(key)) &&
|
|
649
|
+
new Set(coordinate.projections.map(projectionValue => projectionValue.scenarioId)).size === coordinate.projections.length);
|
|
650
|
+
};
|
|
651
|
+
/** Strictly validates one bounded, non-additive resource projection without requiring the full authority ledger. */
|
|
652
|
+
const isFinancialAuthorityResourceProjectionV1 = (value) => {
|
|
653
|
+
if (!isRecord(value) ||
|
|
654
|
+
!hasExactFields(value, [
|
|
655
|
+
'contractVersion',
|
|
656
|
+
'authorityId',
|
|
657
|
+
'provider',
|
|
658
|
+
'providerAccountRefs',
|
|
659
|
+
'artifactGeneration',
|
|
660
|
+
'billingGenerationId',
|
|
661
|
+
'resourceType',
|
|
662
|
+
'financialRole',
|
|
663
|
+
'scopeId',
|
|
664
|
+
'evidenceBundles',
|
|
665
|
+
'evidenceAssessments',
|
|
666
|
+
'coordinates',
|
|
667
|
+
]) ||
|
|
668
|
+
value.contractVersion !== 'financial-authority-resource-projection/v1' ||
|
|
669
|
+
!isHash(value.authorityId) ||
|
|
670
|
+
value.provider !== 'azure' ||
|
|
671
|
+
!Array.isArray(value.providerAccountRefs) ||
|
|
672
|
+
value.providerAccountRefs.length === 0 ||
|
|
673
|
+
value.providerAccountRefs.length > 64 ||
|
|
674
|
+
!value.providerAccountRefs.every(isIdentity) ||
|
|
675
|
+
new Set(value.providerAccountRefs).size !== value.providerAccountRefs.length ||
|
|
676
|
+
!isRecord(value.artifactGeneration) ||
|
|
677
|
+
!hasExactFields(value.artifactGeneration, ['runId', 'generatedAt']) ||
|
|
678
|
+
!isIdentity(value.artifactGeneration.runId) ||
|
|
679
|
+
!isIsoInstant(value.artifactGeneration.generatedAt) ||
|
|
680
|
+
!isIdentity(value.billingGenerationId) ||
|
|
681
|
+
typeof value.resourceType !== 'string' ||
|
|
682
|
+
!AZURE_RESOURCE_TYPE.test(value.resourceType) ||
|
|
683
|
+
value.resourceType !== normalizeScopeId(value.resourceType) ||
|
|
684
|
+
(value.financialRole !== 'owner' && value.financialRole !== 'display-only' && value.financialRole !== 'unclassified') ||
|
|
685
|
+
!isIdentity(value.scopeId) ||
|
|
686
|
+
value.scopeId !== normalizeScopeId(value.scopeId) ||
|
|
687
|
+
!Array.isArray(value.evidenceBundles) ||
|
|
688
|
+
value.evidenceBundles.length > 20000 ||
|
|
689
|
+
!value.evidenceBundles.every(financialScopeBaselineValidation_1.isFinancialEvidenceBundleV1) ||
|
|
690
|
+
!Array.isArray(value.evidenceAssessments) ||
|
|
691
|
+
value.evidenceAssessments.length > 20000 ||
|
|
692
|
+
!value.evidenceAssessments.every(financialEvidenceAssessmentValidation_1.isFinancialEvidenceAssessmentV1) ||
|
|
693
|
+
!Array.isArray(value.coordinates) ||
|
|
694
|
+
value.coordinates.length === 0 ||
|
|
695
|
+
value.coordinates.length > 128)
|
|
696
|
+
return false;
|
|
697
|
+
const projection = value;
|
|
698
|
+
const bundleIds = new Set(projection.evidenceBundles.map(bundle => bundle.bundleId));
|
|
699
|
+
const assessmentById = new Map(projection.evidenceAssessments.map(assessment => [assessment.assessmentId, assessment]));
|
|
700
|
+
if (bundleIds.size !== projection.evidenceBundles.length || assessmentById.size !== projection.evidenceAssessments.length)
|
|
701
|
+
return false;
|
|
702
|
+
if (projection.evidenceAssessments.some(assessment => (assessment.evidenceBundleId !== undefined && !bundleIds.has(assessment.evidenceBundleId)) ||
|
|
703
|
+
!isSameProviderAccountSet(assessment.request.providerAccountRefs, projection.providerAccountRefs) ||
|
|
704
|
+
normalizeScopeId(assessment.request.scopeId) !== projection.scopeId) ||
|
|
705
|
+
!projection.coordinates.every(coordinate => isResourceProjectionCoordinate(coordinate, projection, assessmentById, bundleIds)) ||
|
|
706
|
+
new Set(projection.coordinates.map(coordinate => coordinate.coordinateId)).size !== projection.coordinates.length)
|
|
707
|
+
return false;
|
|
708
|
+
return true;
|
|
709
|
+
};
|
|
710
|
+
exports.isFinancialAuthorityResourceProjectionV1 = isFinancialAuthorityResourceProjectionV1;
|
|
507
711
|
//# sourceMappingURL=financialAuthorityViewValidation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialAuthorityViewValidation.js","sourceRoot":"","sources":["../../src/azure/financialAuthorityViewValidation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"financialAuthorityViewValidation.js","sourceRoot":"","sources":["../../src/azure/financialAuthorityViewValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { CostBasis, EstimateLens } from './costComposition';
|
|
2
|
+
import type { FinancialBaselinePeriodV2, FinancialChargeClassificationV2, FinancialChargeInclusionPolicyRefV2 } from './financialScopeBaseline';
|
|
3
|
+
export declare const FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1: 1;
|
|
4
|
+
export declare const FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1: "financial-charge-composition/v1";
|
|
5
|
+
export declare const FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1: "financial-charge-inclusion-policy/v1";
|
|
6
|
+
export type FinancialChargeSourceV1 = 'azure-native' | 'marketplace' | 'unknown';
|
|
7
|
+
export type FinancialChargeRecurrenceV1 = 'one-time' | 'recurring' | 'usage-based' | 'unknown';
|
|
8
|
+
export interface FinancialChargeInclusionPolicyV1 {
|
|
9
|
+
schemaVersion: 1;
|
|
10
|
+
contractVersion: typeof FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1;
|
|
11
|
+
policyRef: FinancialChargeInclusionPolicyRefV2;
|
|
12
|
+
includeSources: readonly FinancialChargeSourceV1[];
|
|
13
|
+
excludeSources: readonly FinancialChargeSourceV1[];
|
|
14
|
+
withholdSources: readonly FinancialChargeSourceV1[];
|
|
15
|
+
}
|
|
16
|
+
export declare const AZURE_BILLED_ALL_CHARGES_POLICY_V1: FinancialChargeInclusionPolicyV1;
|
|
17
|
+
export declare const AZURE_CLOUD_SERVICES_EXCLUDING_MARKETPLACE_POLICY_V1: FinancialChargeInclusionPolicyV1;
|
|
18
|
+
export declare const FINANCIAL_CHARGE_INCLUSION_POLICIES_V1: readonly [FinancialChargeInclusionPolicyV1, FinancialChargeInclusionPolicyV1];
|
|
19
|
+
export declare const resolveFinancialChargeInclusionPolicyV1: (policyRef: FinancialChargeInclusionPolicyRefV2) => FinancialChargeInclusionPolicyV1 | undefined;
|
|
20
|
+
export interface FinancialClassifiedChargeComponentV1 {
|
|
21
|
+
componentId: string;
|
|
22
|
+
chargeSource: FinancialChargeSourceV1;
|
|
23
|
+
chargeRecurrence: FinancialChargeRecurrenceV1;
|
|
24
|
+
chargeClassification: FinancialChargeClassificationV2;
|
|
25
|
+
amount: string;
|
|
26
|
+
evidenceRefIds: [string, ...string[]];
|
|
27
|
+
}
|
|
28
|
+
export interface FinancialChargeCompositionBucketV1 {
|
|
29
|
+
chargeSource: FinancialChargeSourceV1;
|
|
30
|
+
chargeRecurrence: FinancialChargeRecurrenceV1;
|
|
31
|
+
chargeClassification: FinancialChargeClassificationV2;
|
|
32
|
+
amount: string;
|
|
33
|
+
componentIds: [string, ...string[]];
|
|
34
|
+
evidenceRefIds: [string, ...string[]];
|
|
35
|
+
}
|
|
36
|
+
export interface FinancialChargeCompositionReconciliationV1 {
|
|
37
|
+
status: 'reconciled';
|
|
38
|
+
bucketTotal: string;
|
|
39
|
+
sourceTotal: string;
|
|
40
|
+
difference: '0';
|
|
41
|
+
}
|
|
42
|
+
export interface FinancialChargeCompositionV1 {
|
|
43
|
+
schemaVersion: typeof FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1;
|
|
44
|
+
contractVersion: typeof FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1;
|
|
45
|
+
chargeCompositionId: string;
|
|
46
|
+
baselineId: string;
|
|
47
|
+
ownerScopeId: string;
|
|
48
|
+
period: FinancialBaselinePeriodV2;
|
|
49
|
+
costBasis: CostBasis;
|
|
50
|
+
estimateLens: EstimateLens;
|
|
51
|
+
accountingCurrencyCode: string;
|
|
52
|
+
buckets: [FinancialChargeCompositionBucketV1, ...FinancialChargeCompositionBucketV1[]];
|
|
53
|
+
reconciliation: FinancialChargeCompositionReconciliationV1;
|
|
54
|
+
algorithmVersion: string;
|
|
55
|
+
}
|
|
56
|
+
export type FinancialChargeCompositionIdentityPreimageV1 = Omit<FinancialChargeCompositionV1, 'chargeCompositionId'>;
|
|
57
|
+
export interface CreateFinancialChargeCompositionRequestV1 {
|
|
58
|
+
baselineId: string;
|
|
59
|
+
ownerScopeId: string;
|
|
60
|
+
period: FinancialBaselinePeriodV2;
|
|
61
|
+
costBasis: CostBasis;
|
|
62
|
+
estimateLens: EstimateLens;
|
|
63
|
+
accountingCurrencyCode: string;
|
|
64
|
+
sourceTotal: string;
|
|
65
|
+
components: [FinancialClassifiedChargeComponentV1, ...FinancialClassifiedChargeComponentV1[]];
|
|
66
|
+
algorithmVersion: string;
|
|
67
|
+
}
|
|
68
|
+
export type FinancialChargeSelectionV1 = {
|
|
69
|
+
status: 'available' | 'partial';
|
|
70
|
+
includedAmount: string;
|
|
71
|
+
excludedAmount: string;
|
|
72
|
+
withheldAmount: string;
|
|
73
|
+
forecastEligibleAmount: string;
|
|
74
|
+
oneTimeAmount: string;
|
|
75
|
+
unknownRecurrenceAmount: string;
|
|
76
|
+
forecastStatus: 'available' | 'partial';
|
|
77
|
+
currencyCode: string;
|
|
78
|
+
reasonCodes?: [string, ...string[]];
|
|
79
|
+
forecastReasonCodes?: [string, ...string[]];
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=financialChargeComposition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financialChargeComposition.d.ts","sourceRoot":"","sources":["../../src/azure/financialChargeComposition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAEhJ,eAAO,MAAM,8CAA8C,EAAG,CAAU,CAAC;AACzE,eAAO,MAAM,gDAAgD,EAAG,iCAA0C,CAAC;AAC3G,eAAO,MAAM,qDAAqD,EAAG,sCAA+C,CAAC;AAErH,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,gCAAgC;IAC/C,aAAa,EAAE,CAAC,CAAC;IACjB,eAAe,EAAE,OAAO,qDAAqD,CAAC;IAC9E,SAAS,EAAE,mCAAmC,CAAC;IAC/C,cAAc,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,cAAc,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACnD,eAAe,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACrD;AAgBD,eAAO,MAAM,kCAAkC,kCAO7C,CAAC;AAEH,eAAO,MAAM,oDAAoD,kCAO/D,CAAC;AAEH,eAAO,MAAM,sCAAsC,+EAGxC,CAAC;AAEZ,eAAO,MAAM,uCAAuC,GAClD,WAAW,mCAAmC,KAC7C,gCAAgC,GAAG,SAGtB,CAAC;AAEjB,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,uBAAuB,CAAC;IACtC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,oBAAoB,EAAE,+BAA+B,CAAC;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,uBAAuB,CAAC;IACtC,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,oBAAoB,EAAE,+BAA+B,CAAC;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACpC,cAAc,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,0CAA0C;IACzD,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,OAAO,8CAA8C,CAAC;IACrE,eAAe,EAAE,OAAO,gDAAgD,CAAC;IACzE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,yBAAyB,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,CAAC,kCAAkC,EAAE,GAAG,kCAAkC,EAAE,CAAC,CAAC;IACvF,cAAc,EAAE,0CAA0C,CAAC;IAC3D,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,4CAA4C,GAAG,IAAI,CAAC,4BAA4B,EAAE,qBAAqB,CAAC,CAAC;AAErH,MAAM,WAAW,yCAAyC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,yBAAyB,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,oCAAoC,EAAE,GAAG,oCAAoC,EAAE,CAAC,CAAC;IAC9F,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACpC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;CAC7C,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveFinancialChargeInclusionPolicyV1 = exports.FINANCIAL_CHARGE_INCLUSION_POLICIES_V1 = exports.AZURE_CLOUD_SERVICES_EXCLUDING_MARKETPLACE_POLICY_V1 = exports.AZURE_BILLED_ALL_CHARGES_POLICY_V1 = exports.FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1 = exports.FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1 = exports.FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1 = void 0;
|
|
4
|
+
const sha256_1 = require("../common/sha256");
|
|
5
|
+
exports.FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1 = 1;
|
|
6
|
+
exports.FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1 = 'financial-charge-composition/v1';
|
|
7
|
+
exports.FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1 = 'financial-charge-inclusion-policy/v1';
|
|
8
|
+
const createRegisteredPolicy = (definition) => {
|
|
9
|
+
const { policyId, ...policy } = definition;
|
|
10
|
+
const registered = {
|
|
11
|
+
...policy,
|
|
12
|
+
includeSources: Object.freeze([...policy.includeSources]),
|
|
13
|
+
excludeSources: Object.freeze([...policy.excludeSources]),
|
|
14
|
+
withholdSources: Object.freeze([...policy.withholdSources]),
|
|
15
|
+
policyRef: Object.freeze({ policyId, policyDigest: `sha256:${(0, sha256_1.sha256Utf8)(JSON.stringify(definition))}` }),
|
|
16
|
+
};
|
|
17
|
+
return Object.freeze(registered);
|
|
18
|
+
};
|
|
19
|
+
exports.AZURE_BILLED_ALL_CHARGES_POLICY_V1 = createRegisteredPolicy({
|
|
20
|
+
schemaVersion: 1,
|
|
21
|
+
contractVersion: exports.FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1,
|
|
22
|
+
policyId: 'azure-billed-all-charges/v1',
|
|
23
|
+
includeSources: ['azure-native', 'marketplace', 'unknown'],
|
|
24
|
+
excludeSources: [],
|
|
25
|
+
withholdSources: [],
|
|
26
|
+
});
|
|
27
|
+
exports.AZURE_CLOUD_SERVICES_EXCLUDING_MARKETPLACE_POLICY_V1 = createRegisteredPolicy({
|
|
28
|
+
schemaVersion: 1,
|
|
29
|
+
contractVersion: exports.FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1,
|
|
30
|
+
policyId: 'azure-cloud-services-excluding-marketplace/v1',
|
|
31
|
+
includeSources: ['azure-native'],
|
|
32
|
+
excludeSources: ['marketplace'],
|
|
33
|
+
withholdSources: ['unknown'],
|
|
34
|
+
});
|
|
35
|
+
exports.FINANCIAL_CHARGE_INCLUSION_POLICIES_V1 = Object.freeze([
|
|
36
|
+
exports.AZURE_BILLED_ALL_CHARGES_POLICY_V1,
|
|
37
|
+
exports.AZURE_CLOUD_SERVICES_EXCLUDING_MARKETPLACE_POLICY_V1,
|
|
38
|
+
]);
|
|
39
|
+
const resolveFinancialChargeInclusionPolicyV1 = (policyRef) => policyRef !== null && typeof policyRef === 'object' && exports.FINANCIAL_CHARGE_INCLUSION_POLICIES_V1.find(policy => policy.policyRef.policyId === policyRef.policyId && policy.policyRef.policyDigest === policyRef.policyDigest) || undefined;
|
|
40
|
+
exports.resolveFinancialChargeInclusionPolicyV1 = resolveFinancialChargeInclusionPolicyV1;
|
|
41
|
+
//# sourceMappingURL=financialChargeComposition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financialChargeComposition.js","sourceRoot":"","sources":["../../src/azure/financialChargeComposition.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAIjC,QAAA,8CAA8C,GAAG,CAAU,CAAC;AAC5D,QAAA,gDAAgD,GAAG,iCAA0C,CAAC;AAC9F,QAAA,qDAAqD,GAAG,sCAA+C,CAAC;AAgBrH,MAAM,sBAAsB,GAAG,CAAC,UAA4B,EAAoC,EAAE;IAChG,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,CAAC;IAC3C,MAAM,UAAU,GAAG;QACjB,GAAG,MAAM;QACT,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACzD,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACzD,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAC3D,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,IAAA,mBAAU,EAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC;KACzG,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC,CAAC;AAEW,QAAA,kCAAkC,GAAG,sBAAsB,CAAC;IACvE,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,6DAAqD;IACtE,QAAQ,EAAE,6BAA6B;IACvC,cAAc,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,SAAS,CAAC;IAC1D,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,EAAE;CACpB,CAAC,CAAC;AAEU,QAAA,oDAAoD,GAAG,sBAAsB,CAAC;IACzF,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,6DAAqD;IACtE,QAAQ,EAAE,+CAA+C;IACzD,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,cAAc,EAAE,CAAC,aAAa,CAAC;IAC/B,eAAe,EAAE,CAAC,SAAS,CAAC;CAC7B,CAAC,CAAC;AAEU,QAAA,sCAAsC,GAAG,MAAM,CAAC,MAAM,CAAC;IAClE,0CAAkC;IAClC,4DAAoD;CAC5C,CAAC,CAAC;AAEL,MAAM,uCAAuC,GAAG,CACrD,SAA8C,EACA,EAAE,CAChD,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,8CAAsC,CAAC,IAAI,CAChG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,CACvH,IAAI,SAAS,CAAC;AALJ,QAAA,uCAAuC,2CAKnC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type CreateFinancialChargeCompositionRequestV1, type FinancialChargeCompositionV1 } from './financialChargeComposition';
|
|
2
|
+
export declare const createFinancialChargeCompositionV1: (request: CreateFinancialChargeCompositionRequestV1) => FinancialChargeCompositionV1;
|
|
3
|
+
//# sourceMappingURL=financialChargeCompositionKernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financialChargeCompositionKernel.d.ts","sourceRoot":"","sources":["../../src/azure/financialChargeCompositionKernel.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,yCAAyC,EAG9C,KAAK,4BAA4B,EAElC,MAAM,8BAA8B,CAAC;AAMtC,eAAO,MAAM,kCAAkC,GAC7C,SAAS,yCAAyC,KACjD,4BA4CF,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createFinancialChargeCompositionV1 = void 0;
|
|
4
|
+
const exactDecimal_1 = require("../common/exactDecimal");
|
|
5
|
+
const financialChargeComposition_1 = require("./financialChargeComposition");
|
|
6
|
+
const financialChargeCompositionValidation_1 = require("./financialChargeCompositionValidation");
|
|
7
|
+
const bucketKey = (component) => `${component.chargeSource}\u0000${component.chargeRecurrence}\u0000${component.chargeClassification}`;
|
|
8
|
+
const createFinancialChargeCompositionV1 = (request) => {
|
|
9
|
+
if (!Array.isArray(request.components) || request.components.length === 0 || request.components.length > 20000) {
|
|
10
|
+
throw new TypeError('Financial charge composition requires a bounded non-empty component collection.');
|
|
11
|
+
}
|
|
12
|
+
if (new Set(request.components.map(component => component.componentId)).size !== request.components.length) {
|
|
13
|
+
throw new TypeError('Financial charge composition cannot classify one component more than once.');
|
|
14
|
+
}
|
|
15
|
+
const groups = new Map();
|
|
16
|
+
for (const component of request.components) {
|
|
17
|
+
const key = bucketKey(component);
|
|
18
|
+
const group = groups.get(key);
|
|
19
|
+
if (group)
|
|
20
|
+
group.push(component);
|
|
21
|
+
else
|
|
22
|
+
groups.set(key, [component]);
|
|
23
|
+
}
|
|
24
|
+
const buckets = [...groups.values()]
|
|
25
|
+
.map(group => ({
|
|
26
|
+
chargeSource: group[0].chargeSource,
|
|
27
|
+
chargeRecurrence: group[0].chargeRecurrence,
|
|
28
|
+
chargeClassification: group[0].chargeClassification,
|
|
29
|
+
amount: (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(group.map(component => component.amount))),
|
|
30
|
+
componentIds: [...new Set(group.map(component => component.componentId))].sort(),
|
|
31
|
+
evidenceRefIds: [...new Set(group.flatMap(component => component.evidenceRefIds))].sort(),
|
|
32
|
+
}))
|
|
33
|
+
.sort((left, right) => `${left.chargeSource}\u0000${left.chargeRecurrence}\u0000${left.chargeClassification}`.localeCompare(`${right.chargeSource}\u0000${right.chargeRecurrence}\u0000${right.chargeClassification}`));
|
|
34
|
+
const bucketTotal = (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(buckets.map(bucket => bucket.amount)));
|
|
35
|
+
if (bucketTotal !== request.sourceTotal)
|
|
36
|
+
throw new TypeError('Financial charge composition does not reconcile to its source total.');
|
|
37
|
+
const identity = {
|
|
38
|
+
schemaVersion: financialChargeComposition_1.FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1,
|
|
39
|
+
contractVersion: financialChargeComposition_1.FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1,
|
|
40
|
+
baselineId: request.baselineId,
|
|
41
|
+
ownerScopeId: request.ownerScopeId,
|
|
42
|
+
period: request.period,
|
|
43
|
+
costBasis: request.costBasis,
|
|
44
|
+
estimateLens: request.estimateLens,
|
|
45
|
+
accountingCurrencyCode: request.accountingCurrencyCode,
|
|
46
|
+
buckets,
|
|
47
|
+
reconciliation: { status: 'reconciled', bucketTotal, sourceTotal: request.sourceTotal, difference: '0' },
|
|
48
|
+
algorithmVersion: request.algorithmVersion,
|
|
49
|
+
};
|
|
50
|
+
return { ...identity, chargeCompositionId: (0, financialChargeCompositionValidation_1.createFinancialChargeCompositionIdV1)(identity) };
|
|
51
|
+
};
|
|
52
|
+
exports.createFinancialChargeCompositionV1 = createFinancialChargeCompositionV1;
|
|
53
|
+
//# sourceMappingURL=financialChargeCompositionKernel.js.map
|