alchemy 0.17.1 → 0.18.0
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/lib/ai/document.d.ts +11 -0
- package/lib/ai/document.d.ts.map +1 -1
- package/lib/ai/document.js +1 -1
- package/lib/ai/document.js.map +1 -1
- package/lib/alchemy.d.ts.map +1 -1
- package/lib/alchemy.js +1 -2
- package/lib/alchemy.js.map +1 -1
- package/lib/aws/control/client.d.ts +134 -0
- package/lib/aws/control/client.d.ts.map +1 -0
- package/lib/aws/control/client.js +232 -0
- package/lib/aws/control/client.js.map +1 -0
- package/lib/aws/control/error.d.ts +63 -0
- package/lib/aws/control/error.d.ts.map +1 -0
- package/lib/aws/control/error.js +93 -0
- package/lib/aws/control/error.js.map +1 -0
- package/lib/aws/control/index.d.ts +6 -0
- package/lib/aws/control/index.d.ts.map +1 -0
- package/lib/aws/control/index.js +6 -0
- package/lib/aws/control/index.js.map +1 -0
- package/lib/aws/control/properties.d.ts +1874 -0
- package/lib/aws/control/properties.d.ts.map +1 -0
- package/lib/aws/control/properties.js +6945 -0
- package/lib/aws/control/properties.js.map +1 -0
- package/lib/aws/control/proxy.d.ts +7 -0
- package/lib/aws/control/proxy.d.ts.map +1 -0
- package/lib/aws/control/proxy.js +29 -0
- package/lib/aws/control/proxy.js.map +1 -0
- package/lib/aws/control/resource.d.ts +110 -0
- package/lib/aws/control/resource.d.ts.map +1 -0
- package/lib/aws/control/resource.js +192 -0
- package/lib/aws/control/resource.js.map +1 -0
- package/lib/destroy.d.ts.map +1 -1
- package/lib/destroy.js +2 -2
- package/lib/destroy.js.map +1 -1
- package/lib/resource.d.ts +7 -1
- package/lib/resource.d.ts.map +1 -1
- package/lib/resource.js +20 -0
- package/lib/resource.js.map +1 -1
- package/lib/test/bun.d.ts.map +1 -1
- package/lib/test/bun.js +1 -2
- package/lib/test/bun.js.map +1 -1
- package/lib/vercel/project.d.ts.map +1 -1
- package/lib/vercel/project.js +7 -4
- package/lib/vercel/project.js.map +1 -1
- package/package.json +5 -1
- package/src/ai/document.ts +1 -1
- package/src/alchemy.ts +2 -3
- package/src/aws/control/client.ts +450 -0
- package/src/aws/control/error.ts +84 -0
- package/src/aws/control/index.ts +6 -0
- package/src/aws/control/properties.ts +6946 -0
- package/src/aws/control/proxy.ts +40 -0
- package/src/aws/control/resource.ts +346 -0
- package/src/aws/control/types.d.ts +85129 -0
- package/src/destroy.ts +4 -7
- package/src/resource.ts +32 -1
- package/src/test/bun.ts +1 -2
- package/src/vercel/project.ts +11 -4
package/lib/ai/document.d.ts
CHANGED
|
@@ -194,4 +194,15 @@ export interface Document extends DocumentProps, Resource<"docs::Document"> {
|
|
|
194
194
|
* });
|
|
195
195
|
*/
|
|
196
196
|
export declare const Document: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Document>, id: string, props: DocumentProps) => Promise<Document>);
|
|
197
|
+
/**
|
|
198
|
+
* Extracts markdown content from between ```md fences
|
|
199
|
+
* Validates that exactly one markdown code block exists
|
|
200
|
+
*
|
|
201
|
+
* @param text The text to extract markdown content from
|
|
202
|
+
* @returns The extracted markdown content or error message
|
|
203
|
+
*/
|
|
204
|
+
export declare function extractMarkdownContent(text: string): {
|
|
205
|
+
content: string;
|
|
206
|
+
error?: string;
|
|
207
|
+
};
|
|
197
208
|
//# sourceMappingURL=document.d.ts.map
|
package/lib/ai/document.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/ai/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,aAAa,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IACzE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,eAAO,MAAM,QAAQ,yFAGX,OAAO,CAAC,QAAQ,CAAC,MACnB,MAAM,SACH,aAAa,KACnB,OAAO,CAAC,QAAQ,CAAC,CAiGrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/ai/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,aAAa,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IACzE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,eAAO,MAAM,QAAQ,yFAGX,OAAO,CAAC,QAAQ,CAAC,MACnB,MAAM,SACH,aAAa,KACnB,OAAO,CAAC,QAAQ,CAAC,CAiGrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAgCA"}
|
package/lib/ai/document.js
CHANGED
|
@@ -177,7 +177,7 @@ export const Document = Resource("docs::Document", async function (id, props) {
|
|
|
177
177
|
* @param text The text to extract markdown content from
|
|
178
178
|
* @returns The extracted markdown content or error message
|
|
179
179
|
*/
|
|
180
|
-
function extractMarkdownContent(text) {
|
|
180
|
+
export function extractMarkdownContent(text) {
|
|
181
181
|
const lines = text.split("\n");
|
|
182
182
|
const startIdx = lines.findIndex((line) => line.trim() === "```md");
|
|
183
183
|
if (startIdx === -1) {
|
package/lib/ai/document.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/ai/document.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/ai/document.ts"],"names":[],"mappings":"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"}
|
package/lib/alchemy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alchemy.d.ts","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"alchemy.d.ts","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,OAAO,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAU/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC;AAE9B,eAAO,MAAM,OAAO,EAAE,OAAyB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,OAAO,EAAE,OAAO,OAAO,CAAC;IAExB;;OAEG;IACH,GAAG,EAAE,OAAO,GAAG,CAAC;IAEhB;;;;OAIG;IACH,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;;;;;;OAUG;IACH,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7E;;;;;;;;;;;;;;;;OAgBG;IACH,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrE;AA0JD,MAAM,MAAM,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD;;OAEG;IAEH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAe,GAAG,CAAC,CAAC,EAClB,GAAG,IAAI,EACH,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAC3D;IACE,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,UAAU;IACnB,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;CAC9C,GACJ,OAAO,CAAC,CAAC,CAAC,CAwDZ"}
|
package/lib/alchemy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { DestroyedSignal, destroy } from "./destroy.js";
|
|
4
4
|
import { env } from "./env.js";
|
|
5
5
|
import { ResourceFQN, ResourceID, ResourceKind, ResourceScope, ResourceSeq, } from "./resource.js";
|
|
6
6
|
import { isRuntime } from "./runtime/global.js";
|
|
@@ -187,7 +187,6 @@ async function run(...args) {
|
|
|
187
187
|
}
|
|
188
188
|
catch (error) {
|
|
189
189
|
if (!(error instanceof DestroyedSignal)) {
|
|
190
|
-
// console.log(error);
|
|
191
190
|
_scope.fail();
|
|
192
191
|
}
|
|
193
192
|
throw error;
|
package/lib/alchemy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alchemy.js","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"alchemy.js","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { AwsClient } from "aws4fetch";
|
|
2
|
+
/**
|
|
3
|
+
* Status of a Cloud Control API operation
|
|
4
|
+
*/
|
|
5
|
+
export type OperationStatus = "PENDING" | "IN_PROGRESS" | "SUCCESS" | "FAILED" | "CANCEL_IN_PROGRESS" | "CANCEL_COMPLETE";
|
|
6
|
+
/**
|
|
7
|
+
* Progress event from a Cloud Control API operation
|
|
8
|
+
*/
|
|
9
|
+
export interface ProgressEvent {
|
|
10
|
+
/**
|
|
11
|
+
* Error code if the operation failed
|
|
12
|
+
*/
|
|
13
|
+
ErrorCode?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Time when the event occurred
|
|
16
|
+
*/
|
|
17
|
+
EventTime?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Token for hooks associated with the request
|
|
20
|
+
*/
|
|
21
|
+
HooksRequestToken?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Resource identifier
|
|
24
|
+
*/
|
|
25
|
+
Identifier: string;
|
|
26
|
+
/**
|
|
27
|
+
* Operation being performed (CREATE, READ, UPDATE, DELETE)
|
|
28
|
+
*/
|
|
29
|
+
Operation?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Current status of the operation
|
|
32
|
+
*/
|
|
33
|
+
OperationStatus: OperationStatus;
|
|
34
|
+
/**
|
|
35
|
+
* Token that identifies the request
|
|
36
|
+
*/
|
|
37
|
+
RequestToken: string;
|
|
38
|
+
/**
|
|
39
|
+
* JSON string representation of the resource model
|
|
40
|
+
*/
|
|
41
|
+
ResourceModel?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Number of seconds to wait before retrying
|
|
44
|
+
*/
|
|
45
|
+
RetryAfter?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Status message providing details about the operation
|
|
48
|
+
*/
|
|
49
|
+
StatusMessage: string;
|
|
50
|
+
/**
|
|
51
|
+
* Type name of the resource
|
|
52
|
+
*/
|
|
53
|
+
TypeName?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Options for Cloud Control API requests
|
|
57
|
+
*/
|
|
58
|
+
export interface CloudControlOptions {
|
|
59
|
+
/**
|
|
60
|
+
* AWS region to use (defaults to us-east-1)
|
|
61
|
+
*/
|
|
62
|
+
region?: string;
|
|
63
|
+
/**
|
|
64
|
+
* AWS access key ID (overrides environment variable)
|
|
65
|
+
*/
|
|
66
|
+
accessKeyId?: string;
|
|
67
|
+
/**
|
|
68
|
+
* AWS secret access key (overrides environment variable)
|
|
69
|
+
*/
|
|
70
|
+
secretAccessKey?: string;
|
|
71
|
+
/**
|
|
72
|
+
* AWS session token for temporary credentials
|
|
73
|
+
*/
|
|
74
|
+
sessionToken?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Initial delay in milliseconds between polling attempts
|
|
77
|
+
*/
|
|
78
|
+
initialPollingDelay?: number;
|
|
79
|
+
/**
|
|
80
|
+
* Maximum delay in milliseconds between polling attempts
|
|
81
|
+
*/
|
|
82
|
+
maxPollingDelay?: number;
|
|
83
|
+
/**
|
|
84
|
+
* Maximum number of retries for retryable errors
|
|
85
|
+
*/
|
|
86
|
+
maxRetries?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a Cloud Control API client
|
|
90
|
+
*/
|
|
91
|
+
export declare function createCloudControlClient(options?: CloudControlOptions): Promise<CloudControlClient>;
|
|
92
|
+
export declare class CloudControlClient {
|
|
93
|
+
private readonly client;
|
|
94
|
+
private region;
|
|
95
|
+
private initialPollingDelay;
|
|
96
|
+
private maxPollingDelay;
|
|
97
|
+
private maxRetries;
|
|
98
|
+
constructor(client: AwsClient, options: CloudControlOptions);
|
|
99
|
+
/**
|
|
100
|
+
* Create a new resource
|
|
101
|
+
*/
|
|
102
|
+
createResource(typeName: string, desiredState: Record<string, any>): Promise<ProgressEvent>;
|
|
103
|
+
/**
|
|
104
|
+
* Get a resource's current state
|
|
105
|
+
*/
|
|
106
|
+
getResource(typeName: string, identifier: string): Promise<Record<string, any> | undefined>;
|
|
107
|
+
/**
|
|
108
|
+
* Update a resource
|
|
109
|
+
*/
|
|
110
|
+
updateResource(typeName: string, identifier: string, patchDocument: Record<string, any>): Promise<ProgressEvent>;
|
|
111
|
+
/**
|
|
112
|
+
* Delete a resource
|
|
113
|
+
*/
|
|
114
|
+
deleteResource(typeName: string, identifier: string): Promise<ProgressEvent>;
|
|
115
|
+
/**
|
|
116
|
+
* List resources of a given type
|
|
117
|
+
*/
|
|
118
|
+
listResources(typeName: string, nextToken?: string): Promise<{
|
|
119
|
+
ResourceDescriptions: Array<{
|
|
120
|
+
Identifier: string;
|
|
121
|
+
Properties: Record<string, any>;
|
|
122
|
+
}>;
|
|
123
|
+
NextToken?: string;
|
|
124
|
+
}>;
|
|
125
|
+
/**
|
|
126
|
+
* Poll an operation until it completes
|
|
127
|
+
*/
|
|
128
|
+
poll(requestToken: string, action?: "CreateResource" | "UpdateResource" | "DeleteResource"): Promise<ProgressEvent>;
|
|
129
|
+
sync(action: "CreateResource" | "UpdateResource" | "DeleteResource", props?: any): Promise<ProgressEvent>;
|
|
130
|
+
fetch<T>(action: string, params?: any, options?: {
|
|
131
|
+
maxRetries?: number;
|
|
132
|
+
}): Promise<T>;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aws/control/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { fromNodeProviderChain } from "@aws-sdk/credential-providers";
|
|
2
|
+
import { loadConfig } from "@aws-sdk/node-config-provider";
|
|
3
|
+
import { AwsClient } from "aws4fetch";
|
|
4
|
+
import { AlreadyExistsError, CloudControlError, ConcurrentOperationError, NetworkError, NotFoundError, RequestError, ResourceNotFoundException, ThrottlingException, UpdateFailedError, ValidationException, } from "./error.js";
|
|
5
|
+
const getRegion = loadConfig({
|
|
6
|
+
environmentVariableSelector: (env) => env.AWS_REGION || env.AWS_DEFAULT_REGION,
|
|
7
|
+
configFileSelector: (profile) => profile.region,
|
|
8
|
+
default: undefined,
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Create a Cloud Control API client
|
|
12
|
+
*/
|
|
13
|
+
export async function createCloudControlClient(options = {}) {
|
|
14
|
+
const credentials = await fromNodeProviderChain()();
|
|
15
|
+
const region = options.region ?? // 1. favor explicit region passed in
|
|
16
|
+
(await getRegion()) ?? // 2-4. resolve from AWS profile, loadConfig, and environment
|
|
17
|
+
process.env.AWS_REGION ??
|
|
18
|
+
process.env.AWS_DEFAULT_REGION;
|
|
19
|
+
if (!region) {
|
|
20
|
+
throw new Error("No region found. Please set AWS_REGION or AWS_DEFAULT_REGION in the environment or in your AWS profile.");
|
|
21
|
+
}
|
|
22
|
+
const client = new AwsClient({
|
|
23
|
+
...credentials,
|
|
24
|
+
service: "cloudcontrolapi",
|
|
25
|
+
region,
|
|
26
|
+
});
|
|
27
|
+
return new CloudControlClient(client, {
|
|
28
|
+
...options,
|
|
29
|
+
region,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export class CloudControlClient {
|
|
33
|
+
client;
|
|
34
|
+
region;
|
|
35
|
+
initialPollingDelay;
|
|
36
|
+
maxPollingDelay;
|
|
37
|
+
maxRetries;
|
|
38
|
+
constructor(client, options) {
|
|
39
|
+
this.client = client;
|
|
40
|
+
this.region = options.region || "us-east-1";
|
|
41
|
+
this.initialPollingDelay = options.initialPollingDelay || 1000;
|
|
42
|
+
this.maxPollingDelay = options.maxPollingDelay || 10000;
|
|
43
|
+
this.maxRetries = options.maxRetries || 3;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Create a new resource
|
|
47
|
+
*/
|
|
48
|
+
async createResource(typeName, desiredState) {
|
|
49
|
+
return this.sync("CreateResource", {
|
|
50
|
+
TypeName: typeName,
|
|
51
|
+
DesiredState: JSON.stringify(desiredState),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get a resource's current state
|
|
56
|
+
*/
|
|
57
|
+
async getResource(typeName, identifier) {
|
|
58
|
+
try {
|
|
59
|
+
return JSON.parse((await this.fetch("GetResource", {
|
|
60
|
+
TypeName: typeName,
|
|
61
|
+
Identifier: identifier,
|
|
62
|
+
})).ResourceDescription.Properties);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error instanceof ResourceNotFoundException) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Update a resource
|
|
73
|
+
*/
|
|
74
|
+
async updateResource(typeName, identifier, patchDocument) {
|
|
75
|
+
return this.sync("UpdateResource", {
|
|
76
|
+
TypeName: typeName,
|
|
77
|
+
Identifier: identifier,
|
|
78
|
+
PatchDocument: JSON.stringify(patchDocument),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Delete a resource
|
|
83
|
+
*/
|
|
84
|
+
async deleteResource(typeName, identifier) {
|
|
85
|
+
return this.sync("DeleteResource", {
|
|
86
|
+
TypeName: typeName,
|
|
87
|
+
Identifier: identifier,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* List resources of a given type
|
|
92
|
+
*/
|
|
93
|
+
listResources(typeName, nextToken) {
|
|
94
|
+
return this.fetch("ListResources", {
|
|
95
|
+
TypeName: typeName,
|
|
96
|
+
NextToken: nextToken,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Poll an operation until it completes
|
|
101
|
+
*/
|
|
102
|
+
async poll(requestToken, action) {
|
|
103
|
+
let delay = this.initialPollingDelay;
|
|
104
|
+
let logged = false;
|
|
105
|
+
while (true) {
|
|
106
|
+
try {
|
|
107
|
+
const response = await this.fetch("GetResourceRequestStatus", {
|
|
108
|
+
RequestToken: requestToken,
|
|
109
|
+
});
|
|
110
|
+
if (response.ProgressEvent.OperationStatus === "SUCCESS") {
|
|
111
|
+
return response.ProgressEvent;
|
|
112
|
+
}
|
|
113
|
+
if (response.ProgressEvent.OperationStatus === "FAILED") {
|
|
114
|
+
const errorCode = response.ProgressEvent.ErrorCode;
|
|
115
|
+
const progressEvent = response.ProgressEvent;
|
|
116
|
+
if (errorCode === "AlreadyExists") {
|
|
117
|
+
throw new AlreadyExistsError(progressEvent);
|
|
118
|
+
}
|
|
119
|
+
else if (errorCode === "NotFound") {
|
|
120
|
+
throw new NotFoundError(progressEvent);
|
|
121
|
+
}
|
|
122
|
+
throw new UpdateFailedError(progressEvent);
|
|
123
|
+
}
|
|
124
|
+
// Use the suggested retry delay if provided
|
|
125
|
+
const waitTime = response.ProgressEvent.RetryAfter
|
|
126
|
+
? Math.max(100, response.ProgressEvent.RetryAfter * 1000 - Date.now())
|
|
127
|
+
: delay;
|
|
128
|
+
if (!logged) {
|
|
129
|
+
logged = true;
|
|
130
|
+
console.log(`Polling for ${response.ProgressEvent.Identifier} (${response.ProgressEvent.TypeName}) to stabilize`);
|
|
131
|
+
}
|
|
132
|
+
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
133
|
+
delay = Math.min(delay * 2, this.maxPollingDelay);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (error instanceof NotFoundError && action === "DeleteResource") {
|
|
137
|
+
return error.progressEvent;
|
|
138
|
+
}
|
|
139
|
+
else if (error instanceof CloudControlError) {
|
|
140
|
+
throw error;
|
|
141
|
+
}
|
|
142
|
+
else if (error instanceof ValidationException) {
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
// For retryable errors, continue polling
|
|
146
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(delay * 2, this.maxPollingDelay)));
|
|
147
|
+
delay = Math.min(delay * 2, this.maxPollingDelay);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async sync(action, props) {
|
|
152
|
+
const { ProgressEvent } = await this.fetch(action, props);
|
|
153
|
+
return this.poll(ProgressEvent.RequestToken, action);
|
|
154
|
+
}
|
|
155
|
+
async fetch(action, params, options) {
|
|
156
|
+
let attempt = 0;
|
|
157
|
+
const maxRetries = options?.maxRetries || this.maxRetries;
|
|
158
|
+
while (true) {
|
|
159
|
+
try {
|
|
160
|
+
const args = [
|
|
161
|
+
`https://cloudcontrolapi.${this.region}.amazonaws.com/?Action=${action}&Version=2021-09-30`,
|
|
162
|
+
{
|
|
163
|
+
method: "POST",
|
|
164
|
+
headers: {
|
|
165
|
+
"content-type": "application/x-amz-json-1.0",
|
|
166
|
+
"x-amz-target": `CloudApiService.${action}`,
|
|
167
|
+
},
|
|
168
|
+
body: JSON.stringify(params),
|
|
169
|
+
},
|
|
170
|
+
];
|
|
171
|
+
const signedRequest = await this.client.sign(...args);
|
|
172
|
+
const response = await fetch(signedRequest);
|
|
173
|
+
if (!response.ok) {
|
|
174
|
+
const data = await response.json();
|
|
175
|
+
if (data.__type ===
|
|
176
|
+
"com.amazon.cloudapiservice#ResourceNotFoundException") {
|
|
177
|
+
throw new ResourceNotFoundException(response);
|
|
178
|
+
}
|
|
179
|
+
if (data.__type ===
|
|
180
|
+
"com.amazon.cloudapiservice#ConcurrentOperationException") {
|
|
181
|
+
// Extract request token from message
|
|
182
|
+
const message = data.Message || "";
|
|
183
|
+
const requestTokenMatch = message.match(/RequestToken\s+([a-fA-F0-9-]+)/);
|
|
184
|
+
if (!requestTokenMatch) {
|
|
185
|
+
throw new RequestError(response, {
|
|
186
|
+
...data,
|
|
187
|
+
message: `ConcurrentOperationException without request token: ${message}`,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
throw new ConcurrentOperationError(message, requestTokenMatch[1]);
|
|
191
|
+
}
|
|
192
|
+
if (data.__type === "com.amazon.coral.availability#ThrottlingException") {
|
|
193
|
+
throw new ThrottlingException(response, data);
|
|
194
|
+
}
|
|
195
|
+
if (data.__type === "com.amazon.coral.validate#ValidationException") {
|
|
196
|
+
throw new ValidationException(response, data);
|
|
197
|
+
}
|
|
198
|
+
throw new RequestError(response, data);
|
|
199
|
+
}
|
|
200
|
+
return (await response.json());
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
// Handle other CloudControl errors (don't retry, except ThrottlingException)
|
|
204
|
+
if (error instanceof CloudControlError &&
|
|
205
|
+
!(error instanceof ThrottlingException)) {
|
|
206
|
+
throw error;
|
|
207
|
+
}
|
|
208
|
+
// Handle retryable errors (throttling and network errors)
|
|
209
|
+
if (attempt < maxRetries) {
|
|
210
|
+
// Use exponential backoff with jitter, capped at 3 seconds
|
|
211
|
+
const baseDelay = Math.min(2 ** attempt * 1000, 3000);
|
|
212
|
+
const jitter = Math.random() * 0.1 * baseDelay;
|
|
213
|
+
const retryDelay = baseDelay + jitter;
|
|
214
|
+
const errorType = error instanceof ThrottlingException
|
|
215
|
+
? "Throttling"
|
|
216
|
+
: "Network error";
|
|
217
|
+
console.log(`${errorType} detected, retrying in ${Math.round(retryDelay)}ms (attempt ${attempt + 1}/${maxRetries + 1})`);
|
|
218
|
+
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
219
|
+
attempt++;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
// Max retries exceeded
|
|
223
|
+
if (error instanceof ThrottlingException) {
|
|
224
|
+
console.error(`Max retries (${maxRetries}) exceeded for throttling exception`);
|
|
225
|
+
throw error;
|
|
226
|
+
}
|
|
227
|
+
throw new NetworkError(error.message || "Network error during Cloud Control API request");
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aws/control/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ProgressEvent } from "./client.js";
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown by Cloud Control API operations
|
|
4
|
+
*/
|
|
5
|
+
export declare class CloudControlError extends Error {
|
|
6
|
+
readonly message: string;
|
|
7
|
+
readonly response?: Response | undefined;
|
|
8
|
+
constructor(message: string, response?: Response | undefined);
|
|
9
|
+
}
|
|
10
|
+
export declare class NetworkError extends CloudControlError {
|
|
11
|
+
}
|
|
12
|
+
export declare class RequestError extends CloudControlError {
|
|
13
|
+
readonly data: any;
|
|
14
|
+
constructor(response: Response, data: any);
|
|
15
|
+
}
|
|
16
|
+
export declare class UpdateFailedError extends CloudControlError {
|
|
17
|
+
readonly progressEvent: ProgressEvent;
|
|
18
|
+
constructor(progressEvent: ProgressEvent);
|
|
19
|
+
}
|
|
20
|
+
export declare class AlreadyExistsError extends CloudControlError {
|
|
21
|
+
readonly progressEvent: ProgressEvent;
|
|
22
|
+
constructor(progressEvent: ProgressEvent);
|
|
23
|
+
}
|
|
24
|
+
export declare class NotFoundError extends CloudControlError {
|
|
25
|
+
readonly progressEvent: ProgressEvent;
|
|
26
|
+
constructor(progressEvent: ProgressEvent);
|
|
27
|
+
}
|
|
28
|
+
export declare class ResourceNotFoundException extends CloudControlError {
|
|
29
|
+
readonly response: Response;
|
|
30
|
+
constructor(response: Response);
|
|
31
|
+
}
|
|
32
|
+
export declare class TimeoutError extends CloudControlError {
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Rate limit exceeded error - should be retried with exponential backoff
|
|
36
|
+
*/
|
|
37
|
+
export declare class ThrottlingException extends CloudControlError {
|
|
38
|
+
readonly response: Response;
|
|
39
|
+
readonly data: any;
|
|
40
|
+
constructor(response: Response, data: any);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Model validation failed error - indicates invalid resource properties
|
|
44
|
+
*/
|
|
45
|
+
export declare class ValidationException extends CloudControlError {
|
|
46
|
+
readonly response: Response;
|
|
47
|
+
readonly data: any;
|
|
48
|
+
constructor(response: Response, data: any);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A previous Cloud Control API request is still running for the same
|
|
52
|
+
* resource. These are transient and should be retried after a short delay.
|
|
53
|
+
*/
|
|
54
|
+
export declare class ConcurrentOperationError extends CloudControlError {
|
|
55
|
+
readonly message: string;
|
|
56
|
+
readonly requestToken: string;
|
|
57
|
+
/**
|
|
58
|
+
* The request token of the in-flight operation from the AWS error message.
|
|
59
|
+
* (e.g. "Concurrent operation found … with RequestToken 1234…")
|
|
60
|
+
*/
|
|
61
|
+
constructor(message: string, requestToken: string);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/aws/control/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,OAAO,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,QAAQ;gBADnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,QAAQ,YAAA;CAItC;AACD,qBAAa,YAAa,SAAQ,iBAAiB;CAAG;AACtD,qBAAa,YAAa,SAAQ,iBAAiB;aAG/B,IAAI,EAAE,GAAG;gBADzB,QAAQ,EAAE,QAAQ,EACF,IAAI,EAAE,GAAG;CAI5B;AACD,qBAAa,iBAAkB,SAAQ,iBAAiB;aAC1B,aAAa,EAAE,aAAa;gBAA5B,aAAa,EAAE,aAAa;CAGzD;AACD,qBAAa,kBAAmB,SAAQ,iBAAiB;aAC3B,aAAa,EAAE,aAAa;gBAA5B,aAAa,EAAE,aAAa;CAGzD;AACD,qBAAa,aAAc,SAAQ,iBAAiB;aACtB,aAAa,EAAE,aAAa;gBAA5B,aAAa,EAAE,aAAa;CAGzD;AACD,qBAAa,yBAA0B,SAAQ,iBAAiB;aAClC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAG/C;AACD,qBAAa,YAAa,SAAQ,iBAAiB;CAAG;AAEtD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;aAEtC,QAAQ,EAAE,QAAQ;aAClB,IAAI,EAAE,GAAG;gBADT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,GAAG;CAI5B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;aAEtC,QAAQ,EAAE,QAAQ;aAClB,IAAI,EAAE,GAAG;gBADT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,GAAG;CAI5B;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,iBAAiB;aAM3C,OAAO,EAAE,MAAM;aACf,YAAY,EAAE,MAAM;IANtC;;;OAGG;gBAEe,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM;CAIvC"}
|