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.
Files changed (168) hide show
  1. package/README.md +12 -2
  2. package/lib/$.d.ts +12 -0
  3. package/lib/$.d.ts.map +1 -0
  4. package/lib/$.js +42 -0
  5. package/lib/$.js.map +1 -0
  6. package/lib/alchemize.d.ts.map +1 -1
  7. package/lib/alchemize.js +7 -0
  8. package/lib/alchemize.js.map +1 -1
  9. package/lib/apply.d.ts +2 -2
  10. package/lib/apply.d.ts.map +1 -1
  11. package/lib/apply.js +1 -1
  12. package/lib/apply.js.map +1 -1
  13. package/lib/aws/account-id.d.ts +5 -0
  14. package/lib/aws/account-id.d.ts.map +1 -0
  15. package/lib/aws/account-id.js +10 -0
  16. package/lib/aws/account-id.js.map +1 -0
  17. package/lib/aws/index.d.ts +1 -0
  18. package/lib/aws/index.d.ts.map +1 -1
  19. package/lib/aws/index.js +1 -0
  20. package/lib/aws/index.js.map +1 -1
  21. package/lib/aws/oidc/github-oidc-provider.d.ts +11 -0
  22. package/lib/aws/oidc/github-oidc-provider.d.ts.map +1 -0
  23. package/lib/aws/oidc/github-oidc-provider.js +22 -0
  24. package/lib/aws/oidc/github-oidc-provider.js.map +1 -0
  25. package/lib/aws/oidc/index.d.ts +3 -0
  26. package/lib/aws/oidc/index.d.ts.map +1 -0
  27. package/lib/aws/oidc/index.js +3 -0
  28. package/lib/aws/oidc/index.js.map +1 -0
  29. package/lib/aws/oidc/oidc-provider.d.ts +60 -0
  30. package/lib/aws/oidc/oidc-provider.d.ts.map +1 -0
  31. package/lib/aws/oidc/oidc-provider.js +140 -0
  32. package/lib/aws/oidc/oidc-provider.js.map +1 -0
  33. package/lib/aws/queue.d.ts +24 -0
  34. package/lib/aws/queue.d.ts.map +1 -1
  35. package/lib/aws/queue.js +6 -1
  36. package/lib/aws/queue.js.map +1 -1
  37. package/lib/aws/role.d.ts.map +1 -1
  38. package/lib/aws/role.js +49 -1
  39. package/lib/aws/role.js.map +1 -1
  40. package/lib/aws/ses.d.ts.map +1 -1
  41. package/lib/aws/ses.js +20 -28
  42. package/lib/aws/ses.js.map +1 -1
  43. package/lib/aws/table.d.ts.map +1 -1
  44. package/lib/aws/table.js +95 -73
  45. package/lib/aws/table.js.map +1 -1
  46. package/lib/cloudflare/api.d.ts +4 -0
  47. package/lib/cloudflare/api.d.ts.map +1 -1
  48. package/lib/cloudflare/api.js +6 -0
  49. package/lib/cloudflare/api.js.map +1 -1
  50. package/lib/cloudflare/bindings.d.ts +19 -4
  51. package/lib/cloudflare/bindings.d.ts.map +1 -1
  52. package/lib/cloudflare/bindings.js +0 -5
  53. package/lib/cloudflare/bindings.js.map +1 -1
  54. package/lib/cloudflare/durable-object-namespace.d.ts +20 -0
  55. package/lib/cloudflare/durable-object-namespace.d.ts.map +1 -0
  56. package/lib/cloudflare/durable-object-namespace.js +21 -0
  57. package/lib/cloudflare/durable-object-namespace.js.map +1 -0
  58. package/lib/cloudflare/index.d.ts +1 -0
  59. package/lib/cloudflare/index.d.ts.map +1 -1
  60. package/lib/cloudflare/index.js +1 -0
  61. package/lib/cloudflare/index.js.map +1 -1
  62. package/lib/cloudflare/kv-namespace.d.ts +3 -0
  63. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  64. package/lib/cloudflare/kv-namespace.js +5 -1
  65. package/lib/cloudflare/kv-namespace.js.map +1 -1
  66. package/lib/cloudflare/static-site-router.d.ts +11 -2
  67. package/lib/cloudflare/static-site-router.d.ts.map +1 -1
  68. package/lib/cloudflare/static-site-router.js +98 -76
  69. package/lib/cloudflare/static-site-router.js.map +1 -1
  70. package/lib/cloudflare/static-site.d.ts +15 -15
  71. package/lib/cloudflare/static-site.d.ts.map +1 -1
  72. package/lib/cloudflare/static-site.js +45 -47
  73. package/lib/cloudflare/static-site.js.map +1 -1
  74. package/lib/cloudflare/worker-metadata.d.ts +130 -0
  75. package/lib/cloudflare/worker-metadata.d.ts.map +1 -0
  76. package/lib/cloudflare/worker-metadata.js +2 -0
  77. package/lib/cloudflare/worker-metadata.js.map +1 -0
  78. package/lib/cloudflare/worker-migration.d.ts +110 -0
  79. package/lib/cloudflare/worker-migration.d.ts.map +1 -0
  80. package/lib/cloudflare/worker-migration.js +11 -0
  81. package/lib/cloudflare/worker-migration.js.map +1 -0
  82. package/lib/cloudflare/worker.d.ts +34 -13
  83. package/lib/cloudflare/worker.d.ts.map +1 -1
  84. package/lib/cloudflare/worker.js +341 -321
  85. package/lib/cloudflare/worker.js.map +1 -1
  86. package/lib/destroy.d.ts +1 -1
  87. package/lib/destroy.d.ts.map +1 -1
  88. package/lib/destroy.js +2 -1
  89. package/lib/destroy.js.map +1 -1
  90. package/lib/esbuild.d.ts +1 -1
  91. package/lib/esbuild.d.ts.map +1 -1
  92. package/lib/esbuild.js +3 -1
  93. package/lib/esbuild.js.map +1 -1
  94. package/lib/github/client.d.ts +34 -0
  95. package/lib/github/client.d.ts.map +1 -0
  96. package/lib/github/client.js +91 -0
  97. package/lib/github/client.js.map +1 -0
  98. package/lib/github/index.d.ts +2 -0
  99. package/lib/github/index.d.ts.map +1 -0
  100. package/lib/github/index.js +2 -0
  101. package/lib/github/index.js.map +1 -0
  102. package/lib/github/secret.d.ts +46 -0
  103. package/lib/github/secret.d.ts.map +1 -0
  104. package/lib/github/secret.js +103 -0
  105. package/lib/github/secret.js.map +1 -0
  106. package/lib/global.d.ts +0 -2
  107. package/lib/global.d.ts.map +1 -1
  108. package/lib/global.js +0 -2
  109. package/lib/global.js.map +1 -1
  110. package/lib/index.d.ts +2 -0
  111. package/lib/index.d.ts.map +1 -1
  112. package/lib/index.js +2 -0
  113. package/lib/index.js.map +1 -1
  114. package/lib/output.d.ts +4 -3
  115. package/lib/output.d.ts.map +1 -1
  116. package/lib/output.js +10 -3
  117. package/lib/output.js.map +1 -1
  118. package/lib/print.d.ts +7 -0
  119. package/lib/print.d.ts.map +1 -0
  120. package/lib/print.js +10 -0
  121. package/lib/print.js.map +1 -0
  122. package/lib/resource.d.ts +8 -4
  123. package/lib/resource.d.ts.map +1 -1
  124. package/lib/resource.js +125 -91
  125. package/lib/resource.js.map +1 -1
  126. package/lib/scope.d.ts +3 -0
  127. package/lib/scope.d.ts.map +1 -1
  128. package/lib/scope.js +4 -12
  129. package/lib/scope.js.map +1 -1
  130. package/lib/utils/retry.d.ts +13 -0
  131. package/lib/utils/retry.d.ts.map +1 -0
  132. package/lib/utils/retry.js +31 -0
  133. package/lib/utils/retry.js.map +1 -0
  134. package/package.json +12 -3
  135. package/src/$.ts +69 -0
  136. package/src/alchemize.ts +12 -0
  137. package/src/apply.ts +4 -4
  138. package/src/aws/account-id.ts +11 -0
  139. package/src/aws/index.ts +1 -0
  140. package/src/aws/oidc/github-oidc-provider.ts +34 -0
  141. package/src/aws/oidc/index.ts +2 -0
  142. package/src/aws/oidc/oidc-provider.ts +253 -0
  143. package/src/aws/queue.ts +23 -1
  144. package/src/aws/role.ts +69 -0
  145. package/src/aws/ses.ts +27 -31
  146. package/src/aws/table.ts +113 -82
  147. package/src/cloudflare/api.ts +6 -0
  148. package/src/cloudflare/bindings.ts +43 -26
  149. package/src/cloudflare/durable-object-namespace.ts +37 -0
  150. package/src/cloudflare/index.ts +1 -0
  151. package/src/cloudflare/kv-namespace.ts +12 -1
  152. package/src/cloudflare/static-site-router.ts +124 -82
  153. package/src/cloudflare/static-site.ts +66 -69
  154. package/src/cloudflare/worker-metadata.ts +154 -0
  155. package/src/cloudflare/worker-migration.ts +145 -0
  156. package/src/cloudflare/worker.ts +557 -429
  157. package/src/destroy.ts +2 -2
  158. package/src/esbuild.ts +3 -0
  159. package/src/github/client.ts +115 -0
  160. package/src/github/index.ts +1 -0
  161. package/src/github/secret.ts +172 -0
  162. package/src/global.ts +0 -3
  163. package/src/index.ts +2 -1
  164. package/src/output.ts +24 -8
  165. package/src/print.ts +18 -0
  166. package/src/resource.ts +156 -115
  167. package/src/scope.ts +7 -12
  168. package/src/utils/retry.ts +36 -0
