@spottoai/types-package 1.0.2-beta.310 → 1.0.2-beta.312

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +14 -4
  2. package/dist/aws/index.d.ts +8 -0
  3. package/dist/aws/index.d.ts.map +1 -1
  4. package/dist/aws/index.js +8 -0
  5. package/dist/aws/index.js.map +1 -1
  6. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts +10 -0
  7. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts.map +1 -0
  8. package/dist/aws/pluginPublicArtifactBodyValidation.js +225 -0
  9. package/dist/aws/pluginPublicArtifactBodyValidation.js.map +1 -0
  10. package/dist/aws/pluginPublicArtifactEvidence.d.ts +161 -0
  11. package/dist/aws/pluginPublicArtifactEvidence.d.ts.map +1 -0
  12. package/dist/aws/pluginPublicArtifactEvidence.js +3 -0
  13. package/dist/aws/pluginPublicArtifactEvidence.js.map +1 -0
  14. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts +4 -0
  15. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts.map +1 -0
  16. package/dist/aws/pluginPublicArtifactManifestValidation.js +259 -0
  17. package/dist/aws/pluginPublicArtifactManifestValidation.js.map +1 -0
  18. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts +6 -0
  19. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts.map +1 -0
  20. package/dist/aws/pluginPublicArtifactSectionValidation.js +471 -0
  21. package/dist/aws/pluginPublicArtifactSectionValidation.js.map +1 -0
  22. package/dist/aws/pluginPublicArtifactValidation.d.ts +3 -0
  23. package/dist/aws/pluginPublicArtifactValidation.d.ts.map +1 -0
  24. package/dist/aws/pluginPublicArtifactValidation.js +9 -0
  25. package/dist/aws/pluginPublicArtifactValidation.js.map +1 -0
  26. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts +23 -0
  27. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts.map +1 -0
  28. package/dist/aws/pluginPublicArtifactValidationHelpers.js +241 -0
  29. package/dist/aws/pluginPublicArtifactValidationHelpers.js.map +1 -0
  30. package/dist/aws/pluginPublicArtifacts.d.ts +253 -0
  31. package/dist/aws/pluginPublicArtifacts.d.ts.map +1 -0
  32. package/dist/aws/pluginPublicArtifacts.js +116 -0
  33. package/dist/aws/pluginPublicArtifacts.js.map +1 -0
  34. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts +4 -0
  35. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts.map +1 -0
  36. package/dist/aws/portalPublicArtifactCurrentValidation.js +333 -0
  37. package/dist/aws/portalPublicArtifactCurrentValidation.js.map +1 -0
  38. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts +6 -0
  39. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts.map +1 -0
  40. package/dist/aws/portalPublicArtifactEvidenceValidation.js +227 -0
  41. package/dist/aws/portalPublicArtifactEvidenceValidation.js.map +1 -0
  42. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts +8 -0
  43. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts.map +1 -0
  44. package/dist/aws/portalPublicArtifactHistoryAiValidation.js +377 -0
  45. package/dist/aws/portalPublicArtifactHistoryAiValidation.js.map +1 -0
  46. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +168 -0
  47. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -0
  48. package/dist/aws/portalPublicArtifactHistoryTypes.js +32 -0
  49. package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -0
  50. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts +127 -0
  51. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts.map +1 -0
  52. package/dist/aws/portalPublicArtifactNestedEvidence.js +3 -0
  53. package/dist/aws/portalPublicArtifactNestedEvidence.js.map +1 -0
  54. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts +6 -0
  55. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts.map +1 -0
  56. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js +405 -0
  57. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js.map +1 -0
  58. package/dist/aws/portalPublicArtifactValidation.d.ts +3 -0
  59. package/dist/aws/portalPublicArtifactValidation.d.ts.map +1 -0
  60. package/dist/aws/portalPublicArtifactValidation.js +14 -0
  61. package/dist/aws/portalPublicArtifactValidation.js.map +1 -0
  62. package/dist/aws/portalPublicArtifactValidationCommon.d.ts +30 -0
  63. package/dist/aws/portalPublicArtifactValidationCommon.d.ts.map +1 -0
  64. package/dist/aws/portalPublicArtifactValidationCommon.js +167 -0
  65. package/dist/aws/portalPublicArtifactValidationCommon.js.map +1 -0
  66. package/dist/aws/portalPublicArtifacts.d.ts +371 -0
  67. package/dist/aws/portalPublicArtifacts.d.ts.map +1 -0
  68. package/dist/aws/portalPublicArtifacts.js +85 -0
  69. package/dist/aws/portalPublicArtifacts.js.map +1 -0
  70. package/dist/aws/publicArtifacts.d.ts +3 -2
  71. package/dist/aws/publicArtifacts.d.ts.map +1 -1
  72. package/dist/aws/publicArtifacts.js +3 -0
  73. package/dist/aws/publicArtifacts.js.map +1 -1
  74. package/dist/integrations/autotask.d.ts +21 -3
  75. package/dist/integrations/autotask.d.ts.map +1 -1
  76. package/package.json +5 -3
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asRecord = asRecord;
4
+ exports.requiredArray = requiredArray;
5
+ exports.stringArray = stringArray;
6
+ exports.requiredString = requiredString;
7
+ exports.isoTimestamp = isoTimestamp;
8
+ exports.sha256 = sha256;
9
+ exports.requiredEnum = requiredEnum;
10
+ exports.optionalEnum = optionalEnum;
11
+ exports.optionalRecord = optionalRecord;
12
+ exports.assertAccount = assertAccount;
13
+ exports.assertExactKeys = assertExactKeys;
14
+ exports.assertNoForbiddenKeys = assertNoForbiddenKeys;
15
+ exports.assertPublicJson = assertPublicJson;
16
+ exports.assertRequiredKeys = assertRequiredKeys;
17
+ exports.assertValue = assertValue;
18
+ exports.assertJsonEqual = assertJsonEqual;
19
+ exports.validateDescriptor = validateDescriptor;
20
+ exports.validateBilling = validateBilling;
21
+ exports.validateSelector = validateSelector;
22
+ exports.validateMetricWindow = validateMetricWindow;
23
+ exports.validateTagRuleScope = validateTagRuleScope;
24
+ const requests_1 = require("./requests");
25
+ const FORBIDDEN_PUBLIC_KEYS = new Set([
26
+ ...requests_1.AWS_REQUEST_FORBIDDEN_CREDENTIAL_FIELDS,
27
+ 'externalId',
28
+ 'roleArn',
29
+ 'secretArn',
30
+ 'secretReference',
31
+ 'credentialReference',
32
+ 'storagePath',
33
+ 'sourcePath',
34
+ 'path',
35
+ 'blobPath',
36
+ 'containerPath',
37
+ 'chunk',
38
+ 'chunks',
39
+ 'lease',
40
+ 'retries',
41
+ 'retry',
42
+ 'refreshState',
43
+ 'lastRefreshExecutionRequestId',
44
+ 'lastRefreshExecutionRequestedAt',
45
+ 'prompt',
46
+ 'promptInput',
47
+ 'sourceBytes',
48
+ 'maxSourceBytes',
49
+ 'bedrockRegion',
50
+ 'guardrailId',
51
+ 'guardrailVersion',
52
+ 'etag',
53
+ 'eTag',
54
+ 'retiredAt',
55
+ ]);
56
+ const FORBIDDEN_PUBLIC_KEY_PATTERN = /^(?:source|storage|blob|container)(?:path|uri|url|key)$|^s3(?:bucket|key|uri|url)$/i;
57
+ const SHA256_PATTERN = /^[a-f0-9]{64}$/;
58
+ const ISO_TIMESTAMP_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/;
59
+ function asRecord(value, field) {
60
+ if (!value || typeof value !== 'object' || Array.isArray(value))
61
+ throw new Error(`${field} must be a JSON object.`);
62
+ return value;
63
+ }
64
+ function requiredArray(value, field) {
65
+ if (!Array.isArray(value) || value.length === 0)
66
+ throw new Error(`${field} must be a non-empty array.`);
67
+ return value;
68
+ }
69
+ function stringArray(value, field) {
70
+ if (!Array.isArray(value))
71
+ throw new Error(`${field} must be an array.`);
72
+ const strings = value.map((item, index) => requiredString(item, `${field}[${index}]`));
73
+ if (new Set(strings).size !== strings.length)
74
+ throw new Error(`${field} must not contain duplicates.`);
75
+ const sorted = [...strings].sort((left, right) => left.localeCompare(right));
76
+ if (JSON.stringify(strings) !== JSON.stringify(sorted))
77
+ throw new Error(`${field} must be sorted.`);
78
+ return strings;
79
+ }
80
+ function requiredString(value, field) {
81
+ if (typeof value !== 'string' || value.trim() !== value || value.length === 0)
82
+ throw new Error(`${field} must be a non-empty trimmed string.`);
83
+ return value;
84
+ }
85
+ function isoTimestamp(value, field) {
86
+ const timestamp = requiredString(value, field);
87
+ if (!ISO_TIMESTAMP_PATTERN.test(timestamp) || Number.isNaN(Date.parse(timestamp)))
88
+ throw new Error(`${field} must be an ISO UTC timestamp.`);
89
+ return timestamp;
90
+ }
91
+ function sha256(value, field) {
92
+ const digest = requiredString(value, field);
93
+ if (!SHA256_PATTERN.test(digest))
94
+ throw new Error(`${field} must be a lowercase hexadecimal SHA-256.`);
95
+ return digest;
96
+ }
97
+ function requiredEnum(value, values, field) {
98
+ if (typeof value !== 'string' || !values.includes(value))
99
+ throw new Error(`${field} is not declared.`);
100
+ return value;
101
+ }
102
+ function optionalEnum(value, values, field) {
103
+ if (value !== undefined)
104
+ requiredEnum(value, values, field);
105
+ }
106
+ function optionalRecord(value, field) {
107
+ if (value !== undefined)
108
+ asRecord(value, field);
109
+ }
110
+ function assertAccount(value, accountId, field) {
111
+ assertValue(value, accountId, field);
112
+ if (!/^\d{12}$/.test(accountId))
113
+ throw new Error(`${field} must be a 12-digit AWS account id.`);
114
+ }
115
+ function assertExactKeys(value, allowed, field) {
116
+ const allowedKeys = new Set(allowed);
117
+ const unknown = Object.keys(value).filter(key => !allowedKeys.has(key));
118
+ if (unknown.length > 0)
119
+ throw new Error(`${field} contains undeclared fields: ${unknown.sort().join(', ')}.`);
120
+ }
121
+ function assertNoForbiddenKeys(value, field) {
122
+ if (Array.isArray(value)) {
123
+ value.forEach((item, index) => assertNoForbiddenKeys(item, `${field}[${index}]`));
124
+ return;
125
+ }
126
+ if (!value || typeof value !== 'object')
127
+ return;
128
+ for (const [key, child] of Object.entries(value)) {
129
+ if (isForbiddenPublicKey(key))
130
+ throw new Error(`${field}.${key} is not allowed in a public artifact.`);
131
+ assertNoForbiddenKeys(child, `${field}.${key}`);
132
+ }
133
+ }
134
+ /** Rejects non-JSON values, non-plain objects, and forbidden public keys recursively. */
135
+ function assertPublicJson(value, field) {
136
+ if (value === null || typeof value === 'string' || typeof value === 'boolean')
137
+ return;
138
+ if (typeof value === 'number') {
139
+ if (!Number.isFinite(value))
140
+ throw new Error(`${field} must contain only finite JSON numbers.`);
141
+ return;
142
+ }
143
+ if (Array.isArray(value)) {
144
+ value.forEach((item, index) => assertPublicJson(item, `${field}[${index}]`));
145
+ return;
146
+ }
147
+ if (!value || typeof value !== 'object' || Object.getPrototypeOf(value) !== Object.prototype) {
148
+ throw new Error(`${field} must contain only plain JSON values.`);
149
+ }
150
+ for (const [key, child] of Object.entries(value)) {
151
+ if (isForbiddenPublicKey(key))
152
+ throw new Error(`${field}.${key} is not allowed in a public artifact.`);
153
+ assertPublicJson(child, `${field}.${key}`);
154
+ }
155
+ }
156
+ function isForbiddenPublicKey(key) {
157
+ const normalized = key.toLowerCase();
158
+ return (Array.from(FORBIDDEN_PUBLIC_KEYS).some(forbidden => forbidden.toLowerCase() === normalized) ||
159
+ FORBIDDEN_PUBLIC_KEY_PATTERN.test(key));
160
+ }
161
+ function assertRequiredKeys(value, required, field) {
162
+ const missing = required.filter(key => !(key in value));
163
+ if (missing.length > 0)
164
+ throw new Error(`${field} is missing required fields: ${missing.join(', ')}.`);
165
+ }
166
+ function assertValue(actual, expected, field) {
167
+ if (actual !== expected)
168
+ throw new Error(`${field} must match its exact binding.`);
169
+ }
170
+ function assertJsonEqual(actual, expected, field) {
171
+ if (JSON.stringify(actual) !== JSON.stringify(expected))
172
+ throw new Error(`${field} must match its exact binding.`);
173
+ }
174
+ function validateDescriptor(value, field) {
175
+ const descriptor = asRecord(value, field);
176
+ assertExactKeys(descriptor, ['name', 'mediaType', 'contentEncoding', 'byteLength', 'sha256'], field);
177
+ requiredString(descriptor.name, `${field}.name`);
178
+ assertValue(descriptor.mediaType, 'application/json', `${field}.mediaType`);
179
+ requiredEnum(descriptor.contentEncoding, ['identity', 'gzip'], `${field}.contentEncoding`);
180
+ if (!Number.isSafeInteger(descriptor.byteLength) || Number(descriptor.byteLength) < 0)
181
+ throw new Error(`${field}.byteLength must be a non-negative safe integer.`);
182
+ sha256(descriptor.sha256, `${field}.sha256`);
183
+ }
184
+ function validateBilling(value, field = 'target.billing') {
185
+ const billing = asRecord(value, field);
186
+ if (billing.source === 'cur') {
187
+ assertExactKeys(billing, ['source', 'reportName', 'billingPeriod'], field);
188
+ requiredString(billing.reportName, `${field}.reportName`);
189
+ }
190
+ else if (billing.source === 'cur-2.0-data-exports') {
191
+ assertExactKeys(billing, ['source', 'exportName', 'billingPeriod'], field);
192
+ requiredString(billing.exportName, `${field}.exportName`);
193
+ }
194
+ else {
195
+ throw new Error(`${field}.source is not declared.`);
196
+ }
197
+ const period = asRecord(billing.billingPeriod, `${field}.billingPeriod`);
198
+ assertExactKeys(period, ['start', 'end'], `${field}.billingPeriod`);
199
+ calendarDate(period.start, `${field}.billingPeriod.start`);
200
+ calendarDate(period.end, `${field}.billingPeriod.end`);
201
+ if (String(period.start) > String(period.end))
202
+ throw new Error(`${field}.billingPeriod start must not exceed end.`);
203
+ }
204
+ function calendarDate(value, field) {
205
+ const date = requiredString(value, field);
206
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(date) || Number.isNaN(Date.parse(`${date}T00:00:00.000Z`)))
207
+ throw new Error(`${field} must be a valid calendar date.`);
208
+ if (new Date(`${date}T00:00:00.000Z`).toISOString().slice(0, 10) !== date)
209
+ throw new Error(`${field} must be a valid calendar date.`);
210
+ return date;
211
+ }
212
+ function validateSelector(value, field) {
213
+ const selector = asRecord(value, field);
214
+ if (selector.kind === 'stable-key') {
215
+ assertExactKeys(selector, ['kind', 'stableKey'], field);
216
+ requiredString(selector.stableKey, `${field}.stableKey`);
217
+ }
218
+ else if (selector.kind === 'resource-arn') {
219
+ assertExactKeys(selector, ['kind', 'resourceArn'], field);
220
+ requiredString(selector.resourceArn, `${field}.resourceArn`);
221
+ }
222
+ else {
223
+ throw new Error(`${field}.kind is not declared.`);
224
+ }
225
+ }
226
+ function validateMetricWindow(value, field) {
227
+ const window = asRecord(value, field);
228
+ assertExactKeys(window, ['start', 'end'], field);
229
+ isoTimestamp(window.start, `${field}.start`);
230
+ isoTimestamp(window.end, `${field}.end`);
231
+ if (String(window.start) > String(window.end))
232
+ throw new Error(`${field}.start must not exceed end.`);
233
+ }
234
+ function validateTagRuleScope(value) {
235
+ if (value === undefined)
236
+ return;
237
+ const scope = asRecord(value, 'tagRuleScope');
238
+ assertExactKeys(scope, ['companyId'], 'tagRuleScope');
239
+ requiredString(scope.companyId, 'tagRuleScope.companyId');
240
+ }
241
+ //# sourceMappingURL=pluginPublicArtifactValidationHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginPublicArtifactValidationHelpers.js","sourceRoot":"","sources":["../../src/aws/pluginPublicArtifactValidationHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ import type { ArtifactAccountBinding, ArtifactDescriptor, ArtifactGeneration } from '../common/artifactGeneration';
2
+ import type { AwsPluginAccountSummaryEvidence, AwsPluginAiCostSummaryEvidence, AwsPluginCommitmentEvidence, AwsPluginDeclaredSectionEvidence, AwsPluginGovernanceEvidence, AwsPluginRelationshipEvidence, AwsPluginReliabilityEvidence, AwsPluginResourceItemEvidence, AwsPluginResourceLifecycleEvidence, AwsPluginResourceRecommendationsEvidence, AwsPluginResourceSummaryEvidence, AwsPluginSubscriptionRecommendationsEvidence, AwsPluginSubscriptionLifecycleEvidence } from './pluginPublicArtifactEvidence';
3
+ import type { AwsPublicArtifactForbiddenCredentialFields, AwsPublicArtifactSchemaVersion } from './publicArtifacts';
4
+ export declare const AWS_PLUGIN_PUBLIC_ARTIFACT_SCHEMA_VERSION: 1;
5
+ export declare const AWS_PLUGIN_SOURCE_ARTIFACT_TYPES: readonly ["account-summary", "resource-collection", "ai-cost-summary", "relationships", "lifecycle", "recommendations", "recommendation-actionability", "commitment-analysis", "reliability", "account-governance"];
6
+ export declare const AWS_PLUGIN_SUBSCRIPTION_SECTIONS: readonly ["account-summary", "resources", "ai-cost-summary", "service-retirement", "recommendations", "commitment-analysis", "reliability", "account-governance"];
7
+ export declare const AWS_PLUGIN_RESOURCE_SECTIONS: readonly ["resource", "relationships", "service-retirement", "recommendations"];
8
+ export type AwsPluginPublicArtifactSchemaVersion = typeof AWS_PLUGIN_PUBLIC_ARTIFACT_SCHEMA_VERSION;
9
+ export type AwsPluginSourceArtifactType = (typeof AWS_PLUGIN_SOURCE_ARTIFACT_TYPES)[number];
10
+ export type AwsPluginSubscriptionSection = (typeof AWS_PLUGIN_SUBSCRIPTION_SECTIONS)[number];
11
+ export type AwsPluginResourceSection = (typeof AWS_PLUGIN_RESOURCE_SECTIONS)[number];
12
+ export type AwsPluginSection = AwsPluginSubscriptionSection | AwsPluginResourceSection;
13
+ export type AwsPluginSha256 = string;
14
+ export type AwsPluginSubscriptionLogicalName = `plugin-subscription--${string}.json.gz`;
15
+ export type AwsPluginResourceLogicalName = `plugin-resource--${string}--${string}.json.gz`;
16
+ export type AwsPluginLogicalName = AwsPluginSubscriptionLogicalName | AwsPluginResourceLogicalName;
17
+ export type AwsPluginBillingScope = {
18
+ source: 'cur';
19
+ reportName: string;
20
+ billingPeriod: AwsPluginBillingPeriod;
21
+ } | {
22
+ source: 'cur-2.0-data-exports';
23
+ exportName: string;
24
+ billingPeriod: AwsPluginBillingPeriod;
25
+ };
26
+ export interface AwsPluginBillingPeriod {
27
+ start: string;
28
+ end: string;
29
+ }
30
+ export interface AwsPluginMetricTimeWindow {
31
+ start: string;
32
+ end: string;
33
+ }
34
+ export interface AwsPluginTagRuleScope {
35
+ companyId: string;
36
+ }
37
+ export type AwsPluginResourceSelector = {
38
+ kind: 'stable-key';
39
+ stableKey: string;
40
+ } | {
41
+ kind: 'resource-arn';
42
+ resourceArn: string;
43
+ };
44
+ export interface AwsPluginRecommendationScope {
45
+ source: 'custom' | 'compute-optimizer' | 'cost-optimization-hub' | 'resilience-hub' | 'security-hub' | 'trusted-advisor' | 'well-architected';
46
+ scope: 'account';
47
+ accountId: string;
48
+ scopeDiscriminator?: string;
49
+ computeOptimizerFamily?: string;
50
+ resourceRegions: string[];
51
+ targetKey: string;
52
+ actionabilityTargetKey: string;
53
+ }
54
+ export interface AwsPluginSubscriptionTarget<AccountId extends string = string> extends ArtifactAccountBinding<'aws', AccountId> {
55
+ kind: 'subscription-detail';
56
+ targetKey: string;
57
+ targetKeySha256: AwsPluginSha256;
58
+ accountSummaryTargetKey: string;
59
+ resourceCollectionTargetKey: string;
60
+ recommendationsTargetKey: string;
61
+ aiCostSummaryTargetKey?: string;
62
+ serviceRetirementTargetKey: string;
63
+ commitmentAnalysisTargetKey?: string;
64
+ reliabilityTargetKey?: string;
65
+ accountGovernanceTargetKey?: string;
66
+ billing: AwsPluginBillingScope;
67
+ resourceRegions: string[];
68
+ metricTimeWindow: AwsPluginMetricTimeWindow;
69
+ aiCostSummaryAudience?: 'portal' | 'plugin';
70
+ serviceRetirementRegions: string[];
71
+ recommendationScopes: AwsPluginRecommendationScope[];
72
+ commitmentAnalysis?: {
73
+ resourceRegions: string[];
74
+ maxBenefitEntries: number;
75
+ };
76
+ reliability?: {
77
+ includeTemplateContent?: true;
78
+ includeScoring?: true;
79
+ maxResultsPerSection: number;
80
+ sectionScopeKeys: string[];
81
+ };
82
+ accountGovernance?: {
83
+ apiRegion: string;
84
+ };
85
+ }
86
+ export interface AwsPluginResourceTarget<AccountId extends string = string> extends ArtifactAccountBinding<'aws', AccountId> {
87
+ kind: 'resource-detail';
88
+ targetKey: string;
89
+ targetKeySha256: AwsPluginSha256;
90
+ resourceCollectionTargetKey: string;
91
+ recommendationsTargetKey: string;
92
+ billing: AwsPluginBillingScope;
93
+ resourceRegions: string[];
94
+ metricTimeWindow: AwsPluginMetricTimeWindow;
95
+ tagRuleScope?: AwsPluginTagRuleScope;
96
+ selector: AwsPluginResourceSelector;
97
+ stableKey: string;
98
+ stableKeySha256: AwsPluginSha256;
99
+ relationshipTargetKey: string;
100
+ serviceRetirementTargetKey: string;
101
+ recommendationScopes: AwsPluginRecommendationScope[];
102
+ }
103
+ export type AwsPluginArtifactTarget<AccountId extends string = string> = AwsPluginSubscriptionTarget<AccountId> | AwsPluginResourceTarget<AccountId>;
104
+ export interface AwsPluginSectionSourceBinding<AccountId extends string = string> extends ArtifactAccountBinding<'aws', AccountId> {
105
+ section: AwsPluginSection;
106
+ sourceArtifactType: AwsPluginSourceArtifactType;
107
+ generationId: string;
108
+ generatedAt: string;
109
+ targetKey: string;
110
+ artifactSha256: AwsPluginSha256;
111
+ billing: AwsPluginBillingScope;
112
+ resourceRegions: string[];
113
+ metricTimeWindow: AwsPluginMetricTimeWindow;
114
+ selector?: AwsPluginResourceSelector;
115
+ stableKey?: string;
116
+ tagRuleScope?: AwsPluginTagRuleScope;
117
+ }
118
+ export type AwsPluginAvailableSection<Section extends AwsPluginSection = AwsPluginSection, AccountId extends string = string, Evidence extends AwsPluginDeclaredSectionEvidence = AwsPluginDeclaredSectionEvidence> = {
119
+ status: 'available';
120
+ section: Section;
121
+ targetKey: string;
122
+ generatedAt: string;
123
+ sourceGeneration: AwsPluginSectionSourceBinding<AccountId>;
124
+ additionalSourceGenerations?: AwsPluginSectionSourceBinding<AccountId>[];
125
+ evidence: Evidence;
126
+ };
127
+ export type AwsPluginUnavailableSection<Section extends AwsPluginSection = AwsPluginSection> = {
128
+ status: 'not-found';
129
+ section: Section;
130
+ targetKey: string;
131
+ };
132
+ export type AwsPluginBodySection<Section extends AwsPluginSection = AwsPluginSection, AccountId extends string = string, Evidence extends AwsPluginDeclaredSectionEvidence = AwsPluginDeclaredSectionEvidence> = AwsPluginAvailableSection<Section, AccountId, Evidence> | AwsPluginUnavailableSection<Section>;
133
+ export interface AwsPluginSubscriptionSections<AccountId extends string = string> {
134
+ accountSummary: AwsPluginBodySection<'account-summary', AccountId, AwsPluginAccountSummaryEvidence>;
135
+ resources: AwsPluginBodySection<'resources', AccountId, AwsPluginResourceSummaryEvidence>;
136
+ aiCostSummary?: AwsPluginBodySection<'ai-cost-summary', AccountId, AwsPluginAiCostSummaryEvidence>;
137
+ serviceRetirement: AwsPluginBodySection<'service-retirement', AccountId, AwsPluginSubscriptionLifecycleEvidence>;
138
+ recommendations: AwsPluginBodySection<'recommendations', AccountId, AwsPluginSubscriptionRecommendationsEvidence>;
139
+ commitmentAnalysis?: AwsPluginBodySection<'commitment-analysis', AccountId, AwsPluginCommitmentEvidence>;
140
+ reliability?: AwsPluginBodySection<'reliability', AccountId, AwsPluginReliabilityEvidence>;
141
+ accountGovernance?: AwsPluginBodySection<'account-governance', AccountId, AwsPluginGovernanceEvidence>;
142
+ }
143
+ export interface AwsPluginResourceSections<AccountId extends string = string> {
144
+ resource: AwsPluginAvailableSection<'resource', AccountId, {
145
+ item: AwsPluginResourceItemEvidence;
146
+ }>;
147
+ relationships: AwsPluginBodySection<'relationships', AccountId, AwsPluginRelationshipEvidence>;
148
+ serviceRetirement: AwsPluginBodySection<'service-retirement', AccountId, AwsPluginResourceLifecycleEvidence>;
149
+ recommendations: AwsPluginBodySection<'recommendations', AccountId, AwsPluginResourceRecommendationsEvidence>;
150
+ }
151
+ type AwsPluginArtifactEnvelope<ArtifactType extends 'plugin-subscription' | 'plugin-resource', AccountId extends string, RunId extends string> = ArtifactAccountBinding<'aws', AccountId> & AwsPublicArtifactForbiddenCredentialFields & {
152
+ schemaVersion: AwsPublicArtifactSchemaVersion;
153
+ pluginSchemaVersion: AwsPluginPublicArtifactSchemaVersion;
154
+ artifactType: ArtifactType;
155
+ artifactGeneration: ArtifactGeneration<RunId>;
156
+ generatedAt: string;
157
+ logicalName: AwsPluginLogicalName;
158
+ target: AwsPluginArtifactTarget<AccountId>;
159
+ storagePath?: never;
160
+ chunk?: never;
161
+ lease?: never;
162
+ retry?: never;
163
+ refreshState?: never;
164
+ requestId?: never;
165
+ requestedAt?: never;
166
+ retiredAt?: never;
167
+ };
168
+ export type AwsPluginSubscriptionDetailArtifact<AccountId extends string = string, RunId extends string = string> = AwsPluginArtifactEnvelope<'plugin-subscription', AccountId, RunId> & {
169
+ logicalName: AwsPluginSubscriptionLogicalName;
170
+ target: AwsPluginSubscriptionTarget<AccountId>;
171
+ sections: AwsPluginSubscriptionSections<AccountId>;
172
+ };
173
+ export type AwsPluginResourceDetailArtifact<AccountId extends string = string, RunId extends string = string> = AwsPluginArtifactEnvelope<'plugin-resource', AccountId, RunId> & {
174
+ logicalName: AwsPluginResourceLogicalName;
175
+ target: AwsPluginResourceTarget<AccountId>;
176
+ selector: AwsPluginResourceSelector;
177
+ stableKey: string;
178
+ sections: AwsPluginResourceSections<AccountId>;
179
+ };
180
+ export interface AwsPluginPublicationRequestBinding {
181
+ requestId: string;
182
+ requestedAt: string;
183
+ }
184
+ export interface AwsPluginPriorActiveMember<AccountId extends string = string> extends ArtifactAccountBinding<'aws', AccountId> {
185
+ logicalName: AwsPluginLogicalName;
186
+ artifactType: 'plugin-subscription' | 'plugin-resource';
187
+ targetKeySha256: AwsPluginSha256;
188
+ stableKeySha256?: AwsPluginSha256;
189
+ artifactSha256: AwsPluginSha256;
190
+ }
191
+ type AwsPluginActiveMemberBase<AccountId extends string> = ArtifactAccountBinding<'aws', AccountId> & {
192
+ logicalName: AwsPluginLogicalName;
193
+ artifactType: 'plugin-subscription' | 'plugin-resource';
194
+ target: AwsPluginArtifactTarget<AccountId>;
195
+ };
196
+ export type AwsPluginActiveSetMember<AccountId extends string = string> = (AwsPluginActiveMemberBase<AccountId> & {
197
+ state: 'active';
198
+ publication: 'replaced' | 'carried-forward';
199
+ artifact: ArtifactDescriptor;
200
+ sourceGenerations: [AwsPluginSectionSourceBinding<AccountId>, ...AwsPluginSectionSourceBinding<AccountId>[]];
201
+ }) | (AwsPluginActiveMemberBase<AccountId> & {
202
+ state: 'retired';
203
+ publication: 'retired';
204
+ priorArtifactSha256: AwsPluginSha256;
205
+ retiredAt: string;
206
+ artifact?: never;
207
+ sourceGenerations?: never;
208
+ });
209
+ export type AwsPluginPublicationOperation<AccountId extends string = string> = {
210
+ kind: 'full';
211
+ } | {
212
+ kind: 'targeted-replacement';
213
+ target: AwsPluginArtifactTarget<AccountId>;
214
+ } | {
215
+ kind: 'targeted-retirement';
216
+ target: AwsPluginArtifactTarget<AccountId>;
217
+ };
218
+ export interface AwsPluginActiveSetCounts {
219
+ active: number;
220
+ replaced: number;
221
+ carriedForward: number;
222
+ retired: number;
223
+ }
224
+ export type AwsPluginGenerationManifest<AccountId extends string = string, RunId extends string = string> = ArtifactAccountBinding<'aws', AccountId> & {
225
+ schemaVersion: AwsPluginPublicArtifactSchemaVersion;
226
+ status: 'completed';
227
+ artifactGeneration: ArtifactGeneration<RunId>;
228
+ requestBinding: AwsPluginPublicationRequestBinding;
229
+ operation: AwsPluginPublicationOperation<AccountId>;
230
+ previousGeneration?: {
231
+ provider: 'aws';
232
+ accountId: AccountId;
233
+ runId: string;
234
+ manifestSha256: AwsPluginSha256;
235
+ members: AwsPluginPriorActiveMember<AccountId>[];
236
+ };
237
+ members: [AwsPluginActiveSetMember<AccountId>, ...AwsPluginActiveSetMember<AccountId>[]];
238
+ counts: AwsPluginActiveSetCounts;
239
+ completedAt: string;
240
+ storagePath?: never;
241
+ chunks?: never;
242
+ lease?: never;
243
+ retries?: never;
244
+ refreshState?: never;
245
+ };
246
+ /** Builds the path-free subscription logical name from a target-key SHA-256. */
247
+ export declare function buildAwsPluginSubscriptionLogicalName(targetKeySha256: AwsPluginSha256): AwsPluginSubscriptionLogicalName;
248
+ /** Builds the path-free resource logical name from stable and target SHA-256 values. */
249
+ export declare function buildAwsPluginResourceLogicalName(stableKeySha256: AwsPluginSha256, targetKeySha256: AwsPluginSha256): AwsPluginResourceLogicalName;
250
+ /** Browser-safe SHA-256 used to bind stable and target identity to logical names. */
251
+ export declare function sha256AwsPluginIdentity(value: string): AwsPluginSha256;
252
+ export {};
253
+ //# sourceMappingURL=pluginPublicArtifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginPublicArtifacts.d.ts","sourceRoot":"","sources":["../../src/aws/pluginPublicArtifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AWS_PLUGIN_RESOURCE_SECTIONS = exports.AWS_PLUGIN_SUBSCRIPTION_SECTIONS = exports.AWS_PLUGIN_SOURCE_ARTIFACT_TYPES = exports.AWS_PLUGIN_PUBLIC_ARTIFACT_SCHEMA_VERSION = void 0;
4
+ exports.buildAwsPluginSubscriptionLogicalName = buildAwsPluginSubscriptionLogicalName;
5
+ exports.buildAwsPluginResourceLogicalName = buildAwsPluginResourceLogicalName;
6
+ exports.sha256AwsPluginIdentity = sha256AwsPluginIdentity;
7
+ exports.AWS_PLUGIN_PUBLIC_ARTIFACT_SCHEMA_VERSION = 1;
8
+ exports.AWS_PLUGIN_SOURCE_ARTIFACT_TYPES = [
9
+ 'account-summary',
10
+ 'resource-collection',
11
+ 'ai-cost-summary',
12
+ 'relationships',
13
+ 'lifecycle',
14
+ 'recommendations',
15
+ 'recommendation-actionability',
16
+ 'commitment-analysis',
17
+ 'reliability',
18
+ 'account-governance',
19
+ ];
20
+ exports.AWS_PLUGIN_SUBSCRIPTION_SECTIONS = [
21
+ 'account-summary',
22
+ 'resources',
23
+ 'ai-cost-summary',
24
+ 'service-retirement',
25
+ 'recommendations',
26
+ 'commitment-analysis',
27
+ 'reliability',
28
+ 'account-governance',
29
+ ];
30
+ exports.AWS_PLUGIN_RESOURCE_SECTIONS = ['resource', 'relationships', 'service-retirement', 'recommendations'];
31
+ /** Builds the path-free subscription logical name from a target-key SHA-256. */
32
+ function buildAwsPluginSubscriptionLogicalName(targetKeySha256) {
33
+ return `plugin-subscription--${normalizeSha256(targetKeySha256, 'targetKeySha256')}.json.gz`;
34
+ }
35
+ /** Builds the path-free resource logical name from stable and target SHA-256 values. */
36
+ function buildAwsPluginResourceLogicalName(stableKeySha256, targetKeySha256) {
37
+ return `plugin-resource--${normalizeSha256(stableKeySha256, 'stableKeySha256')}--${normalizeSha256(targetKeySha256, 'targetKeySha256')}.json.gz`;
38
+ }
39
+ /** Browser-safe SHA-256 used to bind stable and target identity to logical names. */
40
+ function sha256AwsPluginIdentity(value) {
41
+ const words = [];
42
+ const bytes = [];
43
+ for (const character of value) {
44
+ const codePoint = character.codePointAt(0) ?? 0;
45
+ if (codePoint < 0x80)
46
+ bytes.push(codePoint);
47
+ else if (codePoint < 0x800)
48
+ bytes.push(0xc0 | (codePoint >>> 6), 0x80 | (codePoint & 0x3f));
49
+ else if (codePoint < 0x10000)
50
+ bytes.push(0xe0 | (codePoint >>> 12), 0x80 | ((codePoint >>> 6) & 0x3f), 0x80 | (codePoint & 0x3f));
51
+ else {
52
+ bytes.push(0xf0 | (codePoint >>> 18), 0x80 | ((codePoint >>> 12) & 0x3f), 0x80 | ((codePoint >>> 6) & 0x3f), 0x80 | (codePoint & 0x3f));
53
+ }
54
+ }
55
+ const bitLength = bytes.length * 8;
56
+ for (const byte of bytes)
57
+ words.push(byte);
58
+ words.push(0x80);
59
+ while (words.length % 64 !== 56)
60
+ words.push(0);
61
+ for (let index = 7; index >= 0; index--)
62
+ words.push(Math.floor(bitLength / 2 ** (index * 8)) & 0xff);
63
+ const state = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];
64
+ const constants = [
65
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
66
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
67
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
68
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
69
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
70
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
71
+ ];
72
+ const rotate = (word, bits) => (word >>> bits) | (word << (32 - bits));
73
+ for (let offset = 0; offset < words.length; offset += 64) {
74
+ const schedule = new Array(64);
75
+ for (let index = 0; index < 16; index++) {
76
+ const at = offset + index * 4;
77
+ schedule[index] = (words[at] << 24) | (words[at + 1] << 16) | (words[at + 2] << 8) | words[at + 3];
78
+ }
79
+ for (let index = 16; index < 64; index++) {
80
+ const previous = schedule[index - 15];
81
+ const recent = schedule[index - 2];
82
+ const small0 = rotate(previous, 7) ^ rotate(previous, 18) ^ (previous >>> 3);
83
+ const small1 = rotate(recent, 17) ^ rotate(recent, 19) ^ (recent >>> 10);
84
+ schedule[index] = (schedule[index - 16] + small0 + schedule[index - 7] + small1) | 0;
85
+ }
86
+ let [a, b, c, d, e, f, g, h] = state;
87
+ for (let index = 0; index < 64; index++) {
88
+ const large1 = rotate(e, 6) ^ rotate(e, 11) ^ rotate(e, 25);
89
+ const choose = (e & f) ^ (~e & g);
90
+ const temporary1 = (h + large1 + choose + constants[index] + schedule[index]) | 0;
91
+ const large0 = rotate(a, 2) ^ rotate(a, 13) ^ rotate(a, 22);
92
+ const majority = (a & b) ^ (a & c) ^ (b & c);
93
+ const temporary2 = (large0 + majority) | 0;
94
+ h = g;
95
+ g = f;
96
+ f = e;
97
+ e = (d + temporary1) | 0;
98
+ d = c;
99
+ c = b;
100
+ b = a;
101
+ a = (temporary1 + temporary2) | 0;
102
+ }
103
+ [a, b, c, d, e, f, g, h].forEach((word, index) => {
104
+ state[index] = (state[index] + word) | 0;
105
+ });
106
+ }
107
+ return state.map(word => (word >>> 0).toString(16).padStart(8, '0')).join('');
108
+ }
109
+ function normalizeSha256(value, field) {
110
+ const normalized = value.trim().toLowerCase();
111
+ if (!/^[a-f0-9]{64}$/.test(normalized)) {
112
+ throw new Error(`${field} must be a lowercase hexadecimal SHA-256.`);
113
+ }
114
+ return normalized;
115
+ }
116
+ //# sourceMappingURL=pluginPublicArtifacts.js.map