alchemy 0.87.0 → 0.90.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.
Files changed (79) hide show
  1. package/bin/alchemy.js +485 -543
  2. package/lib/cloudflare/compatibility-date.d.ts +1 -1
  3. package/lib/cloudflare/compatibility-date.d.ts.map +1 -1
  4. package/lib/cloudflare/dns-records.d.ts +6 -0
  5. package/lib/cloudflare/dns-records.d.ts.map +1 -1
  6. package/lib/cloudflare/dns-records.js +14 -12
  7. package/lib/cloudflare/dns-records.js.map +1 -1
  8. package/lib/cloudflare/index.d.ts +1 -0
  9. package/lib/cloudflare/index.d.ts.map +1 -1
  10. package/lib/cloudflare/index.js +1 -0
  11. package/lib/cloudflare/index.js.map +1 -1
  12. package/lib/cloudflare/r2-bucket-notification.d.ts +312 -0
  13. package/lib/cloudflare/r2-bucket-notification.d.ts.map +1 -0
  14. package/lib/cloudflare/r2-bucket-notification.js +387 -0
  15. package/lib/cloudflare/r2-bucket-notification.js.map +1 -0
  16. package/lib/cloudflare/worker.d.ts.map +1 -1
  17. package/lib/cloudflare/worker.js +8 -1
  18. package/lib/cloudflare/worker.js.map +1 -1
  19. package/lib/cloudflare/workflow.d.ts +17 -0
  20. package/lib/cloudflare/workflow.d.ts.map +1 -1
  21. package/lib/cloudflare/workflow.js +1 -0
  22. package/lib/cloudflare/workflow.js.map +1 -1
  23. package/lib/cloudflare/wrangler.json.js +1 -0
  24. package/lib/cloudflare/wrangler.json.js.map +1 -1
  25. package/lib/docker/api.d.ts +40 -0
  26. package/lib/docker/api.d.ts.map +1 -1
  27. package/lib/docker/api.js +30 -0
  28. package/lib/docker/api.js.map +1 -1
  29. package/lib/docker/network.d.ts.map +1 -1
  30. package/lib/docker/network.js +24 -7
  31. package/lib/docker/network.js.map +1 -1
  32. package/lib/encrypt.d.ts.map +1 -1
  33. package/lib/encrypt.js +2 -2
  34. package/lib/encrypt.js.map +1 -1
  35. package/lib/planetscale/api.d.ts +1 -0
  36. package/lib/planetscale/api.d.ts.map +1 -1
  37. package/lib/planetscale/api.js +1 -1
  38. package/lib/planetscale/api.js.map +1 -1
  39. package/lib/planetscale/branch.d.ts +28 -0
  40. package/lib/planetscale/branch.d.ts.map +1 -1
  41. package/lib/planetscale/branch.js +12 -0
  42. package/lib/planetscale/branch.js.map +1 -1
  43. package/lib/planetscale/database-extensions.d.ts +515 -0
  44. package/lib/planetscale/database-extensions.d.ts.map +1 -0
  45. package/lib/planetscale/database-extensions.js +389 -0
  46. package/lib/planetscale/database-extensions.js.map +1 -0
  47. package/lib/planetscale/database.d.ts +40 -2
  48. package/lib/planetscale/database.d.ts.map +1 -1
  49. package/lib/planetscale/database.js +76 -1
  50. package/lib/planetscale/database.js.map +1 -1
  51. package/lib/scope.d.ts.map +1 -1
  52. package/lib/scope.js +1 -2
  53. package/lib/scope.js.map +1 -1
  54. package/lib/util/telemetry.d.ts +1 -6
  55. package/lib/util/telemetry.d.ts.map +1 -1
  56. package/lib/util/telemetry.js.map +1 -1
  57. package/package.json +6 -6
  58. package/src/cloudflare/dns-records.ts +25 -16
  59. package/src/cloudflare/index.ts +1 -0
  60. package/src/cloudflare/r2-bucket-notification.ts +809 -0
  61. package/src/cloudflare/worker.ts +8 -1
  62. package/src/cloudflare/workflow.ts +18 -0
  63. package/src/cloudflare/wrangler.json.ts +1 -0
  64. package/src/docker/api.ts +61 -0
  65. package/src/docker/network.ts +27 -7
  66. package/src/encrypt.ts +2 -0
  67. package/src/planetscale/api.ts +1 -1
  68. package/src/planetscale/branch.ts +45 -0
  69. package/src/planetscale/database-extensions.ts +947 -0
  70. package/src/planetscale/database.ts +141 -2
  71. package/src/scope.ts +1 -2
  72. package/src/util/telemetry.ts +1 -20
  73. package/workers/cloudflare-state-store.js +57 -57
  74. package/workers/tunnel-proxy.js +1 -1
  75. package/lib/state/instrumented-state-store.d.ts +0 -19
  76. package/lib/state/instrumented-state-store.d.ts.map +0 -1
  77. package/lib/state/instrumented-state-store.js +0 -68
  78. package/lib/state/instrumented-state-store.js.map +0 -1
  79. package/src/state/instrumented-state-store.ts +0 -108
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * The default Cloudflare Workers compatibility date, set based on the current workerd release used by Miniflare.
3
3
  */
