alchemy 0.35.1 → 0.37.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/bin/alchemy.mjs +45102 -45100
- package/bin/alchemy.ts +1 -1
- package/bin/create-alchemy.ts +10 -4
- package/lib/cloudflare/bundle/bundle-worker.js +1 -1
- package/lib/cloudflare/bundle/bundle-worker.js.map +1 -1
- package/lib/cloudflare/d1-database.d.ts.map +1 -1
- package/lib/cloudflare/d1-database.js +0 -3
- package/lib/cloudflare/d1-database.js.map +1 -1
- package/lib/cloudflare/do-state-store/internal.d.ts.map +1 -1
- package/lib/cloudflare/do-state-store/internal.js +35 -28
- package/lib/cloudflare/do-state-store/internal.js.map +1 -1
- package/lib/cloudflare/website.d.ts.map +1 -1
- package/lib/cloudflare/website.js +28 -13
- package/lib/cloudflare/website.js.map +1 -1
- package/lib/cloudflare/worker-metadata.d.ts +8 -5
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +48 -11
- package/lib/cloudflare/worker-metadata.js.map +1 -1
- package/lib/cloudflare/worker.d.ts +18 -12
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +74 -68
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/docker/api.d.ts +185 -0
- package/lib/docker/api.d.ts.map +1 -0
- package/lib/docker/api.js +288 -0
- package/lib/docker/api.js.map +1 -0
- package/lib/docker/container.d.ts +147 -0
- package/lib/docker/container.d.ts.map +1 -0
- package/lib/docker/container.js +109 -0
- package/lib/docker/container.js.map +1 -0
- package/lib/docker/image.d.ts +92 -0
- package/lib/docker/image.d.ts.map +1 -0
- package/lib/docker/image.js +92 -0
- package/lib/docker/image.js.map +1 -0
- package/lib/docker/index.d.ts +7 -0
- package/lib/docker/index.d.ts.map +1 -0
- package/lib/docker/index.js +7 -0
- package/lib/docker/index.js.map +1 -0
- package/lib/docker/network.d.ts +62 -0
- package/lib/docker/network.d.ts.map +1 -0
- package/lib/docker/network.js +49 -0
- package/lib/docker/network.js.map +1 -0
- package/lib/docker/remote-image.d.ts +45 -0
- package/lib/docker/remote-image.d.ts.map +1 -0
- package/lib/docker/remote-image.js +36 -0
- package/lib/docker/remote-image.js.map +1 -0
- package/lib/docker/volume.d.ts +83 -0
- package/lib/docker/volume.d.ts.map +1 -0
- package/lib/docker/volume.js +76 -0
- package/lib/docker/volume.js.map +1 -0
- package/lib/os/exec.d.ts +19 -1
- package/lib/os/exec.d.ts.map +1 -1
- package/lib/os/exec.js +28 -4
- package/lib/os/exec.js.map +1 -1
- package/lib/stripe/price.d.ts +24 -0
- package/lib/stripe/price.d.ts.map +1 -1
- package/lib/stripe/price.js +30 -0
- package/lib/stripe/price.js.map +1 -1
- package/lib/util/cli.d.ts.map +1 -1
- package/lib/util/cli.js +1 -1
- package/lib/util/cli.js.map +1 -1
- package/package.json +5 -1
- package/src/cloudflare/bundle/bundle-worker.ts +1 -1
- package/src/cloudflare/d1-database.ts +0 -4
- package/src/cloudflare/do-state-store/internal.ts +45 -29
- package/src/cloudflare/website.ts +40 -16
- package/src/cloudflare/worker-metadata.ts +101 -19
- package/src/cloudflare/worker.ts +104 -148
- package/src/docker/api.ts +365 -0
- package/src/docker/container.ts +267 -0
- package/src/docker/image.ts +200 -0
- package/src/docker/index.ts +6 -0
- package/src/docker/network.ts +101 -0
- package/src/docker/remote-image.ts +83 -0
- package/src/docker/volume.ts +154 -0
- package/src/os/exec.ts +48 -6
- package/src/stripe/price.ts +47 -1
- package/src/util/cli.ts +1 -3
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Resource } from "../resource.js";
|
|
2
|
+
import { DockerApi } from "./api.js";
|
|
3
|
+
/**
|
|
4
|
+
* Create and manage a Docker Volume
|
|
5
|
+
*
|
|
6
|
+
* @see https://docs.docker.com/engine/reference/commandline/volume/
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Create a simple Docker volume
|
|
10
|
+
* const dataVolume = await Volume("data-volume", {
|
|
11
|
+
* name: "data-volume"
|
|
12
|
+
* });
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Create a Docker volume with custom driver and options
|
|
16
|
+
* const dbVolume = await Volume("db-data", {
|
|
17
|
+
* name: "db-data",
|
|
18
|
+
* driver: "local",
|
|
19
|
+
* driverOpts: {
|
|
20
|
+
* "type": "nfs",
|
|
21
|
+
* "o": "addr=10.0.0.1,rw",
|
|
22
|
+
* "device": ":/path/to/dir"
|
|
23
|
+
* },
|
|
24
|
+
* labels: [
|
|
25
|
+
* { name: "com.example.usage", value: "database-storage" },
|
|
26
|
+
* { name: "com.example.backup", value: "weekly" }
|
|
27
|
+
* ]
|
|
28
|
+
* });
|
|
29
|
+
*/
|
|
30
|
+
export const Volume = Resource("docker::Volume", async function (_id, props) {
|
|
31
|
+
// Initialize Docker API client
|
|
32
|
+
const api = new DockerApi();
|
|
33
|
+
// Process labels to ensure consistent format
|
|
34
|
+
const processedLabels = {};
|
|
35
|
+
if (props.labels) {
|
|
36
|
+
if (Array.isArray(props.labels)) {
|
|
37
|
+
// Convert array of label objects to Record
|
|
38
|
+
for (const label of props.labels) {
|
|
39
|
+
processedLabels[label.name] = label.value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Use Record directly
|
|
44
|
+
Object.assign(processedLabels, props.labels);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Handle delete phase
|
|
48
|
+
if (this.phase === "delete") {
|
|
49
|
+
if (this.output?.name) {
|
|
50
|
+
// Remove volume
|
|
51
|
+
await api.removeVolume(this.output.name);
|
|
52
|
+
}
|
|
53
|
+
// Return destroyed state
|
|
54
|
+
return this.destroy();
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// Set default driver if not provided
|
|
58
|
+
props.driver = props.driver || "local";
|
|
59
|
+
const driverOpts = props.driverOpts || {};
|
|
60
|
+
// Create the volume
|
|
61
|
+
const volumeName = await api.createVolume(props.name, props.driver, driverOpts, processedLabels);
|
|
62
|
+
// Get volume details to retrieve mountpoint
|
|
63
|
+
const volumeInfos = await api.inspectVolume(volumeName);
|
|
64
|
+
const mountpoint = volumeInfos[0].Mountpoint;
|
|
65
|
+
// Return the resource using this() to construct output
|
|
66
|
+
return this({
|
|
67
|
+
...props,
|
|
68
|
+
id: volumeName,
|
|
69
|
+
mountpoint,
|
|
70
|
+
createdAt: Date.now(),
|
|
71
|
+
labels: Array.isArray(props.labels) ? props.labels : undefined,
|
|
72
|
+
driverOpts: props.driverOpts,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=volume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume.js","sourceRoot":"","sources":["../../src/docker/volume.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA+DrC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAC5B,gBAAgB,EAChB,KAAK,WAEH,GAAW,EACX,KAAkB;IAElB,+BAA+B;IAC/B,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;IAE5B,6CAA6C;IAC7C,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,2CAA2C;YAC3C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACtB,gBAAgB;YAChB,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,yBAAyB;QACzB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAE1C,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,YAAY,CACvC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,UAAU,EACV,eAAe,CAChB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAE7C,uDAAuD;QACvD,OAAO,IAAI,CAAC;YACV,GAAG,KAAK;YACR,EAAE,EAAE,UAAU;YACd,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC9D,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CACF,CAAC"}
|
package/lib/os/exec.d.ts
CHANGED
|
@@ -143,8 +143,26 @@ export interface Exec extends Resource<"os::Exec">, ExecProps {
|
|
|
143
143
|
* });
|
|
144
144
|
*/
|
|
145
145
|
export declare const Exec: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Exec>, id: string, props: ExecProps) => Promise<Exec>);
|
|
146
|
+
/**
|
|
147
|
+
* Options for exec function
|
|
148
|
+
*/
|
|
149
|
+
export interface ExecOptions extends Partial<SpawnOptions> {
|
|
150
|
+
/**
|
|
151
|
+
* Whether to capture stdout and stderr
|
|
152
|
+
* @default false
|
|
153
|
+
*/
|
|
154
|
+
captureOutput?: boolean;
|
|
155
|
+
}
|
|
146
156
|
/**
|
|
147
157
|
* Execute a shell command.
|
|
158
|
+
*
|
|
159
|
+
* @param command The command to execute
|
|
160
|
+
* @param options Options for the command execution
|
|
161
|
+
* @returns Promise that resolves when the command completes.
|
|
162
|
+
* If captureOutput is true, resolves with { stdout, stderr } strings.
|
|
148
163
|
*/
|
|
149
|
-
export declare function exec(command: string, options?:
|
|
164
|
+
export declare function exec(command: string, options?: ExecOptions): Promise<{
|
|
165
|
+
stdout: string;
|
|
166
|
+
stderr: string;
|
|
167
|
+
} | undefined>;
|
|
150
168
|
//# sourceMappingURL=exec.d.ts.map
|
package/lib/os/exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAE3C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,IAAK,SAAQ,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;IAC3D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,IAAI,yFAMP,OAAO,CAAC,IAAI,CAAC,MACf,MAAM,SACH,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CA4FjB,CAAC;AAUF;;GAEG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAE3C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,IAAK,SAAQ,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS;IAC3D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,IAAI,yFAMP,OAAO,CAAC,IAAI,CAAC,MACf,MAAM,SACH,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CA4FjB,CAAC;AAUF;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,YAAY,CAAC;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAmDzD"}
|
package/lib/os/exec.js
CHANGED
|
@@ -148,24 +148,48 @@ const defaultOptions = {
|
|
|
148
148
|
};
|
|
149
149
|
/**
|
|
150
150
|
* Execute a shell command.
|
|
151
|
+
*
|
|
152
|
+
* @param command The command to execute
|
|
153
|
+
* @param options Options for the command execution
|
|
154
|
+
* @returns Promise that resolves when the command completes.
|
|
155
|
+
* If captureOutput is true, resolves with { stdout, stderr } strings.
|
|
151
156
|
*/
|
|
152
157
|
export async function exec(command, options) {
|
|
153
158
|
const [cmd, ...args] = command.split(/\s+/);
|
|
159
|
+
const captureOutput = options?.captureOutput === true;
|
|
154
160
|
return new Promise((resolve, reject) => {
|
|
155
|
-
|
|
161
|
+
// Set stdio to pipe only if we're capturing output
|
|
162
|
+
const spawnOptions = {
|
|
156
163
|
...defaultOptions,
|
|
157
164
|
...options,
|
|
158
165
|
env: {
|
|
159
166
|
...defaultOptions.env,
|
|
160
167
|
...options?.env,
|
|
161
168
|
},
|
|
162
|
-
|
|
169
|
+
stdio: captureOutput ? "pipe" : defaultOptions.stdio,
|
|
170
|
+
};
|
|
171
|
+
const child = spawn(cmd, args, spawnOptions);
|
|
172
|
+
let stdout = "";
|
|
173
|
+
let stderr = "";
|
|
174
|
+
if (captureOutput) {
|
|
175
|
+
child.stdout?.on("data", (data) => {
|
|
176
|
+
stdout += data.toString();
|
|
177
|
+
});
|
|
178
|
+
child.stderr?.on("data", (data) => {
|
|
179
|
+
stderr += data.toString();
|
|
180
|
+
});
|
|
181
|
+
}
|
|
163
182
|
child.on("close", (code) => {
|
|
164
183
|
if (code === 0) {
|
|
165
|
-
|
|
184
|
+
if (captureOutput) {
|
|
185
|
+
resolve({ stdout, stderr });
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
resolve(undefined);
|
|
189
|
+
}
|
|
166
190
|
}
|
|
167
191
|
else {
|
|
168
|
-
reject(new Error(`Command failed with exit code ${code}`));
|
|
192
|
+
reject(new Error(`Command failed with exit code ${code}${stderr ? `: ${stderr}` : ""}`));
|
|
169
193
|
}
|
|
170
194
|
});
|
|
171
195
|
child.on("error", (err) => {
|
package/lib/os/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/os/exec.ts"],"names":[],"mappings":"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"}
|
package/lib/stripe/price.d.ts
CHANGED
|
@@ -26,6 +26,11 @@ export interface PriceRecurring {
|
|
|
26
26
|
* `last_ever` for picking the last usage record ever (across period bounds) or `max` which picks the usage record with the maximum reported usage during a period.
|
|
27
27
|
*/
|
|
28
28
|
aggregateUsage?: Stripe.PriceCreateParams.Recurring.AggregateUsage;
|
|
29
|
+
/**
|
|
30
|
+
* The ID of the billing meter this price is associated with.
|
|
31
|
+
* Only applicable when usageType = 'metered'.
|
|
32
|
+
*/
|
|
33
|
+
meter?: string;
|
|
29
34
|
}
|
|
30
35
|
type TaxBehavior = Stripe.PriceCreateParams.TaxBehavior;
|
|
31
36
|
type BillingScheme = Stripe.PriceCreateParams.BillingScheme;
|
|
@@ -277,6 +282,25 @@ export interface Price extends Resource<"stripe::Price">, PriceProps {
|
|
|
277
282
|
* }
|
|
278
283
|
* ]
|
|
279
284
|
* });
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* // Create a metered price with billing meter for API usage tracking
|
|
288
|
+
* const meteredPrice = await Price("api-usage-price", {
|
|
289
|
+
* product: "prod_xyz",
|
|
290
|
+
* currency: "usd",
|
|
291
|
+
* billingScheme: "tiered",
|
|
292
|
+
* tiersMode: "graduated",
|
|
293
|
+
* recurring: {
|
|
294
|
+
* interval: "month",
|
|
295
|
+
* usageType: "metered",
|
|
296
|
+
* meter: "meter_123abc" // Associate with billing meter
|
|
297
|
+
* },
|
|
298
|
+
* tiers: [
|
|
299
|
+
* { upTo: 10000, unitAmountDecimal: "0" },
|
|
300
|
+
* { upTo: 25000, unitAmountDecimal: "0.002" },
|
|
301
|
+
* { upTo: "inf", flatAmountDecimal: "3000" }
|
|
302
|
+
* ]
|
|
303
|
+
* });
|
|
280
304
|
*/
|
|
281
305
|
export declare const Price: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Price>, _id: string, props: PriceProps) => Promise<Price>);
|
|
282
306
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../src/stripe/price.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC;IAEtD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC;IAEzD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../src/stripe/price.ts"],"names":[],"mappings":"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"}
|
package/lib/stripe/price.js
CHANGED
|
@@ -89,6 +89,25 @@ import { createStripeClient, handleStripeDeleteError } from "./client.js";
|
|
|
89
89
|
* }
|
|
90
90
|
* ]
|
|
91
91
|
* });
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* // Create a metered price with billing meter for API usage tracking
|
|
95
|
+
* const meteredPrice = await Price("api-usage-price", {
|
|
96
|
+
* product: "prod_xyz",
|
|
97
|
+
* currency: "usd",
|
|
98
|
+
* billingScheme: "tiered",
|
|
99
|
+
* tiersMode: "graduated",
|
|
100
|
+
* recurring: {
|
|
101
|
+
* interval: "month",
|
|
102
|
+
* usageType: "metered",
|
|
103
|
+
* meter: "meter_123abc" // Associate with billing meter
|
|
104
|
+
* },
|
|
105
|
+
* tiers: [
|
|
106
|
+
* { upTo: 10000, unitAmountDecimal: "0" },
|
|
107
|
+
* { upTo: 25000, unitAmountDecimal: "0.002" },
|
|
108
|
+
* { upTo: "inf", flatAmountDecimal: "3000" }
|
|
109
|
+
* ]
|
|
110
|
+
* });
|
|
92
111
|
*/
|
|
93
112
|
export const Price = Resource("stripe::Price", async function (_id, props) {
|
|
94
113
|
const stripe = createStripeClient({ apiKey: props.apiKey });
|
|
@@ -126,6 +145,8 @@ export const Price = Resource("stripe::Price", async function (_id, props) {
|
|
|
126
145
|
transfer_lookup_key: props.transferLookupKey,
|
|
127
146
|
expand: ["tiers"],
|
|
128
147
|
};
|
|
148
|
+
// Note: Stripe doesn't allow updating recurring fields (including meter) after price creation
|
|
149
|
+
// If meter needs to be changed, a new price must be created
|
|
129
150
|
price = await stripe.prices.update(this.output.id, updateParams);
|
|
130
151
|
}
|
|
131
152
|
else {
|
|
@@ -157,6 +178,14 @@ export const Price = Resource("stripe::Price", async function (_id, props) {
|
|
|
157
178
|
usage_type: props.recurring.usageType,
|
|
158
179
|
aggregate_usage: props.recurring.aggregateUsage,
|
|
159
180
|
};
|
|
181
|
+
// Add meter to recurring if present (only for metered usage type)
|
|
182
|
+
if (props.recurring.meter) {
|
|
183
|
+
if (props.recurring.usageType !== "metered") {
|
|
184
|
+
throw new Error("Meter can only be set for prices with recurring.usageType = 'metered'");
|
|
185
|
+
}
|
|
186
|
+
// Extend the recurring params with meter
|
|
187
|
+
createParams.recurring.meter = props.recurring.meter;
|
|
188
|
+
}
|
|
160
189
|
}
|
|
161
190
|
// Add tier configuration if present
|
|
162
191
|
if (props.tiers) {
|
|
@@ -221,6 +250,7 @@ export const Price = Resource("stripe::Price", async function (_id, props) {
|
|
|
221
250
|
.usage_type,
|
|
222
251
|
aggregateUsage: price.recurring
|
|
223
252
|
.aggregate_usage,
|
|
253
|
+
meter: price.recurring.meter,
|
|
224
254
|
}
|
|
225
255
|
: undefined;
|
|
226
256
|
// Transform Stripe tiers array to our format
|
package/lib/stripe/price.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../src/stripe/price.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../src/stripe/price.ts"],"names":[],"mappings":"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"}
|
package/lib/util/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AA6B3C,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,WAAW,EACxB,eAAe,SAAS,cAOzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,SAQpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,aAAa,WAAW,KAAG,SAsC/D,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,WAAwC,CAAC"}
|
package/lib/util/cli.js
CHANGED
|
@@ -12,7 +12,7 @@ const colors = {
|
|
|
12
12
|
};
|
|
13
13
|
// Check if colors should be disabled
|
|
14
14
|
const shouldDisableColors = () => {
|
|
15
|
-
return Boolean(process.env.
|
|
15
|
+
return Boolean(process.env.NO_COLOR);
|
|
16
16
|
};
|
|
17
17
|
// Apply color if colors are enabled
|
|
18
18
|
const colorize = (text, color) => {
|
package/lib/util/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,mBAAmB;AACnB,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,UAAU;IACtB,YAAY,EAAE,UAAU;IACxB,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,UAAU;CACR,CAAC;AAIX,qCAAqC;AACrC,MAAM,mBAAmB,GAAG,GAAY,EAAE;IACxC,OAAO,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/util/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alchemy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "./lib/index.js",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -55,6 +55,10 @@
|
|
|
55
55
|
"bun": "./src/dns/index.ts",
|
|
56
56
|
"import": "./lib/dns/index.js"
|
|
57
57
|
},
|
|
58
|
+
"./docker": {
|
|
59
|
+
"bun": "./src/docker/index.ts",
|
|
60
|
+
"import": "./lib/docker/index.js"
|
|
61
|
+
},
|
|
58
62
|
"./esbuild": {
|
|
59
63
|
"bun": "./src/esbuild/index.ts",
|
|
60
64
|
"import": "./lib/esbuild/index.js"
|
|
@@ -71,7 +71,7 @@ export async function bundleWorkerScript<B extends Bindings>(
|
|
|
71
71
|
).flat(),
|
|
72
72
|
),
|
|
73
73
|
);
|
|
74
|
-
const useColor = !
|
|
74
|
+
const useColor = !process.env.NO_COLOR;
|
|
75
75
|
logger.log(
|
|
76
76
|
`${useColor ? kleur.gray("worker:") : "worker:"} ${useColor ? kleur.blue(props.name) : props.name}`,
|
|
77
77
|
);
|
|
@@ -241,13 +241,9 @@ const D1DatabaseResource = Resource(
|
|
|
241
241
|
const databaseName = props.name ?? id;
|
|
242
242
|
|
|
243
243
|
if (this.phase === "delete") {
|
|
244
|
-
logger.log("Deleting D1 database:", databaseName);
|
|
245
244
|
if (props.delete !== false) {
|
|
246
|
-
// Delete D1 database
|
|
247
|
-
logger.log("Deleting D1 database:", databaseName);
|
|
248
245
|
await deleteDatabase(api, this.output?.id);
|
|
249
246
|
}
|
|
250
|
-
|
|
251
247
|
// Return void (a deleted database has no content)
|
|
252
248
|
return this.destroy();
|
|
253
249
|
}
|
|
@@ -3,7 +3,7 @@ import { bundle } from "../../esbuild/index.ts";
|
|
|
3
3
|
import { withExponentialBackoff } from "../../util/retry.ts";
|
|
4
4
|
import { handleApiError } from "../api-error.ts";
|
|
5
5
|
import type { CloudflareApi } from "../api.ts";
|
|
6
|
-
import {
|
|
6
|
+
import type { WorkerMetadata } from "../worker-metadata.ts";
|
|
7
7
|
import type { DOStateStoreAPI } from "./types.ts";
|
|
8
8
|
|
|
9
9
|
interface DOStateStoreClientOptions {
|
|
@@ -116,33 +116,49 @@ export async function upsertStateStoreWorker(
|
|
|
116
116
|
cache.set(key, TAG);
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
119
|
+
const formData = new FormData();
|
|
120
|
+
formData.append("worker.js", await bundleWorkerScript());
|
|
121
|
+
formData.append(
|
|
122
|
+
"metadata",
|
|
123
|
+
new Blob([
|
|
124
|
+
JSON.stringify({
|
|
125
|
+
main_module: "worker.js",
|
|
126
|
+
compatibility_date: "2025-06-01",
|
|
127
|
+
compatibility_flags: ["nodejs_compat"],
|
|
128
|
+
bindings: [
|
|
129
|
+
{
|
|
130
|
+
name: "DOFS_STATE_STORE",
|
|
131
|
+
type: "durable_object_namespace",
|
|
132
|
+
class_name: "DOFSStateStore",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: "DOFS_TOKEN",
|
|
136
|
+
type: "secret_text",
|
|
137
|
+
text: token,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
migrations: !found
|
|
141
|
+
? {
|
|
142
|
+
new_sqlite_classes: ["DOFSStateStore"],
|
|
143
|
+
}
|
|
144
|
+
: undefined,
|
|
145
|
+
tags: [TAG],
|
|
146
|
+
observability: {
|
|
147
|
+
enabled: true,
|
|
148
|
+
},
|
|
149
|
+
} satisfies WorkerMetadata),
|
|
150
|
+
]),
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
// Put the worker with migration tag v1
|
|
154
|
+
const response = await api.post(
|
|
155
|
+
`/accounts/${api.accountId}/workers/scripts/${workerName}/versions`,
|
|
156
|
+
formData,
|
|
157
|
+
);
|
|
158
|
+
if (!response.ok) {
|
|
159
|
+
throw await handleApiError(response, "upload", "worker", workerName);
|
|
160
|
+
}
|
|
161
|
+
|
|
146
162
|
const subdomainRes = await api.post(
|
|
147
163
|
`/accounts/${api.accountId}/workers/scripts/${workerName}/subdomain`,
|
|
148
164
|
{ enabled: true, preview_enabled: false },
|
|
@@ -151,7 +167,7 @@ export async function upsertStateStoreWorker(
|
|
|
151
167
|
},
|
|
152
168
|
);
|
|
153
169
|
if (!subdomainRes.ok) {
|
|
154
|
-
await handleApiError(
|
|
170
|
+
throw await handleApiError(
|
|
155
171
|
subdomainRes,
|
|
156
172
|
"creating worker subdomain",
|
|
157
173
|
"worker",
|
|
@@ -115,33 +115,52 @@ export async function Website<B extends Bindings>(
|
|
|
115
115
|
parent: Scope.current,
|
|
116
116
|
},
|
|
117
117
|
async () => {
|
|
118
|
+
// directory from which all relative paths are resolved
|
|
118
119
|
const cwd = path.resolve(props.cwd || process.cwd());
|
|
119
|
-
|
|
120
|
+
|
|
121
|
+
function resolveAbsPath<S extends string | undefined>(f: S): S {
|
|
122
|
+
return (
|
|
123
|
+
f ? (path.isAbsolute(f) ? f : path.resolve(cwd, f)) : undefined
|
|
124
|
+
) as S;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// absolute path to the wrangler.jsonc file
|
|
128
|
+
const wranglerJsonPath = resolveAbsPath(
|
|
120
129
|
typeof wrangler === "boolean"
|
|
121
130
|
? "wrangler.jsonc"
|
|
122
131
|
: typeof wrangler === "string"
|
|
123
132
|
? wrangler
|
|
124
|
-
: (wrangler?.path ?? "wrangler.jsonc")
|
|
125
|
-
|
|
126
|
-
fileName && path.relative(cwd, path.join(cwd, fileName));
|
|
127
|
-
const wranglerMain =
|
|
128
|
-
typeof wrangler === "object"
|
|
129
|
-
? (wrangler.main ?? props.main)
|
|
130
|
-
: props.main;
|
|
133
|
+
: (wrangler?.path ?? "wrangler.jsonc"),
|
|
134
|
+
);
|
|
131
135
|
|
|
132
|
-
|
|
136
|
+
// absolute path to the worker entrypoint
|
|
137
|
+
const mainPath = resolveAbsPath(props.main);
|
|
133
138
|
|
|
134
|
-
|
|
139
|
+
// absolute path to the worker entrypoint (if different in wrangler.jsonc)
|
|
140
|
+
const wranglerMainPath = resolveAbsPath(
|
|
141
|
+
typeof wrangler === "object"
|
|
142
|
+
? (wrangler.main ?? props.main!)
|
|
143
|
+
: props.main,
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
// absolute path to the assets directory
|
|
147
|
+
const assetsDirPath = resolveAbsPath(
|
|
135
148
|
typeof props.assets === "string"
|
|
136
149
|
? props.assets
|
|
137
|
-
: (props.assets?.dist ?? "dist")
|
|
150
|
+
: (props.assets?.dist ?? "dist"),
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
const workerName = props.name ?? id;
|
|
138
154
|
|
|
139
155
|
const workerProps = {
|
|
140
156
|
...props,
|
|
141
157
|
compatibilityDate:
|
|
142
158
|
props.compatibilityDate ?? DEFAULT_COMPATIBILITY_DATE,
|
|
143
159
|
name: workerName,
|
|
144
|
-
entrypoint:
|
|
160
|
+
entrypoint: mainPath
|
|
161
|
+
? // this path should be relative to the process.cwd() because it is used by esbuild
|
|
162
|
+
path.relative(process.cwd(), mainPath)
|
|
163
|
+
: undefined,
|
|
145
164
|
assets: {
|
|
146
165
|
html_handling: "auto-trailing-slash",
|
|
147
166
|
not_found_handling: props.spa ? "single-page-application" : "none",
|
|
@@ -161,14 +180,18 @@ export default {
|
|
|
161
180
|
} as WorkerProps<any> & { name: string };
|
|
162
181
|
|
|
163
182
|
if (wrangler) {
|
|
183
|
+
// paths in wrangler.jsonc must be relative to it
|
|
184
|
+
const relativeToWrangler = <S extends string | undefined>(f: S): S =>
|
|
185
|
+
(f ? path.relative(path.dirname(wranglerJsonPath), f) : f) as S;
|
|
164
186
|
await WranglerJson("wrangler.jsonc", {
|
|
165
|
-
path:
|
|
187
|
+
path: wranglerJsonPath,
|
|
166
188
|
worker: workerProps,
|
|
167
|
-
main:
|
|
189
|
+
main: relativeToWrangler(wranglerMainPath),
|
|
168
190
|
// hard-code the assets directory because we haven't yet included the assets binding
|
|
169
191
|
assets: {
|
|
170
192
|
binding: "ASSETS",
|
|
171
|
-
|
|
193
|
+
// path must be relative to the wrangler.jsonc file
|
|
194
|
+
directory: relativeToWrangler(assetsDirPath),
|
|
172
195
|
},
|
|
173
196
|
});
|
|
174
197
|
}
|
|
@@ -189,7 +212,8 @@ export default {
|
|
|
189
212
|
// we don't include the Assets binding until after build to make sure the asset manifest is correct
|
|
190
213
|
// we generate the wrangler.json using all the bind
|
|
191
214
|
ASSETS: await Assets("assets", {
|
|
192
|
-
|
|
215
|
+
// Assets are discovered from proces.cwd(), not Website.cwd or wrangler.jsonc
|
|
216
|
+
path: path.relative(process.cwd(), assetsDirPath),
|
|
193
217
|
}),
|
|
194
218
|
},
|
|
195
219
|
} as WorkerProps<any> & { name: string })) as Website<B>;
|