@crvouga/mockingbird-service-stripe 0.1.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 (142) hide show
  1. package/README.md +254 -0
  2. package/dist/account.d.ts +8 -0
  3. package/dist/account.d.ts.map +1 -0
  4. package/dist/account.js +13 -0
  5. package/dist/account.js.map +1 -0
  6. package/dist/charges.d.ts +4 -0
  7. package/dist/charges.d.ts.map +1 -0
  8. package/dist/charges.js +89 -0
  9. package/dist/charges.js.map +1 -0
  10. package/dist/checkout-sessions.d.ts +5 -0
  11. package/dist/checkout-sessions.d.ts.map +1 -0
  12. package/dist/checkout-sessions.js +303 -0
  13. package/dist/checkout-sessions.js.map +1 -0
  14. package/dist/constants.d.ts +3 -0
  15. package/dist/constants.d.ts.map +1 -0
  16. package/dist/constants.js +3 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/coupons.d.ts +4 -0
  19. package/dist/coupons.d.ts.map +1 -0
  20. package/dist/coupons.js +158 -0
  21. package/dist/coupons.js.map +1 -0
  22. package/dist/customers.d.ts +4 -0
  23. package/dist/customers.d.ts.map +1 -0
  24. package/dist/customers.js +218 -0
  25. package/dist/customers.js.map +1 -0
  26. package/dist/disputes.d.ts +4 -0
  27. package/dist/disputes.d.ts.map +1 -0
  28. package/dist/disputes.js +36 -0
  29. package/dist/disputes.js.map +1 -0
  30. package/dist/errors.d.ts +29 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +74 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/events.d.ts +4 -0
  35. package/dist/events.d.ts.map +1 -0
  36. package/dist/events.js +76 -0
  37. package/dist/events.js.map +1 -0
  38. package/dist/expand.d.ts +11 -0
  39. package/dist/expand.d.ts.map +1 -0
  40. package/dist/expand.js +45 -0
  41. package/dist/expand.js.map +1 -0
  42. package/dist/fields.d.ts +25 -0
  43. package/dist/fields.d.ts.map +1 -0
  44. package/dist/fields.js +117 -0
  45. package/dist/fields.js.map +1 -0
  46. package/dist/generated/openapi.d.ts +7 -0
  47. package/dist/generated/openapi.d.ts.map +1 -0
  48. package/dist/generated/openapi.js +5 -0
  49. package/dist/generated/openapi.js.map +1 -0
  50. package/dist/index.d.ts +43 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +172 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/internal.d.ts +134 -0
  55. package/dist/internal.d.ts.map +1 -0
  56. package/dist/internal.js +460 -0
  57. package/dist/internal.js.map +1 -0
  58. package/dist/invoice-items.d.ts +4 -0
  59. package/dist/invoice-items.d.ts.map +1 -0
  60. package/dist/invoice-items.js +179 -0
  61. package/dist/invoice-items.js.map +1 -0
  62. package/dist/invoices.d.ts +4 -0
  63. package/dist/invoices.d.ts.map +1 -0
  64. package/dist/invoices.js +312 -0
  65. package/dist/invoices.js.map +1 -0
  66. package/dist/list.d.ts +24 -0
  67. package/dist/list.d.ts.map +1 -0
  68. package/dist/list.js +68 -0
  69. package/dist/list.js.map +1 -0
  70. package/dist/params.d.ts +29 -0
  71. package/dist/params.d.ts.map +1 -0
  72. package/dist/params.js +165 -0
  73. package/dist/params.js.map +1 -0
  74. package/dist/payment-intents.d.ts +4 -0
  75. package/dist/payment-intents.d.ts.map +1 -0
  76. package/dist/payment-intents.js +232 -0
  77. package/dist/payment-intents.js.map +1 -0
  78. package/dist/payment-methods.d.ts +4 -0
  79. package/dist/payment-methods.d.ts.map +1 -0
  80. package/dist/payment-methods.js +99 -0
  81. package/dist/payment-methods.js.map +1 -0
  82. package/dist/prices.d.ts +4 -0
  83. package/dist/prices.d.ts.map +1 -0
  84. package/dist/prices.js +176 -0
  85. package/dist/prices.js.map +1 -0
  86. package/dist/products.d.ts +6 -0
  87. package/dist/products.d.ts.map +1 -0
  88. package/dist/products.js +202 -0
  89. package/dist/products.js.map +1 -0
  90. package/dist/promotion-codes.d.ts +4 -0
  91. package/dist/promotion-codes.d.ts.map +1 -0
  92. package/dist/promotion-codes.js +193 -0
  93. package/dist/promotion-codes.js.map +1 -0
  94. package/dist/qa-corpus.d.ts +26 -0
  95. package/dist/qa-corpus.d.ts.map +1 -0
  96. package/dist/qa-corpus.js +42 -0
  97. package/dist/qa-corpus.js.map +1 -0
  98. package/dist/refunds.d.ts +4 -0
  99. package/dist/refunds.d.ts.map +1 -0
  100. package/dist/refunds.js +125 -0
  101. package/dist/refunds.js.map +1 -0
  102. package/dist/render.d.ts +60 -0
  103. package/dist/render.d.ts.map +1 -0
  104. package/dist/render.js +426 -0
  105. package/dist/render.js.map +1 -0
  106. package/dist/reshape-qa.d.ts +8 -0
  107. package/dist/reshape-qa.d.ts.map +1 -0
  108. package/dist/reshape-qa.js +102 -0
  109. package/dist/reshape-qa.js.map +1 -0
  110. package/dist/search.d.ts +32 -0
  111. package/dist/search.d.ts.map +1 -0
  112. package/dist/search.js +64 -0
  113. package/dist/search.js.map +1 -0
  114. package/dist/setup-intents.d.ts +4 -0
  115. package/dist/setup-intents.d.ts.map +1 -0
  116. package/dist/setup-intents.js +129 -0
  117. package/dist/setup-intents.js.map +1 -0
  118. package/dist/state.d.ts +485 -0
  119. package/dist/state.d.ts.map +1 -0
  120. package/dist/state.js +143 -0
  121. package/dist/state.js.map +1 -0
  122. package/dist/subscription-schedules.d.ts +4 -0
  123. package/dist/subscription-schedules.d.ts.map +1 -0
  124. package/dist/subscription-schedules.js +122 -0
  125. package/dist/subscription-schedules.js.map +1 -0
  126. package/dist/subscriptions.d.ts +23 -0
  127. package/dist/subscriptions.d.ts.map +1 -0
  128. package/dist/subscriptions.js +260 -0
  129. package/dist/subscriptions.js.map +1 -0
  130. package/dist/test-tokens.d.ts +27 -0
  131. package/dist/test-tokens.d.ts.map +1 -0
  132. package/dist/test-tokens.js +61 -0
  133. package/dist/test-tokens.js.map +1 -0
  134. package/dist/url.d.ts +6 -0
  135. package/dist/url.d.ts.map +1 -0
  136. package/dist/url.js +38 -0
  137. package/dist/url.js.map +1 -0
  138. package/dist/version.d.ts +3 -0
  139. package/dist/version.d.ts.map +1 -0
  140. package/dist/version.js +3 -0
  141. package/dist/version.js.map +1 -0
  142. package/package.json +72 -0
