alchemy 0.24.0 → 0.25.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 (184) hide show
  1. package/lib/aws/control/client.js +1 -1
  2. package/lib/aws/control/client.js.map +1 -1
  3. package/lib/aws/control/resource.d.ts.map +1 -1
  4. package/lib/aws/control/resource.js +2 -1
  5. package/lib/aws/control/resource.js.map +1 -1
  6. package/lib/aws/function.d.ts.map +1 -1
  7. package/lib/aws/function.js +1 -4
  8. package/lib/aws/function.js.map +1 -1
  9. package/lib/cloudflare/ai.d.ts +21 -0
  10. package/lib/cloudflare/ai.d.ts.map +1 -1
  11. package/lib/cloudflare/ai.js +21 -0
  12. package/lib/cloudflare/ai.js.map +1 -1
  13. package/lib/cloudflare/bindings.d.ts +3 -3
  14. package/lib/cloudflare/bindings.d.ts.map +1 -1
  15. package/lib/cloudflare/bindings.js.map +1 -1
  16. package/lib/cloudflare/bound.d.ts +3 -3
  17. package/lib/cloudflare/bound.d.ts.map +1 -1
  18. package/lib/cloudflare/do-state-store/index.d.ts +2 -0
  19. package/lib/cloudflare/do-state-store/index.d.ts.map +1 -0
  20. package/lib/cloudflare/do-state-store/index.js +2 -0
  21. package/lib/cloudflare/do-state-store/index.js.map +1 -0
  22. package/lib/cloudflare/do-state-store/internal.d.ts +19 -0
  23. package/lib/cloudflare/do-state-store/internal.d.ts.map +1 -0
  24. package/lib/cloudflare/do-state-store/internal.js +163 -0
  25. package/lib/cloudflare/do-state-store/internal.js.map +1 -0
  26. package/lib/cloudflare/do-state-store/store.d.ts +59 -0
  27. package/lib/cloudflare/do-state-store/store.d.ts.map +1 -0
  28. package/lib/cloudflare/do-state-store/store.js +120 -0
  29. package/lib/cloudflare/do-state-store/store.js.map +1 -0
  30. package/lib/cloudflare/do-state-store/types.d.ts +82 -0
  31. package/lib/cloudflare/do-state-store/types.d.ts.map +1 -0
  32. package/lib/cloudflare/do-state-store/types.js +1 -0
  33. package/lib/cloudflare/do-state-store/types.js.map +1 -0
  34. package/lib/cloudflare/do-state-store/worker.d.ts +27 -0
  35. package/lib/cloudflare/do-state-store/worker.d.ts.map +1 -0
  36. package/lib/cloudflare/do-state-store/worker.js +170 -0
  37. package/lib/cloudflare/do-state-store/worker.js.map +1 -0
  38. package/lib/cloudflare/index.d.ts +1 -0
  39. package/lib/cloudflare/index.d.ts.map +1 -1
  40. package/lib/cloudflare/index.js +1 -0
  41. package/lib/cloudflare/index.js.map +1 -1
  42. package/lib/cloudflare/pipeline.js +1 -1
  43. package/lib/cloudflare/pipeline.js.map +1 -1
  44. package/lib/cloudflare/queue-consumer.d.ts +14 -1
  45. package/lib/cloudflare/queue-consumer.d.ts.map +1 -1
  46. package/lib/cloudflare/queue-consumer.js +17 -0
  47. package/lib/cloudflare/queue-consumer.js.map +1 -1
  48. package/lib/cloudflare/website.d.ts +30 -1
  49. package/lib/cloudflare/website.d.ts.map +1 -1
  50. package/lib/cloudflare/website.js +8 -5
  51. package/lib/cloudflare/website.js.map +1 -1
  52. package/lib/cloudflare/worker-assets.d.ts.map +1 -1
  53. package/lib/cloudflare/worker-assets.js +13 -3
  54. package/lib/cloudflare/worker-assets.js.map +1 -1
  55. package/lib/cloudflare/worker-metadata.js +1 -1
  56. package/lib/cloudflare/worker-metadata.js.map +1 -1
  57. package/lib/cloudflare/worker.d.ts +40 -1
  58. package/lib/cloudflare/worker.d.ts.map +1 -1
  59. package/lib/cloudflare/worker.js +40 -38
  60. package/lib/cloudflare/worker.js.map +1 -1
  61. package/lib/cloudflare/wrangler.json.js +1 -1
  62. package/lib/cloudflare/wrangler.json.js.map +1 -1
  63. package/lib/cloudflare/zone.d.ts +30 -2
  64. package/lib/cloudflare/zone.d.ts.map +1 -1
  65. package/lib/cloudflare/zone.js +53 -0
  66. package/lib/cloudflare/zone.js.map +1 -1
  67. package/lib/fs/file-system-state-store.d.ts +3 -1
  68. package/lib/fs/file-system-state-store.d.ts.map +1 -1
  69. package/lib/fs/file-system-state-store.js +2 -2
  70. package/lib/fs/file-system-state-store.js.map +1 -1
  71. package/lib/stripe/card.d.ts +171 -0
  72. package/lib/stripe/card.d.ts.map +1 -0
  73. package/lib/stripe/card.js +148 -0
  74. package/lib/stripe/card.js.map +1 -0
  75. package/lib/stripe/client.d.ts +9 -0
  76. package/lib/stripe/client.d.ts.map +1 -0
  77. package/lib/stripe/client.js +94 -0
  78. package/lib/stripe/client.js.map +1 -0
  79. package/lib/stripe/coupon.d.ts +135 -0
  80. package/lib/stripe/coupon.d.ts.map +1 -0
  81. package/lib/stripe/coupon.js +161 -0
  82. package/lib/stripe/coupon.js.map +1 -0
  83. package/lib/stripe/customer.d.ts +269 -0
  84. package/lib/stripe/customer.d.ts.map +1 -0
  85. package/lib/stripe/customer.js +289 -0
  86. package/lib/stripe/customer.js.map +1 -0
  87. package/lib/stripe/entitlements-feature.d.ts +84 -0
  88. package/lib/stripe/entitlements-feature.d.ts.map +1 -0
  89. package/lib/stripe/entitlements-feature.js +102 -0
  90. package/lib/stripe/entitlements-feature.js.map +1 -0
  91. package/lib/stripe/file.d.ts +143 -0
  92. package/lib/stripe/file.d.ts.map +1 -0
  93. package/lib/stripe/file.js +97 -0
  94. package/lib/stripe/file.js.map +1 -0
  95. package/lib/stripe/index.d.ts +11 -0
  96. package/lib/stripe/index.d.ts.map +1 -1
  97. package/lib/stripe/index.js +11 -0
  98. package/lib/stripe/index.js.map +1 -1
  99. package/lib/stripe/meter.d.ts +10 -1
  100. package/lib/stripe/meter.d.ts.map +1 -1
  101. package/lib/stripe/meter.js +13 -7
  102. package/lib/stripe/meter.js.map +1 -1
  103. package/lib/stripe/portal-configuration.d.ts +286 -0
  104. package/lib/stripe/portal-configuration.d.ts.map +1 -0
  105. package/lib/stripe/portal-configuration.js +320 -0
  106. package/lib/stripe/portal-configuration.js.map +1 -0
  107. package/lib/stripe/price.d.ts +10 -1
  108. package/lib/stripe/price.d.ts.map +1 -1
  109. package/lib/stripe/price.js +34 -13
  110. package/lib/stripe/price.js.map +1 -1
  111. package/lib/stripe/product-feature.d.ts +76 -0
  112. package/lib/stripe/product-feature.d.ts.map +1 -0
  113. package/lib/stripe/product-feature.js +74 -0
  114. package/lib/stripe/product-feature.js.map +1 -0
  115. package/lib/stripe/product.d.ts +10 -1
  116. package/lib/stripe/product.d.ts.map +1 -1
  117. package/lib/stripe/product.js +33 -14
  118. package/lib/stripe/product.js.map +1 -1
  119. package/lib/stripe/promotion-code.d.ts +138 -0
  120. package/lib/stripe/promotion-code.d.ts.map +1 -0
  121. package/lib/stripe/promotion-code.js +150 -0
  122. package/lib/stripe/promotion-code.js.map +1 -0
  123. package/lib/stripe/shipping-rate.d.ts +188 -0
  124. package/lib/stripe/shipping-rate.d.ts.map +1 -0
  125. package/lib/stripe/shipping-rate.js +198 -0
  126. package/lib/stripe/shipping-rate.js.map +1 -0
  127. package/lib/stripe/tax-rate.d.ts +130 -0
  128. package/lib/stripe/tax-rate.d.ts.map +1 -0
  129. package/lib/stripe/tax-rate.js +126 -0
  130. package/lib/stripe/tax-rate.js.map +1 -0
  131. package/lib/stripe/webhook.d.ts +10 -1
  132. package/lib/stripe/webhook.d.ts.map +1 -1
  133. package/lib/stripe/webhook.js +59 -14
  134. package/lib/stripe/webhook.js.map +1 -1
  135. package/lib/test/bun.d.ts.map +1 -1
  136. package/lib/test/bun.js +2 -6
  137. package/lib/test/bun.js.map +1 -1
  138. package/lib/test/vitest.d.ts.map +1 -1
  139. package/lib/test/vitest.js +3 -7
  140. package/lib/test/vitest.js.map +1 -1
  141. package/lib/util/retry.d.ts +1 -1
  142. package/lib/util/retry.d.ts.map +1 -1
  143. package/lib/util/retry.js.map +1 -1
  144. package/package.json +3 -2
  145. package/src/aws/control/client.ts +1 -1
  146. package/src/aws/control/resource.ts +2 -1
  147. package/src/aws/function.ts +3 -6
  148. package/src/cloudflare/ai.ts +21 -0
  149. package/src/cloudflare/bindings.ts +3 -2
  150. package/src/cloudflare/bound.ts +3 -3
  151. package/src/cloudflare/do-state-store/index.ts +1 -0
  152. package/src/cloudflare/do-state-store/internal.ts +215 -0
  153. package/src/cloudflare/do-state-store/store.ts +188 -0
  154. package/src/cloudflare/do-state-store/types.ts +74 -0
  155. package/src/cloudflare/do-state-store/worker.ts +199 -0
  156. package/src/cloudflare/index.ts +1 -0
  157. package/src/cloudflare/pipeline.ts +1 -1
  158. package/src/cloudflare/queue-consumer.ts +59 -1
  159. package/src/cloudflare/website.ts +38 -6
  160. package/src/cloudflare/worker-assets.ts +15 -3
  161. package/src/cloudflare/worker-metadata.ts +1 -1
  162. package/src/cloudflare/worker.ts +66 -46
  163. package/src/cloudflare/wrangler.json.ts +1 -1
  164. package/src/cloudflare/zone.ts +75 -2
  165. package/src/fs/file-system-state-store.ts +7 -2
  166. package/src/stripe/card.ts +320 -0
  167. package/src/stripe/client.ts +145 -0
  168. package/src/stripe/coupon.ts +280 -0
  169. package/src/stripe/customer.ts +528 -0
  170. package/src/stripe/entitlements-feature.ts +169 -0
  171. package/src/stripe/file.ts +219 -0
  172. package/src/stripe/index.ts +11 -0
  173. package/src/stripe/meter.ts +23 -7
  174. package/src/stripe/portal-configuration.ts +609 -0
  175. package/src/stripe/price.ts +47 -14
  176. package/src/stripe/product-feature.ts +150 -0
  177. package/src/stripe/product.ts +48 -15
  178. package/src/stripe/promotion-code.ts +268 -0
  179. package/src/stripe/shipping-rate.ts +362 -0
  180. package/src/stripe/tax-rate.ts +218 -0
  181. package/src/stripe/webhook.ts +82 -15
  182. package/src/test/bun.ts +2 -7
  183. package/src/test/vitest.ts +3 -8
  184. package/src/util/retry.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/stripe/product.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,KAAK,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CAAC,iBAAiB,CAAC,EAAE,YAAY;IACxE;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,OAAO,yFAGV,OAAO,CAAC,OAAO,CAAC,OACjB,MAAM,SACJ,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,CA+EpB,CAAC"}