4
- export declare const DEFAULT_COMPATIBILITY_DATE: any;
4
+ export declare const DEFAULT_COMPATIBILITY_DATE: string;
5
5
  //# sourceMappingURL=compatibility-date.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compatibility-date.d.ts","sourceRoot":"","sources":["../../src/cloudflare/compatibility-date.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,0BAA0B,KAA6B,CAAC"}
1
+ {"version":3,"file":"compatibility-date.d.ts","sourceRoot":"","sources":["../../src/cloudflare/compatibility-date.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAA6B,CAAC"}
@@ -27,6 +27,12 @@ export interface DnsRecordsProps extends CloudflareApiOptions {
27
27
  * Array of DNS records to manage
28
28
  */
29
29
  records: DnsRecordProps[];
30
+ /**
31
+ * Whether to delete DNS records when the resource is destroyed.
32
+ * Set to false to preserve records in Cloudflare when removing from alchemy.
33
+ * @default true
34
+ */
35
+ delete?: boolean;
30
36
  }
31
37
  /**
32
38
  * Output returned after DNS records creation/update
@@ -1 +1 @@
1
- {"version":3,"file":"dns-records.d.ts","sourceRoot":"","sources":["../../src/cloudflare/dns-records.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EACV,SAAS,IAAI,aAAa,EAC1B,aAAa,EACb,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAE1B,MAAM,UAAU,CAAC;AAyBlB;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IACjE;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,qBAAqB;CAAG;AAE3D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,UAAU,yFAGb,OAAO,CAAC,UAAU,CAAC,OACpB,MAAM,SACJ,eAAe,KACrB,OAAO,CAAC,UAAU,CAAC,CAgHvB,CAAC;AA+EF,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE;IACN,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GACL,OAAO,CAAC,SAAS,EAAE,CAAC,CActB"}
1
+ {"version":3,"file":"dns-records.d.ts","sourceRoot":"","sources":["../../src/cloudflare/dns-records.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EACV,SAAS,IAAI,aAAa,EAC1B,aAAa,EACb,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAE1B,MAAM,UAAU,CAAC;AAyBlB;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IACjE;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,qBAAqB;CAAG;AAE3D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,UAAU,yFAGb,OAAO,CAAC,UAAU,CAAC,OACpB,MAAM,SACJ,eAAe,KACrB,OAAO,CAAC,UAAU,CAAC,CAkHvB,CAAC;AA+EF,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE;IACN,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GACL,OAAO,CAAC,SAAS,EAAE,CAAC,CActB"}
@@ -52,7 +52,7 @@ export const DnsRecords = Resource("cloudflare::DnsRecords", async function (_id
52
52
  // Get zone ID if domain name was provided
53
53
  const zoneId = props.zoneId;
54
54
  if (this.phase === "delete") {
55
- if (this.output?.records) {
55
+ if (props.delete !== false && this.output?.records) {
56
56
  // Delete all existing records
57
57
  await Promise.all(this.output.records.map(async (record) => {
58
58
  try {
@@ -79,18 +79,20 @@ export const DnsRecords = Resource("cloudflare::DnsRecords", async function (_id
79
79
  recordsToDelete.push(record);
80
80
  }
81
81
  }
82
- // Delete orphaned records
83
- await Promise.all(recordsToDelete.map(async (record) => {
84
- try {
85
- const response = await api.delete(`/zones/${zoneId}/dns_records/${record.id}`);
86
- if (!response.ok && response.status !== 404) {
87
- logger.error(`Failed to delete DNS record ${record.name}: ${response.statusText}`);
82
+ // Delete orphaned records (skip if delete: false)
83
+ if (props.delete !== false) {
84
+ await Promise.all(recordsToDelete.map(async (record) => {
85
+ try {
86
+ const response = await api.delete(`/zones/${zoneId}/dns_records/${record.id}`);
87
+ if (!response.ok && response.status !== 404) {
88
+ logger.error(`Failed to delete DNS record ${record.name}: ${response.statusText}`);
89
+ }
88
90
  }
89
- }
90
- catch (error) {
91
- logger.error(`Error deleting DNS record ${record.name}:`, error);
92
- }
93
- }));
91
+ catch (error) {
92
+ logger.error(`Error deleting DNS record ${record.name}:`, error);
93
+ }
94
+ }));
95
+ }
94
96
  // Update or create records
95
97
  const updatedRecords = await Promise.all(desiredRecords.entries().map(async ([key, desired]) => {
96
98
  // Find matching existing record
@@ -1 +1 @@
1
- {"version":3,"file":"dns-records.js","sourceRoot":"","sources":["../../src/cloudflare/dns-records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dns-records.js","sourceRoot":"","sources":["../../src/cloudflare/dns-records.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,7 @@ export * from "./pipeline.ts";
51
51
  export * from "./queue-consumer.ts";
52
52
  export * from "./queue.ts";
53
53
  export * from "./quick-tunnel.ts";
54
+ export * from "./r2-bucket-notification.ts";
54
55
  export * from "./rate-limit.ts";
55
56
  export * from "./react-router/react-router.ts";
56
57
  export * from "./redirect-rule.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAEA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAEA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
@@ -52,6 +52,7 @@ export * from "./pipeline.js";
52
52
  export * from "./queue-consumer.js";
53
53
  export * from "./queue.js";
54
54
  export * from "./quick-tunnel.js";
55
+ export * from "./r2-bucket-notification.js";
55
56
  export * from "./rate-limit.js";
56
57
  export * from "./react-router/react-router.js";
57
58
  export * from "./redirect-rule.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,312 @@
1
+ import type { Context } from "../context.ts";
2
+ import { type CloudflareApi, type CloudflareApiOptions } from "./api.ts";
3
+ import { type R2Bucket } from "./bucket.ts";
4
+ import { type Queue } from "./queue.ts";
5
+ /**
6
+ * Event types that can trigger R2 bucket notifications
7
+ */
8
+ export type R2BucketNotificationEventType = "object-create" | "object-delete";
9
+ /**
10
+ * Message payload sent to a Queue when an R2 bucket notification is triggered
11
+ *
12
+ * @see https://developers.cloudflare.com/r2/buckets/event-notifications/#message-format
13
+ */
14
+ export interface R2BucketNotificationMessage {
15
+ /**
16
+ * The Cloudflare account ID that the event is associated with
17
+ */
18
+ account: string;
19
+ /**
20
+ * The type of action that triggered the event notification
21
+ * Example actions include: PutObject, CopyObject, CompleteMultipartUpload, DeleteObject
22
+ */
23
+ action: string;
24
+ /**
25
+ * The name of the bucket where the event occurred
26
+ */
27
+ bucket: string;
28
+ /**
29
+ * Details about the object involved in the event
30
+ */
31
+ object: {
32
+ /**
33
+ * The key (or name) of the object within the bucket
34
+ */
35
+ key: string;
36
+ /**
37
+ * The size of the object in bytes (not present for object-delete events)
38
+ */
39
+ size?: number;
40
+ /**
41
+ * The entity tag (eTag) of the object (not present for object-delete events)
42
+ */
43
+ eTag?: string;
44
+ };
45
+ /**
46
+ * The time when the action that triggered the event occurred (ISO 8601 format)
47
+ */
48
+ eventTime: string;
49
+ /**
50
+ * Details about the source of a copied object (only present for CopyObject events)
51
+ */
52
+ copySource?: {
53
+ /**
54
+ * The bucket that contained the source object
55
+ */
56
+ bucket: string;
57
+ /**
58
+ * The name of the source object
59
+ */
60
+ object: string;
61
+ };
62
+ }
63
+ /**
64
+ * Base properties shared by all R2 Bucket Notification configurations
65
+ */
66
+ interface R2BucketNotificationBaseProps extends CloudflareApiOptions {
67
+ /**
68
+ * The R2 bucket to attach the notification rule to.
69
+ * Can be either a bucket name (string) or an R2Bucket resource.
70
+ */
71
+ bucket: string | R2Bucket;
72
+ /**
73
+ * The queue that will receive notification messages.
74
+ * Can be either a queue name (string) or a Queue resource.
75
+ */
76
+ queue: string | Queue;
77
+ /**
78
+ * The type of events that will trigger notifications.
79
+ * - "object-create": Triggered when objects are created or overwritten (PutObject, CompleteMultipartUpload)
80
+ * - "object-delete": Triggered when objects are deleted (DeleteObject, CopyObject, LifecycleDeletion)
81
+ */
82
+ eventTypes: R2BucketNotificationEventType[];
83
+ /**
84
+ * Optional description for the notification rule to help identify it.
85
+ */
86
+ description?: string;
87
+ /**
88
+ * The jurisdiction where the bucket exists.
89
+ * Required for EU or FedRAMP jurisdictions.
90
+ */
91
+ jurisdiction?: "default" | "eu" | "fedramp";
92
+ /**
93
+ * Whether to delete the notification rule when the resource is removed from Alchemy.
94
+ * @default true
95
+ */
96
+ delete?: boolean;
97
+ /**
98
+ * Whether to adopt an existing notification rule if one already exists with the same configuration.
99
+ * @default false
100
+ */
101
+ adopt?: boolean;
102
+ }
103
+ /**
104
+ * Props with single prefix and suffix (creates one rule)
105
+ */
106
+ interface R2BucketNotificationSingleProps extends R2BucketNotificationBaseProps {
107
+ /**
108
+ * Optional prefix filter - only objects with keys starting with this prefix will trigger notifications.
109
+ */
110
+ prefix?: string;
111
+ /**
112
+ * Optional suffix filter - only objects with keys ending with this suffix will trigger notifications.
113
+ */
114
+ suffix?: string;
115
+ }
116
+ /**
117
+ * Props with multiple prefixes (creates one rule per prefix)
118
+ */
119
+ interface R2BucketNotificationMultiplePrefixProps extends R2BucketNotificationBaseProps {
120
+ /**
121
+ * Array of prefix filters - creates one notification rule per prefix.
122
+ */
123
+ prefix: string[];
124
+ /**
125
+ * Optional suffix filter applied to all rules.
126
+ */
127
+ suffix?: string;
128
+ }
129
+ /**
130
+ * Props with multiple suffixes (creates one rule per suffix)
131
+ */
132
+ interface R2BucketNotificationMultipleSuffixProps extends R2BucketNotificationBaseProps {
133
+ /**
134
+ * Optional prefix filter applied to all rules.
135
+ */
136
+ prefix?: string;
137
+ /**
138
+ * Array of suffix filters - creates one notification rule per suffix.
139
+ */
140
+ suffix: string[];
141
+ }
142
+ /**
143
+ * Properties for creating or updating R2 Bucket Notification rules.
144
+ *
145
+ * Either prefix OR suffix can be an array (creating multiple rules), but not both.
146
+ */
147
+ export type R2BucketNotificationProps = R2BucketNotificationSingleProps | R2BucketNotificationMultiplePrefixProps | R2BucketNotificationMultipleSuffixProps;
148
+ /**
149
+ * Output returned after R2 Bucket Notification rule creation/update
150
+ */
151
+ export type R2BucketNotification = Omit<R2BucketNotificationBaseProps, "bucket" | "queue" | "delete" | "adopt"> & {
152
+ /**
153
+ * Resource type identifier
154
+ */
155
+ type: "r2_bucket_notification";
156
+ /**
157
+ * The Cloudflare-assigned rule ID(s) for this notification.
158
+ * When prefix or suffix is an array, this contains multiple rule IDs.
159
+ */
160
+ ruleId: string | string[];
161
+ /**
162
+ * The name of the bucket this notification is attached to
163
+ */
164
+ bucketName: string;
165
+ /**
166
+ * The name of the queue that receives notification messages
167
+ */
168
+ queueName: string;
169
+ /**
170
+ * Prefix filter(s) - normalized to always be a string or array matching input
171
+ */
172
+ prefix?: string | string[];
173
+ /**
174
+ * Suffix filter(s) - normalized to always be a string or array matching input
175
+ */
176
+ suffix?: string | string[];
177
+ /**
178
+ * Time when the notification rule was created
179
+ */
180
+ createdAt?: string;
181
+ };
182
+ /**
183
+ * Type guard to check if a resource is an R2BucketNotification
184
+ */
185
+ export declare function isR2BucketNotification(resource: any): resource is R2BucketNotification;
186
+ /**
187
+ * Creates an event notification rule for an R2 bucket that sends messages to a Queue.
188
+ *
189
+ * Event notifications allow you to trigger automated workflows when objects are created,
190
+ * modified, or deleted in your R2 bucket. Messages are delivered to a Cloudflare Queue
191
+ * where they can be processed by a consumer Worker.
192
+ *
193
+ * @example
194
+ * ## Basic object-create notification
195
+ *
196
+ * Send notifications to a queue when objects are created in a bucket:
197
+ *
198
+ * ```ts
199
+ * import { R2Bucket, Queue, R2BucketNotification } from "alchemy/cloudflare";
200
+ *
201
+ * const bucket = await R2Bucket("uploads");
202
+ * const queue = await Queue("upload-events");
203
+ *
204
+ * await R2BucketNotification("upload-notifications", {
205
+ * bucket,
206
+ * queue,
207
+ * eventTypes: ["object-create"],
208
+ * });
209
+ * ```
210
+ *
211
+ * @example
212
+ * ## Filtered notifications with prefix and suffix
213
+ *
214
+ * Only trigger notifications for specific object patterns:
215
+ *
216
+ * ```ts
217
+ * import { R2Bucket, Queue, R2BucketNotification } from "alchemy/cloudflare";
218
+ *
219
+ * const bucket = await R2Bucket("documents");
220
+ * const queue = await Queue("pdf-processing");
221
+ *
222
+ * await R2BucketNotification("pdf-uploads", {
223
+ * bucket,
224
+ * queue,
225
+ * eventTypes: ["object-create"],
226
+ * prefix: "incoming/",
227
+ * suffix: ".pdf",
228
+ * description: "Process newly uploaded PDF files",
229
+ * });
230
+ * ```
231
+ *
232
+ * @example
233
+ * ## Multiple suffixes for different file types
234
+ *
235
+ * Create rules for multiple file extensions at once:
236
+ *
237
+ * ```ts
238
+ * import { R2Bucket, Queue, R2BucketNotification } from "alchemy/cloudflare";
239
+ *
240
+ * const bucket = await R2Bucket("media");
241
+ * const queue = await Queue("audio-processing");
242
+ *
243
+ * await R2BucketNotification("audio-uploads", {
244
+ * bucket,
245
+ * queue,
246
+ * eventTypes: ["object-create"],
247
+ * prefix: "audio/",
248
+ * suffix: [".mp3", ".wav", ".flac"],
249
+ * });
250
+ * ```
251
+ *
252
+ * @example
253
+ * ## Multiple event types with typed queue
254
+ *
255
+ * Listen for both create and delete events with type-safe message handling:
256
+ *
257
+ * ```ts
258
+ * import { R2Bucket, Queue, R2BucketNotification, R2BucketNotificationMessage } from "alchemy/cloudflare";
259
+ *
260
+ * const bucket = await R2Bucket("assets");
261
+ * const queue = await Queue<R2BucketNotificationMessage>("asset-events");
262
+ *
263
+ * await R2BucketNotification("asset-notifications", {
264
+ * bucket,
265
+ * queue,
266
+ * eventTypes: ["object-create", "object-delete"],
267
+ * });
268
+ * ```
269
+ *
270
+ * @example
271
+ * ## Process notifications with a Worker
272
+ *
273
+ * Complete example showing bucket notifications processed by a Worker:
274
+ *
275
+ * ```ts
276
+ * import { R2Bucket, Queue, R2BucketNotification, Worker, R2BucketNotificationMessage } from "alchemy/cloudflare";
277
+ *
278
+ * const bucket = await R2Bucket("uploads");
279
+ * const queue = await Queue<R2BucketNotificationMessage>("upload-events");
280
+ *
281
+ * await R2BucketNotification("upload-notifications", {
282
+ * bucket,
283
+ * queue,
284
+ * eventTypes: ["object-create"],
285
+ * });
286
+ *
287
+ * await Worker("processor", {
288
+ * entrypoint: "./src/processor.ts",
289
+ * eventSources: [queue],
290
+ * });
291
+ * ```
292
+ *
293
+ * @see https://developers.cloudflare.com/r2/buckets/event-notifications/
294
+ */
295
+ export declare const R2BucketNotification: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<R2BucketNotification>, _id: string, props: R2BucketNotificationProps) => Promise<R2BucketNotification>);
296
+ interface NotificationRuleInfo {
297
+ ruleId: string;
298
+ queueId: string;
299
+ queueName: string;
300
+ actions: string[];
301
+ prefix: string;
302
+ suffix: string;
303
+ createdAt?: string;
304
+ }
305
+ /**
306
+ * List all notification rules for an R2 bucket
307
+ */
308
+ export declare function listR2BucketNotifications(api: CloudflareApi, bucketName: string, options?: {
309
+ jurisdiction?: string;
310
+ }): Promise<NotificationRuleInfo[]>;
311
+ export {};
312
+ //# sourceMappingURL=r2-bucket-notification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r2-bucket-notification.d.ts","sourceRoot":"","sources":["../../src/cloudflare/r2-bucket-notification.ts"],"names":[],"mappings":"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"}