@@ -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 Resolve } from "./output";
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<Resolve<Out>>;
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<const Type extends ResourceType, Args extends any[], Out>(type: Type, options: Partial<ProviderOptions>, func: (ctx: Context<Out>, ...args: Args) => Promise<input<Out> | void> | input<Out> | void): Provider<Type, Args, Awaited<Out>>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
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 { Scope as IScope, getScope, pushScope } from "./scope";
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
- // Skip update if inputs haven't changed and resource is in a stable state
115
- if (resourceState.status === "created" ||
116
- resourceState.status === "updated") {
117
- if (JSON.stringify(resourceState.inputs) === JSON.stringify(inputs) &&
118
- !resource[Options].alwaysUpdate) {
119
- if (!options?.quiet) {
120
- console.log(`Skip: ${resourceFQN} (no changes)`);
121
- }
122
- if (resourceState.output !== undefined) {
123
- resource[Provide](resourceState.output);
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 stateStore.set(resourceID, resourceState);
136
- let isReplaced = false;
137
- const quiet = options.quiet ?? false;
138
- const evaluated = await pushScope(resource[Scope], resourceID, async () => {
139
- const result = await func({
140
- stage,
141
- resourceID,
142
- event,
143
- scope: getScope(),
144
- output: resourceState.output,
145
- replace: () => {
146
- if (isReplaced) {
147
- console.warn(`Resource ${type} ${resourceFQN} is already marked as REPLACE`);
148
- return;
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
- isReplaced = true;
151
- deletions.push({
152
- id: resourceID,
153
- data: {
154
- ...resourceState.data,
155
- },
156
- inputs: inputs,
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
- const evaluated = await apply(result, {
176
- stage,
177
- scope: getScope(),
178
- quiet,
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 IScope(resourceID, scope);
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() {
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
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>;
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAMjE,qBAAa,KAAK;aAUE,SAAS,EAAE,MAAM,GAAG,IAAI;aACxB,MAAM,EAAE,KAAK,GAAG,SAAS;IAV3C,SAAgB,KAAK;kBAGP,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC;kBACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;OAE5B;gBAGc,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,MAAM,GAAE,KAAK,GAAG,SAAqB;IAGhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAM1C;AAED,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,CAQZ;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,CAGZ"}
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
- const newScope = new Scope(scopeName, parent);
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;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEpD,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAS,CAAC;AAEpD,MAAM,OAAO,KAAK;IAUE;IACA;IAVF,KAAK,GAAG,IAAI,GAAG,EAM5B,CAAC;IAEJ,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,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;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAAa,EACb,SAAiB,EACjB,EAAwB;IAExB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjC,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.12",
3
+ "version": "0.1.14",
4
4
  "type": "module",
5
5
  "module": "./lib/index.js",
6
6
  "scripts": {
7
- "check": "tsc -b ./tsconfig.test.json",
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.1",
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",