@playcademy/vite-plugin 0.1.16 → 0.1.17

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 (2) hide show
  1. package/dist/index.js +73 -2
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -158088,7 +158088,8 @@ class CloudflareProvider {
158088
158088
  if (deleteBindings) {
158089
158089
  await Promise.all([
158090
158090
  this.deleteD1DatabaseIfExists(deploymentId),
158091
- this.deleteKVNamespaceIfExists(deploymentId)
158091
+ this.deleteKVNamespaceIfExists(deploymentId),
158092
+ this.deleteR2BucketIfExists(deploymentId)
158092
158093
  ]);
158093
158094
  }
158094
158095
  } catch (error2) {
@@ -158148,7 +158149,12 @@ class CloudflareProvider {
158148
158149
  });
158149
158150
  }
158150
158151
  for (const r2Name of resourceBindings.r2) {
158151
- log2.warn("[CloudflareProvider] R2 bucket binding not yet implemented", { r2Name });
158152
+ const bucketName = await this.ensureR2Bucket(r2Name);
158153
+ bindings.push({
158154
+ type: "r2_bucket",
158155
+ name: "BUCKET",
158156
+ bucket_name: bucketName
158157
+ });
158152
158158
  }
158153
158159
  for (const doBinding of resourceBindings.durableObjects) {
158154
158160
  log2.warn("[CloudflareProvider] Durable Object binding not yet implemented", {
@@ -158324,6 +158330,71 @@ class CloudflareProvider {
158324
158330
  });
158325
158331
  }
158326
158332
  }
158333
+ async ensureR2Bucket(bucketName) {
158334
+ log2.debug("[CloudflareProvider] Ensuring R2 bucket exists", { bucketName });
158335
+ try {
158336
+ const response = await this.client.r2.buckets.list({
158337
+ account_id: this.config.accountId
158338
+ });
158339
+ if (!response.buckets) {
158340
+ throw new Error("No R2 buckets found; this is weird and unexpected");
158341
+ }
158342
+ for await (const bucket of response.buckets) {
158343
+ if (bucket.name === bucketName) {
158344
+ log2.info("[CloudflareProvider] R2 bucket already exists", {
158345
+ bucketName
158346
+ });
158347
+ return bucketName;
158348
+ }
158349
+ }
158350
+ log2.debug("[CloudflareProvider] Creating new R2 bucket", { bucketName });
158351
+ await this.client.r2.buckets.create({
158352
+ account_id: this.config.accountId,
158353
+ name: bucketName
158354
+ });
158355
+ log2.info("[CloudflareProvider] R2 bucket created successfully", {
158356
+ bucketName
158357
+ });
158358
+ return bucketName;
158359
+ } catch (error2) {
158360
+ log2.error("[CloudflareProvider] Failed to ensure R2 bucket", {
158361
+ bucketName,
158362
+ error: error2
158363
+ });
158364
+ throw new Error(`Failed to ensure R2 bucket: ${error2 instanceof Error ? error2.message : String(error2)}`);
158365
+ }
158366
+ }
158367
+ async deleteR2BucketIfExists(bucketName) {
158368
+ try {
158369
+ const bucketsResponse = await this.client.r2.buckets.list({
158370
+ account_id: this.config.accountId
158371
+ });
158372
+ if (bucketsResponse.buckets) {
158373
+ for (const bucket of bucketsResponse.buckets) {
158374
+ if (bucket.name === bucketName) {
158375
+ log2.debug("[CloudflareProvider] Deleting R2 bucket", {
158376
+ bucketName
158377
+ });
158378
+ await this.client.r2.buckets.delete(bucketName, {
158379
+ account_id: this.config.accountId
158380
+ });
158381
+ log2.info("[CloudflareProvider] R2 bucket deleted successfully", {
158382
+ bucketName
158383
+ });
158384
+ return;
158385
+ }
158386
+ }
158387
+ }
158388
+ log2.debug("[CloudflareProvider] R2 bucket not found, nothing to delete", {
158389
+ bucketName
158390
+ });
158391
+ } catch (error2) {
158392
+ log2.warn("[CloudflareProvider] Failed to delete R2 bucket", {
158393
+ bucketName,
158394
+ error: error2
158395
+ });
158396
+ }
158397
+ }
158327
158398
  }
158328
158399
  var RESERVED_SUBDOMAINS = new Set([
158329
158400
  "www",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcademy/vite-plugin",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "archiver": "^7.0.1",
27
27
  "picocolors": "^1.1.1",
28
- "playcademy": "0.13.9"
28
+ "playcademy": "0.13.17"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@inquirer/prompts": "^7.8.6",