1
+ {"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/stripe/product.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;AAG3C,KAAK,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CAAC,iBAAiB,CAAC,EAAE,YAAY;IACxE;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,OAAO,yFAGV,OAAO,CAAC,OAAO,CAAC,OACjB,MAAM,SACJ,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,CAoGpB,CAAC"}
@@ -1,5 +1,5 @@
1
- import Stripe from "stripe";
2
1
  import { Resource } from "../resource.js";
2
+ import { createStripeClient, handleStripeDeleteError } from "./client.js";
3
3
  /**
4
4
  * Create and manage Stripe products
5
5
  *
@@ -39,13 +39,7 @@ import { Resource } from "../resource.js";
39
39
  * });
40
40
  */
41
41
  export const Product = Resource("stripe::Product", async function (_id, props) {
42
- // Get Stripe API key from context or environment
43
- const apiKey = process.env.STRIPE_API_KEY;
44
- if (!apiKey) {
45
- throw new Error("STRIPE_API_KEY environment variable is required");
46
- }
47
- // Initialize Stripe client
48
- const stripe = new Stripe(apiKey);
42
+ const stripe = createStripeClient({ apiKey: props.apiKey });
49
43
  if (this.phase === "delete") {
50
44
  try {
51
45
  if (this.phase === "delete" && this.output?.id) {
@@ -53,8 +47,7 @@ export const Product = Resource("stripe::Product", async function (_id, props) {
53
47
  }
54
48
  }
55
49
  catch (error) {
56
- // Ignore if the product doesn't exist
57
- console.error("Error deactivating product:", error);
50
+ handleStripeDeleteError(error, "Product", this.output?.id);
58
51
  }
59
52
  // Return a minimal output for deleted state
60
53
  return this.destroy();
@@ -63,7 +56,7 @@ export const Product = Resource("stripe::Product", async function (_id, props) {
63
56
  let product;
64
57
  if (this.phase === "update" && this.output?.id) {
65
58
  // Update existing product
66
- product = await stripe.products.update(this.output.id, {
59
+ const updateParams = {
67
60
  name: props.name,
68
61
  description: props.description,
69
62
  active: props.active,
@@ -72,11 +65,12 @@ export const Product = Resource("stripe::Product", async function (_id, props) {
72
65
  statement_descriptor: props.statementDescriptor,
73
66
  metadata: props.metadata,
74
67
  tax_code: props.taxCode,
75
- });
68
+ };
69
+ product = await stripe.products.update(this.output.id, updateParams);
76
70
  }
77
71
  else {
78
72
  // Create new product
79
- product = await stripe.products.create({
73
+ const createParams = {
80
74
  name: props.name,
81
75
  description: props.description,
82
76
  active: props.active,
@@ -88,7 +82,32 @@ export const Product = Resource("stripe::Product", async function (_id, props) {
88
82
  statement_descriptor: props.statementDescriptor,
89
83
  metadata: props.metadata,
90
84
  tax_code: props.taxCode,
91
- });
85
+ };
86
+ if (props.adopt) {
87
+ const existingProducts = await stripe.products.list({
88
+ limit: 100,
89
+ });
90
+ const existingProduct = existingProducts.data.find((p) => p.name === props.name);
91
+ if (existingProduct) {
92
+ const updateParams = {
93
+ name: props.name,
94
+ description: props.description,
95
+ active: props.active,
96
+ images: props.images,
97
+ url: props.url,
98
+ statement_descriptor: props.statementDescriptor,
99
+ metadata: props.metadata,
100
+ tax_code: props.taxCode,
101
+ };
102
+ product = await stripe.products.update(existingProduct.id, updateParams);
103
+ }
104
+ else {
105
+ product = await stripe.products.create(createParams);
106
+ }
107
+ }
108
+ else {
109
+ product = await stripe.products.create(createParams);
110
+ }
92
111
  }
93
112
  return this({
94
113
  id: product.id,
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/stripe/product.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/stripe/product.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ import type { Context } from "../context.ts";
2
+ import { Resource } from "../resource.ts";
3
+ import type { Secret } from "../secret.ts";
4
+ /**
5
+ * Restrictions for promotion code usage
6
+ */
7
+ export interface PromotionCodeRestrictions {
8
+ /**
9
+ * Promotion codes defined with this restriction will only work for Checkout Sessions in payment mode
10
+ */
11
+ firstTimeTransaction?: boolean;
12
+ /**
13
+ * Minimum amount required to redeem this promotion code into a coupon
14
+ */
15
+ minimumAmount?: number;
16
+ /**
17
+ * Three-letter ISO code for minimum_amount
18
+ */
19
+ minimumAmountCurrency?: string;
20
+ }
21
+ /**
22
+ * Properties for creating a Stripe promotion code
23
+ */
24
+ export interface PromotionCodeProps {
25
+ /**
26
+ * The coupon for this promotion code
27
+ */
28
+ coupon: string;
29
+ /**
30
+ * The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for a specific customer
31
+ */
32
+ code?: string;
33
+ /**
34
+ * Whether the promotion code is currently active
35
+ */
36
+ active?: boolean;
37
+ /**
38
+ * The customer that this promotion code can be used by
39
+ */
40
+ customer?: string;
41
+ /**
42
+ * The timestamp at which this promotion code will expire
43
+ */
44
+ expiresAt?: number;
45
+ /**
46
+ * The maximum number of times this promotion code can be redeemed
47
+ */
48
+ maxRedemptions?: number;
49
+ /**
50
+ * Set of key-value pairs that you can attach to an object
51
+ */
52
+ metadata?: Record<string, string>;
53
+ /**
54
+ * Settings that restrict the redemption of the promotion code
55
+ */
56
+ restrictions?: PromotionCodeRestrictions;
57
+ /**
58
+ * API key to use (overrides environment variable)
59
+ */
60
+ apiKey?: Secret;
61
+ /**
62
+ * If true, adopt existing resource if creation fails due to conflict
63
+ */
64
+ adopt?: boolean;
65
+ }
66
+ /**
67
+ * Output from the Stripe promotion code
68
+ */
69
+ export interface PromotionCode extends Resource<"stripe::PromotionCode">, PromotionCodeProps {
70
+ /**
71
+ * The ID of the promotion code
72
+ */
73
+ id: string;
74
+ /**
75
+ * String representing the object's type
76
+ */
77
+ object: "promotion_code";
78
+ /**
79
+ * Time at which the object was created
80
+ */
81
+ created: number;
82
+ /**
83
+ * Has the value true if the object exists in live mode or the value false if the object exists in test mode
84
+ */
85
+ livemode: boolean;
86
+ /**
87
+ * Number of times this promotion code has been used
88
+ */
89
+ timesRedeemed: number;
90
+ }
91
+ /**
92
+ * Create and manage Stripe promotion codes for coupons
93
+ *
94
+ * @example
95
+ * // Create a basic promotion code
96
+ * const basicPromoCode = await PromotionCode("summer-promo", {
97
+ * coupon: "SUMMER25",
98
+ * code: "SAVE25NOW",
99
+ * active: true,
100
+ * metadata: {
101
+ * campaign: "summer_sale",
102
+ * channel: "email"
103
+ * }
104
+ * });
105
+ *
106
+ * @example
107
+ * // Create a customer-specific promotion code
108
+ * const customerPromoCode = await PromotionCode("vip-discount", {
109
+ * coupon: "VIP15",
110
+ * code: "VIP15OFF",
111
+ * customer: "cus_xyz123",
112
+ * maxRedemptions: 1,
113
+ * expiresAt: Math.floor(Date.now() / 1000) + 86400 * 30,
114
+ * metadata: {
115
+ * type: "vip_exclusive",
116
+ * tier: "gold"
117
+ * }
118
+ * });
119
+ *
120
+ * @example
121
+ * // Create a promotion code with restrictions
122
+ * const restrictedPromoCode = await PromotionCode("first-time-buyer", {
123
+ * coupon: "WELCOME10",
124
+ * code: "FIRSTTIME10",
125
+ * restrictions: {
126
+ * firstTimeTransaction: true,
127
+ * minimumAmount: 5000,
128
+ * minimumAmountCurrency: "usd"
129
+ * },
130
+ * maxRedemptions: 1000,
131
+ * metadata: {
132
+ * campaign: "new_customer_acquisition",
133
+ * minimum_order: "50_usd"
134
+ * }
135
+ * });
136
+ */
137
+ export declare const PromotionCode: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<PromotionCode>, _id: string, props: PromotionCodeProps) => Promise<PromotionCode>);
138
+ //# sourceMappingURL=promotion-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion-code.d.ts","sourceRoot":"","sources":["../../src/stripe/promotion-code.ts"],"names":[],"mappings":"AACA,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;AAO3C;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;OAEG;IACH,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aACf,SAAQ,QAAQ,CAAC,uBAAuB,CAAC,EACvC,kBAAkB;IACpB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAC;IACzB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,aAAa,yFAGhB,OAAO,CAAC,aAAa,CAAC,OACvB,MAAM,SACJ,kBAAkB,KACxB,OAAO,CAAC,aAAa,CAAC,CA+G1B,CAAC"}
@@ -0,0 +1,150 @@
1
+ import { Resource } from "../resource.js";
2
+ import { createStripeClient, handleStripeDeleteError, isStripeConflictError, } from "./client.js";
3
+ /**
4
+ * Create and manage Stripe promotion codes for coupons
5
+ *
6
+ * @example
7
+ * // Create a basic promotion code
8
+ * const basicPromoCode = await PromotionCode("summer-promo", {
9
+ * coupon: "SUMMER25",
10
+ * code: "SAVE25NOW",
11
+ * active: true,
12
+ * metadata: {
13
+ * campaign: "summer_sale",
14
+ * channel: "email"
15
+ * }
16
+ * });
17
+ *
18
+ * @example
19
+ * // Create a customer-specific promotion code
20
+ * const customerPromoCode = await PromotionCode("vip-discount", {
21
+ * coupon: "VIP15",
22
+ * code: "VIP15OFF",
23
+ * customer: "cus_xyz123",
24
+ * maxRedemptions: 1,
25
+ * expiresAt: Math.floor(Date.now() / 1000) + 86400 * 30,
26
+ * metadata: {
27
+ * type: "vip_exclusive",
28
+ * tier: "gold"
29
+ * }
30
+ * });
31
+ *
32
+ * @example
33
+ * // Create a promotion code with restrictions
34
+ * const restrictedPromoCode = await PromotionCode("first-time-buyer", {
35
+ * coupon: "WELCOME10",
36
+ * code: "FIRSTTIME10",
37
+ * restrictions: {
38
+ * firstTimeTransaction: true,
39
+ * minimumAmount: 5000,
40
+ * minimumAmountCurrency: "usd"
41
+ * },
42
+ * maxRedemptions: 1000,
43
+ * metadata: {
44
+ * campaign: "new_customer_acquisition",
45
+ * minimum_order: "50_usd"
46
+ * }
47
+ * });
48
+ */
49
+ export const PromotionCode = Resource("stripe::PromotionCode", async function (_id, props) {
50
+ const stripe = createStripeClient({ apiKey: props.apiKey });
51
+ if (this.phase === "delete") {
52
+ try {
53
+ if (this.output?.id) {
54
+ await stripe.promotionCodes.update(this.output.id, { active: false });
55
+ }
56
+ }
57
+ catch (error) {
58
+ handleStripeDeleteError(error, "PromotionCode", this.output?.id);
59
+ }
60
+ return this.destroy();
61
+ }
62
+ try {
63
+ let promotionCode;
64
+ if (this.phase === "update" && this.output?.id) {
65
+ const updateParams = {
66
+ active: props.active,
67
+ metadata: props.metadata,
68
+ };
69
+ promotionCode = await stripe.promotionCodes.update(this.output.id, updateParams);
70
+ }
71
+ else {
72
+ const createParams = {
73
+ coupon: props.coupon,
74
+ code: props.code,
75
+ active: props.active,
76
+ customer: props.customer,
77
+ expires_at: props.expiresAt,
78
+ max_redemptions: props.maxRedemptions,
79
+ metadata: props.metadata,
80
+ };
81
+ if (props.restrictions) {
82
+ createParams.restrictions = {
83
+ first_time_transaction: props.restrictions.firstTimeTransaction,
84
+ minimum_amount: props.restrictions.minimumAmount,
85
+ minimum_amount_currency: props.restrictions.minimumAmountCurrency,
86
+ };
87
+ }
88
+ try {
89
+ promotionCode = await stripe.promotionCodes.create(createParams);
90
+ }
91
+ catch (error) {
92
+ if (isStripeConflictError(error) && props.adopt) {
93
+ if (props.code) {
94
+ const existingPromotionCodes = await stripe.promotionCodes.list({
95
+ code: props.code,
96
+ limit: 1,
97
+ });
98
+ if (existingPromotionCodes.data.length > 0) {
99
+ const existingPromotionCode = existingPromotionCodes.data[0];
100
+ const updateParams = {
101
+ active: props.active,
102
+ metadata: props.metadata,
103
+ };
104
+ promotionCode = await stripe.promotionCodes.update(existingPromotionCode.id, updateParams);
105
+ }
106
+ else {
107
+ throw error;
108
+ }
109
+ }
110
+ else {
111
+ throw error;
112
+ }
113
+ }
114
+ else {
115
+ throw error;
116
+ }
117
+ }
118
+ }
119
+ return this({
120
+ id: promotionCode.id,
121
+ object: promotionCode.object,
122
+ coupon: typeof promotionCode.coupon === "string"
123
+ ? promotionCode.coupon
124
+ : promotionCode.coupon.id,
125
+ code: promotionCode.code,
126
+ active: promotionCode.active,
127
+ customer: typeof promotionCode.customer === "string"
128
+ ? promotionCode.customer
129
+ : promotionCode.customer?.id,
130
+ expiresAt: promotionCode.expires_at || undefined,
131
+ maxRedemptions: promotionCode.max_redemptions || undefined,
132
+ metadata: promotionCode.metadata || undefined,
133
+ restrictions: promotionCode.restrictions
134
+ ? {
135
+ firstTimeTransaction: promotionCode.restrictions.first_time_transaction || undefined,
136
+ minimumAmount: promotionCode.restrictions.minimum_amount || undefined,
137
+ minimumAmountCurrency: promotionCode.restrictions.minimum_amount_currency || undefined,
138
+ }
139
+ : undefined,
140
+ created: promotionCode.created,
141
+ livemode: promotionCode.livemode,
142
+ timesRedeemed: promotionCode.times_redeemed,
143
+ });
144
+ }
145
+ catch (error) {
146
+ console.error("Error creating/updating promotion code:", error);
147
+ throw error;
148
+ }
149
+ });
150
+ //# sourceMappingURL=promotion-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion-code.js","sourceRoot":"","sources":["../../src/stripe/promotion-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ import type Stripe from "stripe";
2
+ import type { Context } from "../context.ts";
3
+ import { Resource } from "../resource.ts";
4
+ import type { Secret } from "../secret.ts";
5
+ /**
6
+ * Delivery estimate for shipping rate
7
+ */
8
+ export interface ShippingRateDeliveryEstimate {
9
+ /**
10
+ * The lower bound of the estimated range
11
+ */
12
+ minimum?: {
13
+ /**
14
+ * A unit of time
15
+ */
16
+ unit: Stripe.ShippingRateCreateParams.DeliveryEstimate.Minimum.Unit;
17
+ /**
18
+ * Must be greater than 0
19
+ */
20
+ value: number;
21
+ };
22
+ /**
23
+ * The upper bound of the estimated range
24
+ */
25
+ maximum?: {
26
+ /**
27
+ * A unit of time
28
+ */
29
+ unit: Stripe.ShippingRateCreateParams.DeliveryEstimate.Maximum.Unit;
30
+ /**
31
+ * Must be greater than 0
32
+ */
33
+ value: number;
34
+ };
35
+ }
36
+ /**
37
+ * Fixed amount configuration for shipping rate
38
+ */
39
+ export interface ShippingRateFixedAmount {
40
+ /**
41
+ * A non-negative integer in cents representing how much to charge
42
+ */
43
+ amount: number;
44
+ /**
45
+ * Three-letter ISO currency code, in lowercase
46
+ */
47
+ currency: string;
48
+ /**
49
+ * Shipping rates defined in each available currency option
50
+ */
51
+ currencyOptions?: Record<string, {
52
+ /**
53
+ * A non-negative integer in cents representing how much to charge
54
+ */
55
+ amount: number;
56
+ /**
57
+ * Specifies whether the rate is considered inclusive or exclusive of taxes
58
+ */
59
+ taxBehavior?: Stripe.ShippingRateCreateParams.FixedAmount.CurrencyOptions.TaxBehavior;
60
+ }>;
61
+ }
62
+ /**
63
+ * Properties for creating a Stripe shipping rate
64
+ */
65
+ export interface ShippingRateProps {
66
+ /**
67
+ * The name of the shipping rate, meant to be displayable to the customer
68
+ */
69
+ displayName: string;
70
+ /**
71
+ * Describes a fixed amount to charge for shipping
72
+ */
73
+ fixedAmount?: ShippingRateFixedAmount;
74
+ /**
75
+ * The estimated range for how long shipping will take
76
+ */
77
+ deliveryEstimate?: ShippingRateDeliveryEstimate;
78
+ /**
79
+ * Set of key-value pairs that you can attach to an object
80
+ */
81
+ metadata?: Record<string, string>;
82
+ /**
83
+ * Whether the shipping rate can be used for new purchases
84
+ */
85
+ active?: boolean;
86
+ /**
87
+ * Specifies whether the rate is considered inclusive or exclusive of taxes
88
+ */
89
+ taxBehavior?: Stripe.ShippingRateCreateParams.TaxBehavior;
90
+ /**
91
+ * A tax code ID
92
+ */
93
+ taxCode?: string;
94
+ /**
95
+ * The type of calculation to use on the shipping rate
96
+ */
97
+ type?: "fixed_amount";
98
+ /**
99
+ * API key to use (overrides environment variable)
100
+ */
101
+ apiKey?: Secret;
102
+ /**
103
+ * If true, adopt existing resource if creation fails due to conflict
104
+ */
105
+ adopt?: boolean;
106
+ }
107
+ /**
108
+ * Output from the Stripe shipping rate
109
+ */
110
+ export interface ShippingRate extends Resource<"stripe::ShippingRate">, ShippingRateProps {
111
+ /**
112
+ * The ID of the shipping rate
113
+ */
114
+ id: string;
115
+ /**
116
+ * String representing the object's type
117
+ */
118
+ object: "shipping_rate";
119
+ /**
120
+ * Time at which the object was created
121
+ */
122
+ created: number;
123
+ /**
124
+ * Has the value true if the object exists in live mode or the value false if the object exists in test mode
125
+ */
126
+ livemode: boolean;
127
+ }
128
+ /**
129
+ * Create and manage Stripe shipping rates
130
+ *
131
+ * @example
132
+ * // Create a standard shipping rate
133
+ * const standardShipping = await ShippingRate("standard-shipping", {
134
+ * displayName: "Standard Shipping",
135
+ * type: "fixed_amount",
136
+ * fixedAmount: {
137
+ * amount: 500,
138
+ * currency: "usd"
139
+ * },
140
+ * deliveryEstimate: {
141
+ * minimum: { unit: "business_day", value: 5 },
142
+ * maximum: { unit: "business_day", value: 7 }
143
+ * },
144
+ * taxBehavior: "exclusive"
145
+ * });
146
+ *
147
+ * @example
148
+ * // Create an express shipping rate
149
+ * const expressShipping = await ShippingRate("express-shipping", {
150
+ * displayName: "Express Shipping",
151
+ * type: "fixed_amount",
152
+ * fixedAmount: {
153
+ * amount: 1500,
154
+ * currency: "usd"
155
+ * },
156
+ * deliveryEstimate: {
157
+ * minimum: { unit: "business_day", value: 1 },
158
+ * maximum: { unit: "business_day", value: 2 }
159
+ * },
160
+ * taxBehavior: "exclusive",
161
+ * metadata: {
162
+ * priority: "high",
163
+ * service_level: "express"
164
+ * }
165
+ * });
166
+ *
167
+ * @example
168
+ * // Create a free shipping rate
169
+ * const freeShipping = await ShippingRate("free-shipping", {
170
+ * displayName: "Free Shipping",
171
+ * type: "fixed_amount",
172
+ * fixedAmount: {
173
+ * amount: 0,
174
+ * currency: "usd"
175
+ * },
176
+ * deliveryEstimate: {
177
+ * minimum: { unit: "business_day", value: 7 },
178
+ * maximum: { unit: "business_day", value: 10 }
179
+ * },
180
+ * taxBehavior: "unspecified",
181
+ * metadata: {
182
+ * promotion: "free_shipping_over_50",
183
+ * cost_center: "marketing"
184
+ * }
185
+ * });
186
+ */
187
+ export declare const ShippingRate: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<ShippingRate>, _id: string, props: ShippingRateProps) => Promise<ShippingRate>);
188
+ //# sourceMappingURL=shipping-rate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipping-rate.d.ts","sourceRoot":"","sources":["../../src/stripe/shipping-rate.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;AAO3C;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;QACpE;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;QACpE;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CACtB,MAAM,EACN;QACE;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC;KACvF,CACF,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;OAEG;IACH,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;IAChD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC;IAC1D;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,QAAQ,CAAC,sBAAsB,CAAC,EACtC,iBAAiB;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,MAAM,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,YAAY,yFAGf,OAAO,CAAC,YAAY,CAAC,OACtB,MAAM,SACJ,iBAAiB,KACvB,OAAO,CAAC,YAAY,CAAC,CAwJzB,CAAC"}