alchemy 0.68.0 → 0.69.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.js +19 -1
- package/lib/aws/control/properties.d.ts +64 -0
- package/lib/aws/control/properties.d.ts.map +1 -1
- package/lib/aws/control/properties.js +554 -39
- package/lib/aws/control/properties.js.map +1 -1
- package/lib/aws/control/resource.d.ts.map +1 -1
- package/lib/aws/control/resource.js +33 -0
- package/lib/aws/control/resource.js.map +1 -1
- package/lib/aws/control/types.d.ts +5451 -1587
- package/lib/aws/control/types.d.ts.map +1 -1
- package/lib/aws/control/types.js.map +1 -1
- package/lib/aws/control/update-types.d.ts +12913 -0
- package/lib/aws/control/update-types.d.ts.map +1 -0
- package/lib/aws/control/update-types.js +12916 -0
- package/lib/aws/control/update-types.js.map +1 -0
- package/lib/cloudflare/api.d.ts +1 -1
- package/lib/cloudflare/api.d.ts.map +1 -1
- package/lib/cloudflare/api.js +9 -10
- package/lib/cloudflare/api.js.map +1 -1
- package/lib/cloudflare/astro/astro.d.ts.map +1 -1
- package/lib/cloudflare/astro/astro.js +3 -3
- package/lib/cloudflare/astro/astro.js.map +1 -1
- package/lib/cloudflare/bucket-object.d.ts +81 -0
- package/lib/cloudflare/bucket-object.d.ts.map +1 -0
- package/lib/cloudflare/bucket-object.js +67 -0
- package/lib/cloudflare/bucket-object.js.map +1 -0
- package/lib/cloudflare/bucket.d.ts +30 -3
- package/lib/cloudflare/bucket.d.ts.map +1 -1
- package/lib/cloudflare/bucket.js +97 -13
- package/lib/cloudflare/bucket.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/container.d.ts.map +1 -1
- package/lib/cloudflare/container.js +1 -1
- package/lib/cloudflare/container.js.map +1 -1
- 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/next.js.map +1 -1
- package/lib/cloudflare/nuxt/nuxt.d.ts.map +1 -1
- package/lib/cloudflare/nuxt/nuxt.js +3 -3
- package/lib/cloudflare/nuxt/nuxt.js.map +1 -1
- package/lib/cloudflare/vite/vite.d.ts.map +1 -1
- package/lib/cloudflare/vite/vite.js +3 -3
- package/lib/cloudflare/vite/vite.js.map +1 -1
- package/lib/cloudflare/website.d.ts +7 -1
- package/lib/cloudflare/website.d.ts.map +1 -1
- package/lib/cloudflare/website.js +19 -1
- package/lib/cloudflare/website.js.map +1 -1
- package/lib/cloudflare/wrangler.json.d.ts +27 -8
- package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
- package/lib/cloudflare/wrangler.json.js +3 -1
- package/lib/cloudflare/wrangler.json.js.map +1 -1
- package/lib/llms.cloudflare.txt +2 -2
- package/lib/neon/branch.d.ts +19 -3
- package/lib/neon/branch.d.ts.map +1 -1
- package/lib/neon/branch.js +4 -4
- package/lib/neon/branch.js.map +1 -1
- package/lib/neon/project.d.ts +17 -1
- package/lib/neon/project.d.ts.map +1 -1
- package/lib/neon/project.js +4 -4
- package/lib/neon/project.js.map +1 -1
- package/lib/serde.d.ts +3 -0
- package/lib/serde.d.ts.map +1 -1
- package/lib/serde.js +40 -0
- package/lib/serde.js.map +1 -1
- package/lib/test/bun.js.map +1 -1
- package/package.json +1 -1
- package/src/aws/control/properties.ts +554 -39
- package/src/aws/control/resource.ts +58 -0
- package/src/aws/control/types.ts +85281 -84914
- package/src/aws/control/update-types.ts +12917 -0
- package/src/cloudflare/api.ts +9 -10
- package/src/cloudflare/astro/astro.ts +8 -3
- package/src/cloudflare/bucket-object.ts +117 -0
- package/src/cloudflare/bucket.ts +148 -14
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/container.ts +2 -3
- package/src/cloudflare/index.ts +1 -0
- package/src/cloudflare/next.ts +2 -2
- package/src/cloudflare/nuxt/nuxt.ts +8 -3
- package/src/cloudflare/vite/vite.ts +8 -3
- package/src/cloudflare/website.ts +28 -2
- package/src/cloudflare/wrangler.json.ts +32 -17
- package/src/llms.cloudflare.txt +2 -2
- package/src/neon/branch.ts +6 -5
- package/src/neon/project.ts +4 -4
- package/src/serde.ts +50 -0
- package/src/test/bun.ts +1 -1
- package/templates/rwsdk/.cursor/rules/alchemy_cloudflare.mdc +2 -2
- package/workers/tunnel-proxy.js +1 -1
package/lib/cloudflare/api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Provider } from "../auth.js";
|
|
2
|
+
import { isBinary } from "../serde.js";
|
|
2
3
|
import { memoize } from "../util/memoize.js";
|
|
3
4
|
import { withExponentialBackoff } from "../util/retry.js";
|
|
4
5
|
import { safeFetch } from "../util/safe-fetch.js";
|
|
@@ -175,7 +176,7 @@ export class CloudflareApi {
|
|
|
175
176
|
return this.fetch(path, {
|
|
176
177
|
...init,
|
|
177
178
|
method: "POST",
|
|
178
|
-
body: this.toBody(body),
|
|
179
|
+
body: await this.toBody(body),
|
|
179
180
|
});
|
|
180
181
|
}
|
|
181
182
|
/**
|
|
@@ -185,17 +186,15 @@ export class CloudflareApi {
|
|
|
185
186
|
return this.fetch(path, {
|
|
186
187
|
...init,
|
|
187
188
|
method: "PUT",
|
|
188
|
-
body: this.toBody(body),
|
|
189
|
+
body: await this.toBody(body),
|
|
189
190
|
});
|
|
190
191
|
}
|
|
191
|
-
toBody(body) {
|
|
192
|
-
return body instanceof FormData
|
|
192
|
+
async toBody(body) {
|
|
193
|
+
return body instanceof FormData ||
|
|
194
|
+
typeof body === "string" ||
|
|
195
|
+
isBinary(body)
|
|
193
196
|
? body
|
|
194
|
-
:
|
|
195
|
-
? body
|
|
196
|
-
: body instanceof ReadableStream
|
|
197
|
-
? body
|
|
198
|
-
: JSON.stringify(body);
|
|
197
|
+
: JSON.stringify(body);
|
|
199
198
|
}
|
|
200
199
|
/**
|
|
201
200
|
* Helper for PATCH requests
|
|
@@ -204,7 +203,7 @@ export class CloudflareApi {
|
|
|
204
203
|
return this.fetch(path, {
|
|
205
204
|
...init,
|
|
206
205
|
method: "PATCH",
|
|
207
|
-
body: this.toBody(body),
|
|
206
|
+
body: await this.toBody(body),
|
|
208
207
|
});
|
|
209
208
|
}
|
|
210
209
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/cloudflare/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/cloudflare/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AA+C3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CACxC,KAAK,EAAE,UAAgC,EAAE,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACnE,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChE,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5D,MAAM,SAAS,GACb,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAE5B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,WAAW,GAAuB;YACtC,IAAI,EAAE,SAAS;YACf,MAAM;YACN,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;SACvD,CAAC;QACF,OAAO,IAAI,aAAa,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW;YACX,SAAS,EAAE,SAAS,IAAI,CAAC,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAyB;YACxC,IAAI,EAAE,WAAW;YACjB,QAAQ;SACT,CAAC;QACF,OAAO,IAAI,aAAa,CAAC;YACvB,OAAO;YACP,WAAW;YACX,SAAS,EAAE,SAAS,IAAI,CAAC,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAe;YAC3B,SAAS,CAAC;QACZ,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAC7B,MAAM,QAAQ,CAAC,kBAAkB,CAA0B;YACzD,QAAQ,EAAE,YAAY;YACtB,OAAO;SACR,CAAC,CAAC;QACL,OAAO,IAAI,aAAa,CAAC;YACvB,OAAO;YACP,OAAO;YACP,WAAW;YACX,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb;YACE,iIAAiI;YACjI,oDAAoD;SACrD,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;AACH,CAAC,EACD,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,CACf;IACE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,EAAE,WAAW;IAC3B,OAAO,CAAC,QAAQ,EAAE,WAAW;IAC7B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;CACd,CAAC,IAAI,CAAC,GAAG,CAAC,CACd,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,aAAa;IACR,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,WAAW,CAAc;IACzB,OAAO,CAAqB;IAE5C;;;;;;OAMG;IACH,YAAY,OAKX;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,sCAAsC,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAoB,EAAE;QACrD,IAAI,OAAO,GAA2B;YACpC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,YAAY,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC;QACD,OAAO,GAAG;YACR,GAAG,CAAC,MAAM,cAAc,CAAC,wBAAwB,CAAC;gBAChD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YACH,GAAG,OAAO;SACX,CAAC;QAEF,gCAAgC;QAChC,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,mEAAmE;QACnE,OAAO,sBAAsB,CAC3B,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;gBACzD,GAAG,IAAI;gBACP,OAAO;aACR,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1C,uEAAuE;gBACvE,sCAAsC;gBACtC,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,IAAI,cAAc,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,oBAAoB,CAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAC9C,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,kDAAkD;QAClD,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,YAAY,aAAa;YAC9B,KAAK,YAAY,oBAAoB;YACrC,KAAK,YAAY,cAAc;YAC/B,KAAK,CAAC,IAAI,KAAK,YAAY,EAC7B,EAAE,EAAE,8CAA8C;QAClD,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAoB,EAAE;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAoB,EAAE;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,IAAS,EACT,OAAoB,EAAE;QAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,GAAG,IAAI;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,IAAS,EACT,OAAoB,EAAE;QAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,GAAG,IAAI;YACP,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAc;QACzB,OAAO,IAAI,YAAY,QAAQ;YAC7B,OAAO,IAAI,KAAK,QAAQ;YACxB,QAAQ,CAAC,IAAI,CAAC;YACd,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,IAAY,EACZ,IAAS,EACT,OAAoB,EAAE;QAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAoB,EAAE;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,aAAc,SAAQ,KAAK;CAAG;AAEpC,MAAM,oBAAqB,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CACH,qCAAqC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAC5E,CAAC;IACJ,CAAC;CACF;AAED,MAAM,cAAe,SAAQ,KAAK;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/astro/astro.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,
|
|
1
|
+
{"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/astro/astro.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,QAAQ,CAC5C,SAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IACpC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,GAAG,CAAA;CAAE,GAC7D,KAAK,GACL,MAAM,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAC5C,EAAE,EAAE,MAAM,EACV,KAAK,GAAE,UAAU,CAAC,CAAC,CAAM,GACxB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAenB"}
|
|
@@ -9,7 +9,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
9
9
|
import { join, resolve } from "node:path";
|
|
10
10
|
import { getPackageManagerRunner } from "../../util/detect-package-manager.js";
|
|
11
11
|
import { withSkipPathValidation } from "../miniflare/paths.js";
|
|
12
|
-
import { Website } from "../website.js";
|
|
12
|
+
import { spreadBuildProps, spreadDevProps, Website, } from "../website.js";
|
|
13
13
|
/**
|
|
14
14
|
* Creates and deploys an Astro application using the Cloudflare adapter.
|
|
15
15
|
*
|
|
@@ -58,8 +58,8 @@ export async function Astro(id, props = {}) {
|
|
|
58
58
|
return await Website(id, {
|
|
59
59
|
...props,
|
|
60
60
|
noBundle: props.noBundle ?? true,
|
|
61
|
-
build: props
|
|
62
|
-
dev: props
|
|
61
|
+
build: spreadBuildProps(props, `${runner} astro build`),
|
|
62
|
+
dev: spreadDevProps(props, `${runner} astro dev`),
|
|
63
63
|
entrypoint: props.entrypoint ??
|
|
64
64
|
(output === "server" ? "dist/_worker.js/index.js" : undefined),
|
|
65
65
|
assets: props.assets ?? "dist",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro.js","sourceRoot":"","sources":["../../../src/cloudflare/astro/astro.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"astro.js","sourceRoot":"","sources":["../../../src/cloudflare/astro/astro.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,OAAO,GAER,MAAM,eAAe,CAAC;AAqBvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,EAAU,EACV,QAAuB,EAAE;IAEzB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAC/C,OAAO,MAAM,OAAO,CAAC,EAAE,EAAE;QACvB,GAAG,KAAK;QACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,MAAM,cAAc,CAAC;QACvD,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,MAAM,YAAY,CAAC;QACjD,UAAU,EACR,KAAK,CAAC,UAAU;YAChB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;QAC9B,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG;QACjB,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;KACnB,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CACzC,GAAG,EAAE,CAAC,MAAM,kCAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAC,CACnC,CAAC;YACF,IACE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAClC,MAAM,CAAC,OAAO;gBACd,QAAQ,IAAI,MAAM,CAAC,OAAO;gBAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EACzC,CAAC;gBACD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/B,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { Context } from "../context.ts";
|
|
2
|
+
import { type CloudflareApiOptions } from "./api.ts";
|
|
3
|
+
import { type PutObjectObject, type R2Bucket } from "./bucket.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Properties for creating or updating an R2 Object
|
|
6
|
+
*/
|
|
7
|
+
export interface R2ObjectProps extends CloudflareApiOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The R2 bucket where the object will be stored
|
|
10
|
+
*/
|
|
11
|
+
bucket: R2Bucket;
|
|
12
|
+
/**
|
|
13
|
+
* The key (path/name) of the object within the bucket
|
|
14
|
+
* Must be a valid object key as defined by R2 storage requirements
|
|
15
|
+
*/
|
|
16
|
+
key: string;
|
|
17
|
+
/**
|
|
18
|
+
* The content to store in the object
|
|
19
|
+
* Supports various data types including streams, buffers, strings, and blobs
|
|
20
|
+
*/
|
|
21
|
+
content: PutObjectObject;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Output returned after R2 Object creation/update
|
|
25
|
+
*/
|
|
26
|
+
export interface R2Object {
|
|
27
|
+
/**
|
|
28
|
+
* The resource identifier
|
|
29
|
+
*/
|
|
30
|
+
id: string;
|
|
31
|
+
/**
|
|
32
|
+
* The key (path/name) of the object within the bucket
|
|
33
|
+
*/
|
|
34
|
+
key: string;
|
|
35
|
+
/**
|
|
36
|
+
* The etag of the object
|
|
37
|
+
*/
|
|
38
|
+
etag: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates and manages objects within Cloudflare R2 Buckets.
|
|
42
|
+
*
|
|
43
|
+
* R2 Objects represent individual files or data stored within an R2 bucket.
|
|
44
|
+
* This resource provides lifecycle management for object creation, updates, and deletion.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // Create a simple text object in a bucket
|
|
48
|
+
* const textObject = await R2Object("readme", {
|
|
49
|
+
* bucket: myBucket,
|
|
50
|
+
* key: "docs/README.txt",
|
|
51
|
+
* content: "Welcome to our application!"
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* // Store JSON data as an object
|
|
56
|
+
* const configObject = await R2Object("app-config", {
|
|
57
|
+
* bucket: configBucket,
|
|
58
|
+
* key: "config/app.json",
|
|
59
|
+
* content: JSON.stringify({ version: "1.0.0", debug: false })
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* // Store binary data from a buffer
|
|
64
|
+
* const imageObject = await R2Object("user-avatar", {
|
|
65
|
+
* bucket: assetsBucket,
|
|
66
|
+
* key: "avatars/user-123.png",
|
|
67
|
+
* content: imageBuffer
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* // Store data from a readable stream
|
|
72
|
+
* const streamObject = await R2Object("upload", {
|
|
73
|
+
* bucket: uploadsBucket,
|
|
74
|
+
* key: "uploads/file.dat",
|
|
75
|
+
* content: readableStream
|
|
76
|
+
* });
|
|
77
|
+
*
|
|
78
|
+
* @see https://developers.cloudflare.com/r2/api/workers/workers-api-reference/
|
|
79
|
+
*/
|
|
80
|
+
export declare const R2Object: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<R2Object>, id: string, props: R2ObjectProps) => Promise<R2Object>);
|
|
81
|
+
//# sourceMappingURL=bucket-object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-object.d.ts","sourceRoot":"","sources":["../../src/cloudflare/bucket-object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,oBAAoB;IACzD;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,QAAQ,yFAGX,OAAO,CAAC,QAAQ,CAAC,MACnB,MAAM,SACH,aAAa,KACnB,OAAO,CAAC,QAAQ,CAAC,CAuBrB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Resource } from "../resource.js";
|
|
2
|
+
import { createCloudflareApi } from "./api.js";
|
|
3
|
+
import { deleteObject } from "./bucket.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates and manages objects within Cloudflare R2 Buckets.
|
|
6
|
+
*
|
|
7
|
+
* R2 Objects represent individual files or data stored within an R2 bucket.
|
|
8
|
+
* This resource provides lifecycle management for object creation, updates, and deletion.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // Create a simple text object in a bucket
|
|
12
|
+
* const textObject = await R2Object("readme", {
|
|
13
|
+
* bucket: myBucket,
|
|
14
|
+
* key: "docs/README.txt",
|
|
15
|
+
* content: "Welcome to our application!"
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Store JSON data as an object
|
|
20
|
+
* const configObject = await R2Object("app-config", {
|
|
21
|
+
* bucket: configBucket,
|
|
22
|
+
* key: "config/app.json",
|
|
23
|
+
* content: JSON.stringify({ version: "1.0.0", debug: false })
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* // Store binary data from a buffer
|
|
28
|
+
* const imageObject = await R2Object("user-avatar", {
|
|
29
|
+
* bucket: assetsBucket,
|
|
30
|
+
* key: "avatars/user-123.png",
|
|
31
|
+
* content: imageBuffer
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* // Store data from a readable stream
|
|
36
|
+
* const streamObject = await R2Object("upload", {
|
|
37
|
+
* bucket: uploadsBucket,
|
|
38
|
+
* key: "uploads/file.dat",
|
|
39
|
+
* content: readableStream
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* @see https://developers.cloudflare.com/r2/api/workers/workers-api-reference/
|
|
43
|
+
*/
|
|
44
|
+
export const R2Object = Resource("cloudflare::R2Object", async function (id, props) {
|
|
45
|
+
if (this.phase === "delete") {
|
|
46
|
+
const api = await createCloudflareApi(props);
|
|
47
|
+
// Delete the object from the bucket
|
|
48
|
+
await deleteObject(api, {
|
|
49
|
+
bucketName: props.bucket.name,
|
|
50
|
+
key: props.key,
|
|
51
|
+
});
|
|
52
|
+
return this.destroy();
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
if (this.phase === "update" && this.output?.key !== props.key) {
|
|
56
|
+
this.replace();
|
|
57
|
+
}
|
|
58
|
+
// Create or update the object in the bucket
|
|
59
|
+
const response = await props.bucket.put(props.key, props.content);
|
|
60
|
+
return {
|
|
61
|
+
id,
|
|
62
|
+
key: props.key,
|
|
63
|
+
etag: response.etag,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=bucket-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-object.js","sourceRoot":"","sources":["../../src/cloudflare/bucket-object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAuC,MAAM,aAAa,CAAC;AA4ChF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAC9B,sBAAsB,EACtB,KAAK,WAEH,EAAU,EACV,KAAoB;IAEpB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7C,oCAAoC;QACpC,MAAM,YAAY,CAAC,GAAG,EAAE;YACtB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YAC7B,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAElE,OAAO;YACL,EAAE;YACF,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC"}
|
|
@@ -61,6 +61,10 @@ export interface BucketProps extends CloudflareApiOptions {
|
|
|
61
61
|
* Lock rules for the bucket
|
|
62
62
|
*/
|
|
63
63
|
lock?: R2BucketLockRule[];
|
|
64
|
+
/**
|
|
65
|
+
* Enable data catalog for bucket
|
|
66
|
+
*/
|
|
67
|
+
dataCatalog?: boolean;
|
|
64
68
|
/**
|
|
65
69
|
* Whether to emulate the bucket locally when Alchemy is running in watch mode.
|
|
66
70
|
*/
|
|
@@ -215,7 +219,7 @@ export type R2ObjectMetadata = {
|
|
|
215
219
|
uploaded: Date;
|
|
216
220
|
size: number;
|
|
217
221
|
};
|
|
218
|
-
export type
|
|
222
|
+
export type R2ObjectContent = R2ObjectMetadata & {
|
|
219
223
|
arrayBuffer(): Promise<ArrayBuffer>;
|
|
220
224
|
bytes(): Promise<Uint8Array>;
|
|
221
225
|
text(): Promise<string>;
|
|
@@ -240,7 +244,7 @@ export type R2Objects = {
|
|
|
240
244
|
});
|
|
241
245
|
export type R2Bucket = _R2Bucket & {
|
|
242
246
|
head(key: string): Promise<R2ObjectMetadata | null>;
|
|
243
|
-
get(key: string): Promise<
|
|
247
|
+
get(key: string): Promise<R2ObjectContent | null>;
|
|
244
248
|
put(key: string, value: ReadableStream | ArrayBuffer | ArrayBufferView | string | null | Blob): Promise<PutR2ObjectResponse>;
|
|
245
249
|
delete(key: string): Promise<Response>;
|
|
246
250
|
list(options?: R2ListOptions): Promise<R2Objects>;
|
|
@@ -283,6 +287,23 @@ type _R2Bucket = Omit<BucketProps, "delete" | "dev"> & {
|
|
|
283
287
|
*/
|
|
284
288
|
remote: boolean;
|
|
285
289
|
};
|
|
290
|
+
/**
|
|
291
|
+
* Data catalog for the bucket
|
|
292
|
+
*/
|
|
293
|
+
catalog?: {
|
|
294
|
+
/**
|
|
295
|
+
* ID of the data catalog
|
|
296
|
+
*/
|
|
297
|
+
id: string;
|
|
298
|
+
/**
|
|
299
|
+
* Name of the data catalog
|
|
300
|
+
*/
|
|
301
|
+
name: string;
|
|
302
|
+
/**
|
|
303
|
+
* Host of the data catalog
|
|
304
|
+
*/
|
|
305
|
+
host: string;
|
|
306
|
+
};
|
|
286
307
|
};
|
|
287
308
|
export declare function isBucket(resource: any): resource is R2Bucket;
|
|
288
309
|
/**
|
|
@@ -410,7 +431,7 @@ export declare function getObject(api: CloudflareApi, { bucketName, key }: {
|
|
|
410
431
|
bucketName: string;
|
|
411
432
|
key: string;
|
|
412
433
|
}): Promise<Response>;
|
|
413
|
-
type PutObjectObject = ReadableStream | ArrayBuffer | ArrayBufferView | string | Blob;
|
|
434
|
+
export type PutObjectObject = ReadableStream | ArrayBuffer | ArrayBufferView | Uint8Array | string | Buffer | Blob;
|
|
414
435
|
export declare function putObject(api: CloudflareApi, { bucketName, key, object, }: {
|
|
415
436
|
bucketName: string;
|
|
416
437
|
key: string;
|
|
@@ -420,5 +441,11 @@ export declare function deleteObject(api: CloudflareApi, { bucketName, key }: {
|
|
|
420
441
|
bucketName: string;
|
|
421
442
|
key: string;
|
|
422
443
|
}): Promise<Response>;
|
|
444
|
+
export declare function enableDataCatalog(api: CloudflareApi, bucketName: string): Promise<{
|
|
445
|
+
id: string;
|
|
446
|
+
name: string;
|
|
447
|
+
host: string;
|
|
448
|
+
}>;
|
|
449
|
+
export declare function disableDataCatalog(api: CloudflareApi, bucketName: string): Promise<void>;
|
|
423
450
|
export {};
|
|
424
451
|
//# sourceMappingURL=bucket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/cloudflare/bucket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/cloudflare/bucket.ts"],"names":[],"mappings":"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"}
|
package/lib/cloudflare/bucket.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import * as mf from "miniflare";
|
|
1
2
|
import { isDeepStrictEqual } from "node:util";
|
|
2
3
|
import { Resource, ResourceKind } from "../resource.js";
|
|
3
4
|
import { Scope } from "../scope.js";
|
|
5
|
+
import { streamToBuffer } from "../serde.js";
|
|
4
6
|
import { isRetryableError } from "../state/r2-rest-state-store.js";
|
|
5
7
|
import { withExponentialBackoff } from "../util/retry.js";
|
|
6
8
|
import { CloudflareApiError, handleApiError } from "./api-error.js";
|
|
7
9
|
import { extractCloudflareResult, } from "./api-response.js";
|
|
8
10
|
import { createCloudflareApi, } from "./api.js";
|
|
9
11
|
import { deleteMiniflareBinding } from "./miniflare/delete.js";
|
|
12
|
+
import { getDefaultPersistPath } from "./miniflare/paths.js";
|
|
10
13
|
export function isBucket(resource) {
|
|
11
14
|
return resource?.[ResourceKind] === "cloudflare::R2Bucket";
|
|
12
15
|
}
|
|
@@ -55,6 +58,8 @@ export function isBucket(resource) {
|
|
|
55
58
|
* @see https://developers.cloudflare.com/r2/buckets/
|
|
56
59
|
*/
|
|
57
60
|
export async function R2Bucket(id, props = {}) {
|
|
61
|
+
const scope = Scope.current;
|
|
62
|
+
const isLocal = scope.local && props.dev?.remote !== true;
|
|
58
63
|
const api = await createCloudflareApi(props);
|
|
59
64
|
const bucket = await _R2Bucket(id, {
|
|
60
65
|
...props,
|
|
@@ -63,13 +68,42 @@ export async function R2Bucket(id, props = {}) {
|
|
|
63
68
|
force: Scope.current.local,
|
|
64
69
|
},
|
|
65
70
|
});
|
|
71
|
+
let _miniflare;
|
|
72
|
+
const miniflare = () => {
|
|
73
|
+
if (_miniflare) {
|
|
74
|
+
return _miniflare;
|
|
75
|
+
}
|
|
76
|
+
_miniflare = new mf.Miniflare({
|
|
77
|
+
script: "",
|
|
78
|
+
modules: true,
|
|
79
|
+
defaultPersistRoot: getDefaultPersistPath(scope.rootDir),
|
|
80
|
+
r2Buckets: [bucket.dev.id],
|
|
81
|
+
log: process.env.DEBUG ? new mf.Log(mf.LogLevel.DEBUG) : undefined,
|
|
82
|
+
});
|
|
83
|
+
scope.onCleanup(async () => _miniflare?.dispose());
|
|
84
|
+
return _miniflare;
|
|
85
|
+
};
|
|
86
|
+
const localBucket = () => miniflare().getR2Bucket(bucket.dev.id);
|
|
66
87
|
return {
|
|
67
88
|
...bucket,
|
|
68
|
-
head: async (key) =>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
89
|
+
head: async (key) => {
|
|
90
|
+
if (isLocal) {
|
|
91
|
+
return (await localBucket()).head(key);
|
|
92
|
+
}
|
|
93
|
+
return headObject(api, {
|
|
94
|
+
bucketName: bucket.name,
|
|
95
|
+
key,
|
|
96
|
+
});
|
|
97
|
+
},
|
|
72
98
|
get: async (key) => {
|
|
99
|
+
if (isLocal) {
|
|
100
|
+
const result = await (await localBucket()).get(key);
|
|
101
|
+
if (result) {
|
|
102
|
+
// cast because workers vs node built-ins
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
73
107
|
const response = await getObject(api, {
|
|
74
108
|
bucketName: bucket.name,
|
|
75
109
|
key,
|
|
@@ -84,11 +118,30 @@ export async function R2Bucket(id, props = {}) {
|
|
|
84
118
|
throw await handleApiError(response, "get", "object", key);
|
|
85
119
|
}
|
|
86
120
|
},
|
|
87
|
-
list: async (options) =>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
121
|
+
list: async (options) => {
|
|
122
|
+
if (isLocal) {
|
|
123
|
+
return (await localBucket()).list(options);
|
|
124
|
+
}
|
|
125
|
+
return listObjects(api, bucket.name, {
|
|
126
|
+
...options,
|
|
127
|
+
jurisdiction: bucket.jurisdiction,
|
|
128
|
+
});
|
|
129
|
+
},
|
|
91
130
|
put: async (key, value) => {
|
|
131
|
+
if (isLocal) {
|
|
132
|
+
// @ts-expect-error - node built-ins vs cloudflare built-ins
|
|
133
|
+
return await (await localBucket()).put(key, typeof value === "string"
|
|
134
|
+
? value
|
|
135
|
+
: Buffer.isBuffer(value) ||
|
|
136
|
+
value instanceof Uint8Array ||
|
|
137
|
+
value instanceof ArrayBuffer
|
|
138
|
+
? new Uint8Array(value)
|
|
139
|
+
: value instanceof Blob
|
|
140
|
+
? new Uint8Array(await value.arrayBuffer())
|
|
141
|
+
: value instanceof ReadableStream
|
|
142
|
+
? new Uint8Array(await streamToBuffer(value))
|
|
143
|
+
: value);
|
|
144
|
+
}
|
|
92
145
|
const response = await putObject(api, {
|
|
93
146
|
bucketName: bucket.name,
|
|
94
147
|
key: key,
|
|
@@ -103,10 +156,15 @@ export async function R2Bucket(id, props = {}) {
|
|
|
103
156
|
size: Number(body.result.size),
|
|
104
157
|
};
|
|
105
158
|
},
|
|
106
|
-
delete: async (key) =>
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
159
|
+
delete: async (key) => {
|
|
160
|
+
if (isLocal) {
|
|
161
|
+
await (await localBucket()).delete(key);
|
|
162
|
+
}
|
|
163
|
+
return deleteObject(api, {
|
|
164
|
+
bucketName: bucket.name,
|
|
165
|
+
key: key,
|
|
166
|
+
});
|
|
167
|
+
},
|
|
110
168
|
};
|
|
111
169
|
}
|
|
112
170
|
const parseR2Object = (key, response) => ({
|
|
@@ -122,7 +180,7 @@ const parseR2Object = (key, response) => ({
|
|
|
122
180
|
});
|
|
123
181
|
const parseDate = (headers) => new Date(headers.get("Last-Modified") ?? headers.get("Date"));
|
|
124
182
|
const _R2Bucket = Resource("cloudflare::R2Bucket", async function (id, props = {}) {
|
|
125
|
-
const bucketName = props.name ?? this.output?.name
|
|
183
|
+
const bucketName = props.name ?? (this.output?.name || this.scope.createPhysicalName(id));
|
|
126
184
|
if (this.phase === "update" && this.output?.name !== bucketName) {
|
|
127
185
|
this.replace();
|
|
128
186
|
}
|
|
@@ -149,6 +207,9 @@ const _R2Bucket = Resource("cloudflare::R2Bucket", async function (id, props = {
|
|
|
149
207
|
const api = await createCloudflareApi(props);
|
|
150
208
|
if (this.phase === "delete") {
|
|
151
209
|
if (props.delete !== false) {
|
|
210
|
+
if (this.output?.catalog) {
|
|
211
|
+
await disableDataCatalog(api, bucketName);
|
|
212
|
+
}
|
|
152
213
|
if (this.output.dev?.id) {
|
|
153
214
|
await deleteMiniflareBinding(this.scope, "r2", this.output.dev.id);
|
|
154
215
|
}
|
|
@@ -178,6 +239,10 @@ const _R2Bucket = Resource("cloudflare::R2Bucket", async function (id, props = {
|
|
|
178
239
|
if (props.lock?.length) {
|
|
179
240
|
await putBucketLockRules(api, bucketName, props);
|
|
180
241
|
}
|
|
242
|
+
let dataCatalog;
|
|
243
|
+
if (props.dataCatalog) {
|
|
244
|
+
dataCatalog = await enableDataCatalog(api, bucketName);
|
|
245
|
+
}
|
|
181
246
|
return {
|
|
182
247
|
name: bucketName,
|
|
183
248
|
location: bucket.location,
|
|
@@ -191,12 +256,20 @@ const _R2Bucket = Resource("cloudflare::R2Bucket", async function (id, props = {
|
|
|
191
256
|
lock: props.lock,
|
|
192
257
|
cors: props.cors,
|
|
193
258
|
dev,
|
|
259
|
+
catalog: dataCatalog,
|
|
194
260
|
};
|
|
195
261
|
}
|
|
196
262
|
else {
|
|
197
263
|
if (bucketName !== this.output.name) {
|
|
198
264
|
throw new Error(`Cannot update R2Bucket name after creation. Bucket name is immutable. Before: ${this.output.name}, After: ${bucketName}`);
|
|
199
265
|
}
|
|
266
|
+
if (this.output?.catalog && !props.dataCatalog) {
|
|
267
|
+
await disableDataCatalog(api, bucketName);
|
|
268
|
+
this.output.catalog = undefined;
|
|
269
|
+
}
|
|
270
|
+
if (!this.output.catalog && props.dataCatalog) {
|
|
271
|
+
this.output.catalog = await enableDataCatalog(api, bucketName);
|
|
272
|
+
}
|
|
200
273
|
let domain = this.output.domain;
|
|
201
274
|
if (!!domain !== allowPublicAccess) {
|
|
202
275
|
domain = await putManagedDomain(api, bucketName, allowPublicAccess, props.jurisdiction);
|
|
@@ -516,4 +589,15 @@ export async function deleteObject(api, { bucketName, key }) {
|
|
|
516
589
|
return response;
|
|
517
590
|
});
|
|
518
591
|
}
|
|
592
|
+
export async function enableDataCatalog(api, bucketName) {
|
|
593
|
+
const response = await extractCloudflareResult(`enable data catalog for bucket "${bucketName}"`, api.post(`/accounts/${api.accountId}/r2-catalog/${bucketName}/enable`, {}));
|
|
594
|
+
return {
|
|
595
|
+
id: response.id,
|
|
596
|
+
name: response.name,
|
|
597
|
+
host: `https://catalog.cloudflarestorage.com/${response.name.replace("_", "/")}`,
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
export async function disableDataCatalog(api, bucketName) {
|
|
601
|
+
await api.post(`/accounts/${api.accountId}/r2-catalog/${bucketName}/disable`, {});
|
|
602
|
+
}
|
|
519
603
|
//# sourceMappingURL=bucket.js.map
|