package/dist/render.js ADDED
@@ -0,0 +1,426 @@
1
+ /** Stable rendered frame shared by every resource: the fields Stripe always returns. */
2
+ const base = (id, object, created) => ({
3
+ id,
4
+ object,
5
+ created,
6
+ livemode: false,
7
+ });
8
+ export const unitAmountOf = (decimal) => decimal.includes(".") ? null : Number(decimal);
9
+ export const renderCustomer = (customer) => ({
10
+ ...base(customer.id, "customer", customer.created),
11
+ address: customer.address,
12
+ balance: customer.balance,
13
+ currency: customer.currency,
14
+ customer_account: null,
15
+ default_source: null,
16
+ delinquent: false,
17
+ description: customer.description,
18
+ discount: null,
19
+ email: customer.email,
20
+ invoice_prefix: customer.invoice_prefix,
21
+ invoice_settings: {
22
+ custom_fields: customer.invoice_settings.custom_fields,
23
+ default_payment_method: customer.invoice_settings.default_payment_method,
24
+ footer: customer.invoice_settings.footer,
25
+ rendering_options: customer.invoice_settings.rendering_options,
26
+ },
27
+ metadata: customer.metadata,
28
+ name: customer.name,
29
+ next_invoice_sequence: 1,
30
+ phone: customer.phone,
31
+ preferred_locales: customer.preferred_locales,
32
+ shipping: customer.shipping,
33
+ tax_exempt: customer.tax_exempt,
34
+ test_clock: null,
35
+ });
36
+ export const renderDeletedCustomer = (id) => ({
37
+ id,
38
+ object: "customer",
39
+ deleted: true,
40
+ });
41
+ export const renderProduct = (product) => ({
42
+ ...base(product.id, "product", product.created),
43
+ active: product.active,
44
+ attributes: [],
45
+ default_price: null,
46
+ description: product.description,
47
+ images: product.images,
48
+ marketing_features: product.marketing_features,
49
+ metadata: product.metadata,
50
+ name: product.name,
51
+ package_dimensions: product.package_dimensions,
52
+ shippable: product.shippable,
53
+ statement_descriptor: product.statement_descriptor,
54
+ tax_code: null,
55
+ tax_details: null,
56
+ type: "service",
57
+ unit_label: product.unit_label,
58
+ updated: product.updated,
59
+ url: product.url,
60
+ });
61
+ export const renderDeletedProduct = (id) => ({
62
+ id,
63
+ object: "product",
64
+ deleted: true,
65
+ });
66
+ export const renderPrice = (price) => ({
67
+ ...base(price.id, "price", price.created),
68
+ active: price.active,
69
+ billing_scheme: "per_unit",
70
+ currency: price.currency,
71
+ custom_unit_amount: null,
72
+ lookup_key: price.lookup_key,
73
+ metadata: price.metadata,
74
+ nickname: price.nickname,
75
+ product: price.product,
76
+ recurring: price.recurring === null
77
+ ? null
78
+ : {
79
+ interval: price.recurring.interval,
80
+ interval_count: price.recurring.interval_count,
81
+ meter: null,
82
+ trial_period_days: null,
83
+ usage_type: price.recurring.usage_type,
84
+ },
85
+ tax_behavior: price.tax_behavior,
86
+ tiers_mode: null,
87
+ transform_quantity: null,
88
+ type: price.recurring === null ? "one_time" : "recurring",
89
+ unit_amount: unitAmountOf(price.unit_amount_decimal),
90
+ unit_amount_decimal: price.unit_amount_decimal,
91
+ });
92
+ /** Price as an inline object, falling back to the bare id when the record is gone. */
93
+ export const priceOrId = (scope, id) => {
94
+ const price = scope.prices.get(id);
95
+ return price ? renderPrice(price) : id;
96
+ };
97
+ export const renderPaymentMethod = (method) => ({
98
+ ...base(method.id, "payment_method", method.created),
99
+ allow_redisplay: "unspecified",
100
+ billing_details: method.billing_details,
101
+ card: method.card,
102
+ customer: method.customer,
103
+ metadata: method.metadata,
104
+ type: method.type,
105
+ });
106
+ export const renderPaymentIntent = (intent) => ({
107
+ ...base(intent.id, "payment_intent", intent.created),
108
+ amount: intent.amount,
109
+ amount_capturable: intent.amount_capturable,
110
+ amount_received: intent.amount_received,
111
+ cancellation_reason: intent.cancellation_reason,
112
+ canceled_at: intent.canceled_at,
113
+ capture_method: intent.capture_method,
114
+ client_secret: intent.client_secret,
115
+ confirmation_method: intent.confirmation_method,
116
+ currency: intent.currency,
117
+ customer: intent.customer,
118
+ description: intent.description,
119
+ invoice: intent.invoice,
120
+ last_payment_error: intent.last_payment_error,
121
+ latest_charge: intent.latest_charge,
122
+ metadata: intent.metadata,
123
+ payment_method: intent.payment_method,
124
+ payment_method_types: intent.payment_method_types,
125
+ receipt_email: intent.receipt_email,
126
+ setup_future_usage: intent.setup_future_usage,
127
+ status: intent.status,
128
+ });
129
+ export const renderSetupIntent = (intent) => ({
130
+ ...base(intent.id, "setup_intent", intent.created),
131
+ cancellation_reason: intent.cancellation_reason,
132
+ canceled_at: intent.canceled_at,
133
+ client_secret: intent.client_secret,
134
+ customer: intent.customer,
135
+ description: intent.description,
136
+ last_setup_error: intent.last_setup_error,
137
+ metadata: intent.metadata,
138
+ payment_method: intent.payment_method,
139
+ payment_method_types: intent.payment_method_types,
140
+ status: intent.status,
141
+ usage: intent.usage,
142
+ });
143
+ export const renderCharge = (charge) => ({
144
+ ...base(charge.id, "charge", charge.created),
145
+ amount: charge.amount,
146
+ amount_captured: charge.amount_captured,
147
+ amount_refunded: charge.amount_refunded,
148
+ billing_details: { address: null, email: null, name: null, phone: null },
149
+ captured: charge.captured,
150
+ currency: charge.currency,
151
+ customer: charge.customer,
152
+ description: charge.description,
153
+ disputed: charge.disputed,
154
+ invoice: charge.invoice,
155
+ metadata: charge.metadata,
156
+ paid: charge.paid,
157
+ payment_intent: charge.payment_intent,
158
+ payment_method: charge.payment_method,
159
+ refunded: charge.refunded,
160
+ status: charge.status,
161
+ });
162
+ export const renderRefund = (refund) => ({
163
+ ...base(refund.id, "refund", refund.created),
164
+ amount: refund.amount,
165
+ charge: refund.charge,
166
+ currency: refund.currency,
167
+ metadata: refund.metadata,
168
+ payment_intent: refund.payment_intent,
169
+ reason: refund.reason,
170
+ receipt_number: refund.receipt_number,
171
+ status: refund.status,
172
+ });
173
+ export const renderDispute = (dispute) => ({
174
+ ...base(dispute.id, "dispute", dispute.created),
175
+ amount: dispute.amount,
176
+ charge: dispute.charge,
177
+ currency: dispute.currency,
178
+ metadata: dispute.metadata,
179
+ payment_intent: dispute.payment_intent,
180
+ reason: dispute.reason,
181
+ status: dispute.status,
182
+ });
183
+ export const renderCustomerBalanceTransaction = (transaction) => ({
184
+ ...base(transaction.id, "customer_balance_transaction", transaction.created),
185
+ amount: transaction.amount,
186
+ checkout_session: null,
187
+ credit_note: transaction.credit_note,
188
+ currency: transaction.currency,
189
+ customer: transaction.customer,
190
+ description: transaction.description,
191
+ ending_balance: transaction.ending_balance,
192
+ invoice: transaction.invoice,
193
+ metadata: transaction.metadata,
194
+ type: transaction.type,
195
+ });
196
+ export const renderDiscount = (discount) => ({
197
+ id: discount.id,
198
+ object: "discount",
199
+ checkout_session: null,
200
+ coupon: discount.coupon,
201
+ customer: discount.customer,
202
+ end: discount.end,
203
+ promotion_code: discount.promotion_code,
204
+ source: { coupon: discount.coupon, promotion_code: discount.promotion_code, type: "coupon" },
205
+ start: discount.start,
206
+ subscription: discount.subscription,
207
+ });
208
+ export const renderDiscounts = (scope, ids) => ids
209
+ .map((id) => scope.discounts.get(id))
210
+ .filter((record) => record !== undefined)
211
+ .map(renderDiscount);
212
+ export const renderCoupon = (coupon) => ({
213
+ ...base(coupon.id, "coupon", coupon.created),
214
+ amount_off: coupon.amount_off,
215
+ applies_to: { products: coupon.applies_to_products },
216
+ currency: coupon.currency,
217
+ currency_options: Object.fromEntries(Object.entries(coupon.currency_options).map(([code, option]) => [
218
+ code,
219
+ { amount_off: option.amount_off },
220
+ ])),
221
+ duration: coupon.duration,
222
+ duration_in_months: coupon.duration_in_months,
223
+ max_redemptions: coupon.max_redemptions,
224
+ metadata: coupon.metadata,
225
+ name: coupon.name,
226
+ percent_off: coupon.percent_off,
227
+ redeem_by: coupon.redeem_by,
228
+ times_redeemed: coupon.times_redeemed,
229
+ valid: coupon.valid,
230
+ });
231
+ export const renderDeletedCoupon = (id) => ({ id, object: "coupon", deleted: true });
232
+ export const renderPromotionCode = (promotion) => ({
233
+ ...base(promotion.id, "promotion_code", promotion.created),
234
+ active: promotion.active,
235
+ code: promotion.code,
236
+ coupon: promotion.coupon,
237
+ customer: promotion.customer,
238
+ expires_at: promotion.expires_at,
239
+ max_redemptions: promotion.max_redemptions,
240
+ metadata: promotion.metadata,
241
+ restrictions: {
242
+ first_time_transaction: promotion.restrictions.first_time_transaction,
243
+ minimum_amount: promotion.restrictions.minimum_amount,
244
+ minimum_amount_currency: promotion.restrictions.minimum_amount_currency,
245
+ },
246
+ times_redeemed: promotion.times_redeemed,
247
+ });
248
+ export const renderCheckoutLineItem = (line, scope) => ({
249
+ id: line.id,
250
+ object: "item",
251
+ amount_discount: 0,
252
+ amount_subtotal: line.amount_subtotal,
253
+ amount_tax: 0,
254
+ amount_total: line.amount_total,
255
+ currency: line.currency,
256
+ description: line.description,
257
+ discounts: [],
258
+ metadata: {},
259
+ price: line.price === null ? null : priceOrId(scope, line.price),
260
+ quantity: line.quantity,
261
+ taxes: [],
262
+ });
263
+ export const renderCheckoutSession = (session) => ({
264
+ ...base(session.id, "checkout.session", session.created),
265
+ amount_subtotal: session.amount_subtotal,
266
+ amount_total: session.amount_total,
267
+ cancel_url: session.cancel_url,
268
+ currency: session.currency,
269
+ customer: session.customer,
270
+ customer_creation: session.customer_creation,
271
+ expires_at: session.expires_at,
272
+ metadata: session.metadata,
273
+ mode: session.mode,
274
+ payment_intent: session.payment_intent,
275
+ payment_method_types: ["card"],
276
+ payment_status: session.payment_status,
277
+ setup_intent: session.setup_intent,
278
+ status: session.status,
279
+ subscription: session.subscription,
280
+ success_url: session.success_url,
281
+ url: session.url,
282
+ });
283
+ const renderInvoiceLine = (invoiceId, line) => ({
284
+ id: line.id,
285
+ object: "line_item",
286
+ amount: line.amount,
287
+ currency: line.currency,
288
+ description: line.description,
289
+ discount_amounts: line.discount_amounts,
290
+ discountable: false,
291
+ discounts: [],
292
+ invoice: invoiceId,
293
+ livemode: false,
294
+ metadata: line.metadata,
295
+ period: line.period,
296
+ proration: line.proration,
297
+ quantity: line.quantity,
298
+ subtotal: line.subtotal,
299
+ });
300
+ export const renderInvoice = (invoice, scope) => ({
301
+ ...base(invoice.id, "invoice", invoice.created),
302
+ amount_due: invoice.amount_due,
303
+ amount_paid: invoice.amount_paid,
304
+ amount_remaining: invoice.amount_remaining,
305
+ attempt_count: invoice.attempt_count,
306
+ attempted: invoice.attempted,
307
+ auto_advance: invoice.auto_advance,
308
+ billing_reason: invoice.billing_reason,
309
+ charge: invoice.charge,
310
+ collection_method: invoice.collection_method,
311
+ currency: invoice.currency,
312
+ customer: invoice.customer,
313
+ customer_email: invoice.customer_email,
314
+ customer_name: invoice.customer_name,
315
+ default_payment_method: null,
316
+ description: invoice.description,
317
+ discounts: renderDiscounts(scope, invoice.discount_ids),
318
+ due_date: invoice.due_date,
319
+ ending_balance: invoice.ending_balance,
320
+ hosted_invoice_url: invoice.hosted_invoice_url,
321
+ invoice_pdf: invoice.invoice_pdf,
322
+ lines: {
323
+ object: "list",
324
+ data: invoice.lines.map((line) => renderInvoiceLine(invoice.id, line)),
325
+ has_more: false,
326
+ url: `/v1/invoices/${invoice.id}/lines`,
327
+ },
328
+ metadata: invoice.metadata,
329
+ next_payment_attempt: invoice.next_payment_attempt,
330
+ number: invoice.number,
331
+ paid: invoice.paid,
332
+ payment_intent: invoice.payment_intent,
333
+ period_end: invoice.period_end,
334
+ period_start: invoice.period_start,
335
+ status: invoice.status,
336
+ status_transitions: invoice.status_transitions,
337
+ subscription: invoice.subscription,
338
+ subtotal: invoice.subtotal,
339
+ total: invoice.total,
340
+ });
341
+ export const renderDeletedInvoice = (id) => ({ id, object: "invoice", deleted: true });
342
+ export const renderInvoiceItem = (item) => ({
343
+ ...base(item.id, "invoiceitem", item.created),
344
+ amount: item.amount,
345
+ currency: item.currency,
346
+ customer: item.customer,
347
+ date: item.date,
348
+ description: item.description,
349
+ discountable: item.discountable,
350
+ invoice: item.invoice,
351
+ metadata: item.metadata,
352
+ period: item.period,
353
+ proration: item.proration,
354
+ quantity: item.quantity,
355
+ unit_amount: item.unit_amount,
356
+ });
357
+ export const renderDeletedInvoiceItem = (id) => ({
358
+ id,
359
+ object: "invoiceitem",
360
+ deleted: true,
361
+ });
362
+ export const renderSubscriptionItem = (item, scope) => {
363
+ const subscription = scope.subscriptions.get(item.subscription);
364
+ return {
365
+ ...base(item.id, "subscription_item", item.created),
366
+ current_period_end: subscription?.current_period_end ?? 0,
367
+ current_period_start: subscription?.current_period_start ?? 0,
368
+ discounts: [],
369
+ metadata: item.metadata,
370
+ price: priceOrId(scope, item.price),
371
+ quantity: item.quantity,
372
+ subscription: item.subscription,
373
+ };
374
+ };
375
+ export const renderSubscription = (subscription, scope) => ({
376
+ ...base(subscription.id, "subscription", subscription.created),
377
+ billing_cycle_anchor: subscription.start_date,
378
+ cancel_at: subscription.cancel_at,
379
+ cancel_at_period_end: subscription.cancel_at_period_end,
380
+ canceled_at: subscription.canceled_at,
381
+ collection_method: subscription.collection_method,
382
+ currency: subscription.currency,
383
+ current_period_end: subscription.current_period_end,
384
+ current_period_start: subscription.current_period_start,
385
+ customer: subscription.customer,
386
+ days_until_due: subscription.days_until_due,
387
+ default_payment_method: subscription.default_payment_method,
388
+ discounts: renderDiscounts(scope, subscription.discount_ids),
389
+ ended_at: subscription.ended_at,
390
+ items: {
391
+ object: "list",
392
+ data: subscription.item_ids
393
+ .map((id) => scope.subscriptionItems.get(id))
394
+ .filter((record) => record !== undefined)
395
+ .map((record) => renderSubscriptionItem(record, scope)),
396
+ has_more: false,
397
+ url: `/v1/subscription_items?subscription=${subscription.id}`,
398
+ },
399
+ latest_invoice: subscription.latest_invoice,
400
+ metadata: subscription.metadata,
401
+ pause_collection: subscription.pause_collection,
402
+ schedule: subscription.schedule,
403
+ start_date: subscription.start_date,
404
+ status: subscription.status,
405
+ trial_end: subscription.trial_end,
406
+ trial_start: subscription.trial_start,
407
+ });
408
+ export const renderDeletedSubscriptionItem = (id) => ({
409
+ id,
410
+ object: "subscription_item",
411
+ deleted: true,
412
+ });
413
+ export const renderSubscriptionSchedule = (schedule) => ({
414
+ ...base(schedule.id, "subscription_schedule", schedule.created),
415
+ customer: schedule.customer,
416
+ end_behavior: schedule.end_behavior,
417
+ metadata: schedule.metadata,
418
+ phases: schedule.phases,
419
+ released_at: schedule.released_at,
420
+ released_subscription: schedule.released_subscription,
421
+ status: schedule.status,
422
+ subscription: schedule.subscription,
423
+ });
424
+ /** Events are stored as their exact wire JSON, so rendering is a parse of those bytes. */
425
+ export const renderEvent = (event) => JSON.parse(event.body);
426
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ExploreRng, ExploreState, LogicalCommand } from "@crvouga/mockingbird-commands";
2
+ /**
3
+ * Pin sampled commands onto the values the QA suites actually send, so offline seedParity walks
4
+ * stay deterministic and hit the same code paths a real run does: amounts and currency from the
5
+ * corpus, the metadata keys the backend reads, and the documented test payment methods.
6
+ */
7
+ export declare const reshapeQaCommand: (command: LogicalCommand, _state: ExploreState, rng: ExploreRng) => LogicalCommand;
8
+ //# sourceMappingURL=reshape-qa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reshape-qa.d.ts","sourceRoot":"","sources":["../src/reshape-qa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AA0B7F;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,cAAc,EACvB,QAAQ,YAAY,EACpB,KAAK,UAAU,KACd,cA4FF,CAAA"}
@@ -0,0 +1,102 @@
1
+ import { QA_AMOUNTS, QA_COUPON_CODES, QA_CUSTOMER, QA_METADATA, QA_SEARCH_QUERIES, QA_TEST_PAYMENT_METHODS, } from "./qa-corpus.js";
2
+ const pick = (values, rng) => values[rng.nextInt(Math.max(0, values.length - 1))];
3
+ const asRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
4
+ ? value
5
+ : undefined;
6
+ const withBody = (command, body) => ({
7
+ ...command,
8
+ body,
9
+ invalid: undefined,
10
+ });
11
+ /**
12
+ * Pin sampled commands onto the values the QA suites actually send, so offline seedParity walks
13
+ * stay deterministic and hit the same code paths a real run does: amounts and currency from the
14
+ * corpus, the metadata keys the backend reads, and the documented test payment methods.
15
+ */
16
+ export const reshapeQaCommand = (command, _state, rng) => {
17
+ const id = command.operationId;
18
+ const body = asRecord(command.body);
19
+ const parameters = asRecord(command.parameters);
20
+ const next = body === undefined ? {} : { ...body };
21
+ if (next.currency === undefined || next.currency === "")
22
+ next.currency = "usd";
23
+ if (id === "PostCustomers") {
24
+ next.email = QA_CUSTOMER.email;
25
+ next.name = QA_CUSTOMER.name;
26
+ next.phone = QA_CUSTOMER.phone;
27
+ return withBody(command, { ...next, metadata: { ...QA_METADATA } });
28
+ }
29
+ if (id === "PostPaymentIntents" || id === "PostPaymentIntentsIntent") {
30
+ const amount = pick(QA_AMOUNTS, rng);
31
+ if (amount !== undefined)
32
+ next.amount = amount;
33
+ next.metadata = { ...QA_METADATA };
34
+ const method = pick(QA_TEST_PAYMENT_METHODS, rng);
35
+ if (method !== undefined) {
36
+ next.payment_method = method;
37
+ next.confirm = true;
38
+ }
39
+ return withBody(command, next);
40
+ }
41
+ if (id === "PostPaymentIntentsIntentConfirm") {
42
+ const method = pick(QA_TEST_PAYMENT_METHODS, rng);
43
+ if (method !== undefined)
44
+ next.payment_method = method;
45
+ return withBody(command, next);
46
+ }
47
+ if (id === "PostSubscriptions") {
48
+ const amount = pick(QA_AMOUNTS, rng);
49
+ void amount;
50
+ return withBody(command, {
51
+ ...next,
52
+ metadata: { ...QA_METADATA },
53
+ payment_behavior: "allow_incomplete",
54
+ });
55
+ }
56
+ if (id === "PostSubscriptionsSubscriptionExposedId") {
57
+ return withBody(command, { ...next, metadata: { ...QA_METADATA } });
58
+ }
59
+ if (id === "PostPrices") {
60
+ next.currency = "usd";
61
+ next.recurring = { interval: "month", interval_count: 1 };
62
+ return withBody(command, next);
63
+ }
64
+ if (id === "PostCoupons") {
65
+ next.duration = "once";
66
+ next.currency = "usd";
67
+ const amount = pick(QA_AMOUNTS, rng);
68
+ if (amount !== undefined)
69
+ next.amount_off = amount;
70
+ delete next.percent_off;
71
+ return withBody(command, next);
72
+ }
73
+ if (id === "PostPromotionCodes") {
74
+ const code = pick(QA_COUPON_CODES, rng);
75
+ if (code !== undefined)
76
+ next.code = code;
77
+ return withBody(command, next);
78
+ }
79
+ if (id === "PostInvoiceitems") {
80
+ const amount = pick(QA_AMOUNTS, rng);
81
+ if (amount !== undefined)
82
+ next.amount = amount;
83
+ return withBody(command, next);
84
+ }
85
+ if (id === "PostCheckoutSessions") {
86
+ next.mode = "payment";
87
+ next.currency = "usd";
88
+ return withBody(command, next);
89
+ }
90
+ if (id === "GetCustomersSearch" ||
91
+ id === "GetPaymentIntentsSearch" ||
92
+ id === "GetProductsSearch") {
93
+ const query = pick(QA_SEARCH_QUERIES, rng);
94
+ if (query === undefined)
95
+ return command;
96
+ return { ...command, parameters: { ...(parameters ?? {}), query } };
97
+ }
98
+ if (body === undefined)
99
+ return command;
100
+ return withBody(command, next);
101
+ };
102
+ //# sourceMappingURL=reshape-qa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reshape-qa.js","sourceRoot":"","sources":["../src/reshape-qa.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { Params } from "./params.js";
2
+ type RecordValue = Record<string, unknown>;
3
+ export type SearchFilter = {
4
+ field: string;
5
+ metadataKey: string | null;
6
+ value: string;
7
+ negated: boolean;
8
+ };
9
+ /**
10
+ * Stripe's documented search subset: `field:'value'`, `metadata['key']:'value'`, `-` negates, and
11
+ * terms are combined with implicit AND. Anything the parser cannot consume is a 400, matching how
12
+ * Stripe refuses a malformed query instead of silently ignoring it.
13
+ */
14
+ export declare const parseSearchQuery: (query: string) => SearchFilter[];
15
+ export type SearchPage<T> = {
16
+ object: "search_result";
17
+ data: T[];
18
+ has_more: boolean;
19
+ next_page: string | null;
20
+ total_count: number;
21
+ url: string;
22
+ };
23
+ /**
24
+ * Search page newest-first. `limit` clamps into 1..100 (default 10) exactly like a list; cursor
25
+ * pagination is not exercised by the e2e path, so `next_page` is always null.
26
+ */
27
+ export declare const searchRecords: <T extends RecordValue>(records: readonly T[], params: Params, options: {
28
+ url: string;
29
+ render: (record: T) => unknown;
30
+ }) => SearchPage<unknown>;
31
+ export {};
32
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE1C,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAMD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,YAAY,EAwB5D,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EACjD,SAAS,SAAS,CAAC,EAAE,EACrB,QAAQ,MAAM,EACd,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAA;CAAE,KACvD,UAAU,CAAC,OAAO,CA4BpB,CAAA"}