alchemy 0.1.12 → 0.1.14
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 +12 -2
- package/lib/$.d.ts +12 -0
- package/lib/$.d.ts.map +1 -0
- package/lib/$.js +42 -0
- package/lib/$.js.map +1 -0
- package/lib/alchemize.d.ts.map +1 -1
- package/lib/alchemize.js +7 -0
- package/lib/alchemize.js.map +1 -1
- package/lib/apply.d.ts +2 -2
- package/lib/apply.d.ts.map +1 -1
- package/lib/apply.js +1 -1
- package/lib/apply.js.map +1 -1
- package/lib/aws/account-id.d.ts +5 -0
- package/lib/aws/account-id.d.ts.map +1 -0
- package/lib/aws/account-id.js +10 -0
- package/lib/aws/account-id.js.map +1 -0
- package/lib/aws/index.d.ts +1 -0
- package/lib/aws/index.d.ts.map +1 -1
- package/lib/aws/index.js +1 -0
- package/lib/aws/index.js.map +1 -1
- package/lib/aws/oidc/github-oidc-provider.d.ts +11 -0
- package/lib/aws/oidc/github-oidc-provider.d.ts.map +1 -0
- package/lib/aws/oidc/github-oidc-provider.js +22 -0
- package/lib/aws/oidc/github-oidc-provider.js.map +1 -0
- package/lib/aws/oidc/index.d.ts +3 -0
- package/lib/aws/oidc/index.d.ts.map +1 -0
- package/lib/aws/oidc/index.js +3 -0
- package/lib/aws/oidc/index.js.map +1 -0
- package/lib/aws/oidc/oidc-provider.d.ts +60 -0
- package/lib/aws/oidc/oidc-provider.d.ts.map +1 -0
- package/lib/aws/oidc/oidc-provider.js +140 -0
- package/lib/aws/oidc/oidc-provider.js.map +1 -0
- package/lib/aws/queue.d.ts +24 -0
- package/lib/aws/queue.d.ts.map +1 -1
- package/lib/aws/queue.js +6 -1
- package/lib/aws/queue.js.map +1 -1
- package/lib/aws/role.d.ts.map +1 -1
- package/lib/aws/role.js +49 -1
- package/lib/aws/role.js.map +1 -1
- package/lib/aws/ses.d.ts.map +1 -1
- package/lib/aws/ses.js +20 -28
- package/lib/aws/ses.js.map +1 -1
- package/lib/aws/table.d.ts.map +1 -1
- package/lib/aws/table.js +95 -73
- package/lib/aws/table.js.map +1 -1
- package/lib/cloudflare/api.d.ts +4 -0
- package/lib/cloudflare/api.d.ts.map +1 -1
- package/lib/cloudflare/api.js +6 -0
- package/lib/cloudflare/api.js.map +1 -1
- package/lib/cloudflare/bindings.d.ts +19 -4
- package/lib/cloudflare/bindings.d.ts.map +1 -1
- package/lib/cloudflare/bindings.js +0 -5
- package/lib/cloudflare/bindings.js.map +1 -1
- package/lib/cloudflare/durable-object-namespace.d.ts +20 -0
- package/lib/cloudflare/durable-object-namespace.d.ts.map +1 -0
- package/lib/cloudflare/durable-object-namespace.js +21 -0
- package/lib/cloudflare/durable-object-namespace.js.map +1 -0
- package/lib/cloudflare/index.d.ts +1 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +1 -0
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/kv-namespace.d.ts +3 -0
- package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
- package/lib/cloudflare/kv-namespace.js +5 -1
- package/lib/cloudflare/kv-namespace.js.map +1 -1
- package/lib/cloudflare/static-site-router.d.ts +11 -2
- package/lib/cloudflare/static-site-router.d.ts.map +1 -1
- package/lib/cloudflare/static-site-router.js +98 -76
- package/lib/cloudflare/static-site-router.js.map +1 -1
- package/lib/cloudflare/static-site.d.ts +15 -15
- package/lib/cloudflare/static-site.d.ts.map +1 -1
- package/lib/cloudflare/static-site.js +45 -47
- package/lib/cloudflare/static-site.js.map +1 -1
- package/lib/cloudflare/worker-metadata.d.ts +130 -0
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -0
- package/lib/cloudflare/worker-metadata.js +2 -0
- package/lib/cloudflare/worker-metadata.js.map +1 -0
- package/lib/cloudflare/worker-migration.d.ts +110 -0
- package/lib/cloudflare/worker-migration.d.ts.map +1 -0
- package/lib/cloudflare/worker-migration.js +11 -0
- package/lib/cloudflare/worker-migration.js.map +1 -0
- package/lib/cloudflare/worker.d.ts +34 -13
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +341 -321
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/destroy.d.ts +1 -1
- package/lib/destroy.d.ts.map +1 -1
- package/lib/destroy.js +2 -1
- package/lib/destroy.js.map +1 -1
- package/lib/esbuild.d.ts +1 -1
- package/lib/esbuild.d.ts.map +1 -1
- package/lib/esbuild.js +3 -1
- package/lib/esbuild.js.map +1 -1
- package/lib/github/client.d.ts +34 -0
- package/lib/github/client.d.ts.map +1 -0
- package/lib/github/client.js +91 -0
- package/lib/github/client.js.map +1 -0
- package/lib/github/index.d.ts +2 -0
- package/lib/github/index.d.ts.map +1 -0
- package/lib/github/index.js +2 -0
- package/lib/github/index.js.map +1 -0
- package/lib/github/secret.d.ts +46 -0
- package/lib/github/secret.d.ts.map +1 -0
- package/lib/github/secret.js +103 -0
- package/lib/github/secret.js.map +1 -0
- package/lib/global.d.ts +0 -2
- package/lib/global.d.ts.map +1 -1
- package/lib/global.js +0 -2
- package/lib/global.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/output.d.ts +4 -3
- package/lib/output.d.ts.map +1 -1
- package/lib/output.js +10 -3
- package/lib/output.js.map +1 -1
- package/lib/print.d.ts +7 -0
- package/lib/print.d.ts.map +1 -0
- package/lib/print.js +10 -0
- package/lib/print.js.map +1 -0
- package/lib/resource.d.ts +8 -4
- package/lib/resource.d.ts.map +1 -1
- package/lib/resource.js +125 -91
- package/lib/resource.js.map +1 -1
- package/lib/scope.d.ts +3 -0
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +4 -12
- package/lib/scope.js.map +1 -1
- package/lib/utils/retry.d.ts +13 -0
- package/lib/utils/retry.d.ts.map +1 -0
- package/lib/utils/retry.js +31 -0
- package/lib/utils/retry.js.map +1 -0
- package/package.json +12 -3
- package/src/$.ts +69 -0
- package/src/alchemize.ts +12 -0
- package/src/apply.ts +4 -4
- package/src/aws/account-id.ts +11 -0
- package/src/aws/index.ts +1 -0
- package/src/aws/oidc/github-oidc-provider.ts +34 -0
- package/src/aws/oidc/index.ts +2 -0
- package/src/aws/oidc/oidc-provider.ts +253 -0
- package/src/aws/queue.ts +23 -1
- package/src/aws/role.ts +69 -0
- package/src/aws/ses.ts +27 -31
- package/src/aws/table.ts +113 -82
- package/src/cloudflare/api.ts +6 -0
- package/src/cloudflare/bindings.ts +43 -26
- package/src/cloudflare/durable-object-namespace.ts +37 -0
- package/src/cloudflare/index.ts +1 -0
- package/src/cloudflare/kv-namespace.ts +12 -1
- package/src/cloudflare/static-site-router.ts +124 -82
- package/src/cloudflare/static-site.ts +66 -69
- package/src/cloudflare/worker-metadata.ts +154 -0
- package/src/cloudflare/worker-migration.ts +145 -0
- package/src/cloudflare/worker.ts +557 -429
- package/src/destroy.ts +2 -2
- package/src/esbuild.ts +3 -0
- package/src/github/client.ts +115 -0
- package/src/github/index.ts +1 -0
- package/src/github/secret.ts +172 -0
- package/src/global.ts +0 -3
- package/src/index.ts +2 -1
- package/src/output.ts +24 -8
- package/src/print.ts +18 -0
- package/src/resource.ts +156 -115
- package/src/scope.ts +7 -12
- package/src/utils/retry.ts +36 -0
package/lib/print.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"print.js","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,KAAM,SAAQ,QAAQ,CACjC,OAAO,EACP;IACE,YAAY,EAAE,IAAI;CACnB,EACD,KAAK,EACH,GAAG,EACH,MAEC,EACD,EAAE;IACF,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CACF;CAAG"}
|
package/lib/resource.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { type ApplyOptions } from "./apply";
|
|
2
2
|
import type { DestroyOptions } from "./destroy";
|
|
3
3
|
import type { Inputs, Input as input } from "./input";
|
|
4
|
-
import { type Export, type Output, type
|
|
5
|
-
import { Scope as IScope } from "./scope";
|
|
4
|
+
import { type Export, type Output, type Resolved } from "./output";
|
|
5
|
+
import { type Scope as IScope } from "./scope";
|
|
6
6
|
import type { State, StateStore } from "./state";
|
|
7
7
|
export type ResourceID = string;
|
|
8
|
+
export type ResourceFQN = string;
|
|
8
9
|
export type ResourceType = string;
|
|
9
10
|
export declare const ResourceID: unique symbol;
|
|
11
|
+
export declare const ResourceFQN: unique symbol;
|
|
12
|
+
export declare const ResourceHandle: unique symbol;
|
|
10
13
|
export declare const Provider: unique symbol;
|
|
11
14
|
export declare const Input: unique symbol;
|
|
12
15
|
export declare const Value: unique symbol;
|
|
@@ -28,11 +31,12 @@ export type Resource<In extends any[] = any[], Out = any> = {
|
|
|
28
31
|
[Apply]: <O>(value: Out) => O;
|
|
29
32
|
[Provide]: (value: Out) => void;
|
|
30
33
|
[Options]: ProviderOptions;
|
|
31
|
-
} & Output<Out> & Export<
|
|
34
|
+
} & Output<Out> & Export<Resolved<Out>>;
|
|
32
35
|
export interface BaseContext {
|
|
33
36
|
quiet: boolean;
|
|
34
37
|
stage: string;
|
|
35
38
|
resourceID: ResourceID;
|
|
39
|
+
resourceFQN: ResourceFQN;
|
|
36
40
|
scope: IScope;
|
|
37
41
|
get<T>(key: string): Promise<T | undefined>;
|
|
38
42
|
set<T>(key: string, value: T): Promise<void>;
|
|
@@ -62,6 +66,6 @@ export type Provider<Type extends ResourceType = ResourceType, In extends any[]
|
|
|
62
66
|
delete(stage: string, scope: IScope | undefined, resourceID: ResourceID, state: State, inputs: Inputs<In>, options: DestroyOptions): Promise<void>;
|
|
63
67
|
} & (new (id: string, ...inputs: [...Inputs<In>, ...any[]]) => Resource<In, Out>);
|
|
64
68
|
export declare function isResource(value: any): value is Resource;
|
|
65
|
-
export declare function Resource<
|
|
69
|
+
export declare function Resource<Args extends any[], Out>(type: string, options: Partial<ProviderOptions>, func: (ctx: Context<Out>, ...args: Args) => Promise<input<Out> | void> | input<Out> | void): Provider<string, Args, Awaited<Out>>;
|
|
66
70
|
export declare function Resource<const Type extends ResourceType, Args extends any[], Out>(type: Type, func: (ctx: Context<Out>, ...args: Args) => Promise<input<Out> | void> | input<Out> | void): Provider<Type, Args, Awaited<Out>>;
|
|
67
71
|
//# sourceMappingURL=resource.d.ts.map
|
package/lib/resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAe,KAAK,
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/lib/resource.js
CHANGED
|
@@ -2,8 +2,10 @@ import { alchemize } from "./alchemize";
|
|
|
2
2
|
import { apply } from "./apply";
|
|
3
3
|
import { defaultStateStore, deletions, providers } from "./global";
|
|
4
4
|
import { OutputChain } from "./output";
|
|
5
|
-
import {
|
|
5
|
+
import { getScope, pushScope } from "./scope";
|
|
6
6
|
export const ResourceID = Symbol.for("ResourceID");
|
|
7
|
+
export const ResourceFQN = Symbol.for("ResourceFQN");
|
|
8
|
+
export const ResourceHandle = Symbol.for("ResourceHandle");
|
|
7
9
|
export const Provider = Symbol.for("Provider");
|
|
8
10
|
export const Input = Symbol.for("Input");
|
|
9
11
|
export const Value = Symbol.for("Value");
|
|
@@ -14,6 +16,8 @@ export const Options = Symbol.for("Options");
|
|
|
14
16
|
// properties that pierce through the Proxy
|
|
15
17
|
const OrthogonalProperties = [
|
|
16
18
|
ResourceID,
|
|
19
|
+
ResourceFQN,
|
|
20
|
+
ResourceHandle,
|
|
17
21
|
Provider,
|
|
18
22
|
Input,
|
|
19
23
|
Value,
|
|
@@ -25,6 +29,9 @@ const OrthogonalProperties = [
|
|
|
25
29
|
export function isResource(value) {
|
|
26
30
|
return value?.[ResourceID] !== undefined;
|
|
27
31
|
}
|
|
32
|
+
const applied = new Map();
|
|
33
|
+
const destroyed = new WeakMap();
|
|
34
|
+
const i = 0;
|
|
28
35
|
export function Resource(type, ...args) {
|
|
29
36
|
if (providers.has(type)) {
|
|
30
37
|
throw new Error(`Resource ${type} already exists`);
|
|
@@ -44,7 +51,11 @@ export function Resource(type, ...args) {
|
|
|
44
51
|
// console.warn(`Resource ${id} already exists in the stack: ${stack.id}`);
|
|
45
52
|
}
|
|
46
53
|
scope.nodes.set(id, node);
|
|
54
|
+
// const resourceFQN = scope.getScopePath(id) + "/" + id;
|
|
47
55
|
this[ResourceID] = id;
|
|
56
|
+
this[ResourceHandle] = new Object();
|
|
57
|
+
// this[ResourceFQN] = resourceFQN;
|
|
58
|
+
// this[ResourceFQN] = i++;
|
|
48
59
|
this[Provider] = Resource;
|
|
49
60
|
this[Input] = input;
|
|
50
61
|
this[Value] = undefined;
|
|
@@ -64,12 +75,18 @@ export function Resource(type, ...args) {
|
|
|
64
75
|
if (OrthogonalProperties.includes(prop)) {
|
|
65
76
|
return target[prop];
|
|
66
77
|
}
|
|
78
|
+
else if (prop === "apply") {
|
|
79
|
+
return target[Apply].bind(target);
|
|
80
|
+
}
|
|
67
81
|
else {
|
|
68
82
|
return target[Apply]((value) => value[prop]);
|
|
69
83
|
}
|
|
70
84
|
},
|
|
71
85
|
});
|
|
72
86
|
}
|
|
87
|
+
apply(fn) {
|
|
88
|
+
return this[Apply](fn);
|
|
89
|
+
}
|
|
73
90
|
[Apply](fn) {
|
|
74
91
|
return new OutputChain(this, fn);
|
|
75
92
|
}
|
|
@@ -98,106 +115,122 @@ export function Resource(type, ...args) {
|
|
|
98
115
|
static async update(stage, resource, deps, inputs, stateStore, options) {
|
|
99
116
|
// const stack = resource[ResourceStack];
|
|
100
117
|
const resourceID = resource[ResourceID];
|
|
101
|
-
let resourceState = await stateStore.get(resourceID);
|
|
102
|
-
if (resourceState === undefined) {
|
|
103
|
-
resourceState = {
|
|
104
|
-
provider: type,
|
|
105
|
-
status: "creating",
|
|
106
|
-
data: {},
|
|
107
|
-
output: undefined,
|
|
108
|
-
deps: [...deps],
|
|
109
|
-
inputs,
|
|
110
|
-
};
|
|
111
|
-
await stateStore.set(resourceID, resourceState);
|
|
112
|
-
}
|
|
113
118
|
const resourceFQN = `${resource[Scope].getScopePath(stage)}/${resourceID}`;
|
|
114
|
-
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
return resourceState.output;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
const event = resourceState.status === "creating" ? "create" : "update";
|
|
129
|
-
resourceState.status = event === "create" ? "creating" : "updating";
|
|
130
|
-
resourceState.oldInputs = resourceState.inputs;
|
|
131
|
-
resourceState.inputs = inputs;
|
|
132
|
-
if (!options?.quiet) {
|
|
133
|
-
console.log(`${event === "create" ? "Create" : "Update"}: ${resourceFQN}`);
|
|
119
|
+
const cacheKey = resource[ResourceHandle];
|
|
120
|
+
if (!applied.has(cacheKey)) {
|
|
121
|
+
let res, rej;
|
|
122
|
+
const promise = new Promise((resolve, reject) => {
|
|
123
|
+
res = resolve;
|
|
124
|
+
rej = reject;
|
|
125
|
+
});
|
|
126
|
+
applied.set(cacheKey, promise);
|
|
127
|
+
update().then(res).catch(rej);
|
|
128
|
+
return promise;
|
|
134
129
|
}
|
|
135
|
-
await
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
130
|
+
return await applied.get(cacheKey);
|
|
131
|
+
async function update() {
|
|
132
|
+
let resourceState = await stateStore.get(resourceID);
|
|
133
|
+
if (resourceState === undefined) {
|
|
134
|
+
resourceState = {
|
|
135
|
+
provider: type,
|
|
136
|
+
status: "creating",
|
|
137
|
+
data: {},
|
|
138
|
+
output: undefined,
|
|
139
|
+
deps: [...deps],
|
|
140
|
+
inputs,
|
|
141
|
+
};
|
|
142
|
+
await stateStore.set(resourceID, resourceState);
|
|
143
|
+
}
|
|
144
|
+
// Skip update if inputs haven't changed and resource is in a stable state
|
|
145
|
+
if (resourceState.status === "created" ||
|
|
146
|
+
resourceState.status === "updated") {
|
|
147
|
+
if (JSON.stringify(resourceState.inputs) === JSON.stringify(inputs) &&
|
|
148
|
+
!resource[Options].alwaysUpdate) {
|
|
149
|
+
if (!options?.quiet) {
|
|
150
|
+
console.log(`Skip: ${resourceFQN} (no changes)`);
|
|
151
|
+
}
|
|
152
|
+
if (resourceState.output !== undefined) {
|
|
153
|
+
resource[Provide](resourceState.output);
|
|
149
154
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
get: (key) => resourceState.data[key],
|
|
160
|
-
set: async (key, value) => {
|
|
161
|
-
resourceState.data[key] = value;
|
|
162
|
-
await stateStore.set(resourceID, resourceState);
|
|
163
|
-
},
|
|
164
|
-
delete: async (key) => {
|
|
165
|
-
const value = resourceState.data[key];
|
|
166
|
-
delete resourceState.data[key];
|
|
167
|
-
await stateStore.set(resourceID, resourceState);
|
|
168
|
-
return value;
|
|
169
|
-
},
|
|
170
|
-
quiet,
|
|
171
|
-
}, ...inputs);
|
|
172
|
-
if (result === undefined) {
|
|
173
|
-
return undefined;
|
|
155
|
+
return resourceState.output;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const event = resourceState.status === "creating" ? "create" : "update";
|
|
159
|
+
resourceState.status = event === "create" ? "creating" : "updating";
|
|
160
|
+
resourceState.oldInputs = resourceState.inputs;
|
|
161
|
+
resourceState.inputs = inputs;
|
|
162
|
+
if (!options?.quiet) {
|
|
163
|
+
console.log(`${event === "create" ? "Create" : "Update"}: ${resourceFQN}`);
|
|
174
164
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
165
|
+
await stateStore.set(resourceID, resourceState);
|
|
166
|
+
let isReplaced = false;
|
|
167
|
+
const quiet = options.quiet ?? false;
|
|
168
|
+
const evaluated = await pushScope(resource[Scope], resourceID, async () => {
|
|
169
|
+
const result = await func({
|
|
170
|
+
stage,
|
|
171
|
+
resourceID,
|
|
172
|
+
resourceFQN,
|
|
173
|
+
event,
|
|
174
|
+
scope: getScope(),
|
|
175
|
+
output: resourceState.output,
|
|
176
|
+
replace: () => {
|
|
177
|
+
if (isReplaced) {
|
|
178
|
+
console.warn(`Resource ${type} ${resourceFQN} is already marked as REPLACE`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
isReplaced = true;
|
|
182
|
+
deletions.push({
|
|
183
|
+
id: resourceID,
|
|
184
|
+
data: {
|
|
185
|
+
...resourceState.data,
|
|
186
|
+
},
|
|
187
|
+
inputs: inputs,
|
|
188
|
+
});
|
|
189
|
+
},
|
|
190
|
+
get: (key) => resourceState.data[key],
|
|
191
|
+
set: async (key, value) => {
|
|
192
|
+
resourceState.data[key] = value;
|
|
193
|
+
await stateStore.set(resourceID, resourceState);
|
|
194
|
+
},
|
|
195
|
+
delete: async (key) => {
|
|
196
|
+
const value = resourceState.data[key];
|
|
197
|
+
delete resourceState.data[key];
|
|
198
|
+
await stateStore.set(resourceID, resourceState);
|
|
199
|
+
return value;
|
|
200
|
+
},
|
|
201
|
+
quiet,
|
|
202
|
+
}, ...inputs);
|
|
203
|
+
if (result === undefined) {
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
const evaluated = await apply(result, {
|
|
207
|
+
stage,
|
|
208
|
+
scope: getScope(),
|
|
209
|
+
quiet,
|
|
210
|
+
});
|
|
211
|
+
return evaluated;
|
|
212
|
+
});
|
|
213
|
+
if (!options?.quiet) {
|
|
214
|
+
console.log(`${event === "create" ? "Created" : "Updated"}: ${resourceFQN}`);
|
|
215
|
+
}
|
|
216
|
+
await stateStore.set(resourceID, {
|
|
217
|
+
provider: type,
|
|
218
|
+
data: resourceState.data,
|
|
219
|
+
status: event === "create" ? "created" : "updated",
|
|
220
|
+
output: evaluated,
|
|
221
|
+
inputs,
|
|
222
|
+
deps: [...deps],
|
|
179
223
|
});
|
|
224
|
+
if (evaluated !== undefined) {
|
|
225
|
+
resource[Provide](evaluated);
|
|
226
|
+
}
|
|
180
227
|
return evaluated;
|
|
181
|
-
});
|
|
182
|
-
if (!options?.quiet) {
|
|
183
|
-
console.log(`${event === "create" ? "Created" : "Updated"}: ${resourceFQN}`);
|
|
184
|
-
}
|
|
185
|
-
await stateStore.set(resourceID, {
|
|
186
|
-
provider: type,
|
|
187
|
-
data: resourceState.data,
|
|
188
|
-
status: event === "create" ? "created" : "updated",
|
|
189
|
-
output: evaluated,
|
|
190
|
-
inputs,
|
|
191
|
-
deps: [...deps],
|
|
192
|
-
});
|
|
193
|
-
if (evaluated !== undefined) {
|
|
194
|
-
resource[Provide](evaluated);
|
|
195
228
|
}
|
|
196
|
-
return evaluated;
|
|
197
229
|
}
|
|
198
230
|
static async delete(stage, scope, resourceID, state, inputs, options) {
|
|
231
|
+
const { Scope } = await import("./scope");
|
|
199
232
|
const resourceFQN = `${scope.getScopePath(stage)}/${resourceID}`;
|
|
200
|
-
const nestedScope = new
|
|
233
|
+
const nestedScope = new Scope(resourceID, scope);
|
|
201
234
|
await alchemize({
|
|
202
235
|
mode: "destroy",
|
|
203
236
|
stage,
|
|
@@ -213,6 +246,7 @@ export function Resource(type, ...args) {
|
|
|
213
246
|
stage,
|
|
214
247
|
scope,
|
|
215
248
|
resourceID: resourceID,
|
|
249
|
+
resourceFQN: resourceFQN,
|
|
216
250
|
event: "delete",
|
|
217
251
|
output: state.output,
|
|
218
252
|
replace() {
|
package/lib/resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAqB,KAAK,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnE,OAAO,EAA4B,WAAW,
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/lib/scope.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Output } from "./output";
|
|
1
2
|
import type { Provider, Resource } from "./resource";
|
|
2
3
|
export declare class Scope {
|
|
3
4
|
readonly scopeName: string | null;
|
|
@@ -6,9 +7,11 @@ export declare class Scope {
|
|
|
6
7
|
provider: Provider<any, any[], any>;
|
|
7
8
|
resource: Resource<any, any>;
|
|
8
9
|
}>;
|
|
10
|
+
readonly callbacks: Output<void>[];
|
|
9
11
|
constructor(scopeName?: string | null, parent?: Scope | undefined);
|
|
10
12
|
getScopePath(root: string): string;
|
|
11
13
|
}
|
|
14
|
+
export declare const rootScope: Scope;
|
|
12
15
|
export declare function getScope(): Scope;
|
|
13
16
|
export declare function withScope<T>(scope: Scope, fn: () => T | Promise<T>): Promise<T>;
|
|
14
17
|
export declare function pushScope<T>(parent: Scope, scopeName: string, fn: () => T | Promise<T>): Promise<T>;
|
package/lib/scope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAIjE,qBAAa,KAAK;aAYE,SAAS,EAAE,MAAM,GAAG,IAAI;aACxB,MAAM,EAAE,KAAK,GAAG,SAAS;IAZ3C,SAAgB,KAAK;kBAGP,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC;kBACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;OAE5B;IAEJ,SAAgB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAM;gBAG7B,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,MAAM,GAAE,KAAK,GAAG,SAAqB;IAGhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAM1C;AAED,eAAO,MAAM,SAAS,OAAkB,CAAC;AAEzC,wBAAgB,QAAQ,IAAI,KAAK,CAEhC;AAED,wBAAgB,SAAS,CAAC,CAAC,EACzB,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,wBAAgB,SAAS,CAAC,CAAC,EACzB,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAEZ"}
|
package/lib/scope.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { rootScope } from "./global";
|
|
4
|
-
const scopeGlobal = new Map();
|
|
5
3
|
const scopeStorage = new AsyncLocalStorage();
|
|
6
4
|
export class Scope {
|
|
7
5
|
scopeName;
|
|
8
6
|
parent;
|
|
9
7
|
nodes = new Map();
|
|
8
|
+
callbacks = [];
|
|
10
9
|
constructor(scopeName = null, parent = undefined) {
|
|
11
10
|
this.scopeName = scopeName;
|
|
12
11
|
this.parent = parent;
|
|
@@ -18,21 +17,14 @@ export class Scope {
|
|
|
18
17
|
return this.scopeName ? path.join(parentPath, this.scopeName) : parentPath;
|
|
19
18
|
}
|
|
20
19
|
}
|
|
20
|
+
export const rootScope = new Scope(null);
|
|
21
21
|
export function getScope() {
|
|
22
22
|
return scopeStorage.getStore() ?? rootScope;
|
|
23
23
|
}
|
|
24
24
|
export function withScope(scope, fn) {
|
|
25
|
-
return scopeStorage.run(scope, async () =>
|
|
26
|
-
try {
|
|
27
|
-
return await fn();
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
throw error;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
25
|
+
return scopeStorage.run(scope, async () => fn());
|
|
33
26
|
}
|
|
34
27
|
export function pushScope(parent, scopeName, fn) {
|
|
35
|
-
|
|
36
|
-
return withScope(newScope, fn);
|
|
28
|
+
return scopeStorage.run(new Scope(scopeName, parent), async () => fn());
|
|
37
29
|
}
|
|
38
30
|
//# sourceMappingURL=scope.js.map
|
package/lib/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAS,CAAC;AAEpD,MAAM,OAAO,KAAK;IAYE;IACA;IAZF,KAAK,GAAG,IAAI,GAAG,EAM5B,CAAC;IAEY,SAAS,GAAmB,EAAE,CAAC;IAE/C,YACkB,YAA2B,IAAI,EAC/B,SAA4B,SAAS;QADrC,cAAS,GAAT,SAAS,CAAsB;QAC/B,WAAM,GAAN,MAAM,CAA+B;IACpD,CAAC;IAEG,YAAY,CAAC,IAAY;QAC9B,yCAAyC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,mEAAmE;QACnE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAEzC,MAAM,UAAU,QAAQ;IACtB,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAY,EACZ,EAAwB;IAExB,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAAa,EACb,SAAiB,EACjB,EAAwB;IAExB,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility function for exponential backoff retry
|
|
3
|
+
* Retries an operation with exponential backoff when a retryable error occurs
|
|
4
|
+
*
|
|
5
|
+
* @param operation The async operation to execute and potentially retry
|
|
6
|
+
* @param isRetryable Function to determine if an error should trigger a retry
|
|
7
|
+
* @param maxAttempts Maximum number of attempts before giving up
|
|
8
|
+
* @param initialDelayMs Initial delay in milliseconds before first retry
|
|
9
|
+
* @returns Result of the operation
|
|
10
|
+
* @throws The last error encountered if all retries fail
|
|
11
|
+
*/
|
|
12
|
+
export declare function withExponentialBackoff<T>(operation: () => Promise<T>, isRetryable: (error: any) => boolean, maxAttempts?: number, initialDelayMs?: number): Promise<T>;
|
|
13
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,EACpC,WAAW,SAAI,EACf,cAAc,SAAM,GACnB,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility function for exponential backoff retry
|
|
3
|
+
* Retries an operation with exponential backoff when a retryable error occurs
|
|
4
|
+
*
|
|
5
|
+
* @param operation The async operation to execute and potentially retry
|
|
6
|
+
* @param isRetryable Function to determine if an error should trigger a retry
|
|
7
|
+
* @param maxAttempts Maximum number of attempts before giving up
|
|
8
|
+
* @param initialDelayMs Initial delay in milliseconds before first retry
|
|
9
|
+
* @returns Result of the operation
|
|
10
|
+
* @throws The last error encountered if all retries fail
|
|
11
|
+
*/
|
|
12
|
+
export async function withExponentialBackoff(operation, isRetryable, maxAttempts = 5, initialDelayMs = 100) {
|
|
13
|
+
let attempt = 0;
|
|
14
|
+
let delay = initialDelayMs;
|
|
15
|
+
while (true) {
|
|
16
|
+
try {
|
|
17
|
+
return await operation();
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
attempt++;
|
|
21
|
+
if (attempt >= maxAttempts || !isRetryable(error)) {
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
// Exponential backoff with jitter
|
|
25
|
+
const jitter = Math.random() * 0.1 * delay;
|
|
26
|
+
await new Promise((resolve) => setTimeout(resolve, delay + jitter));
|
|
27
|
+
delay *= 2; // Double the delay for next attempt
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAA2B,EAC3B,WAAoC,EACpC,WAAW,GAAG,CAAC,EACf,cAAc,GAAG,GAAG;IAEpB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,cAAc,CAAC;IAE3B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,kCAAkC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;YAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;YACpE,KAAK,IAAI,CAAC,CAAC,CAAC,oCAAoC;QAClD,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alchemy",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "./lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"check": "tsc -b ./tsconfig.
|
|
7
|
+
"check": "tsc -b ./tsconfig.all.json",
|
|
8
8
|
"publish:npm": "rm -rf ./lib && tsc -b && npm publish"
|
|
9
9
|
},
|
|
10
10
|
"files": ["lib", "src"],
|
|
@@ -12,10 +12,12 @@
|
|
|
12
12
|
".": "./lib/index.js",
|
|
13
13
|
"./agent": "./lib/agent/index.js",
|
|
14
14
|
"./aws": "./lib/aws/index.js",
|
|
15
|
+
"./aws/oidc": "./lib/aws/oidc/index.js",
|
|
15
16
|
"./cloudflare": "./lib/cloudflare/index.js",
|
|
16
17
|
"./esbuild": "./lib/esbuild.js",
|
|
17
18
|
"./markdown": "./lib/markdown/index.js",
|
|
18
19
|
"./fs": "./lib/fs.js",
|
|
20
|
+
"./github": "./lib/github/index.js",
|
|
19
21
|
"./stripe": "./lib/stripe/index.js",
|
|
20
22
|
"./typescript": "./lib/typescript/index.js"
|
|
21
23
|
},
|
|
@@ -28,11 +30,15 @@
|
|
|
28
30
|
"@aws-sdk/client-sagemaker": "^3.0.0",
|
|
29
31
|
"@aws-sdk/client-ses": "^3.0.0",
|
|
30
32
|
"@aws-sdk/client-sesv2": "^3.0.0",
|
|
31
|
-
"@aws-sdk/client-sqs": "^3.0.
|
|
33
|
+
"@aws-sdk/client-sqs": "^3.0.0",
|
|
34
|
+
"@aws-sdk/client-sts": "^3.0.0",
|
|
35
|
+
"@octokit/rest": "^21.1.1",
|
|
32
36
|
"ai": "^4.1.16",
|
|
33
37
|
"diff": "^7.0.0",
|
|
34
38
|
"esbuild": "^0.24.2",
|
|
35
39
|
"glob": "^10.3.10",
|
|
40
|
+
"hono": "^4.7.4",
|
|
41
|
+
"libsodium-wrappers": "^0.7.15",
|
|
36
42
|
"jszip": "^3.0.0",
|
|
37
43
|
"stripe": "^17.7.0",
|
|
38
44
|
"turndown": "^7.2.0",
|
|
@@ -43,12 +49,15 @@
|
|
|
43
49
|
"@ai-sdk/openai": "^1.1.9",
|
|
44
50
|
"@biomejs/biome": "^1.9.4",
|
|
45
51
|
"@cloudflare/workers-types": "^4.20250303.0",
|
|
52
|
+
"@octokit/rest": "^21.1.1",
|
|
46
53
|
"@types/bun": "latest",
|
|
47
54
|
"@types/diff": "^5.0.0",
|
|
55
|
+
"@types/libsodium-wrappers": "^0.7.14",
|
|
48
56
|
"@types/node": "latest",
|
|
49
57
|
"@types/turndown": "^5.0.5",
|
|
50
58
|
"ai": "^4.1.16",
|
|
51
59
|
"change-case": "^5.4.4",
|
|
60
|
+
"libsodium-wrappers": "^0.7.15",
|
|
52
61
|
"openpgp": "^6.1.0",
|
|
53
62
|
"turndown": "^7.2.0",
|
|
54
63
|
"typescript": "latest",
|