@spottoai/types-package 1.0.2-dev1138.2 → 1.0.2-dev1138.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/accounts/accounts.d.ts +77 -4
- package/dist/accounts/accounts.d.ts.map +1 -1
- package/dist/accounts/accounts.js +2 -1
- package/dist/accounts/accounts.js.map +1 -1
- package/dist/accounts/azureManualOnboarding.d.ts +114 -0
- package/dist/accounts/azureManualOnboarding.d.ts.map +1 -0
- package/dist/accounts/azureManualOnboarding.js +12 -0
- package/dist/accounts/azureManualOnboarding.js.map +1 -0
- package/dist/accounts/azureSpSetup.d.ts +128 -31
- package/dist/accounts/azureSpSetup.d.ts.map +1 -1
- package/dist/accounts/azureSpSetup.js +15 -0
- package/dist/accounts/azureSpSetup.js.map +1 -1
- package/dist/accounts/azureSpSetupDurable.d.ts +8 -0
- package/dist/accounts/azureSpSetupDurable.d.ts.map +1 -1
- package/dist/accounts/azureSpSetupDurable.js +28 -0
- package/dist/accounts/azureSpSetupDurable.js.map +1 -1
- package/dist/accounts/index.d.ts +1 -0
- package/dist/accounts/index.d.ts.map +1 -1
- package/dist/accounts/index.js +1 -0
- package/dist/accounts/index.js.map +1 -1
- package/dist/accounts/readPermissions.d.ts +1 -1
- package/dist/accounts/readPermissions.d.ts.map +1 -1
- package/dist/accounts/readPermissions.js.map +1 -1
- package/dist/accounts/validation.d.ts +24 -0
- package/dist/accounts/validation.d.ts.map +1 -1
- package/dist/ai/index.d.ts +14 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +12 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/aws/commitments-planning.d.ts +5 -0
- package/dist/aws/commitments-planning.d.ts.map +1 -1
- package/dist/aws/commitments-planning.js +19 -0
- package/dist/aws/commitments-planning.js.map +1 -1
- package/dist/aws/estates.d.ts +1 -1
- package/dist/aws/estates.d.ts.map +1 -1
- package/dist/aws/estates.js +7 -1
- package/dist/aws/estates.js.map +1 -1
- package/dist/aws/index.d.ts +5 -0
- package/dist/aws/index.d.ts.map +1 -1
- package/dist/aws/index.js +5 -0
- package/dist/aws/index.js.map +1 -1
- package/dist/aws/onboarding.d.ts +3 -0
- package/dist/aws/onboarding.d.ts.map +1 -1
- package/dist/aws/organizationCommitments.d.ts +260 -0
- package/dist/aws/organizationCommitments.d.ts.map +1 -0
- package/dist/aws/organizationCommitments.js +53 -0
- package/dist/aws/organizationCommitments.js.map +1 -0
- package/dist/aws/organizationCommitmentsApiValidation.d.ts +21 -0
- package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +1 -0
- package/dist/aws/organizationCommitmentsApiValidation.js +226 -0
- package/dist/aws/organizationCommitmentsApiValidation.js.map +1 -0
- package/dist/aws/organizationCommitmentsValidation.d.ts +12 -0
- package/dist/aws/organizationCommitmentsValidation.d.ts.map +1 -0
- package/dist/aws/organizationCommitmentsValidation.js +228 -0
- package/dist/aws/organizationCommitmentsValidation.js.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts +9 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +407 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +17 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +6 -0
- package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +1 -0
- package/dist/aws/requests.d.ts +13 -2
- package/dist/aws/requests.d.ts.map +1 -1
- package/dist/aws/requests.js +1 -1
- package/dist/aws/requests.js.map +1 -1
- package/dist/azure/commitmentsPlanning.d.ts +2 -2
- package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
- package/dist/azure/financialAnalytics.d.ts +68 -2
- package/dist/azure/financialAnalytics.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.d.ts +2 -0
- package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.js +4 -1
- package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
- package/dist/azure/financialAnalyticsDisplayKernel.d.ts +12 -0
- package/dist/azure/financialAnalyticsDisplayKernel.d.ts.map +1 -0
- package/dist/azure/financialAnalyticsDisplayKernel.js +144 -0
- package/dist/azure/financialAnalyticsDisplayKernel.js.map +1 -0
- package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsValidation.js +61 -7
- package/dist/azure/financialAnalyticsValidation.js.map +1 -1
- package/dist/azure/financialAuthorityProjectionKernel.d.ts +7 -0
- package/dist/azure/financialAuthorityProjectionKernel.d.ts.map +1 -0
- package/dist/azure/financialAuthorityProjectionKernel.js +165 -0
- package/dist/azure/financialAuthorityProjectionKernel.js.map +1 -0
- package/dist/azure/financialAuthorityView.d.ts +4 -0
- package/dist/azure/financialAuthorityView.d.ts.map +1 -1
- package/dist/azure/financialAuthorityView.js.map +1 -1
- package/dist/azure/financialAuthorityViewValidation.d.ts +3 -1
- package/dist/azure/financialAuthorityViewValidation.d.ts.map +1 -1
- package/dist/azure/financialAuthorityViewValidation.js +206 -2
- package/dist/azure/financialAuthorityViewValidation.js.map +1 -1
- package/dist/azure/financialChargeComposition.d.ts +81 -0
- package/dist/azure/financialChargeComposition.d.ts.map +1 -0
- package/dist/azure/financialChargeComposition.js +41 -0
- package/dist/azure/financialChargeComposition.js.map +1 -0
- package/dist/azure/financialChargeCompositionKernel.d.ts +3 -0
- package/dist/azure/financialChargeCompositionKernel.d.ts.map +1 -0
- package/dist/azure/financialChargeCompositionKernel.js +53 -0
- package/dist/azure/financialChargeCompositionKernel.js.map +1 -0
- package/dist/azure/financialChargeCompositionValidation.d.ts +8 -0
- package/dist/azure/financialChargeCompositionValidation.d.ts.map +1 -0
- package/dist/azure/financialChargeCompositionValidation.js +164 -0
- package/dist/azure/financialChargeCompositionValidation.js.map +1 -0
- package/dist/azure/financialDataflow.d.ts +8 -1
- package/dist/azure/financialDataflow.d.ts.map +1 -1
- package/dist/azure/financialDataflow.js.map +1 -1
- package/dist/azure/financialDataflowKernel.d.ts +2 -0
- package/dist/azure/financialDataflowKernel.d.ts.map +1 -1
- package/dist/azure/financialDataflowKernel.js +60 -7
- package/dist/azure/financialDataflowKernel.js.map +1 -1
- package/dist/azure/financialDataflowValidation.d.ts +1 -1
- package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
- package/dist/azure/financialDataflowValidation.js +146 -28
- package/dist/azure/financialDataflowValidation.js.map +1 -1
- package/dist/azure/financialPolicy.d.ts +3 -0
- package/dist/azure/financialPolicy.d.ts.map +1 -1
- package/dist/azure/financialPolicy.js.map +1 -1
- package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
- package/dist/azure/financialPolicyValidation.js +5 -0
- package/dist/azure/financialPolicyValidation.js.map +1 -1
- package/dist/azure/financialProjection.d.ts +11 -1
- package/dist/azure/financialProjection.d.ts.map +1 -1
- package/dist/azure/financialProjection.js.map +1 -1
- package/dist/azure/financialProjectionValidation.d.ts.map +1 -1
- package/dist/azure/financialProjectionValidation.js +43 -3
- package/dist/azure/financialProjectionValidation.js.map +1 -1
- package/dist/azure/financialSavingsAuthority.d.ts +25 -4
- package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.d.ts +6 -2
- package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.js +126 -2
- package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.js +62 -19
- package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjection.d.ts +58 -3
- package/dist/azure/financialSavingsSurfaceProjection.d.ts.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjection.js +3 -1
- package/dist/azure/financialSavingsSurfaceProjection.js.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts +14 -0
- package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts.map +1 -0
- package/dist/azure/financialSavingsSurfaceProjectionKernel.js +326 -0
- package/dist/azure/financialSavingsSurfaceProjectionKernel.js.map +1 -0
- package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsSurfaceProjectionValidation.js +126 -12
- package/dist/azure/financialSavingsSurfaceProjectionValidation.js.map +1 -1
- package/dist/azure/financialScope.d.ts +6 -0
- package/dist/azure/financialScope.d.ts.map +1 -1
- package/dist/azure/financialScope.js +6 -0
- package/dist/azure/financialScope.js.map +1 -1
- package/dist/azure/governance.d.ts +145 -0
- package/dist/azure/governance.d.ts.map +1 -1
- package/dist/azure/governance.js +2 -1
- package/dist/azure/governance.js.map +1 -1
- package/dist/azure/metrics.d.ts +2 -2
- package/dist/azure/metrics.d.ts.map +1 -1
- package/dist/azure/payloads.d.ts +19 -0
- package/dist/azure/payloads.d.ts.map +1 -1
- package/dist/azure/prices.d.ts +16 -3
- package/dist/azure/prices.d.ts.map +1 -1
- package/dist/azure/recommendationState.d.ts +1 -1
- package/dist/azure/recommendationState.d.ts.map +1 -1
- package/dist/azure/recommendations.d.ts +15 -5
- package/dist/azure/recommendations.d.ts.map +1 -1
- package/dist/azure/reports.d.ts +3 -2
- package/dist/azure/reports.d.ts.map +1 -1
- package/dist/azure/reports.js.map +1 -1
- package/dist/azure/resources.d.ts +12 -0
- package/dist/azure/resources.d.ts.map +1 -1
- package/dist/azure/serviceRetirement.d.ts +33 -2
- package/dist/azure/serviceRetirement.d.ts.map +1 -1
- package/dist/azure/subscriptions.d.ts +13 -2
- package/dist/azure/subscriptions.d.ts.map +1 -1
- package/dist/azure/views.d.ts +26 -3
- package/dist/azure/views.d.ts.map +1 -1
- package/dist/azure/views.js.map +1 -1
- package/dist/azure/vmPatchManagement.d.ts +109 -0
- package/dist/azure/vmPatchManagement.d.ts.map +1 -0
- package/dist/azure/vmPatchManagement.js +7 -0
- package/dist/azure/vmPatchManagement.js.map +1 -0
- package/dist/common/provider.d.ts +53 -0
- package/dist/common/provider.d.ts.map +1 -1
- package/dist/common/provider.js.map +1 -1
- package/dist/environment/canonicalization.d.ts +12 -0
- package/dist/environment/canonicalization.d.ts.map +1 -0
- package/dist/environment/canonicalization.js +40 -0
- package/dist/environment/canonicalization.js.map +1 -0
- package/dist/environment/contracts.d.ts +196 -0
- package/dist/environment/contracts.d.ts.map +1 -0
- package/dist/environment/contracts.js +21 -0
- package/dist/environment/contracts.js.map +1 -0
- package/dist/environment/index.d.ts +5 -0
- package/dist/environment/index.d.ts.map +1 -0
- package/dist/environment/index.js +21 -0
- package/dist/environment/index.js.map +1 -0
- package/dist/environment/internal.d.ts +21 -0
- package/dist/environment/internal.d.ts.map +1 -0
- package/dist/environment/internal.js +113 -0
- package/dist/environment/internal.js.map +1 -0
- package/dist/environment/references.d.ts +18 -0
- package/dist/environment/references.d.ts.map +1 -0
- package/dist/environment/references.js +206 -0
- package/dist/environment/references.js.map +1 -0
- package/dist/environment/validation.d.ts +28 -0
- package/dist/environment/validation.d.ts.map +1 -0
- package/dist/environment/validation.js +320 -0
- package/dist/environment/validation.js.map +1 -0
- package/dist/esm/accounts/accounts.js +1 -0
- package/dist/esm/accounts/azureManualOnboarding.js +8 -0
- package/dist/esm/accounts/azureSpSetup.js +14 -1
- package/dist/esm/accounts/azureSpSetupDurable.js +27 -1
- package/dist/esm/accounts/index.js +1 -0
- package/dist/esm/ai/index.js +10 -1
- package/dist/esm/aws/commitments-planning.js +5 -0
- package/dist/esm/aws/estates.js +7 -1
- package/dist/esm/aws/index.js +5 -0
- package/dist/esm/aws/organizationCommitments.js +48 -0
- package/dist/esm/aws/organizationCommitmentsApiValidation.js +220 -0
- package/dist/esm/aws/organizationCommitmentsValidation.js +224 -0
- package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +402 -0
- package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +2 -0
- package/dist/esm/aws/requests.js +1 -1
- package/dist/esm/azure/financialAnalyticsDelivery.js +2 -0
- package/dist/esm/azure/financialAnalyticsDisplayKernel.js +139 -0
- package/dist/esm/azure/financialAnalyticsValidation.js +61 -7
- package/dist/esm/azure/financialAuthorityProjectionKernel.js +159 -0
- package/dist/esm/azure/financialAuthorityViewValidation.js +204 -1
- package/dist/esm/azure/financialChargeComposition.js +36 -0
- package/dist/esm/azure/financialChargeCompositionKernel.js +48 -0
- package/dist/esm/azure/financialChargeCompositionValidation.js +155 -0
- package/dist/esm/azure/financialDataflowKernel.js +60 -7
- package/dist/esm/azure/financialDataflowValidation.js +146 -28
- package/dist/esm/azure/financialPolicyValidation.js +5 -0
- package/dist/esm/azure/financialProjectionValidation.js +43 -3
- package/dist/esm/azure/financialSavingsAuthorityValidation.js +124 -2
- package/dist/esm/azure/financialSavingsCoordinateValidation.js +62 -19
- package/dist/esm/azure/financialSavingsSurfaceProjection.js +2 -0
- package/dist/esm/azure/financialSavingsSurfaceProjectionKernel.js +318 -0
- package/dist/esm/azure/financialSavingsSurfaceProjectionValidation.js +126 -12
- package/dist/esm/azure/financialScope.js +6 -0
- package/dist/esm/azure/governance.js +1 -0
- package/dist/esm/azure/vmPatchManagement.js +3 -0
- package/dist/esm/entries/commitments-planning.js +2 -2
- package/dist/esm/entries/environment.js +3 -0
- package/dist/esm/environment/canonicalization.js +34 -0
- package/dist/esm/environment/contracts.js +17 -0
- package/dist/esm/environment/index.js +4 -0
- package/dist/esm/environment/internal.js +97 -0
- package/dist/esm/environment/references.js +194 -0
- package/dist/esm/environment/validation.js +303 -0
- package/dist/esm/index.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/portfolio/portfolioOperations.d.ts +1 -1
- package/dist/portfolio/portfolioOperations.d.ts.map +1 -1
- package/package.json +15 -3
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasSafeContainerShape = exports.utf8ByteLength = exports.isCanonicalUtcTimestamp = exports.isNonNegativeInteger = exports.isSourceIdentity = exports.isScopeIdentifier = exports.isSafeLabel = exports.isCustomerString = exports.isBoundedString = exports.hasExactKeys = exports.isRecord = exports.hasControlCharacter = exports.PROTOTYPE_KEYS = exports.CURRENCY_PATTERN = exports.DECIMAL_PATTERN = exports.ENVIRONMENT_RUN_ID_PATTERN = exports.SHA256_PATTERN = void 0;
|
|
4
|
+
const contracts_js_1 = require("./contracts.js");
|
|
5
|
+
exports.SHA256_PATTERN = /^[a-f0-9]{64}$/u;
|
|
6
|
+
exports.ENVIRONMENT_RUN_ID_PATTERN = /^[A-Za-z0-9._-]+$/u;
|
|
7
|
+
exports.DECIMAL_PATTERN = /^(?:0|[1-9]\d*)(?:\.\d+)?$/u;
|
|
8
|
+
exports.CURRENCY_PATTERN = /^[A-Z]{3}$/u;
|
|
9
|
+
exports.PROTOTYPE_KEYS = new Set(['__proto__', 'prototype', 'constructor']);
|
|
10
|
+
const hasControlCharacter = (value) => {
|
|
11
|
+
for (const character of value) {
|
|
12
|
+
const codePoint = character.codePointAt(0);
|
|
13
|
+
if (codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f))
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
};
|
|
18
|
+
exports.hasControlCharacter = hasControlCharacter;
|
|
19
|
+
const isRecord = (value) => {
|
|
20
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
21
|
+
return false;
|
|
22
|
+
const prototype = Object.getPrototypeOf(value);
|
|
23
|
+
return prototype === Object.prototype || prototype === null;
|
|
24
|
+
};
|
|
25
|
+
exports.isRecord = isRecord;
|
|
26
|
+
const hasExactKeys = (value, required, optional = []) => {
|
|
27
|
+
const allowed = new Set([...required, ...optional]);
|
|
28
|
+
const keys = Object.keys(value);
|
|
29
|
+
return required.every(key => Object.prototype.hasOwnProperty.call(value, key)) && keys.every(key => allowed.has(key) && !exports.PROTOTYPE_KEYS.has(key));
|
|
30
|
+
};
|
|
31
|
+
exports.hasExactKeys = hasExactKeys;
|
|
32
|
+
const scalarLength = (value) => {
|
|
33
|
+
let count = 0;
|
|
34
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
35
|
+
const codeUnit = value.charCodeAt(index);
|
|
36
|
+
if (codeUnit >= 0xd800 && codeUnit <= 0xdbff) {
|
|
37
|
+
const trailing = value.charCodeAt(index + 1);
|
|
38
|
+
if (!(trailing >= 0xdc00 && trailing <= 0xdfff))
|
|
39
|
+
return null;
|
|
40
|
+
index += 1;
|
|
41
|
+
}
|
|
42
|
+
else if (codeUnit >= 0xdc00 && codeUnit <= 0xdfff) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
count += 1;
|
|
46
|
+
}
|
|
47
|
+
return count;
|
|
48
|
+
};
|
|
49
|
+
const isBoundedString = (value, maximumScalars, options = {}) => {
|
|
50
|
+
if (typeof value !== 'string')
|
|
51
|
+
return false;
|
|
52
|
+
if (options.trimmed && (value.length === 0 || value.trim() !== value))
|
|
53
|
+
return false;
|
|
54
|
+
if (options.controls && (0, exports.hasControlCharacter)(value))
|
|
55
|
+
return false;
|
|
56
|
+
const length = scalarLength(value);
|
|
57
|
+
return length !== null && length <= maximumScalars;
|
|
58
|
+
};
|
|
59
|
+
exports.isBoundedString = isBoundedString;
|
|
60
|
+
const isCustomerString = (value) => (0, exports.isBoundedString)(value, contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.customerStringScalars, { controls: true });
|
|
61
|
+
exports.isCustomerString = isCustomerString;
|
|
62
|
+
const isSafeLabel = (value) => (0, exports.isBoundedString)(value, contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.safeLabelScalars, { trimmed: true, controls: true });
|
|
63
|
+
exports.isSafeLabel = isSafeLabel;
|
|
64
|
+
const isScopeIdentifier = (value) => (0, exports.isBoundedString)(value, contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.scopeIdentifierScalars, { trimmed: true, controls: true });
|
|
65
|
+
exports.isScopeIdentifier = isScopeIdentifier;
|
|
66
|
+
const isSourceIdentity = (value) => (0, exports.isBoundedString)(value, contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.sourceIdentityScalars, { trimmed: true, controls: true });
|
|
67
|
+
exports.isSourceIdentity = isSourceIdentity;
|
|
68
|
+
const isNonNegativeInteger = (value) => Number.isSafeInteger(value) && value >= 0;
|
|
69
|
+
exports.isNonNegativeInteger = isNonNegativeInteger;
|
|
70
|
+
const isCanonicalUtcTimestamp = (value) => {
|
|
71
|
+
if (typeof value !== 'string' || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u.test(value))
|
|
72
|
+
return false;
|
|
73
|
+
const milliseconds = Date.parse(value);
|
|
74
|
+
return Number.isFinite(milliseconds) && new Date(milliseconds).toISOString() === value;
|
|
75
|
+
};
|
|
76
|
+
exports.isCanonicalUtcTimestamp = isCanonicalUtcTimestamp;
|
|
77
|
+
const utf8ByteLength = (value) => {
|
|
78
|
+
let bytes = 0;
|
|
79
|
+
for (const character of value) {
|
|
80
|
+
const codePoint = character.codePointAt(0);
|
|
81
|
+
if (codePoint <= 0x7f)
|
|
82
|
+
bytes += 1;
|
|
83
|
+
else if (codePoint <= 0x7ff)
|
|
84
|
+
bytes += 2;
|
|
85
|
+
else if (codePoint <= 0xffff)
|
|
86
|
+
bytes += 3;
|
|
87
|
+
else
|
|
88
|
+
bytes += 4;
|
|
89
|
+
}
|
|
90
|
+
return bytes;
|
|
91
|
+
};
|
|
92
|
+
exports.utf8ByteLength = utf8ByteLength;
|
|
93
|
+
const hasSafeContainerShape = (value, depth = 0, seen = new Set()) => {
|
|
94
|
+
if (depth > contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.validatedContainerDepth)
|
|
95
|
+
return false;
|
|
96
|
+
if (typeof value !== 'object' || value === null)
|
|
97
|
+
return true;
|
|
98
|
+
if (seen.has(value))
|
|
99
|
+
return false;
|
|
100
|
+
seen.add(value);
|
|
101
|
+
if (Array.isArray(value)) {
|
|
102
|
+
const valid = value.length <= contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.boundedListItems && value.every(item => (0, exports.hasSafeContainerShape)(item, depth + 1, seen));
|
|
103
|
+
seen.delete(value);
|
|
104
|
+
return valid;
|
|
105
|
+
}
|
|
106
|
+
if (!(0, exports.isRecord)(value))
|
|
107
|
+
return false;
|
|
108
|
+
const valid = Object.keys(value).every(key => !exports.PROTOTYPE_KEYS.has(key) && (0, exports.hasSafeContainerShape)(value[key], depth + 1, seen));
|
|
109
|
+
seen.delete(value);
|
|
110
|
+
return valid;
|
|
111
|
+
};
|
|
112
|
+
exports.hasSafeContainerShape = hasSafeContainerShape;
|
|
113
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/environment/internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type EnvironmentArtifactKindV1, type EnvironmentLogicalArtifactReferenceV1, type EnvironmentLogicalEvidenceReferenceV1, type EnvironmentLogicalResourceReferenceV1, type ParsedEnvironmentLogicalArtifactReferenceV1, type ParsedEnvironmentLogicalEvidenceReferenceV1, type ParsedEnvironmentLogicalResourceReferenceV1 } from './contracts.js';
|
|
2
|
+
/** Builds an opaque logical artifact reference. The decoded subject is never a storage path. */
|
|
3
|
+
export declare const buildEnvironmentLogicalArtifactReferenceV1: (artifactKind: EnvironmentArtifactKindV1, canonicalScopeQualifiedSubject: string) => EnvironmentLogicalArtifactReferenceV1;
|
|
4
|
+
/** Parses a V1 logical artifact reference into its allowlisted kind and opaque subject. */
|
|
5
|
+
export declare const parseEnvironmentLogicalArtifactReferenceV1: (value: unknown) => ParsedEnvironmentLogicalArtifactReferenceV1 | null;
|
|
6
|
+
/** Builds an opaque logical Azure resource reference from a canonical resource ID. */
|
|
7
|
+
export declare const buildEnvironmentLogicalResourceReferenceV1: (canonicalAzureResourceId: string) => EnvironmentLogicalResourceReferenceV1;
|
|
8
|
+
/** Parses a V1 logical resource reference into a canonical Azure resource ID. */
|
|
9
|
+
export declare const parseEnvironmentLogicalResourceReferenceV1: (value: unknown) => ParsedEnvironmentLogicalResourceReferenceV1 | null;
|
|
10
|
+
/** Parses either closed V1 logical evidence-reference kind. */
|
|
11
|
+
export declare const parseEnvironmentLogicalEvidenceReferenceV1: (value: unknown) => ParsedEnvironmentLogicalEvidenceReferenceV1 | null;
|
|
12
|
+
/** Returns true when a value is a canonical V1 logical artifact reference. */
|
|
13
|
+
export declare const isEnvironmentLogicalArtifactReferenceV1: (value: unknown) => value is EnvironmentLogicalArtifactReferenceV1;
|
|
14
|
+
/** Returns true when a value is a canonical V1 logical resource reference. */
|
|
15
|
+
export declare const isEnvironmentLogicalResourceReferenceV1: (value: unknown) => value is EnvironmentLogicalResourceReferenceV1;
|
|
16
|
+
/** Returns true when a value is one of the closed V1 logical evidence-reference kinds. */
|
|
17
|
+
export declare const isEnvironmentLogicalEvidenceReferenceV1: (value: unknown) => value is EnvironmentLogicalEvidenceReferenceV1;
|
|
18
|
+
//# sourceMappingURL=references.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../src/environment/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,qCAAqC,EAC1C,KAAK,qCAAqC,EAC1C,KAAK,qCAAqC,EAC1C,KAAK,2CAA2C,EAChD,KAAK,2CAA2C,EAChD,KAAK,2CAA2C,EACjD,MAAM,gBAAgB,CAAC;AA2IxB,gGAAgG;AAChG,eAAO,MAAM,0CAA0C,GACrD,cAAc,yBAAyB,EACvC,gCAAgC,MAAM,KACrC,qCAOF,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,0CAA0C,GAAI,OAAO,OAAO,KAAG,2CAA2C,GAAG,IAYzH,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,0CAA0C,GAAI,0BAA0B,MAAM,KAAG,qCAI7F,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,0CAA0C,GAAI,OAAO,OAAO,KAAG,2CAA2C,GAAG,IAKzH,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,0CAA0C,GAAI,OAAO,OAAO,KAAG,2CAA2C,GAAG,IAClB,CAAC;AAEzG,8EAA8E;AAC9E,eAAO,MAAM,uCAAuC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,qCACtB,CAAC;AAE7D,8EAA8E;AAC9E,eAAO,MAAM,uCAAuC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,qCACtB,CAAC;AAE7D,0FAA0F;AAC1F,eAAO,MAAM,uCAAuC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,qCACtB,CAAC"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEnvironmentLogicalEvidenceReferenceV1 = exports.isEnvironmentLogicalResourceReferenceV1 = exports.isEnvironmentLogicalArtifactReferenceV1 = exports.parseEnvironmentLogicalEvidenceReferenceV1 = exports.parseEnvironmentLogicalResourceReferenceV1 = exports.buildEnvironmentLogicalResourceReferenceV1 = exports.parseEnvironmentLogicalArtifactReferenceV1 = exports.buildEnvironmentLogicalArtifactReferenceV1 = void 0;
|
|
4
|
+
const contracts_js_1 = require("./contracts.js");
|
|
5
|
+
const internal_js_1 = require("./internal.js");
|
|
6
|
+
const BASE64URL_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
|
|
7
|
+
const ARTIFACT_PREFIX = 'spotto://artifact/v1/';
|
|
8
|
+
const RESOURCE_PREFIX = 'spotto://resource/v1/';
|
|
9
|
+
const ARTIFACT_KINDS = new Set(contracts_js_1.ENVIRONMENT_ARTIFACT_KINDS_V1);
|
|
10
|
+
const isCanonicalScopeQualifiedSubject = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
const parsed = JSON.parse(value);
|
|
13
|
+
return (Array.isArray(parsed) &&
|
|
14
|
+
parsed.length === 4 &&
|
|
15
|
+
parsed[0] === 'azure-subscription' &&
|
|
16
|
+
parsed
|
|
17
|
+
.slice(1)
|
|
18
|
+
.every(item => (0, internal_js_1.isBoundedString)(item, contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.scopeIdentifierScalars, { trimmed: true, controls: true })) &&
|
|
19
|
+
JSON.stringify(parsed) === value);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const encodeUtf8 = (value) => {
|
|
26
|
+
const bytes = [];
|
|
27
|
+
for (const character of value) {
|
|
28
|
+
const codePoint = character.codePointAt(0);
|
|
29
|
+
if (codePoint <= 0x7f)
|
|
30
|
+
bytes.push(codePoint);
|
|
31
|
+
else if (codePoint <= 0x7ff)
|
|
32
|
+
bytes.push(0xc0 | (codePoint >> 6), 0x80 | (codePoint & 0x3f));
|
|
33
|
+
else if (codePoint <= 0xffff)
|
|
34
|
+
bytes.push(0xe0 | (codePoint >> 12), 0x80 | ((codePoint >> 6) & 0x3f), 0x80 | (codePoint & 0x3f));
|
|
35
|
+
else
|
|
36
|
+
bytes.push(0xf0 | (codePoint >> 18), 0x80 | ((codePoint >> 12) & 0x3f), 0x80 | ((codePoint >> 6) & 0x3f), 0x80 | (codePoint & 0x3f));
|
|
37
|
+
}
|
|
38
|
+
return bytes;
|
|
39
|
+
};
|
|
40
|
+
const encodeBase64Url = (bytes) => {
|
|
41
|
+
let output = '';
|
|
42
|
+
for (let index = 0; index < bytes.length; index += 3) {
|
|
43
|
+
const first = bytes[index];
|
|
44
|
+
const second = bytes[index + 1];
|
|
45
|
+
const third = bytes[index + 2];
|
|
46
|
+
output += BASE64URL_ALPHABET[first >> 2];
|
|
47
|
+
output += BASE64URL_ALPHABET[((first & 0x03) << 4) | ((second ?? 0) >> 4)];
|
|
48
|
+
if (second !== undefined)
|
|
49
|
+
output += BASE64URL_ALPHABET[((second & 0x0f) << 2) | ((third ?? 0) >> 6)];
|
|
50
|
+
if (third !== undefined)
|
|
51
|
+
output += BASE64URL_ALPHABET[third & 0x3f];
|
|
52
|
+
}
|
|
53
|
+
return output;
|
|
54
|
+
};
|
|
55
|
+
const decodeBase64Url = (value) => {
|
|
56
|
+
if (!/^[A-Za-z0-9_-]+$/u.test(value) || value.length % 4 === 1)
|
|
57
|
+
return null;
|
|
58
|
+
const bytes = [];
|
|
59
|
+
for (let index = 0; index < value.length; index += 4) {
|
|
60
|
+
const first = BASE64URL_ALPHABET.indexOf(value[index]);
|
|
61
|
+
const second = BASE64URL_ALPHABET.indexOf(value[index + 1]);
|
|
62
|
+
const thirdCharacter = value[index + 2];
|
|
63
|
+
const fourthCharacter = value[index + 3];
|
|
64
|
+
const third = thirdCharacter === undefined ? 0 : BASE64URL_ALPHABET.indexOf(thirdCharacter);
|
|
65
|
+
const fourth = fourthCharacter === undefined ? 0 : BASE64URL_ALPHABET.indexOf(fourthCharacter);
|
|
66
|
+
if (first < 0 || second < 0 || third < 0 || fourth < 0)
|
|
67
|
+
return null;
|
|
68
|
+
bytes.push((first << 2) | (second >> 4));
|
|
69
|
+
if (thirdCharacter !== undefined)
|
|
70
|
+
bytes.push(((second & 0x0f) << 4) | (third >> 2));
|
|
71
|
+
if (fourthCharacter !== undefined)
|
|
72
|
+
bytes.push(((third & 0x03) << 6) | fourth);
|
|
73
|
+
}
|
|
74
|
+
return encodeBase64Url(bytes) === value ? bytes : null;
|
|
75
|
+
};
|
|
76
|
+
const decodeUtf8 = (bytes) => {
|
|
77
|
+
let output = '';
|
|
78
|
+
for (let index = 0; index < bytes.length;) {
|
|
79
|
+
const first = bytes[index];
|
|
80
|
+
let codePoint;
|
|
81
|
+
let continuationCount;
|
|
82
|
+
if (first <= 0x7f) {
|
|
83
|
+
codePoint = first;
|
|
84
|
+
continuationCount = 0;
|
|
85
|
+
}
|
|
86
|
+
else if (first >= 0xc2 && first <= 0xdf) {
|
|
87
|
+
codePoint = first & 0x1f;
|
|
88
|
+
continuationCount = 1;
|
|
89
|
+
}
|
|
90
|
+
else if (first >= 0xe0 && first <= 0xef) {
|
|
91
|
+
codePoint = first & 0x0f;
|
|
92
|
+
continuationCount = 2;
|
|
93
|
+
}
|
|
94
|
+
else if (first >= 0xf0 && first <= 0xf4) {
|
|
95
|
+
codePoint = first & 0x07;
|
|
96
|
+
continuationCount = 3;
|
|
97
|
+
}
|
|
98
|
+
else
|
|
99
|
+
return null;
|
|
100
|
+
if (index + continuationCount >= bytes.length)
|
|
101
|
+
return null;
|
|
102
|
+
for (let offset = 1; offset <= continuationCount; offset += 1) {
|
|
103
|
+
const next = bytes[index + offset];
|
|
104
|
+
if ((next & 0xc0) !== 0x80)
|
|
105
|
+
return null;
|
|
106
|
+
codePoint = (codePoint << 6) | (next & 0x3f);
|
|
107
|
+
}
|
|
108
|
+
if ((continuationCount === 2 && codePoint < 0x800) ||
|
|
109
|
+
(continuationCount === 3 && codePoint < 0x10000) ||
|
|
110
|
+
(codePoint >= 0xd800 && codePoint <= 0xdfff) ||
|
|
111
|
+
codePoint > 0x10ffff) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
output += String.fromCodePoint(codePoint);
|
|
115
|
+
index += continuationCount + 1;
|
|
116
|
+
}
|
|
117
|
+
return output;
|
|
118
|
+
};
|
|
119
|
+
const decodePayload = (value) => {
|
|
120
|
+
const bytes = decodeBase64Url(value);
|
|
121
|
+
if (bytes === null || bytes.length > contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.logicalReferencePayloadBytes)
|
|
122
|
+
return null;
|
|
123
|
+
const decoded = decodeUtf8(bytes);
|
|
124
|
+
if (decoded === null || encodeBase64Url(encodeUtf8(decoded)) !== value)
|
|
125
|
+
return null;
|
|
126
|
+
return decoded;
|
|
127
|
+
};
|
|
128
|
+
const assertReferencePayload = (value, label, maximumScalars) => {
|
|
129
|
+
if (!(0, internal_js_1.isBoundedString)(value, maximumScalars, { trimmed: true, controls: true })) {
|
|
130
|
+
throw new TypeError(`${label} must be a non-empty, trimmed, bounded Unicode string without control characters.`);
|
|
131
|
+
}
|
|
132
|
+
if ((0, internal_js_1.utf8ByteLength)(value) > contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.logicalReferencePayloadBytes) {
|
|
133
|
+
throw new RangeError(`${label} exceeds the V1 logical-reference payload limit.`);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const isCanonicalAzureResourceId = (value) => {
|
|
137
|
+
if (!/^\/subscriptions\/[^/]+\/(?:resourceGroups\/[^/]+\/)?providers\/[^/]+\/[^/]+\/[^/]+(?:\/[^/]+\/[^/]+)*$/iu.test(value) ||
|
|
138
|
+
value.includes('\\') ||
|
|
139
|
+
value.includes('?') ||
|
|
140
|
+
value.includes('#') ||
|
|
141
|
+
value.includes('%') ||
|
|
142
|
+
(0, internal_js_1.hasControlCharacter)(value)) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
return value.split('/').every(segment => segment !== '.' && segment !== '..');
|
|
146
|
+
};
|
|
147
|
+
/** Builds an opaque logical artifact reference. The decoded subject is never a storage path. */
|
|
148
|
+
const buildEnvironmentLogicalArtifactReferenceV1 = (artifactKind, canonicalScopeQualifiedSubject) => {
|
|
149
|
+
if (!ARTIFACT_KINDS.has(artifactKind))
|
|
150
|
+
throw new TypeError('Unsupported V1 environment artifact kind.');
|
|
151
|
+
assertReferencePayload(canonicalScopeQualifiedSubject, 'Artifact subject', contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.customerStringScalars);
|
|
152
|
+
if (!isCanonicalScopeQualifiedSubject(canonicalScopeQualifiedSubject)) {
|
|
153
|
+
throw new TypeError('Artifact subject is not a canonical V1 scope-qualified subject.');
|
|
154
|
+
}
|
|
155
|
+
return `${ARTIFACT_PREFIX}${artifactKind}/${encodeBase64Url(encodeUtf8(canonicalScopeQualifiedSubject))}`;
|
|
156
|
+
};
|
|
157
|
+
exports.buildEnvironmentLogicalArtifactReferenceV1 = buildEnvironmentLogicalArtifactReferenceV1;
|
|
158
|
+
/** Parses a V1 logical artifact reference into its allowlisted kind and opaque subject. */
|
|
159
|
+
const parseEnvironmentLogicalArtifactReferenceV1 = (value) => {
|
|
160
|
+
if (typeof value !== 'string' || !value.startsWith(ARTIFACT_PREFIX))
|
|
161
|
+
return null;
|
|
162
|
+
const remainder = value.slice(ARTIFACT_PREFIX.length);
|
|
163
|
+
const separator = remainder.indexOf('/');
|
|
164
|
+
if (separator <= 0 || remainder.indexOf('/', separator + 1) >= 0)
|
|
165
|
+
return null;
|
|
166
|
+
const artifactKind = remainder.slice(0, separator);
|
|
167
|
+
if (!ARTIFACT_KINDS.has(artifactKind))
|
|
168
|
+
return null;
|
|
169
|
+
const subject = decodePayload(remainder.slice(separator + 1));
|
|
170
|
+
if (subject === null || !isCanonicalScopeQualifiedSubject(subject)) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
return { kind: 'artifact', artifactKind: artifactKind, subject };
|
|
174
|
+
};
|
|
175
|
+
exports.parseEnvironmentLogicalArtifactReferenceV1 = parseEnvironmentLogicalArtifactReferenceV1;
|
|
176
|
+
/** Builds an opaque logical Azure resource reference from a canonical resource ID. */
|
|
177
|
+
const buildEnvironmentLogicalResourceReferenceV1 = (canonicalAzureResourceId) => {
|
|
178
|
+
assertReferencePayload(canonicalAzureResourceId, 'Azure resource ID', contracts_js_1.ENVIRONMENT_CONTRACT_LIMITS_V1.scopeIdentifierScalars);
|
|
179
|
+
if (!isCanonicalAzureResourceId(canonicalAzureResourceId))
|
|
180
|
+
throw new TypeError('Azure resource ID is not canonical or safe.');
|
|
181
|
+
return `${RESOURCE_PREFIX}${encodeBase64Url(encodeUtf8(canonicalAzureResourceId))}`;
|
|
182
|
+
};
|
|
183
|
+
exports.buildEnvironmentLogicalResourceReferenceV1 = buildEnvironmentLogicalResourceReferenceV1;
|
|
184
|
+
/** Parses a V1 logical resource reference into a canonical Azure resource ID. */
|
|
185
|
+
const parseEnvironmentLogicalResourceReferenceV1 = (value) => {
|
|
186
|
+
if (typeof value !== 'string' || !value.startsWith(RESOURCE_PREFIX))
|
|
187
|
+
return null;
|
|
188
|
+
const resourceId = decodePayload(value.slice(RESOURCE_PREFIX.length));
|
|
189
|
+
if (resourceId === null || !isCanonicalAzureResourceId(resourceId))
|
|
190
|
+
return null;
|
|
191
|
+
return { kind: 'resource', resourceId };
|
|
192
|
+
};
|
|
193
|
+
exports.parseEnvironmentLogicalResourceReferenceV1 = parseEnvironmentLogicalResourceReferenceV1;
|
|
194
|
+
/** Parses either closed V1 logical evidence-reference kind. */
|
|
195
|
+
const parseEnvironmentLogicalEvidenceReferenceV1 = (value) => (0, exports.parseEnvironmentLogicalArtifactReferenceV1)(value) ?? (0, exports.parseEnvironmentLogicalResourceReferenceV1)(value);
|
|
196
|
+
exports.parseEnvironmentLogicalEvidenceReferenceV1 = parseEnvironmentLogicalEvidenceReferenceV1;
|
|
197
|
+
/** Returns true when a value is a canonical V1 logical artifact reference. */
|
|
198
|
+
const isEnvironmentLogicalArtifactReferenceV1 = (value) => (0, exports.parseEnvironmentLogicalArtifactReferenceV1)(value) !== null;
|
|
199
|
+
exports.isEnvironmentLogicalArtifactReferenceV1 = isEnvironmentLogicalArtifactReferenceV1;
|
|
200
|
+
/** Returns true when a value is a canonical V1 logical resource reference. */
|
|
201
|
+
const isEnvironmentLogicalResourceReferenceV1 = (value) => (0, exports.parseEnvironmentLogicalResourceReferenceV1)(value) !== null;
|
|
202
|
+
exports.isEnvironmentLogicalResourceReferenceV1 = isEnvironmentLogicalResourceReferenceV1;
|
|
203
|
+
/** Returns true when a value is one of the closed V1 logical evidence-reference kinds. */
|
|
204
|
+
const isEnvironmentLogicalEvidenceReferenceV1 = (value) => (0, exports.parseEnvironmentLogicalEvidenceReferenceV1)(value) !== null;
|
|
205
|
+
exports.isEnvironmentLogicalEvidenceReferenceV1 = isEnvironmentLogicalEvidenceReferenceV1;
|
|
206
|
+
//# sourceMappingURL=references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/environment/references.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type EnvironmentArtifactKindV1, type EnvironmentCompiledGenerationPointerV1, type EnvironmentCoverageStateV1, type EnvironmentDocumentDescriptorV1, type EnvironmentMoneyValueV1, type EnvironmentScopeV1, type EnvironmentSourceBindingV1, type EnvironmentSourceGenerationV1, type EnvironmentSubscriptionCostProjectionV1 } from './contracts.js';
|
|
2
|
+
/** Validates a bounded, local Portal route suitable for client-visible evidence. */
|
|
3
|
+
export declare const isEnvironmentPortalRouteV1: (value: unknown) => value is string;
|
|
4
|
+
/** Validates the closed phase-one Azure subscription scope. */
|
|
5
|
+
export declare const isEnvironmentScopeV1: (value: unknown) => value is EnvironmentScopeV1;
|
|
6
|
+
/** Validates the client-safe identity of one authoritative source generation. */
|
|
7
|
+
export declare const isEnvironmentSourceGenerationV1: (value: unknown) => value is EnvironmentSourceGenerationV1;
|
|
8
|
+
/** Validates a byte-preserving binding to an authoritative CompletedAzureViewSetV1. */
|
|
9
|
+
export declare const isEnvironmentSourceBindingV1: (value: unknown) => value is EnvironmentSourceBindingV1;
|
|
10
|
+
/** Validates a storage-safe environment run identity independently from source identities. */
|
|
11
|
+
export declare const isEnvironmentRunIdV1: (value: unknown) => value is string;
|
|
12
|
+
/** Validates canonical decimal money with explicit currency, basis, period, and provenance. */
|
|
13
|
+
export declare const isEnvironmentMoneyValueV1: (value: unknown) => value is EnvironmentMoneyValueV1;
|
|
14
|
+
/** Validates the closed coverage-state union and state-specific freshness rules. */
|
|
15
|
+
export declare const isEnvironmentCoverageStateV1: (value: unknown) => value is EnvironmentCoverageStateV1;
|
|
16
|
+
/** Validates the strict, bounded phase-one subscription-cost projection. */
|
|
17
|
+
export declare const isEnvironmentSubscriptionCostProjectionV1: (value: unknown) => value is EnvironmentSubscriptionCostProjectionV1;
|
|
18
|
+
/** Validates one descriptor from the exact V1 three-document allowlist. */
|
|
19
|
+
export declare const isEnvironmentDocumentDescriptorV1: (value: unknown) => value is EnvironmentDocumentDescriptorV1;
|
|
20
|
+
/** Validates that descriptors contain each allowlisted V1 document exactly once. */
|
|
21
|
+
export declare const isEnvironmentDocumentDescriptorSetV1: (value: unknown) => value is EnvironmentDocumentDescriptorV1[];
|
|
22
|
+
/** Validates an atomically visible completed environment-generation pointer. */
|
|
23
|
+
export declare const isEnvironmentCompiledGenerationPointerV1: (value: unknown) => value is EnvironmentCompiledGenerationPointerV1;
|
|
24
|
+
/** Validates the artifact kind without widening the closed V1 union. */
|
|
25
|
+
export declare const isEnvironmentArtifactKindV1: (value: unknown) => value is EnvironmentArtifactKindV1;
|
|
26
|
+
/** Validates the V1 safe-label bound used by customer-visible evidence metadata. */
|
|
27
|
+
export declare const isEnvironmentSafeLabelV1: (value: unknown) => value is string;
|
|
28
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/environment/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,yBAAyB,EAE9B,KAAK,sCAAsC,EAK3C,KAAK,0BAA0B,EAC/B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAE5B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,uCAAuC,EAC7C,MAAM,gBAAgB,CAAC;AAoCxB,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MASG,CAAC;AAWzE,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,kBAMtB,CAAC;AAE1C,iFAAiF;AACjF,eAAO,MAAM,+BAA+B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,6BAiB9B,CAAC;AAE7C,uFAAuF;AACvF,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAwBnE,CAAC;AAEL,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAMvB,CAAC;AAEzC,+FAA+F;AAC/F,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,uBAYyE,CAAC;AAQ9I,oFAAoF;AACpF,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BA+BtE,CAAC;AAgFF,4EAA4E;AAC5E,eAAO,MAAM,yCAAyC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,uCA0CnF,CAAC;AAQF,2EAA2E;AAC3E,eAAO,MAAM,iCAAiC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,+BAa3E,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,oCAAoC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,+BAA+B,EAKb,CAAC;AAElG,gFAAgF;AAChF,eAAO,MAAM,wCAAwC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,sCA6BlF,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,yBACd,CAAC;AAEzD,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAA4B,CAAC"}
|