@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
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import type { CanonicalExactMoney } from './financialValidationPrimitives';
|
|
2
|
-
import type { FinancialDataflowCoordinateV1 } from './financialDataflow';
|
|
2
|
+
import type { CurrentSpendCompositionV1, FinancialDataflowCoordinateV1 } from './financialDataflow';
|
|
3
3
|
export declare const FINANCIAL_ANALYTICS_INPUT_CONTRACT_VERSION_V1: "financial-analytics-input/v1";
|
|
4
4
|
export declare const FINANCIAL_ANALYTICS_PROJECTION_CONTRACT_VERSION_V1: "financial-analytics-projection/v1";
|
|
5
|
-
|
|
5
|
+
interface FinancialAnalyticsDailyForecastSliceV1 {
|
|
6
|
+
/** Exact recurring and usage-based amount eligible for future-day modeling. */
|
|
7
|
+
forecastEligibleAmount: string;
|
|
8
|
+
/** Exact observed one-time amount retained in history but never repeated into future days. */
|
|
9
|
+
oneTimeAmount: string;
|
|
10
|
+
/** Exact included amount whose recurrence is unresolved. */
|
|
11
|
+
unknownRecurrenceAmount: string;
|
|
12
|
+
forecastStatus: 'available' | 'partial';
|
|
13
|
+
forecastReasonCodes?: [string, ...string[]];
|
|
14
|
+
}
|
|
15
|
+
export type FinancialAnalyticsDailyPointV1 = FinancialAnalyticsDailyForecastSliceV1 & ({
|
|
6
16
|
date: string;
|
|
7
17
|
compositionId: string;
|
|
8
18
|
status: 'available';
|
|
@@ -16,7 +26,7 @@ export type FinancialAnalyticsDailyPointV1 = {
|
|
|
16
26
|
knownAmount: string;
|
|
17
27
|
reasonCodes: [string, ...string[]];
|
|
18
28
|
amount?: never;
|
|
19
|
-
};
|
|
29
|
+
});
|
|
20
30
|
export interface FinancialAnalyticsGapV1 {
|
|
21
31
|
startDate: string;
|
|
22
32
|
endDateExclusive: string;
|
|
@@ -27,21 +37,83 @@ export interface FinancialAnalyticsCoverageV1 {
|
|
|
27
37
|
partialDayCount: number;
|
|
28
38
|
unavailableDayCount: number;
|
|
29
39
|
}
|
|
40
|
+
export type FinancialAnalyticsInputCoordinateV1 = FinancialDataflowCoordinateV1 & {
|
|
41
|
+
periodRole: 'analytics-input';
|
|
42
|
+
period: FinancialDataflowCoordinateV1['period'] & {
|
|
43
|
+
windowKind: 'analytics-history';
|
|
44
|
+
};
|
|
45
|
+
};
|
|
30
46
|
export interface FinancialAnalyticsInputSeriesV1 {
|
|
31
47
|
schemaVersion: 1;
|
|
32
48
|
contractVersion: typeof FINANCIAL_ANALYTICS_INPUT_CONTRACT_VERSION_V1;
|
|
33
49
|
analyticsInputId: string;
|
|
34
|
-
coordinate:
|
|
35
|
-
periodRole: 'analytics-input';
|
|
36
|
-
};
|
|
50
|
+
coordinate: FinancialAnalyticsInputCoordinateV1;
|
|
37
51
|
granularity: 'daily';
|
|
38
52
|
producerGenerationId: string;
|
|
53
|
+
/** Content-addressed current/comparison compositions required by requested projections. */
|
|
54
|
+
referenceCompositions: CurrentSpendCompositionV1[];
|
|
39
55
|
points: FinancialAnalyticsDailyPointV1[];
|
|
40
56
|
gaps: FinancialAnalyticsGapV1[];
|
|
41
57
|
coverage: FinancialAnalyticsCoverageV1;
|
|
42
58
|
algorithmVersion: string;
|
|
43
59
|
}
|
|
44
60
|
export type FinancialAnalyticsInputIdentityPreimageV1 = Omit<FinancialAnalyticsInputSeriesV1, 'analyticsInputId'>;
|
|
61
|
+
export type FinancialAnalyticsDisplayPeriodKeyV1 = 'last-7-days' | 'rolling-30-days' | 'rolling-90-days' | 'trailing-12-calendar-months';
|
|
62
|
+
export type FinancialAnalyticsDisplayBucketV1 = {
|
|
63
|
+
bucketKey: string;
|
|
64
|
+
startDate: string;
|
|
65
|
+
endDateExclusive: string;
|
|
66
|
+
status: 'available';
|
|
67
|
+
amount: string;
|
|
68
|
+
averageKnownPerDay: string;
|
|
69
|
+
knownAmount?: never;
|
|
70
|
+
reasonCodes?: never;
|
|
71
|
+
} | {
|
|
72
|
+
bucketKey: string;
|
|
73
|
+
startDate: string;
|
|
74
|
+
endDateExclusive: string;
|
|
75
|
+
status: 'partial';
|
|
76
|
+
knownAmount: string;
|
|
77
|
+
averageKnownPerDay: string;
|
|
78
|
+
reasonCodes: [string, ...string[]];
|
|
79
|
+
amount?: never;
|
|
80
|
+
} | {
|
|
81
|
+
bucketKey: string;
|
|
82
|
+
startDate: string;
|
|
83
|
+
endDateExclusive: string;
|
|
84
|
+
status: 'unavailable';
|
|
85
|
+
reasonCodes: [string, ...string[]];
|
|
86
|
+
amount?: never;
|
|
87
|
+
knownAmount?: never;
|
|
88
|
+
};
|
|
89
|
+
interface FinancialAnalyticsDisplayProjectionCommonV1 {
|
|
90
|
+
analyticsInputId: string;
|
|
91
|
+
currentSpendCompositionId: string;
|
|
92
|
+
chargeInclusionPolicyRef: FinancialDataflowCoordinateV1['chargeInclusionPolicyRef'];
|
|
93
|
+
periodKey: FinancialAnalyticsDisplayPeriodKeyV1;
|
|
94
|
+
requested: FinancialDataflowCoordinateV1['period']['requested'];
|
|
95
|
+
bucketGranularity: 'daily' | 'calendar-month';
|
|
96
|
+
currencyCode: string;
|
|
97
|
+
buckets: FinancialAnalyticsDisplayBucketV1[];
|
|
98
|
+
}
|
|
99
|
+
export type FinancialAnalyticsDisplayProjectionV1 = (FinancialAnalyticsDisplayProjectionCommonV1 & {
|
|
100
|
+
status: 'available';
|
|
101
|
+
amount: string;
|
|
102
|
+
averageKnownPerDay: string;
|
|
103
|
+
knownAmount?: never;
|
|
104
|
+
reasonCodes?: never;
|
|
105
|
+
}) | (FinancialAnalyticsDisplayProjectionCommonV1 & {
|
|
106
|
+
status: 'partial';
|
|
107
|
+
knownAmount: string;
|
|
108
|
+
averageKnownPerDay: string;
|
|
109
|
+
reasonCodes: [string, ...string[]];
|
|
110
|
+
amount?: never;
|
|
111
|
+
}) | (FinancialAnalyticsDisplayProjectionCommonV1 & {
|
|
112
|
+
status: 'unavailable';
|
|
113
|
+
reasonCodes: [string, ...string[]];
|
|
114
|
+
amount?: never;
|
|
115
|
+
knownAmount?: never;
|
|
116
|
+
});
|
|
45
117
|
export interface FinancialForecastResultV1 {
|
|
46
118
|
kind: 'forecast';
|
|
47
119
|
projectedTotal: CanonicalExactMoney;
|
|
@@ -64,7 +136,7 @@ export interface FinancialAnomalyEventV1 {
|
|
|
64
136
|
}
|
|
65
137
|
export interface FinancialAnomalyResultV1 {
|
|
66
138
|
kind: 'anomaly';
|
|
67
|
-
events:
|
|
139
|
+
events: FinancialAnomalyEventV1[];
|
|
68
140
|
}
|
|
69
141
|
export type FinancialAnalyticsResultV1 = FinancialForecastResultV1 | FinancialTrendResultV1 | FinancialAnomalyResultV1;
|
|
70
142
|
interface FinancialAnalyticsProjectionCommonV1 {
|
|
@@ -89,7 +161,7 @@ type FinancialAnalyticsAvailableInputBindingV1 = {
|
|
|
89
161
|
result: FinancialTrendResultV1;
|
|
90
162
|
} | {
|
|
91
163
|
analyticsInputId: string;
|
|
92
|
-
currentSpendCompositionId
|
|
164
|
+
currentSpendCompositionId: string;
|
|
93
165
|
result: FinancialAnomalyResultV1;
|
|
94
166
|
};
|
|
95
167
|
export type AvailableFinancialAnalyticsProjectionV1 = FinancialAnalyticsProjectionCommonV1 & FinancialAnalyticsAvailableInputBindingV1 & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialAnalytics.d.ts","sourceRoot":"","sources":["../../src/azure/financialAnalytics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"financialAnalytics.d.ts","sourceRoot":"","sources":["../../src/azure/financialAnalytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,36 @@
|
|
|
1
1
|
import type { FinancialAnalyticsResultV1 } from './financialAnalytics';
|
|
2
|
+
import type { FinancialDataflowCoordinateV1, FinancialDataflowJsonGzipArtifactDescriptorV1 } from './financialDataflow';
|
|
2
3
|
export declare const FINANCIAL_ANALYTICS_JOB_REQUEST_CONTRACT_VERSION_V1: "financial-analytics-job-request/v1";
|
|
3
4
|
export declare const FINANCIAL_ANALYTICS_CURRENT_POINTER_CONTRACT_VERSION_V1: "financial-analytics-current-pointer/v1";
|
|
4
5
|
export declare const FINANCIAL_ANALYTICS_INPUT_LOGICAL_NAME_V1: "financial-analytics-input.json.gz";
|
|
6
|
+
export declare const FINANCIAL_ANALYTICS_INPUT_BY_ID_ROOT_V1: "financial-analytics/inputs-by-id";
|
|
5
7
|
export declare const FINANCIAL_ANALYTICS_PROJECTION_LOGICAL_NAME_V1: "financial-analytics-projection.json.gz";
|
|
8
|
+
export declare const FINANCIAL_ANALYTICS_BATCH_QUERY_CONTRACT_VERSION_V1: "financial-analytics-batch-query/v1";
|
|
9
|
+
export declare const FINANCIAL_ANALYTICS_BATCH_RESPONSE_CONTRACT_VERSION_V1: "financial-analytics-batch-response/v1";
|
|
10
|
+
export declare const FINANCIAL_ANALYTICS_OUTPUT_MANIFEST_CONTRACT_VERSION_V1: "financial-analytics-output-manifest/v1";
|
|
11
|
+
export declare const financialAnalyticsInputByIdPathV1: (analyticsInputId: string) => string;
|
|
12
|
+
export type FinancialAnalyticsRequestedOutputV1 = {
|
|
13
|
+
resultKind: 'forecast';
|
|
14
|
+
targetCoordinate: FinancialDataflowCoordinateV1 & {
|
|
15
|
+
periodRole: 'projection-target';
|
|
16
|
+
};
|
|
17
|
+
currentSpendCompositionId: string;
|
|
18
|
+
comparisonSpendCompositionId?: never;
|
|
19
|
+
} | {
|
|
20
|
+
resultKind: 'trend';
|
|
21
|
+
targetCoordinate: FinancialDataflowCoordinateV1 & {
|
|
22
|
+
periodRole: 'projection-target';
|
|
23
|
+
};
|
|
24
|
+
currentSpendCompositionId: string;
|
|
25
|
+
comparisonSpendCompositionId: string;
|
|
26
|
+
} | {
|
|
27
|
+
resultKind: 'anomaly';
|
|
28
|
+
targetCoordinate: FinancialDataflowCoordinateV1 & {
|
|
29
|
+
periodRole: 'projection-target';
|
|
30
|
+
};
|
|
31
|
+
currentSpendCompositionId: string;
|
|
32
|
+
comparisonSpendCompositionId?: never;
|
|
33
|
+
};
|
|
6
34
|
export interface FinancialAnalyticsJobRequestV1 {
|
|
7
35
|
schemaVersion: 1;
|
|
8
36
|
contractVersion: typeof FINANCIAL_ANALYTICS_JOB_REQUEST_CONTRACT_VERSION_V1;
|
|
@@ -13,17 +41,21 @@ export interface FinancialAnalyticsJobRequestV1 {
|
|
|
13
41
|
inputGenerationId: string;
|
|
14
42
|
inputArtifactDigest: string;
|
|
15
43
|
/** Identity-only queue request. Customer money and billing rows must never be embedded here. */
|
|
16
|
-
|
|
44
|
+
requestedOutputs: FinancialAnalyticsRequestedOutputV1[];
|
|
17
45
|
requestedAt: string;
|
|
18
46
|
}
|
|
19
|
-
/** Stable across delivery retries
|
|
20
|
-
export type FinancialAnalyticsJobRequestIdentityPreimageV1 = Omit<FinancialAnalyticsJobRequestV1, 'requestId'
|
|
47
|
+
/** Stable across delivery retries because the fixed evaluation instant is part of the queued payload identity. */
|
|
48
|
+
export type FinancialAnalyticsJobRequestIdentityPreimageV1 = Omit<FinancialAnalyticsJobRequestV1, 'requestId'>;
|
|
21
49
|
/** CAS-friendly current pointer; immutable output generations remain the source of truth. */
|
|
22
50
|
export interface FinancialAnalyticsCurrentPointerV1 {
|
|
23
51
|
schemaVersion: 1;
|
|
24
52
|
contractVersion: typeof FINANCIAL_ANALYTICS_CURRENT_POINTER_CONTRACT_VERSION_V1;
|
|
25
53
|
pointerDigest: string;
|
|
26
54
|
coordinateId: string;
|
|
55
|
+
resultKind: FinancialAnalyticsResultV1['kind'];
|
|
56
|
+
sourceRequestId: string;
|
|
57
|
+
sourceRequestedAt: string;
|
|
58
|
+
analyticsInputId: string;
|
|
27
59
|
pointerRevision: number;
|
|
28
60
|
outputGenerationId: string;
|
|
29
61
|
analyticsProjectionId: string;
|
|
@@ -31,4 +63,41 @@ export interface FinancialAnalyticsCurrentPointerV1 {
|
|
|
31
63
|
promotedAt: string;
|
|
32
64
|
}
|
|
33
65
|
export type FinancialAnalyticsCurrentPointerIdentityPreimageV1 = Omit<FinancialAnalyticsCurrentPointerV1, 'pointerDigest'>;
|
|
66
|
+
export interface FinancialAnalyticsOutputManifestV1 {
|
|
67
|
+
schemaVersion: 1;
|
|
68
|
+
contractVersion: typeof FINANCIAL_ANALYTICS_OUTPUT_MANIFEST_CONTRACT_VERSION_V1;
|
|
69
|
+
coordinateId: string;
|
|
70
|
+
resultKind: FinancialAnalyticsResultV1['kind'];
|
|
71
|
+
outputGenerationId: string;
|
|
72
|
+
analyticsProjectionId: string;
|
|
73
|
+
sourceRequestId: string;
|
|
74
|
+
analyticsInputId: string;
|
|
75
|
+
inputArtifactDigest: string;
|
|
76
|
+
projection: FinancialDataflowJsonGzipArtifactDescriptorV1;
|
|
77
|
+
publishedAt: string;
|
|
78
|
+
manifestDigest: string;
|
|
79
|
+
}
|
|
80
|
+
export type FinancialAnalyticsOutputManifestIdentityPreimageV1 = Omit<FinancialAnalyticsOutputManifestV1, 'manifestDigest'>;
|
|
81
|
+
export interface FinancialAnalyticsBatchQueryItemV1 {
|
|
82
|
+
coordinateId: string;
|
|
83
|
+
resultKind: FinancialAnalyticsResultV1['kind'];
|
|
84
|
+
}
|
|
85
|
+
/** Bounded read-only transport query. It contains no customer money or calculation inputs. */
|
|
86
|
+
export interface FinancialAnalyticsBatchQueryV1 {
|
|
87
|
+
schemaVersion: 1;
|
|
88
|
+
contractVersion: typeof FINANCIAL_ANALYTICS_BATCH_QUERY_CONTRACT_VERSION_V1;
|
|
89
|
+
items: FinancialAnalyticsBatchQueryItemV1[];
|
|
90
|
+
}
|
|
91
|
+
export type FinancialAnalyticsBatchResultV1 = (FinancialAnalyticsBatchQueryItemV1 & {
|
|
92
|
+
status: 'available';
|
|
93
|
+
projection: import('./financialAnalytics').FinancialAnalyticsProjectionV1;
|
|
94
|
+
}) | (FinancialAnalyticsBatchQueryItemV1 & {
|
|
95
|
+
status: 'unavailable';
|
|
96
|
+
reasonCode: 'not-produced';
|
|
97
|
+
});
|
|
98
|
+
export interface FinancialAnalyticsBatchResponseV1 {
|
|
99
|
+
schemaVersion: 1;
|
|
100
|
+
contractVersion: typeof FINANCIAL_ANALYTICS_BATCH_RESPONSE_CONTRACT_VERSION_V1;
|
|
101
|
+
results: FinancialAnalyticsBatchResultV1[];
|
|
102
|
+
}
|
|
34
103
|
//# sourceMappingURL=financialAnalyticsDelivery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialAnalyticsDelivery.d.ts","sourceRoot":"","sources":["../../src/azure/financialAnalyticsDelivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"financialAnalyticsDelivery.d.ts","sourceRoot":"","sources":["../../src/azure/financialAnalyticsDelivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FINANCIAL_ANALYTICS_PROJECTION_LOGICAL_NAME_V1 = exports.FINANCIAL_ANALYTICS_INPUT_LOGICAL_NAME_V1 = exports.FINANCIAL_ANALYTICS_CURRENT_POINTER_CONTRACT_VERSION_V1 = exports.FINANCIAL_ANALYTICS_JOB_REQUEST_CONTRACT_VERSION_V1 = void 0;
|
|
3
|
+
exports.financialAnalyticsInputByIdPathV1 = exports.FINANCIAL_ANALYTICS_OUTPUT_MANIFEST_CONTRACT_VERSION_V1 = exports.FINANCIAL_ANALYTICS_BATCH_RESPONSE_CONTRACT_VERSION_V1 = exports.FINANCIAL_ANALYTICS_BATCH_QUERY_CONTRACT_VERSION_V1 = exports.FINANCIAL_ANALYTICS_PROJECTION_LOGICAL_NAME_V1 = exports.FINANCIAL_ANALYTICS_INPUT_BY_ID_ROOT_V1 = exports.FINANCIAL_ANALYTICS_INPUT_LOGICAL_NAME_V1 = exports.FINANCIAL_ANALYTICS_CURRENT_POINTER_CONTRACT_VERSION_V1 = exports.FINANCIAL_ANALYTICS_JOB_REQUEST_CONTRACT_VERSION_V1 = void 0;
|
|
4
4
|
exports.FINANCIAL_ANALYTICS_JOB_REQUEST_CONTRACT_VERSION_V1 = 'financial-analytics-job-request/v1';
|
|
5
5
|
exports.FINANCIAL_ANALYTICS_CURRENT_POINTER_CONTRACT_VERSION_V1 = 'financial-analytics-current-pointer/v1';
|
|
6
6
|
exports.FINANCIAL_ANALYTICS_INPUT_LOGICAL_NAME_V1 = 'financial-analytics-input.json.gz';
|
|
7
|
+
exports.FINANCIAL_ANALYTICS_INPUT_BY_ID_ROOT_V1 = 'financial-analytics/inputs-by-id';
|
|
7
8
|
exports.FINANCIAL_ANALYTICS_PROJECTION_LOGICAL_NAME_V1 = 'financial-analytics-projection.json.gz';
|
|
9
|
+
exports.FINANCIAL_ANALYTICS_BATCH_QUERY_CONTRACT_VERSION_V1 = 'financial-analytics-batch-query/v1';
|
|
10
|
+
exports.FINANCIAL_ANALYTICS_BATCH_RESPONSE_CONTRACT_VERSION_V1 = 'financial-analytics-batch-response/v1';
|
|
11
|
+
exports.FINANCIAL_ANALYTICS_OUTPUT_MANIFEST_CONTRACT_VERSION_V1 = 'financial-analytics-output-manifest/v1';
|
|
12
|
+
const financialAnalyticsInputByIdPathV1 = (analyticsInputId) => `${exports.FINANCIAL_ANALYTICS_INPUT_BY_ID_ROOT_V1}/${analyticsInputId}/${exports.FINANCIAL_ANALYTICS_INPUT_LOGICAL_NAME_V1}`;
|
|
13
|
+
exports.financialAnalyticsInputByIdPathV1 = financialAnalyticsInputByIdPathV1;
|
|
8
14
|
//# sourceMappingURL=financialAnalyticsDelivery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialAnalyticsDelivery.js","sourceRoot":"","sources":["../../src/azure/financialAnalyticsDelivery.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"financialAnalyticsDelivery.js","sourceRoot":"","sources":["../../src/azure/financialAnalyticsDelivery.ts"],"names":[],"mappings":";;;AAGa,QAAA,mDAAmD,GAAG,oCAA6C,CAAC;AACpG,QAAA,uDAAuD,GAAG,wCAAiD,CAAC;AAC5G,QAAA,yCAAyC,GAAG,mCAA4C,CAAC;AACzF,QAAA,uCAAuC,GAAG,kCAA2C,CAAC;AACtF,QAAA,8CAA8C,GAAG,wCAAiD,CAAC;AACnG,QAAA,mDAAmD,GAAG,oCAA6C,CAAC;AACpG,QAAA,sDAAsD,GAAG,uCAAgD,CAAC;AAC1G,QAAA,uDAAuD,GAAG,wCAAiD,CAAC;AAElH,MAAM,iCAAiC,GAAG,CAAC,gBAAwB,EAAU,EAAE,CACpF,GAAG,+CAAuC,IAAI,gBAAgB,IAAI,iDAAyC,EAAE,CAAC;AADnG,QAAA,iCAAiC,qCACkE"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { type FinancialAnalyticsCurrentPointerIdentityPreimageV1, type FinancialAnalyticsCurrentPointerV1, type FinancialAnalyticsJobRequestIdentityPreimageV1, type FinancialAnalyticsJobRequestV1 } from './financialAnalyticsDelivery';
|
|
1
|
+
import { type FinancialAnalyticsBatchQueryV1, type FinancialAnalyticsBatchResponseV1, type FinancialAnalyticsCurrentPointerIdentityPreimageV1, type FinancialAnalyticsCurrentPointerV1, type FinancialAnalyticsJobRequestIdentityPreimageV1, type FinancialAnalyticsJobRequestV1, type FinancialAnalyticsOutputManifestIdentityPreimageV1, type FinancialAnalyticsOutputManifestV1, type FinancialAnalyticsRequestedOutputV1 } from './financialAnalyticsDelivery';
|
|
2
2
|
export declare const canonicalizeFinancialAnalyticsJobRequestIdentityV1: (value: FinancialAnalyticsJobRequestIdentityPreimageV1) => string;
|
|
3
3
|
export declare const createFinancialAnalyticsJobRequestIdV1: (value: FinancialAnalyticsJobRequestIdentityPreimageV1) => string;
|
|
4
|
+
/** Stable immutable output generation selected by one exact job output. */
|
|
5
|
+
export declare const createFinancialAnalyticsOutputGenerationIdV1: (requestId: string, output: FinancialAnalyticsRequestedOutputV1) => string;
|
|
4
6
|
export declare const isFinancialAnalyticsJobRequestV1: (value: unknown) => value is FinancialAnalyticsJobRequestV1;
|
|
5
7
|
/** Binds an identity-only queue request to already-verified immutable input bytes. */
|
|
6
8
|
export declare const isFinancialAnalyticsJobRequestCompatibleV1: (request: unknown, input: unknown, verifiedInputArtifactDigest: unknown) => boolean;
|
|
@@ -9,4 +11,10 @@ export declare const createFinancialAnalyticsCurrentPointerDigestV1: (value: Fin
|
|
|
9
11
|
export declare const isFinancialAnalyticsCurrentPointerV1: (value: unknown) => value is FinancialAnalyticsCurrentPointerV1;
|
|
10
12
|
/** Binds a promoted pointer to already-verified immutable projection bytes. */
|
|
11
13
|
export declare const isFinancialAnalyticsCurrentPointerCompatibleV1: (pointer: unknown, projection: unknown, verifiedProjectionArtifactDigest: unknown) => boolean;
|
|
14
|
+
export declare const createFinancialAnalyticsOutputManifestDigestV1: (value: FinancialAnalyticsOutputManifestIdentityPreimageV1) => string;
|
|
15
|
+
export declare const isFinancialAnalyticsOutputManifestV1: (value: unknown) => value is FinancialAnalyticsOutputManifestV1;
|
|
16
|
+
export declare const isFinancialAnalyticsOutputManifestCompatibleV1: (manifest: unknown, projection: unknown, verifiedProjectionArtifactDigest: unknown) => boolean;
|
|
17
|
+
export declare const isFinancialAnalyticsBatchQueryV1: (value: unknown) => value is FinancialAnalyticsBatchQueryV1;
|
|
18
|
+
export declare const isFinancialAnalyticsBatchResponseV1: (value: unknown) => value is FinancialAnalyticsBatchResponseV1;
|
|
19
|
+
export declare const isFinancialAnalyticsBatchResponseCompatibleV1: (query: unknown, response: unknown) => boolean;
|
|
12
20
|
//# sourceMappingURL=financialAnalyticsDeliveryValidation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"financialAnalyticsDeliveryValidation.d.ts","sourceRoot":"","sources":["../../src/azure/financialAnalyticsDeliveryValidation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"financialAnalyticsDeliveryValidation.d.ts","sourceRoot":"","sources":["../../src/azure/financialAnalyticsDeliveryValidation.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,8BAA8B,EACnC,KAAK,iCAAiC,EACtC,KAAK,kDAAkD,EACvD,KAAK,kCAAkC,EACvC,KAAK,8CAA8C,EACnD,KAAK,8BAA8B,EACnC,KAAK,kDAAkD,EACvD,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACzC,MAAM,8BAA8B,CAAC;AAiFtC,eAAO,MAAM,kDAAkD,GAAI,OAAO,8CAA8C,KAAG,MAM1H,CAAC;AAEF,eAAO,MAAM,sCAAsC,GAAI,OAAO,8CAA8C,KAAG,MAC5B,CAAC;AAEpF,2EAA2E;AAC3E,eAAO,MAAM,4CAA4C,GACvD,WAAW,MAAM,EACjB,QAAQ,mCAAmC,KAC1C,MAWF,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAuB1E,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,0CAA0C,GAAI,SAAS,OAAO,EAAE,OAAO,OAAO,EAAE,6BAA6B,OAAO,KAAG,OAqChI,CAAC;AAiCL,eAAO,MAAM,sDAAsD,GAAI,OAAO,kDAAkD,KAAG,MAGlI,CAAC;AAEF,eAAO,MAAM,8CAA8C,GAAI,OAAO,kDAAkD,KAAG,MACpC,CAAC;AAExF,eAAO,MAAM,oCAAoC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,kCAQ9E,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,8CAA8C,GACzD,SAAS,OAAO,EAChB,YAAY,OAAO,EACnB,kCAAkC,OAAO,KACxC,OASoE,CAAC;AA8BxE,eAAO,MAAM,8CAA8C,GACzD,OAAO,kDAAkD,KACxD,MAGF,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,kCAa9E,CAAC;AAEF,eAAO,MAAM,8CAA8C,GACzD,UAAU,OAAO,EACjB,YAAY,OAAO,EACnB,kCAAkC,OAAO,KACxC,OAU8D,CAAC;AAYlE,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAS4D,CAAC;AAExI,eAAO,MAAM,mCAAmC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iCAoBiE,CAAC;AAEhJ,eAAO,MAAM,6CAA6C,GAAI,OAAO,OAAO,EAAE,UAAU,OAAO,KAAG,OAO9F,CAAC"}
|
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isFinancialAnalyticsCurrentPointerCompatibleV1 = exports.isFinancialAnalyticsCurrentPointerV1 = exports.createFinancialAnalyticsCurrentPointerDigestV1 = exports.canonicalizeFinancialAnalyticsCurrentPointerIdentityV1 = exports.isFinancialAnalyticsJobRequestCompatibleV1 = exports.isFinancialAnalyticsJobRequestV1 = exports.createFinancialAnalyticsJobRequestIdV1 = exports.canonicalizeFinancialAnalyticsJobRequestIdentityV1 = void 0;
|
|
3
|
+
exports.isFinancialAnalyticsBatchResponseCompatibleV1 = exports.isFinancialAnalyticsBatchResponseV1 = exports.isFinancialAnalyticsBatchQueryV1 = exports.isFinancialAnalyticsOutputManifestCompatibleV1 = exports.isFinancialAnalyticsOutputManifestV1 = exports.createFinancialAnalyticsOutputManifestDigestV1 = exports.isFinancialAnalyticsCurrentPointerCompatibleV1 = exports.isFinancialAnalyticsCurrentPointerV1 = exports.createFinancialAnalyticsCurrentPointerDigestV1 = exports.canonicalizeFinancialAnalyticsCurrentPointerIdentityV1 = exports.isFinancialAnalyticsJobRequestCompatibleV1 = exports.isFinancialAnalyticsJobRequestV1 = exports.createFinancialAnalyticsOutputGenerationIdV1 = exports.createFinancialAnalyticsJobRequestIdV1 = exports.canonicalizeFinancialAnalyticsJobRequestIdentityV1 = void 0;
|
|
4
4
|
const sha256_1 = require("../common/sha256");
|
|
5
5
|
const financialAnalyticsValidation_1 = require("./financialAnalyticsValidation");
|
|
6
6
|
const financialAnalyticsDelivery_1 = require("./financialAnalyticsDelivery");
|
|
7
7
|
const financialDataflowValidation_1 = require("./financialDataflowValidation");
|
|
8
8
|
const RESULT_KINDS = new Set(['forecast', 'trend', 'anomaly']);
|
|
9
|
+
const MAX_REQUESTED_OUTPUTS = 16;
|
|
10
|
+
const MAX_BATCH_QUERY_ITEMS = 200;
|
|
11
|
+
const isRequestedOutput = (value) => {
|
|
12
|
+
if (!(0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) ||
|
|
13
|
+
!(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, ['resultKind', 'targetCoordinate'], ['currentSpendCompositionId', 'comparisonSpendCompositionId']) ||
|
|
14
|
+
!RESULT_KINDS.has(String(value.resultKind)) ||
|
|
15
|
+
!(0, financialDataflowValidation_1.isFinancialDataflowCoordinateV1)(value.targetCoordinate) ||
|
|
16
|
+
value.targetCoordinate.periodRole !== 'projection-target' ||
|
|
17
|
+
(value.currentSpendCompositionId !== undefined && !(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.currentSpendCompositionId)) ||
|
|
18
|
+
(value.comparisonSpendCompositionId !== undefined && !(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.comparisonSpendCompositionId))) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
if (value.resultKind === 'forecast')
|
|
22
|
+
return value.currentSpendCompositionId !== undefined && value.comparisonSpendCompositionId === undefined;
|
|
23
|
+
if (value.resultKind === 'trend')
|
|
24
|
+
return value.currentSpendCompositionId !== undefined && value.comparisonSpendCompositionId !== undefined;
|
|
25
|
+
return value.currentSpendCompositionId !== undefined && value.comparisonSpendCompositionId === undefined;
|
|
26
|
+
};
|
|
27
|
+
const requestedOutputKey = (value) => `${value.resultKind}\u0000${(0, financialDataflowValidation_1.createFinancialDataflowCoordinateIdV1)(value.targetCoordinate)}`;
|
|
28
|
+
const sameCoordinateWithRole = (target, source, sourceRole) => (0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)({ ...target, periodRole: sourceRole }) === (0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(source);
|
|
29
|
+
const periodContains = (container, target) => container.period.requested.dateBasis === target.period.requested.dateBasis &&
|
|
30
|
+
container.period.requested.timeZone === target.period.requested.timeZone &&
|
|
31
|
+
container.period.requested.startDate <= target.period.requested.startDate &&
|
|
32
|
+
container.period.requested.endDateExclusive >= target.period.requested.endDateExclusive;
|
|
9
33
|
const isJobRequestIdentity = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
10
34
|
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, [
|
|
11
35
|
'schemaVersion',
|
|
@@ -15,7 +39,8 @@ const isJobRequestIdentity = (value) => (0, financialDataflowValidation_1.isFina
|
|
|
15
39
|
'analyticsInputId',
|
|
16
40
|
'inputGenerationId',
|
|
17
41
|
'inputArtifactDigest',
|
|
18
|
-
'
|
|
42
|
+
'requestedOutputs',
|
|
43
|
+
'requestedAt',
|
|
19
44
|
]) &&
|
|
20
45
|
value.schemaVersion === 1 &&
|
|
21
46
|
value.contractVersion === financialAnalyticsDelivery_1.FINANCIAL_ANALYTICS_JOB_REQUEST_CONTRACT_VERSION_V1 &&
|
|
@@ -24,17 +49,35 @@ const isJobRequestIdentity = (value) => (0, financialDataflowValidation_1.isFina
|
|
|
24
49
|
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.analyticsInputId) &&
|
|
25
50
|
(0, financialDataflowValidation_1.isFinancialDataflowIdentityV1)(value.inputGenerationId) &&
|
|
26
51
|
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.inputArtifactDigest) &&
|
|
27
|
-
(0, financialDataflowValidation_1.
|
|
28
|
-
value.
|
|
29
|
-
value.
|
|
52
|
+
(0, financialDataflowValidation_1.isFinancialDataflowIsoInstantV1)(value.requestedAt) &&
|
|
53
|
+
Array.isArray(value.requestedOutputs) &&
|
|
54
|
+
value.requestedOutputs.length > 0 &&
|
|
55
|
+
value.requestedOutputs.length <= MAX_REQUESTED_OUTPUTS &&
|
|
56
|
+
value.requestedOutputs.every(isRequestedOutput) &&
|
|
57
|
+
new Set(value.requestedOutputs.map(requestedOutputKey)).size === value.requestedOutputs.length;
|
|
30
58
|
const canonicalizeFinancialAnalyticsJobRequestIdentityV1 = (value) => {
|
|
31
59
|
if (!isJobRequestIdentity(value))
|
|
32
60
|
throw new TypeError('Invalid FinancialAnalyticsJobRequestIdentityPreimageV1.');
|
|
33
|
-
return (0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)({
|
|
61
|
+
return (0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)({
|
|
62
|
+
...value,
|
|
63
|
+
requestedOutputs: [...value.requestedOutputs].sort((left, right) => requestedOutputKey(left).localeCompare(requestedOutputKey(right))),
|
|
64
|
+
});
|
|
34
65
|
};
|
|
35
66
|
exports.canonicalizeFinancialAnalyticsJobRequestIdentityV1 = canonicalizeFinancialAnalyticsJobRequestIdentityV1;
|
|
36
67
|
const createFinancialAnalyticsJobRequestIdV1 = (value) => `sha256:${(0, sha256_1.sha256Utf8)((0, exports.canonicalizeFinancialAnalyticsJobRequestIdentityV1)(value))}`;
|
|
37
68
|
exports.createFinancialAnalyticsJobRequestIdV1 = createFinancialAnalyticsJobRequestIdV1;
|
|
69
|
+
/** Stable immutable output generation selected by one exact job output. */
|
|
70
|
+
const createFinancialAnalyticsOutputGenerationIdV1 = (requestId, output) => {
|
|
71
|
+
if (!(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(requestId) || !isRequestedOutput(output)) {
|
|
72
|
+
throw new TypeError('Invalid financial analytics output generation identity.');
|
|
73
|
+
}
|
|
74
|
+
return `financial-analytics-${(0, sha256_1.sha256Utf8)((0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)({
|
|
75
|
+
requestId,
|
|
76
|
+
resultKind: output.resultKind,
|
|
77
|
+
targetCoordinate: output.targetCoordinate,
|
|
78
|
+
}))}`;
|
|
79
|
+
};
|
|
80
|
+
exports.createFinancialAnalyticsOutputGenerationIdV1 = createFinancialAnalyticsOutputGenerationIdV1;
|
|
38
81
|
const isFinancialAnalyticsJobRequestV1 = (value) => {
|
|
39
82
|
if (!(0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) ||
|
|
40
83
|
!(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, [
|
|
@@ -46,13 +89,12 @@ const isFinancialAnalyticsJobRequestV1 = (value) => {
|
|
|
46
89
|
'analyticsInputId',
|
|
47
90
|
'inputGenerationId',
|
|
48
91
|
'inputArtifactDigest',
|
|
49
|
-
'
|
|
92
|
+
'requestedOutputs',
|
|
50
93
|
'requestedAt',
|
|
51
94
|
]))
|
|
52
95
|
return false;
|
|
53
|
-
const { requestId,
|
|
96
|
+
const { requestId, ...identity } = value;
|
|
54
97
|
return ((0, financialDataflowValidation_1.isFinancialDataflowHashV1)(requestId) &&
|
|
55
|
-
(0, financialDataflowValidation_1.isFinancialDataflowIsoInstantV1)(requestedAt) &&
|
|
56
98
|
isJobRequestIdentity(identity) &&
|
|
57
99
|
requestId === (0, exports.createFinancialAnalyticsJobRequestIdV1)(identity));
|
|
58
100
|
};
|
|
@@ -65,13 +107,42 @@ const isFinancialAnalyticsJobRequestCompatibleV1 = (request, input, verifiedInpu
|
|
|
65
107
|
request.coordinateId === (0, financialDataflowValidation_1.createFinancialDataflowCoordinateIdV1)(input.coordinate) &&
|
|
66
108
|
request.analyticsInputId === input.analyticsInputId &&
|
|
67
109
|
request.inputGenerationId === input.producerGenerationId &&
|
|
68
|
-
request.inputArtifactDigest === verifiedInputArtifactDigest
|
|
110
|
+
request.inputArtifactDigest === verifiedInputArtifactDigest &&
|
|
111
|
+
request.requestedOutputs.every(output => {
|
|
112
|
+
const current = output.currentSpendCompositionId === undefined
|
|
113
|
+
? undefined
|
|
114
|
+
: input.referenceCompositions.find(composition => composition.compositionId === output.currentSpendCompositionId);
|
|
115
|
+
const comparison = output.comparisonSpendCompositionId === undefined
|
|
116
|
+
? undefined
|
|
117
|
+
: input.referenceCompositions.find(composition => composition.compositionId === output.comparisonSpendCompositionId);
|
|
118
|
+
return (output.targetCoordinate.companyId === input.coordinate.companyId &&
|
|
119
|
+
output.targetCoordinate.provider === input.coordinate.provider &&
|
|
120
|
+
(0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(output.targetCoordinate.providerAccountRefs) ===
|
|
121
|
+
(0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(input.coordinate.providerAccountRefs) &&
|
|
122
|
+
(0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(output.targetCoordinate.scope) === (0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(input.coordinate.scope) &&
|
|
123
|
+
output.targetCoordinate.costBasis === input.coordinate.costBasis &&
|
|
124
|
+
output.targetCoordinate.estimateLens === input.coordinate.estimateLens &&
|
|
125
|
+
output.targetCoordinate.requestedCurrencyCode === input.coordinate.requestedCurrencyCode &&
|
|
126
|
+
(0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(output.targetCoordinate.accountingCurrency) ===
|
|
127
|
+
(0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(input.coordinate.accountingCurrency) &&
|
|
128
|
+
(current === undefined || current.coordinate.periodRole === 'current-spend') &&
|
|
129
|
+
(comparison === undefined || comparison.coordinate.periodRole === 'comparison') &&
|
|
130
|
+
(output.currentSpendCompositionId === undefined || current !== undefined) &&
|
|
131
|
+
(output.comparisonSpendCompositionId === undefined || comparison !== undefined) &&
|
|
132
|
+
current !== undefined &&
|
|
133
|
+
sameCoordinateWithRole(output.targetCoordinate, current.coordinate, 'current-spend') &&
|
|
134
|
+
(output.resultKind !== 'anomaly' || periodContains(input.coordinate, output.targetCoordinate)));
|
|
135
|
+
});
|
|
69
136
|
exports.isFinancialAnalyticsJobRequestCompatibleV1 = isFinancialAnalyticsJobRequestCompatibleV1;
|
|
70
137
|
const isCurrentPointerIdentity = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
71
138
|
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, [
|
|
72
139
|
'schemaVersion',
|
|
73
140
|
'contractVersion',
|
|
74
141
|
'coordinateId',
|
|
142
|
+
'resultKind',
|
|
143
|
+
'sourceRequestId',
|
|
144
|
+
'sourceRequestedAt',
|
|
145
|
+
'analyticsInputId',
|
|
75
146
|
'pointerRevision',
|
|
76
147
|
'outputGenerationId',
|
|
77
148
|
'analyticsProjectionId',
|
|
@@ -81,6 +152,11 @@ const isCurrentPointerIdentity = (value) => (0, financialDataflowValidation_1.is
|
|
|
81
152
|
value.schemaVersion === 1 &&
|
|
82
153
|
value.contractVersion === financialAnalyticsDelivery_1.FINANCIAL_ANALYTICS_CURRENT_POINTER_CONTRACT_VERSION_V1 &&
|
|
83
154
|
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.coordinateId) &&
|
|
155
|
+
typeof value.resultKind === 'string' &&
|
|
156
|
+
RESULT_KINDS.has(value.resultKind) &&
|
|
157
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.sourceRequestId) &&
|
|
158
|
+
(0, financialDataflowValidation_1.isFinancialDataflowIsoInstantV1)(value.sourceRequestedAt) &&
|
|
159
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.analyticsInputId) &&
|
|
84
160
|
Number.isSafeInteger(value.pointerRevision) &&
|
|
85
161
|
Number(value.pointerRevision) > 0 &&
|
|
86
162
|
(0, financialDataflowValidation_1.isFinancialDataflowIdentityV1)(value.outputGenerationId) &&
|
|
@@ -109,8 +185,112 @@ const isFinancialAnalyticsCurrentPointerCompatibleV1 = (pointer, projection, ver
|
|
|
109
185
|
(0, financialAnalyticsValidation_1.isFinancialAnalyticsProjectionV1)(projection) &&
|
|
110
186
|
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(verifiedProjectionArtifactDigest) &&
|
|
111
187
|
pointer.coordinateId === (0, financialDataflowValidation_1.createFinancialDataflowCoordinateIdV1)(projection.coordinate) &&
|
|
188
|
+
pointer.resultKind === (projection.status === 'unavailable' ? projection.resultKind : projection.result.kind) &&
|
|
189
|
+
pointer.analyticsInputId === projection.analyticsInputId &&
|
|
112
190
|
pointer.outputGenerationId === projection.outputGenerationId &&
|
|
113
191
|
pointer.analyticsProjectionId === projection.analyticsProjectionId &&
|
|
114
192
|
pointer.projectionArtifactDigest === verifiedProjectionArtifactDigest;
|
|
115
193
|
exports.isFinancialAnalyticsCurrentPointerCompatibleV1 = isFinancialAnalyticsCurrentPointerCompatibleV1;
|
|
194
|
+
const isOutputManifestIdentity = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
195
|
+
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, [
|
|
196
|
+
'schemaVersion',
|
|
197
|
+
'contractVersion',
|
|
198
|
+
'coordinateId',
|
|
199
|
+
'resultKind',
|
|
200
|
+
'outputGenerationId',
|
|
201
|
+
'analyticsProjectionId',
|
|
202
|
+
'sourceRequestId',
|
|
203
|
+
'analyticsInputId',
|
|
204
|
+
'inputArtifactDigest',
|
|
205
|
+
'projection',
|
|
206
|
+
'publishedAt',
|
|
207
|
+
]) &&
|
|
208
|
+
value.schemaVersion === 1 &&
|
|
209
|
+
value.contractVersion === financialAnalyticsDelivery_1.FINANCIAL_ANALYTICS_OUTPUT_MANIFEST_CONTRACT_VERSION_V1 &&
|
|
210
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.coordinateId) &&
|
|
211
|
+
typeof value.resultKind === 'string' &&
|
|
212
|
+
RESULT_KINDS.has(value.resultKind) &&
|
|
213
|
+
(0, financialDataflowValidation_1.isFinancialDataflowIdentityV1)(value.outputGenerationId) &&
|
|
214
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.analyticsProjectionId) &&
|
|
215
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.sourceRequestId) &&
|
|
216
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.analyticsInputId) &&
|
|
217
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.inputArtifactDigest) &&
|
|
218
|
+
(0, financialDataflowValidation_1.isFinancialDataflowJsonGzipArtifactDescriptorV1)(value.projection) &&
|
|
219
|
+
(0, financialDataflowValidation_1.isFinancialDataflowIsoInstantV1)(value.publishedAt);
|
|
220
|
+
const createFinancialAnalyticsOutputManifestDigestV1 = (value) => {
|
|
221
|
+
if (!isOutputManifestIdentity(value))
|
|
222
|
+
throw new TypeError('Invalid FinancialAnalyticsOutputManifestIdentityPreimageV1.');
|
|
223
|
+
return `sha256:${(0, sha256_1.sha256Utf8)((0, financialDataflowValidation_1.canonicalizeFinancialDataflowJsonV1)(value))}`;
|
|
224
|
+
};
|
|
225
|
+
exports.createFinancialAnalyticsOutputManifestDigestV1 = createFinancialAnalyticsOutputManifestDigestV1;
|
|
226
|
+
const isFinancialAnalyticsOutputManifestV1 = (value) => {
|
|
227
|
+
if (!(0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) || !Object.prototype.hasOwnProperty.call(value, 'manifestDigest'))
|
|
228
|
+
return false;
|
|
229
|
+
const { manifestDigest, ...identity } = value;
|
|
230
|
+
try {
|
|
231
|
+
return ((0, financialDataflowValidation_1.isFinancialDataflowHashV1)(manifestDigest) &&
|
|
232
|
+
manifestDigest === (0, exports.createFinancialAnalyticsOutputManifestDigestV1)(identity));
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
exports.isFinancialAnalyticsOutputManifestV1 = isFinancialAnalyticsOutputManifestV1;
|
|
239
|
+
const isFinancialAnalyticsOutputManifestCompatibleV1 = (manifest, projection, verifiedProjectionArtifactDigest) => (0, exports.isFinancialAnalyticsOutputManifestV1)(manifest) &&
|
|
240
|
+
(0, financialAnalyticsValidation_1.isFinancialAnalyticsProjectionV1)(projection) &&
|
|
241
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(verifiedProjectionArtifactDigest) &&
|
|
242
|
+
manifest.coordinateId === (0, financialDataflowValidation_1.createFinancialDataflowCoordinateIdV1)(projection.coordinate) &&
|
|
243
|
+
manifest.resultKind === (projection.status === 'unavailable' ? projection.resultKind : projection.result.kind) &&
|
|
244
|
+
manifest.outputGenerationId === projection.outputGenerationId &&
|
|
245
|
+
manifest.analyticsProjectionId === projection.analyticsProjectionId &&
|
|
246
|
+
manifest.analyticsInputId === projection.analyticsInputId &&
|
|
247
|
+
manifest.publishedAt === projection.producedAt &&
|
|
248
|
+
manifest.projection.sha256 === verifiedProjectionArtifactDigest;
|
|
249
|
+
exports.isFinancialAnalyticsOutputManifestCompatibleV1 = isFinancialAnalyticsOutputManifestCompatibleV1;
|
|
250
|
+
const isBatchQueryItem = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
251
|
+
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, ['coordinateId', 'resultKind']) &&
|
|
252
|
+
(0, financialDataflowValidation_1.isFinancialDataflowHashV1)(value.coordinateId) &&
|
|
253
|
+
typeof value.resultKind === 'string' &&
|
|
254
|
+
RESULT_KINDS.has(value.resultKind);
|
|
255
|
+
const batchQueryItemKey = (value) => `${value.coordinateId}\u0000${value.resultKind}`;
|
|
256
|
+
const isFinancialAnalyticsBatchQueryV1 = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
257
|
+
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, ['schemaVersion', 'contractVersion', 'items']) &&
|
|
258
|
+
value.schemaVersion === 1 &&
|
|
259
|
+
value.contractVersion === financialAnalyticsDelivery_1.FINANCIAL_ANALYTICS_BATCH_QUERY_CONTRACT_VERSION_V1 &&
|
|
260
|
+
Array.isArray(value.items) &&
|
|
261
|
+
value.items.length > 0 &&
|
|
262
|
+
value.items.length <= MAX_BATCH_QUERY_ITEMS &&
|
|
263
|
+
value.items.every(isBatchQueryItem) &&
|
|
264
|
+
new Set(value.items.map(item => batchQueryItemKey(item))).size === value.items.length;
|
|
265
|
+
exports.isFinancialAnalyticsBatchQueryV1 = isFinancialAnalyticsBatchQueryV1;
|
|
266
|
+
const isFinancialAnalyticsBatchResponseV1 = (value) => (0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(value) &&
|
|
267
|
+
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(value, ['schemaVersion', 'contractVersion', 'results']) &&
|
|
268
|
+
value.schemaVersion === 1 &&
|
|
269
|
+
value.contractVersion === financialAnalyticsDelivery_1.FINANCIAL_ANALYTICS_BATCH_RESPONSE_CONTRACT_VERSION_V1 &&
|
|
270
|
+
Array.isArray(value.results) &&
|
|
271
|
+
value.results.length > 0 &&
|
|
272
|
+
value.results.length <= MAX_BATCH_QUERY_ITEMS &&
|
|
273
|
+
value.results.every(result => {
|
|
274
|
+
if (!(0, financialDataflowValidation_1.isFinancialDataflowRecordV1)(result) || !isBatchQueryItem(result))
|
|
275
|
+
return false;
|
|
276
|
+
if (result.status === 'unavailable') {
|
|
277
|
+
return (0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(result, ['coordinateId', 'resultKind', 'status', 'reasonCode']) &&
|
|
278
|
+
result.reasonCode === 'not-produced';
|
|
279
|
+
}
|
|
280
|
+
return result.status === 'available' &&
|
|
281
|
+
(0, financialDataflowValidation_1.hasFinancialDataflowExactFieldsV1)(result, ['coordinateId', 'resultKind', 'status', 'projection']) &&
|
|
282
|
+
(0, financialAnalyticsValidation_1.isFinancialAnalyticsProjectionV1)(result.projection) &&
|
|
283
|
+
(0, financialDataflowValidation_1.createFinancialDataflowCoordinateIdV1)(result.projection.coordinate) === result.coordinateId &&
|
|
284
|
+
(result.projection.status === 'unavailable' ? result.projection.resultKind : result.projection.result.kind) === result.resultKind;
|
|
285
|
+
}) &&
|
|
286
|
+
new Set(value.results.map(result => batchQueryItemKey(result))).size === value.results.length;
|
|
287
|
+
exports.isFinancialAnalyticsBatchResponseV1 = isFinancialAnalyticsBatchResponseV1;
|
|
288
|
+
const isFinancialAnalyticsBatchResponseCompatibleV1 = (query, response) => (0, exports.isFinancialAnalyticsBatchQueryV1)(query) &&
|
|
289
|
+
(0, exports.isFinancialAnalyticsBatchResponseV1)(response) &&
|
|
290
|
+
query.items.length === response.results.length &&
|
|
291
|
+
query.items.every((item, index) => {
|
|
292
|
+
const result = response.results[index];
|
|
293
|
+
return result !== undefined && batchQueryItemKey(item) === batchQueryItemKey(result);
|
|
294
|
+
});
|
|
295
|
+
exports.isFinancialAnalyticsBatchResponseCompatibleV1 = isFinancialAnalyticsBatchResponseCompatibleV1;
|
|
116
296
|
//# sourceMappingURL=financialAnalyticsDeliveryValidation.js.map
|