@spottoai/types-package 1.0.2-dev1138.1 → 1.0.2-dev1138.3
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/dist/azure/financialAnalytics.d.ts +80 -8
- package/dist/azure/financialAnalytics.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.d.ts +72 -3
- package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.js +7 -1
- package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
- package/dist/azure/financialAnalyticsDeliveryValidation.d.ts +9 -1
- package/dist/azure/financialAnalyticsDeliveryValidation.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDeliveryValidation.js +190 -10
- package/dist/azure/financialAnalyticsDeliveryValidation.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 +101 -19
- package/dist/azure/financialAnalyticsValidation.js.map +1 -1
- 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.map +1 -1
- package/dist/azure/financialAuthorityViewValidation.js +39 -0
- 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 +49 -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 +45 -2
- package/dist/azure/financialDataflow.d.ts.map +1 -1
- package/dist/azure/financialDataflow.js.map +1 -1
- package/dist/azure/financialDataflowKernel.d.ts +31 -0
- package/dist/azure/financialDataflowKernel.d.ts.map +1 -0
- package/dist/azure/financialDataflowKernel.js +169 -0
- package/dist/azure/financialDataflowKernel.js.map +1 -0
- package/dist/azure/financialDataflowValidation.d.ts +5 -2
- package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
- package/dist/azure/financialDataflowValidation.js +203 -30
- package/dist/azure/financialDataflowValidation.js.map +1 -1
- package/dist/azure/financialEvidenceAssessmentValidation.d.ts.map +1 -1
- package/dist/azure/financialEvidenceAssessmentValidation.js +7 -0
- package/dist/azure/financialEvidenceAssessmentValidation.js.map +1 -1
- package/dist/azure/financialPolicy.d.ts +19 -3
- package/dist/azure/financialPolicy.d.ts.map +1 -1
- package/dist/azure/financialPolicy.js.map +1 -1
- package/dist/azure/financialPolicyDelivery.d.ts +75 -1
- package/dist/azure/financialPolicyDelivery.d.ts.map +1 -1
- package/dist/azure/financialPolicyDelivery.js +5 -1
- package/dist/azure/financialPolicyDelivery.js.map +1 -1
- package/dist/azure/financialPolicyDeliveryValidation.d.ts +16 -2
- package/dist/azure/financialPolicyDeliveryValidation.d.ts.map +1 -1
- package/dist/azure/financialPolicyDeliveryValidation.js +238 -5
- package/dist/azure/financialPolicyDeliveryValidation.js.map +1 -1
- package/dist/azure/financialPolicyKernel.d.ts +38 -0
- package/dist/azure/financialPolicyKernel.d.ts.map +1 -0
- package/dist/azure/financialPolicyKernel.js +232 -0
- package/dist/azure/financialPolicyKernel.js.map +1 -0
- package/dist/azure/financialPolicyValidation.d.ts +1 -0
- package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
- package/dist/azure/financialPolicyValidation.js +111 -16
- package/dist/azure/financialPolicyValidation.js.map +1 -1
- package/dist/azure/financialSavingsAuthority.d.ts +29 -0
- package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthority.js +2 -1
- package/dist/azure/financialSavingsAuthority.js.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.js +3 -0
- package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.js +36 -0
- package/dist/azure/financialSavingsCoordinateValidation.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/financialScopeBaseline.d.ts +8 -2
- package/dist/azure/financialScopeBaseline.d.ts.map +1 -1
- package/dist/azure/financialScopeBaseline.js +14 -1
- package/dist/azure/financialScopeBaseline.js.map +1 -1
- package/dist/azure/financialScopeBaselineValidation.d.ts.map +1 -1
- package/dist/azure/financialScopeBaselineValidation.js +15 -1
- package/dist/azure/financialScopeBaselineValidation.js.map +1 -1
- package/dist/azure/financialScopeEvidence.d.ts +1 -1
- package/dist/azure/financialScopeEvidence.d.ts.map +1 -1
- package/dist/azure/metrics.d.ts +2 -2
- package/dist/azure/metrics.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/recommendations.d.ts +12 -4
- 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/subscriptions.d.ts +4 -2
- package/dist/azure/subscriptions.d.ts.map +1 -1
- package/dist/azure/views.d.ts +21 -5
- package/dist/azure/views.d.ts.map +1 -1
- package/dist/azure/views.js.map +1 -1
- package/dist/esm/azure/financialAnalyticsDelivery.js +5 -0
- package/dist/esm/azure/financialAnalyticsDeliveryValidation.js +184 -11
- package/dist/esm/azure/financialAnalyticsDisplayKernel.js +139 -0
- package/dist/esm/azure/financialAnalyticsValidation.js +101 -19
- package/dist/esm/azure/financialAuthorityViewValidation.js +39 -0
- package/dist/esm/azure/financialChargeComposition.js +36 -0
- package/dist/esm/azure/financialChargeCompositionKernel.js +44 -0
- package/dist/esm/azure/financialChargeCompositionValidation.js +155 -0
- package/dist/esm/azure/financialDataflowKernel.js +163 -0
- package/dist/esm/azure/financialDataflowValidation.js +199 -29
- package/dist/esm/azure/financialEvidenceAssessmentValidation.js +7 -0
- package/dist/esm/azure/financialPolicyDelivery.js +4 -0
- package/dist/esm/azure/financialPolicyDeliveryValidation.js +227 -7
- package/dist/esm/azure/financialPolicyKernel.js +225 -0
- package/dist/esm/azure/financialPolicyValidation.js +110 -16
- package/dist/esm/azure/financialSavingsAuthority.js +1 -0
- package/dist/esm/azure/financialSavingsAuthorityValidation.js +3 -0
- package/dist/esm/azure/financialSavingsCoordinateValidation.js +36 -0
- package/dist/esm/azure/financialScope.js +6 -0
- package/dist/esm/azure/financialScopeBaseline.js +12 -0
- package/dist/esm/azure/financialScopeBaselineValidation.js +15 -1
- package/dist/events/cost.d.ts +4 -0
- package/dist/events/cost.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectFinancialChargesV1 = exports.isFinancialChargeInclusionPolicyRefV1 = exports.isFinancialChargeCompositionV1 = exports.createFinancialChargeCompositionIdV1 = exports.canonicalizeFinancialChargeCompositionIdentityV1 = void 0;
|
|
4
|
+
const exactDecimal_1 = require("../common/exactDecimal");
|
|
5
|
+
const sha256_1 = require("../common/sha256");
|
|
6
|
+
const financialChargeComposition_1 = require("./financialChargeComposition");
|
|
7
|
+
const financialDataflowValidation_1 = require("./financialDataflowValidation");
|
|
8
|
+
const financialScopeBaselineValidation_1 = require("./financialScopeBaselineValidation");
|
|
9
|
+
const financialValidationPrimitives_1 = require("./financialValidationPrimitives");
|
|
10
|
+
const SOURCES = new Set(['azure-native', 'marketplace', 'unknown']);
|
|
11
|
+
const RECURRENCES = new Set(['one-time', 'recurring', 'usage-based', 'unknown']);
|
|
12
|
+
const CLASSIFICATIONS = new Set(['usage', 'purchase', 'adjustment', 'tax', 'credit', 'refund', 'residual']);
|
|
13
|
+
const COST_BASES = new Set(['billed', 'amortized']);
|
|
14
|
+
const ESTIMATE_LENSES = new Set(['actual-only', 'actual-plus-estimated', 'estimates-only']);
|
|
15
|
+
const isSortedUniqueHashes = (value) => Array.isArray(value) && value.length > 0 && value.length <= 20000 && value.every(financialDataflowValidation_1.isFinancialDataflowHashV1) &&
|
|
16
|
+
value.every((entry, index) => index === 0 || value[index - 1] < entry);
|
|
17
|
+
const isBucket = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
18
|
+
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, [
|
|
19
|
+
'chargeSource',
|
|
20
|
+
'chargeRecurrence',
|
|
21
|
+
'chargeClassification',
|
|
22
|
+
'amount',
|
|
23
|
+
'componentIds',
|
|
24
|
+
'evidenceRefIds',
|
|
25
|
+
]) &&
|
|
26
|
+
SOURCES.has(value.chargeSource) &&
|
|
27
|
+
RECURRENCES.has(value.chargeRecurrence) &&
|
|
28
|
+
CLASSIFICATIONS.has(value.chargeClassification) &&
|
|
29
|
+
(0, financialValidationPrimitives_1.isCanonicalExactMoney)({ amount: value.amount, currencyCode: 'AUD' }) &&
|
|
30
|
+
isSortedUniqueHashes(value.componentIds) &&
|
|
31
|
+
isSortedUniqueHashes(value.evidenceRefIds);
|
|
32
|
+
const isIdentity = (value) => {
|
|
33
|
+
if (!(0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) ||
|
|
34
|
+
!(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, [
|
|
35
|
+
'schemaVersion',
|
|
36
|
+
'contractVersion',
|
|
37
|
+
'baselineId',
|
|
38
|
+
'ownerScopeId',
|
|
39
|
+
'period',
|
|
40
|
+
'costBasis',
|
|
41
|
+
'estimateLens',
|
|
42
|
+
'accountingCurrencyCode',
|
|
43
|
+
'buckets',
|
|
44
|
+
'reconciliation',
|
|
45
|
+
'algorithmVersion',
|
|
46
|
+
]) ||
|
|
47
|
+
value.schemaVersion !== financialChargeComposition_1.FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1 ||
|
|
48
|
+
value.contractVersion !== financialChargeComposition_1.FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1 ||
|
|
49
|
+
!(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.baselineId) ||
|
|
50
|
+
!(0, financialDataflowValidation_1.isFinancialDataflowIdentityV1)(value.ownerScopeId) ||
|
|
51
|
+
!(0, financialScopeBaselineValidation_1.isFinancialBaselinePeriodV2)(value.period) ||
|
|
52
|
+
!COST_BASES.has(value.costBasis) ||
|
|
53
|
+
!ESTIMATE_LENSES.has(value.estimateLens) ||
|
|
54
|
+
!(0, financialDataflowValidation_1.isFinancialDataflowCurrencyV1)(value.accountingCurrencyCode) ||
|
|
55
|
+
!Array.isArray(value.buckets) ||
|
|
56
|
+
value.buckets.length === 0 ||
|
|
57
|
+
value.buckets.length > 20000 ||
|
|
58
|
+
!value.buckets.every(isBucket) ||
|
|
59
|
+
!(0, financialDataflowValidation_1.isFinancialDataflowIdentityV1)(value.algorithmVersion) ||
|
|
60
|
+
!(0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value.reconciliation) ||
|
|
61
|
+
!(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value.reconciliation, ['status', 'bucketTotal', 'sourceTotal', 'difference']) ||
|
|
62
|
+
value.reconciliation.status !== 'reconciled' ||
|
|
63
|
+
value.reconciliation.difference !== '0' ||
|
|
64
|
+
!(0, financialValidationPrimitives_1.isCanonicalExactMoney)({ amount: value.reconciliation.bucketTotal, currencyCode: value.accountingCurrencyCode }) ||
|
|
65
|
+
!(0, financialValidationPrimitives_1.isCanonicalExactMoney)({ amount: value.reconciliation.sourceTotal, currencyCode: value.accountingCurrencyCode }))
|
|
66
|
+
return false;
|
|
67
|
+
const componentIds = value.buckets.flatMap(bucket => bucket.componentIds);
|
|
68
|
+
if (new Set(componentIds).size !== componentIds.length)
|
|
69
|
+
return false;
|
|
70
|
+
const keys = value.buckets.map(bucket => `${bucket.chargeSource}\u0000${bucket.chargeRecurrence}\u0000${bucket.chargeClassification}`);
|
|
71
|
+
if (!keys.every((key, index) => index === 0 || keys[index - 1] < key))
|
|
72
|
+
return false;
|
|
73
|
+
try {
|
|
74
|
+
const bucketTotal = (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(value.buckets.map(bucket => bucket.amount)));
|
|
75
|
+
return bucketTotal === value.reconciliation.bucketTotal && bucketTotal === value.reconciliation.sourceTotal;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const canonicalizeFinancialChargeCompositionIdentityV1 = (value) => {
|
|
82
|
+
if (!(0, financialDataflowValidation_1.isFinancialDataflowValueWithinLimitsV1)(value) || !isIdentity(value)) {
|
|
83
|
+
throw new TypeError('Invalid FinancialChargeCompositionIdentityPreimageV1.');
|
|
84
|
+
}
|
|
85
|
+
return (0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(value);
|
|
86
|
+
};
|
|
87
|
+
exports.canonicalizeFinancialChargeCompositionIdentityV1 = canonicalizeFinancialChargeCompositionIdentityV1;
|
|
88
|
+
const createFinancialChargeCompositionIdV1 = (value) => `sha256:${(0, sha256_1.sha256Utf8)((0, exports.canonicalizeFinancialChargeCompositionIdentityV1)(value))}`;
|
|
89
|
+
exports.createFinancialChargeCompositionIdV1 = createFinancialChargeCompositionIdV1;
|
|
90
|
+
const isFinancialChargeCompositionV1 = (value) => {
|
|
91
|
+
if (!(0, financialDataflowValidation_1.isFinancialDataflowValueWithinLimitsV1)(value) ||
|
|
92
|
+
!(0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) ||
|
|
93
|
+
!(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, [
|
|
94
|
+
'chargeCompositionId',
|
|
95
|
+
'schemaVersion',
|
|
96
|
+
'contractVersion',
|
|
97
|
+
'baselineId',
|
|
98
|
+
'ownerScopeId',
|
|
99
|
+
'period',
|
|
100
|
+
'costBasis',
|
|
101
|
+
'estimateLens',
|
|
102
|
+
'accountingCurrencyCode',
|
|
103
|
+
'buckets',
|
|
104
|
+
'reconciliation',
|
|
105
|
+
'algorithmVersion',
|
|
106
|
+
]))
|
|
107
|
+
return false;
|
|
108
|
+
const { chargeCompositionId, ...identity } = value;
|
|
109
|
+
return (0, financialDataflowValidation_1.isFinancialDataflowHashV1)(chargeCompositionId) && isIdentity(identity) &&
|
|
110
|
+
chargeCompositionId === (0, exports.createFinancialChargeCompositionIdV1)(identity);
|
|
111
|
+
};
|
|
112
|
+
exports.isFinancialChargeCompositionV1 = isFinancialChargeCompositionV1;
|
|
113
|
+
const isFinancialChargeInclusionPolicyRefV1 = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
114
|
+
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, ['policyId', 'policyDigest']) &&
|
|
115
|
+
(0, financialDataflowValidation_1.isFinancialDataflowIdentityV1)(value.policyId) &&
|
|
116
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.policyDigest) &&
|
|
117
|
+
(0, financialChargeComposition_1.resolveFinancialChargeInclusionPolicyV1)(value) !== undefined;
|
|
118
|
+
exports.isFinancialChargeInclusionPolicyRefV1 = isFinancialChargeInclusionPolicyRefV1;
|
|
119
|
+
const sumBuckets = (buckets) => (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(buckets.map(bucket => bucket.amount)));
|
|
120
|
+
const sourcesFor = (policy, role) => role === 'include' ? policy.includeSources : role === 'exclude' ? policy.excludeSources : policy.withholdSources;
|
|
121
|
+
const selectFinancialChargesV1 = (composition, policyRef) => {
|
|
122
|
+
if (!(0, exports.isFinancialChargeCompositionV1)(composition))
|
|
123
|
+
throw new TypeError('Invalid financial charge composition.');
|
|
124
|
+
const policy = (0, financialChargeComposition_1.resolveFinancialChargeInclusionPolicyV1)(policyRef);
|
|
125
|
+
if (!policy)
|
|
126
|
+
throw new TypeError('Unregistered financial charge-inclusion policy.');
|
|
127
|
+
const partition = (role) => composition.buckets.filter(bucket => sourcesFor(policy, role).includes(bucket.chargeSource));
|
|
128
|
+
const included = partition('include');
|
|
129
|
+
const excluded = partition('exclude');
|
|
130
|
+
const withheld = partition('withhold');
|
|
131
|
+
if (included.length + excluded.length + withheld.length !== composition.buckets.length) {
|
|
132
|
+
throw new TypeError('Financial charge-inclusion policy does not partition every charge source.');
|
|
133
|
+
}
|
|
134
|
+
const includedAmount = sumBuckets(included);
|
|
135
|
+
const excludedAmount = sumBuckets(excluded);
|
|
136
|
+
const withheldAmount = sumBuckets(withheld);
|
|
137
|
+
const forecastEligibleAmount = sumBuckets(included.filter(bucket => bucket.chargeRecurrence === 'recurring' || bucket.chargeRecurrence === 'usage-based'));
|
|
138
|
+
const oneTimeAmount = sumBuckets(included.filter(bucket => bucket.chargeRecurrence === 'one-time'));
|
|
139
|
+
const unknownRecurrenceAmount = sumBuckets(included.filter(bucket => bucket.chargeRecurrence === 'unknown'));
|
|
140
|
+
const reasonCodes = [];
|
|
141
|
+
if (withheldAmount !== '0')
|
|
142
|
+
reasonCodes.push('charge-source-unknown');
|
|
143
|
+
const forecastReasonCodes = [...reasonCodes];
|
|
144
|
+
if (unknownRecurrenceAmount !== '0')
|
|
145
|
+
forecastReasonCodes.push('charge-recurrence-unknown');
|
|
146
|
+
const result = {
|
|
147
|
+
status: withheldAmount === '0' ? 'available' : 'partial',
|
|
148
|
+
includedAmount,
|
|
149
|
+
excludedAmount,
|
|
150
|
+
withheldAmount,
|
|
151
|
+
forecastEligibleAmount,
|
|
152
|
+
oneTimeAmount,
|
|
153
|
+
unknownRecurrenceAmount,
|
|
154
|
+
forecastStatus: withheldAmount === '0' && unknownRecurrenceAmount === '0' ? 'available' : 'partial',
|
|
155
|
+
currencyCode: composition.accountingCurrencyCode,
|
|
156
|
+
...(reasonCodes.length === 0 ? {} : { reasonCodes: reasonCodes }),
|
|
157
|
+
...(forecastReasonCodes.length === 0
|
|
158
|
+
? {}
|
|
159
|
+
: { forecastReasonCodes: forecastReasonCodes }),
|
|
160
|
+
};
|
|
161
|
+
return result;
|
|
162
|
+
};
|
|
163
|
+
exports.selectFinancialChargesV1 = selectFinancialChargesV1;
|
|
164
|
+
//# sourceMappingURL=financialChargeCompositionValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financialChargeCompositionValidation.js","sourceRoot":"","sources":["../../src/azure/financialChargeCompositionValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,52 @@
|
|
|
1
1
|
import type { CostBasis, FinancialEstimateLensV1 } from './costComposition';
|
|
2
|
-
import type {
|
|
2
|
+
import type { FinancialEvidenceIntervalV1 } from './financialScopeEvidence';
|
|
3
|
+
import type { FinancialChargeInclusionPolicyRefV2, FinancialWindowKindV2 } from './financialScopeBaseline';
|
|
4
|
+
import type { FinancialChargeSelectionV1 } from './financialChargeComposition';
|
|
3
5
|
export declare const FINANCIAL_DATAFLOW_SCHEMA_VERSION_V1: 1;
|
|
4
6
|
export declare const FINANCIAL_CURRENT_SPEND_COMPOSITION_CONTRACT_VERSION_V1: "current-spend-composition/v1";
|
|
5
7
|
export type FinancialDataflowScopeKindV1 = 'resource' | 'resource-group' | 'subscription' | 'tag-scope' | 'multi-subscription';
|
|
6
8
|
export type FinancialDataflowPeriodRoleV1 = 'current-spend' | 'comparison' | 'analytics-input' | 'projection-target';
|
|
9
|
+
/** Stable period identity. Result-specific observed coverage and gaps live in evidence artifacts, not the coordinate ID. */
|
|
10
|
+
export interface FinancialDataflowPeriodV1 {
|
|
11
|
+
windowKind: FinancialWindowKindV2;
|
|
12
|
+
requested: FinancialEvidenceIntervalV1;
|
|
13
|
+
providerBillingPeriodId?: string;
|
|
14
|
+
}
|
|
7
15
|
export interface FinancialDataflowScopeV1 {
|
|
8
16
|
kind: FinancialDataflowScopeKindV1;
|
|
9
17
|
scopeId: string;
|
|
10
18
|
/** Digest of normalized membership and selector semantics, not a display label. */
|
|
11
19
|
scopeFingerprint: string;
|
|
12
20
|
}
|
|
21
|
+
/** Stored-byte descriptor shared by immutable financial delivery manifests. */
|
|
22
|
+
export interface FinancialDataflowJsonGzipArtifactDescriptorV1 {
|
|
23
|
+
path: string;
|
|
24
|
+
sha256: string;
|
|
25
|
+
byteCount: number;
|
|
26
|
+
mediaType: 'application/json';
|
|
27
|
+
contentEncoding: 'gzip';
|
|
28
|
+
}
|
|
29
|
+
export interface FinancialDataflowTagSelectorV1 {
|
|
30
|
+
key: string;
|
|
31
|
+
value: string;
|
|
32
|
+
}
|
|
33
|
+
export type FinancialDataflowScopeSelectorV1 = {
|
|
34
|
+
kind: 'resource';
|
|
35
|
+
resourceIds: [string, ...string[]];
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'resource-group';
|
|
38
|
+
resourceGroupIds: [string, ...string[]];
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'subscription';
|
|
41
|
+
subscriptionIds: [string, ...string[]];
|
|
42
|
+
} | {
|
|
43
|
+
kind: 'tag-scope';
|
|
44
|
+
tags: [FinancialDataflowTagSelectorV1, ...FinancialDataflowTagSelectorV1[]];
|
|
45
|
+
tagMatch: 'any' | 'all';
|
|
46
|
+
} | {
|
|
47
|
+
kind: 'multi-subscription';
|
|
48
|
+
subscriptionIds: [string, ...string[]];
|
|
49
|
+
};
|
|
13
50
|
export type FinancialAccountingCurrencyStateV1 = {
|
|
14
51
|
status: 'resolved';
|
|
15
52
|
currencyCode: string;
|
|
@@ -25,16 +62,19 @@ export interface FinancialDataflowCoordinateV1 {
|
|
|
25
62
|
providerAccountRefs: [string, ...string[]];
|
|
26
63
|
scope: FinancialDataflowScopeV1;
|
|
27
64
|
periodRole: FinancialDataflowPeriodRoleV1;
|
|
28
|
-
period:
|
|
65
|
+
period: FinancialDataflowPeriodV1;
|
|
29
66
|
costBasis: CostBasis;
|
|
30
67
|
estimateLens: FinancialEstimateLensV1;
|
|
31
68
|
/** Requested presentation currency. A resolved coordinate must resolve to this currency; this never implies FX conversion. */
|
|
32
69
|
requestedCurrencyCode?: string;
|
|
33
70
|
accountingCurrency: FinancialAccountingCurrencyStateV1;
|
|
71
|
+
/** Registered, digest-bound policy that changes current-spend and downstream result identity. */
|
|
72
|
+
chargeInclusionPolicyRef: FinancialChargeInclusionPolicyRefV2;
|
|
34
73
|
}
|
|
35
74
|
export interface IncludedCurrentSpendMemberV1 {
|
|
36
75
|
memberScopeId: string;
|
|
37
76
|
baselineId: string;
|
|
77
|
+
chargeCompositionId: string;
|
|
38
78
|
status: 'included';
|
|
39
79
|
reasonCode?: never;
|
|
40
80
|
}
|
|
@@ -62,6 +102,7 @@ export interface AvailableCurrentSpendCompositionV1 extends CurrentSpendComposit
|
|
|
62
102
|
knownAmount?: never;
|
|
63
103
|
reasonCodes?: never;
|
|
64
104
|
};
|
|
105
|
+
chargeSelection: FinancialChargeSelectionV1;
|
|
65
106
|
}
|
|
66
107
|
export interface PartialCurrentSpendCompositionV1 extends CurrentSpendCompositionCommonV1 {
|
|
67
108
|
amount: {
|
|
@@ -71,6 +112,7 @@ export interface PartialCurrentSpendCompositionV1 extends CurrentSpendCompositio
|
|
|
71
112
|
reasonCodes: [string, ...string[]];
|
|
72
113
|
amount?: never;
|
|
73
114
|
};
|
|
115
|
+
chargeSelection: FinancialChargeSelectionV1;
|
|
74
116
|
}
|
|
75
117
|
export interface UnavailableCurrentSpendCompositionV1 extends CurrentSpendCompositionCommonV1 {
|
|
76
118
|
amount: {
|
|
@@ -80,6 +122,7 @@ export interface UnavailableCurrentSpendCompositionV1 extends CurrentSpendCompos
|
|
|
80
122
|
knownAmount?: never;
|
|
81
123
|
currencyCode?: never;
|
|
82
124
|
};
|
|
125
|
+
chargeSelection?: never;
|
|
83
126
|
}
|
|
84
127
|
export type CurrentSpendCompositionV1 = AvailableCurrentSpendCompositionV1 | PartialCurrentSpendCompositionV1 | UnavailableCurrentSpendCompositionV1;
|
|
85
128
|
export type CurrentSpendCompositionIdentityPreimageV1 = CurrentSpendCompositionV1 extends infer Composition ? Composition extends CurrentSpendCompositionV1 ? Omit<Composition, 'compositionId'> : never : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialDataflow.d.ts","sourceRoot":"","sources":["../../src/azure/financialDataflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"financialDataflow.d.ts","sourceRoot":"","sources":["../../src/azure/financialDataflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialDataflow.js","sourceRoot":"","sources":["../../src/azure/financialDataflow.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"financialDataflow.js","sourceRoot":"","sources":["../../src/azure/financialDataflow.ts"],"names":[],"mappings":";;;AAKa,QAAA,oCAAoC,GAAG,CAAU,CAAC;AAClD,QAAA,uDAAuD,GAAG,8BAAuC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type CurrentSpendCompositionV1, type FinancialDataflowCoordinateV1 } from './financialDataflow';
|
|
2
|
+
import type { FinancialChargeCompositionV1 } from './financialChargeComposition';
|
|
3
|
+
import { type FinancialScopeBaselineEnvelopeV2 } from './financialScopeBaseline';
|
|
4
|
+
export declare const CURRENT_SPEND_COMPOSITION_ALGORITHM_VERSION_V1: "current-spend-composition/shared-v1";
|
|
5
|
+
export interface CurrentSpendCompositionKernelRequestV1 {
|
|
6
|
+
coordinate: FinancialDataflowCoordinateV1;
|
|
7
|
+
baselines: FinancialScopeBaselineEnvelopeV2[];
|
|
8
|
+
chargeCompositions: FinancialChargeCompositionV1[];
|
|
9
|
+
algorithmVersion?: string;
|
|
10
|
+
}
|
|
11
|
+
export type FinancialExactTrendComparisonV1 = {
|
|
12
|
+
status: 'unavailable';
|
|
13
|
+
} | {
|
|
14
|
+
status: 'available';
|
|
15
|
+
direction: 'increasing' | 'decreasing' | 'flat';
|
|
16
|
+
changeAmount: string;
|
|
17
|
+
/** Present only when the exact ratio has a canonical representation at six or fewer decimal places. */
|
|
18
|
+
percentChange?: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Shared exact current-versus-comparison semantics for display composition.
|
|
22
|
+
* Canonical analytics projections use the same direction/change/percentage
|
|
23
|
+
* rules; this helper does not create or impersonate an analytics authority.
|
|
24
|
+
*/
|
|
25
|
+
export declare const compareFinancialExactAmountsV1: (request: {
|
|
26
|
+
currentAmount?: string;
|
|
27
|
+
comparisonAmount?: string;
|
|
28
|
+
}) => FinancialExactTrendComparisonV1;
|
|
29
|
+
/** Portable exact-decimal composition kernel shared by Cloud and browser runtimes. */
|
|
30
|
+
export declare const composeCurrentSpendV1: (request: CurrentSpendCompositionKernelRequestV1) => CurrentSpendCompositionV1;
|
|
31
|
+
//# sourceMappingURL=financialDataflowKernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financialDataflowKernel.d.ts","sourceRoot":"","sources":["../../src/azure/financialDataflowKernel.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EACnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,4BAA4B,EAA8B,MAAM,8BAA8B,CAAC;AAO7G,OAAO,EAAuC,KAAK,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAEtH,eAAO,MAAM,8CAA8C,EAAG,qCAA8C,CAAC;AAE7G,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,6BAA6B,CAAC;IAC1C,SAAS,EAAE,gCAAgC,EAAE,CAAC;IAC9C,kBAAkB,EAAE,4BAA4B,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,+BAA+B,GACvC;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GACzB;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,uGAAuG;IACvG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAeN;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,GAAI,SAAS;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,KAAG,+BAuBH,CAAC;AAQF,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,GAAI,SAAS,sCAAsC,KAAG,yBAsHvF,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.composeCurrentSpendV1 = exports.compareFinancialExactAmountsV1 = exports.CURRENT_SPEND_COMPOSITION_ALGORITHM_VERSION_V1 = void 0;
|
|
4
|
+
const exactDecimal_1 = require("../common/exactDecimal");
|
|
5
|
+
const financialDataflow_1 = require("./financialDataflow");
|
|
6
|
+
const financialChargeCompositionValidation_1 = require("./financialChargeCompositionValidation");
|
|
7
|
+
const financialDataflowValidation_1 = require("./financialDataflowValidation");
|
|
8
|
+
const financialScopeBaseline_1 = require("./financialScopeBaseline");
|
|
9
|
+
exports.CURRENT_SPEND_COMPOSITION_ALGORITHM_VERSION_V1 = 'current-spend-composition/shared-v1';
|
|
10
|
+
const exactPercentAtSixDecimalPlaces = (change, comparison) => {
|
|
11
|
+
if (comparison.coefficient === 0n)
|
|
12
|
+
return undefined;
|
|
13
|
+
const numerator = change.coefficient * 100n * 10n ** BigInt(comparison.scale);
|
|
14
|
+
const denominator = comparison.coefficient * 10n ** BigInt(change.scale);
|
|
15
|
+
for (let scale = 0; scale <= 6; scale += 1) {
|
|
16
|
+
const scaledNumerator = numerator * 10n ** BigInt(scale);
|
|
17
|
+
if (scaledNumerator % denominator === 0n) {
|
|
18
|
+
return (0, exactDecimal_1.formatExactDecimalValue)({ coefficient: scaledNumerator / denominator, scale });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Shared exact current-versus-comparison semantics for display composition.
|
|
25
|
+
* Canonical analytics projections use the same direction/change/percentage
|
|
26
|
+
* rules; this helper does not create or impersonate an analytics authority.
|
|
27
|
+
*/
|
|
28
|
+
const compareFinancialExactAmountsV1 = (request) => {
|
|
29
|
+
if (request.currentAmount === undefined || request.comparisonAmount === undefined)
|
|
30
|
+
return { status: 'unavailable' };
|
|
31
|
+
try {
|
|
32
|
+
const current = (0, exactDecimal_1.parseCanonicalDecimal)(request.currentAmount);
|
|
33
|
+
const comparison = (0, exactDecimal_1.parseCanonicalDecimal)(request.comparisonAmount);
|
|
34
|
+
if ((0, exactDecimal_1.formatExactDecimalValue)(current) !== request.currentAmount ||
|
|
35
|
+
(0, exactDecimal_1.formatExactDecimalValue)(comparison) !== request.comparisonAmount) {
|
|
36
|
+
return { status: 'unavailable' };
|
|
37
|
+
}
|
|
38
|
+
const change = (0, exactDecimal_1.subtractExactDecimalValues)(current, comparison);
|
|
39
|
+
const direction = change.coefficient === 0n ? 'flat' : change.coefficient > 0n ? 'increasing' : 'decreasing';
|
|
40
|
+
const percentChange = exactPercentAtSixDecimalPlaces(change, comparison);
|
|
41
|
+
return {
|
|
42
|
+
status: 'available',
|
|
43
|
+
direction,
|
|
44
|
+
changeAmount: (0, exactDecimal_1.formatExactDecimalValue)(change),
|
|
45
|
+
...(percentChange === undefined ? {} : { percentChange }),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return { status: 'unavailable' };
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.compareFinancialExactAmountsV1 = compareFinancialExactAmountsV1;
|
|
53
|
+
const uniqueSorted = (values) => {
|
|
54
|
+
const result = Array.from(new Set(values)).sort();
|
|
55
|
+
if (result.length === 0)
|
|
56
|
+
throw new TypeError('Current-spend unavailable state requires at least one reason code.');
|
|
57
|
+
return result;
|
|
58
|
+
};
|
|
59
|
+
/** Portable exact-decimal composition kernel shared by Cloud and browser runtimes. */
|
|
60
|
+
const composeCurrentSpendV1 = (request) => {
|
|
61
|
+
if (request.coordinate.periodRole !== 'current-spend' && request.coordinate.periodRole !== 'comparison') {
|
|
62
|
+
throw new TypeError('Current-spend composition requires a current-spend or comparison coordinate.');
|
|
63
|
+
}
|
|
64
|
+
if (request.baselines.length === 0)
|
|
65
|
+
throw new TypeError('Current-spend composition requires an authoritative baseline member.');
|
|
66
|
+
if (request.chargeCompositions.length > request.baselines.length) {
|
|
67
|
+
throw new TypeError('Current-spend composition has more charge compositions than baseline members.');
|
|
68
|
+
}
|
|
69
|
+
const chargeCompositionByBaselineId = new Map(request.chargeCompositions.map(composition => [composition.baselineId, composition]));
|
|
70
|
+
if (chargeCompositionByBaselineId.size !== request.chargeCompositions.length) {
|
|
71
|
+
throw new TypeError('Current-spend composition cannot contain duplicate charge compositions.');
|
|
72
|
+
}
|
|
73
|
+
const sortedBaselines = [...request.baselines].sort((left, right) => left.scopeId.localeCompare(right.scopeId));
|
|
74
|
+
if (new Set(sortedBaselines.map(baseline => baseline.scopeId)).size !== sortedBaselines.length) {
|
|
75
|
+
throw new TypeError('Current-spend composition cannot contain duplicate member scopes.');
|
|
76
|
+
}
|
|
77
|
+
const selections = new Map();
|
|
78
|
+
const members = sortedBaselines.map(baseline => {
|
|
79
|
+
if (baseline.status === 'unavailable') {
|
|
80
|
+
return { memberScopeId: baseline.scopeId, status: 'unavailable', reasonCode: baseline.unavailableReason };
|
|
81
|
+
}
|
|
82
|
+
if (baseline.baselineKind !== 'owner') {
|
|
83
|
+
return { memberScopeId: baseline.scopeId, status: 'unavailable', reasonCode: 'charge-composition-requires-owner-baseline' };
|
|
84
|
+
}
|
|
85
|
+
const chargeComposition = chargeCompositionByBaselineId.get(baseline.baselineId);
|
|
86
|
+
if (!chargeComposition || chargeComposition.ownerScopeId !== baseline.scopeId) {
|
|
87
|
+
return { memberScopeId: baseline.scopeId, status: 'unavailable', reasonCode: 'charge-composition-unavailable' };
|
|
88
|
+
}
|
|
89
|
+
const selection = (0, financialChargeCompositionValidation_1.selectFinancialChargesV1)(chargeComposition, request.coordinate.chargeInclusionPolicyRef);
|
|
90
|
+
selections.set(baseline.baselineId, selection);
|
|
91
|
+
return {
|
|
92
|
+
memberScopeId: baseline.scopeId,
|
|
93
|
+
baselineId: baseline.baselineId,
|
|
94
|
+
chargeCompositionId: chargeComposition.chargeCompositionId,
|
|
95
|
+
status: 'included',
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
const available = sortedBaselines.filter((baseline) => baseline.status === 'available');
|
|
99
|
+
const includedBaselines = available.filter(baseline => members.some(member => member.status === 'included' && member.baselineId === baseline.baselineId));
|
|
100
|
+
const unavailableReasons = new Set(sortedBaselines
|
|
101
|
+
.filter((baseline) => baseline.status === 'unavailable')
|
|
102
|
+
.map(baseline => baseline.unavailableReason));
|
|
103
|
+
members.filter(member => member.status === 'unavailable').forEach(member => unavailableReasons.add(member.reasonCode));
|
|
104
|
+
const selectionReasonCodes = new Set();
|
|
105
|
+
selections.forEach(selection => selection.reasonCodes?.forEach(reason => {
|
|
106
|
+
selectionReasonCodes.add(reason);
|
|
107
|
+
unavailableReasons.add(reason);
|
|
108
|
+
}));
|
|
109
|
+
if (available.some(baseline => !(0, financialScopeBaseline_1.isCompleteFinancialBaselinePeriodV2)(baseline.period)))
|
|
110
|
+
unavailableReasons.add('coverage-incomplete');
|
|
111
|
+
if (request.coordinate.accountingCurrency.status === 'unresolved') {
|
|
112
|
+
unavailableReasons.add(request.coordinate.accountingCurrency.reasonCode);
|
|
113
|
+
}
|
|
114
|
+
const common = {
|
|
115
|
+
schemaVersion: financialDataflow_1.FINANCIAL_DATAFLOW_SCHEMA_VERSION_V1,
|
|
116
|
+
contractVersion: financialDataflow_1.FINANCIAL_CURRENT_SPEND_COMPOSITION_CONTRACT_VERSION_V1,
|
|
117
|
+
coordinate: request.coordinate,
|
|
118
|
+
members,
|
|
119
|
+
membershipDigest: (0, financialDataflowValidation_1.createCurrentSpendMembershipDigestV1)(members),
|
|
120
|
+
algorithmVersion: request.algorithmVersion ?? exports.CURRENT_SPEND_COMPOSITION_ALGORITHM_VERSION_V1,
|
|
121
|
+
};
|
|
122
|
+
const currency = request.coordinate.accountingCurrency.status === 'resolved' ? request.coordinate.accountingCurrency.currencyCode : undefined;
|
|
123
|
+
let identity;
|
|
124
|
+
if (!currency || includedBaselines.length === 0) {
|
|
125
|
+
identity = {
|
|
126
|
+
...common,
|
|
127
|
+
amount: {
|
|
128
|
+
status: 'unavailable',
|
|
129
|
+
reasonCodes: uniqueSorted(unavailableReasons.size > 0 ? unavailableReasons : ['evidence-unavailable']),
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const includedSelections = members.flatMap(member => member.status === 'included' ? [selections.get(member.baselineId)] : []);
|
|
135
|
+
const aggregateSelection = {
|
|
136
|
+
status: includedSelections.some(selection => selection.status === 'partial') ? 'partial' : 'available',
|
|
137
|
+
includedAmount: (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(includedSelections.map(selection => selection.includedAmount))),
|
|
138
|
+
excludedAmount: (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(includedSelections.map(selection => selection.excludedAmount))),
|
|
139
|
+
withheldAmount: (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(includedSelections.map(selection => selection.withheldAmount))),
|
|
140
|
+
forecastEligibleAmount: (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(includedSelections.map(selection => selection.forecastEligibleAmount))),
|
|
141
|
+
oneTimeAmount: (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(includedSelections.map(selection => selection.oneTimeAmount))),
|
|
142
|
+
unknownRecurrenceAmount: (0, exactDecimal_1.formatExactDecimalValue)((0, exactDecimal_1.sumCanonicalDecimals)(includedSelections.map(selection => selection.unknownRecurrenceAmount))),
|
|
143
|
+
forecastStatus: includedSelections.some(selection => selection.forecastStatus === 'partial') ? 'partial' : 'available',
|
|
144
|
+
currencyCode: currency,
|
|
145
|
+
...(selectionReasonCodes.size === 0 ? {} : { reasonCodes: uniqueSorted(selectionReasonCodes) }),
|
|
146
|
+
...(includedSelections.every(selection => selection.forecastReasonCodes === undefined)
|
|
147
|
+
? {}
|
|
148
|
+
: {
|
|
149
|
+
forecastReasonCodes: uniqueSorted(includedSelections.flatMap(selection => selection.forecastReasonCodes ?? [])),
|
|
150
|
+
}),
|
|
151
|
+
};
|
|
152
|
+
const knownAmount = aggregateSelection.includedAmount;
|
|
153
|
+
identity =
|
|
154
|
+
unavailableReasons.size === 0
|
|
155
|
+
? { ...common, amount: { status: 'available', amount: knownAmount, currencyCode: currency }, chargeSelection: aggregateSelection }
|
|
156
|
+
: {
|
|
157
|
+
...common,
|
|
158
|
+
amount: { status: 'partial', knownAmount, currencyCode: currency, reasonCodes: uniqueSorted(unavailableReasons) },
|
|
159
|
+
chargeSelection: aggregateSelection,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
const composition = { ...identity, compositionId: (0, financialDataflowValidation_1.createCurrentSpendCompositionIdV1)(identity) };
|
|
163
|
+
if (!(0, financialDataflowValidation_1.isCurrentSpendCompositionCompatibleV1)(composition, sortedBaselines, request.chargeCompositions)) {
|
|
164
|
+
throw new TypeError('Current-spend composition does not reconcile to its authoritative baseline members.');
|
|
165
|
+
}
|
|
166
|
+
return composition;
|
|
167
|
+
};
|
|
168
|
+
exports.composeCurrentSpendV1 = composeCurrentSpendV1;
|
|
169
|
+
//# sourceMappingURL=financialDataflowKernel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financialDataflowKernel.js","sourceRoot":"","sources":["../../src/azure/financialDataflowKernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CurrentSpendCompositionIdentityPreimageV1, type CurrentSpendCompositionMemberV1, type CurrentSpendCompositionV1, type FinancialDataflowCoordinateV1, type FinancialDataflowScopeV1 } from './financialDataflow';
|
|
1
|
+
import { type CurrentSpendCompositionIdentityPreimageV1, type CurrentSpendCompositionMemberV1, type CurrentSpendCompositionV1, type FinancialDataflowCoordinateV1, type FinancialDataflowJsonGzipArtifactDescriptorV1, type FinancialDataflowPeriodV1, type FinancialDataflowScopeSelectorV1, type FinancialDataflowScopeV1 } from './financialDataflow';
|
|
2
2
|
export type FinancialDataflowJsonRecordV1 = Record<string, unknown>;
|
|
3
3
|
export declare const FINANCIAL_DATAFLOW_LIMITS_V1: {
|
|
4
4
|
readonly maximumIdentifierLength: 2048;
|
|
@@ -17,12 +17,15 @@ export declare const isFinancialDataflowIdentityV1: (value: unknown) => value is
|
|
|
17
17
|
export declare const isFinancialDataflowHashV1: (value: unknown) => value is string;
|
|
18
18
|
export declare const isFinancialDataflowCurrencyV1: (value: unknown) => value is string;
|
|
19
19
|
export declare const isFinancialDataflowIsoInstantV1: (value: unknown) => value is string;
|
|
20
|
+
export declare const isFinancialDataflowJsonGzipArtifactDescriptorV1: (value: unknown) => value is FinancialDataflowJsonGzipArtifactDescriptorV1;
|
|
20
21
|
export declare const isFinancialDataflowCalendarDateV1: (value: unknown) => value is string;
|
|
21
22
|
export declare const isFinancialDataflowSortedUniqueStringsV1: (value: unknown, maximum: number, validate?: (entry: unknown) => entry is string) => value is string[];
|
|
22
23
|
export declare const canonicalizeFinancialDataflowJsonV1: (value: unknown) => string;
|
|
23
24
|
/** Parses bounded JSON while rejecting duplicate and prototype-sensitive object keys. */
|
|
24
25
|
export declare const parseFinancialDataflowJsonV1: (text: string) => unknown;
|
|
25
26
|
export declare const isFinancialDataflowScopeV1: (value: unknown) => value is FinancialDataflowScopeV1;
|
|
27
|
+
export declare const isFinancialDataflowPeriodV1: (value: unknown) => value is FinancialDataflowPeriodV1;
|
|
28
|
+
export declare const isFinancialDataflowScopeSelectorV1: (value: unknown) => value is FinancialDataflowScopeSelectorV1;
|
|
26
29
|
export declare const isFinancialDataflowCoordinateV1: (value: unknown) => value is FinancialDataflowCoordinateV1;
|
|
27
30
|
export declare const canonicalizeFinancialDataflowCoordinateV1: (value: FinancialDataflowCoordinateV1) => string;
|
|
28
31
|
export declare const createFinancialDataflowCoordinateIdV1: (value: FinancialDataflowCoordinateV1) => string;
|
|
@@ -32,5 +35,5 @@ export declare const canonicalizeCurrentSpendCompositionIdentityV1: (value: Curr
|
|
|
32
35
|
export declare const createCurrentSpendCompositionIdV1: (value: CurrentSpendCompositionIdentityPreimageV1) => string;
|
|
33
36
|
export declare const isCurrentSpendCompositionV1: (value: unknown) => value is CurrentSpendCompositionV1;
|
|
34
37
|
/** Proves that composition membership and money reconcile to exact V2 baseline envelopes. */
|
|
35
|
-
export declare const isCurrentSpendCompositionCompatibleV1: (composition: unknown, baselines: unknown) => boolean;
|
|
38
|
+
export declare const isCurrentSpendCompositionCompatibleV1: (composition: unknown, baselines: unknown, chargeCompositions: unknown) => boolean;
|
|
36
39
|
//# sourceMappingURL=financialDataflowValidation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialDataflowValidation.d.ts","sourceRoot":"","sources":["../../src/azure/financialDataflowValidation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"financialDataflowValidation.d.ts","sourceRoot":"","sources":["../../src/azure/financialDataflowValidation.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,yCAAyC,EAC9C,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,6CAA6C,EAClD,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpE,eAAO,MAAM,4BAA4B;;;;;;;;CAQ/B,CAAC;AAoDX,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,6BAIrE,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,OAAO,6BAA6B,EACpC,UAAU,SAAS,MAAM,EAAE,EAC3B,WAAU,SAAS,MAAM,EAAO,KAC/B,OAIF,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,sCAAsC,GAAI,OAAO,OAAO,KAAG,OAkDvE,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACyE,CAAC;AAElJ,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAA4D,CAAC;AAEjI,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAA2D,CAAC;AAEpI,eAAO,MAAM,+BAA+B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAC2D,CAAC;AAEtI,eAAO,MAAM,+CAA+C,GAC1D,OAAO,OAAO,KACb,KAAK,IAAI,6CAQsB,CAAC;AAEnC,eAAO,MAAM,iCAAiC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAI3E,CAAC;AAEF,eAAO,MAAM,wCAAwC,GACnD,OAAO,OAAO,EACd,SAAS,MAAM,EACf,WAAU,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,MAAsC,KAC5E,KAAK,IAAI,MAAM,EAI8D,CAAC;AAEjF,eAAO,MAAM,mCAAmC,GAAI,OAAO,OAAO,KAAG,MAcpE,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,4BAA4B,GAAI,MAAM,MAAM,KAAG,OAwH3D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,wBAMlB,CAAC;AAEpD,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,yBAGH,CAAC;AAEpE,eAAO,MAAM,kCAAkC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gCA6C5E,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,6BAsDzE,CAAC;AAEF,eAAO,MAAM,yCAAyC,GAAI,OAAO,6BAA6B,KAAG,MAGhG,CAAC;AAEF,eAAO,MAAM,qCAAqC,GAAI,OAAO,6BAA6B,KAAG,MACnB,CAAC;AAyB3E,eAAO,MAAM,oCAAoC,GAAI,SAAS,SAAS,+BAA+B,EAAE,KAAG,MAU1G,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,SAAS,SAAS,+BAA+B,EAAE,KAAG,MACpC,CAAC;AAuGxE,eAAO,MAAM,6CAA6C,GAAI,OAAO,yCAAyC,KAAG,MA2BhH,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,OAAO,yCAAyC,KAAG,MACvB,CAAC;AAE/E,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,yBAmBrE,CAAC;AAYF,6FAA6F;AAC7F,eAAO,MAAM,qCAAqC,GAChD,aAAa,OAAO,EACpB,WAAW,OAAO,EAClB,oBAAoB,OAAO,KAC1B,OAqHF,CAAC"}
|