@sgftech/medusa-payment-stripe-subscription 0.0.25 → 0.0.26
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.
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.POST = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.POST = exports.STRIPE_HOOK_RECEIVED_EVENT = void 0;
|
|
4
|
+
const utils_1 = require("medusa-payment-stripe/dist/api/utils/utils");
|
|
5
|
+
exports.STRIPE_HOOK_RECEIVED_EVENT = "medusa.stripe_payment_intent_update";
|
|
5
6
|
const POST = async (req, response) => {
|
|
6
|
-
|
|
7
|
+
const event = (0, utils_1.constructWebhook)({
|
|
8
|
+
signature: req.headers["stripe-signature"],
|
|
9
|
+
body: req.body,
|
|
10
|
+
container: req.scope
|
|
11
|
+
});
|
|
12
|
+
const eventBus = req.scope.resolve("eventBusService");
|
|
13
|
+
const pluginOptions = req.scope.resolve("stripeSubscriptionProviderService").options;
|
|
14
|
+
try {
|
|
15
|
+
await eventBus.emit(exports.STRIPE_HOOK_RECEIVED_EVENT, event, {
|
|
16
|
+
delay: pluginOptions.webhook_delay || 5000,
|
|
17
|
+
attempts: pluginOptions.webhook_retries || 3
|
|
18
|
+
});
|
|
19
|
+
response.sendStatus(200);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
response.sendStatus(500);
|
|
23
|
+
}
|
|
24
|
+
return;
|
|
7
25
|
};
|
|
8
26
|
exports.POST = POST;
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3N0cmlwZS9ob29rcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxzRUFBOEU7QUFFakUsUUFBQSwwQkFBMEIsR0FBRyxxQ0FBcUMsQ0FBQztBQUV6RSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxRQUF3QixFQUFFLEVBQUU7SUFDdkUsTUFBTSxLQUFLLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQztRQUMzQixTQUFTLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztRQUMxQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxTQUFTLEVBQUUsR0FBRyxDQUFDLEtBQUs7S0FDdkIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQW9CLENBQUM7SUFDekUsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ25DLG1DQUFtQyxDQUN0QyxDQUFDLE9BQU8sQ0FBQztJQUNWLElBQUk7UUFDQSxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0NBQTBCLEVBQUUsS0FBSyxFQUFFO1lBQ25ELEtBQUssRUFBRSxhQUFhLENBQUMsYUFBYSxJQUFJLElBQUk7WUFDMUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxlQUFlLElBQUksQ0FBQztTQUMvQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzVCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDUixRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzVCO0lBQ0QsT0FBTztBQUNYLENBQUMsQ0FBQztBQXRCVyxRQUFBLElBQUksUUFzQmYifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CartService, CustomerService, LineItem, LineItemTaxLine, Logger, PaymentProcessorContext, PaymentProcessorError, PaymentProcessorSessionResponse, PaymentSessionStatus, Product, ProductService } from "@medusajs/medusa";
|
|
1
|
+
import { CartService, Customer, CustomerService, LineItem, LineItemTaxLine, Logger, PaymentProcessorContext, PaymentProcessorError, PaymentProcessorSessionResponse, PaymentSessionStatus, Product, ProductService } from "@medusajs/medusa";
|
|
2
2
|
import Stripe from "stripe";
|
|
3
3
|
import { PaymentIntentOptions } from "medusa-payment-stripe";
|
|
4
4
|
import { StripeSubscriptionOptions } from "../types";
|
|
@@ -31,6 +31,10 @@ declare abstract class StripeSubscriptionService extends StripeProvider {
|
|
|
31
31
|
getOrCreateStripeTaxRates(i: LineItem, country_code: string): Promise<string[]>;
|
|
32
32
|
getStripeSubscriptionItemsFromCart(cartId: string): Promise<PaymentProcessorError | Stripe.SubscriptionCreateParams.Item[]>;
|
|
33
33
|
isSubscriptionCart(cartId: string): Promise<boolean>;
|
|
34
|
+
initiateSubscription(resource_id: string): Promise<{
|
|
35
|
+
session_data: Record<string, unknown>;
|
|
36
|
+
customer: Customer;
|
|
37
|
+
} | PaymentProcessorError>;
|
|
34
38
|
initiatePayment(context: PaymentProcessorContext): Promise<PaymentProcessorError | PaymentProcessorSessionResponse>;
|
|
35
39
|
authorizePayment(paymentSessionData: Record<string, unknown>, context: Record<string, unknown>): Promise<PaymentProcessorError | {
|
|
36
40
|
status: PaymentSessionStatus;
|
|
@@ -41,6 +45,12 @@ declare abstract class StripeSubscriptionService extends StripeProvider {
|
|
|
41
45
|
deletePayment(paymentSessionData: Record<string, unknown>): Promise<PaymentProcessorError | PaymentProcessorSessionResponse["session_data"]>;
|
|
42
46
|
retrievePayment(paymentSessionData: Record<string, unknown>): Promise<PaymentProcessorError | PaymentProcessorSessionResponse["session_data"]>;
|
|
43
47
|
updatePayment(context: PaymentProcessorContext): Promise<PaymentProcessorError | PaymentProcessorSessionResponse | void>;
|
|
48
|
+
findSubscriptionWithProductId(subscriptions: Stripe.Subscription[], stripeProductId: string): Stripe.Subscription;
|
|
49
|
+
isSubscribed(stripeCustomerId: string, stripeProductId: string[]): Promise<{
|
|
50
|
+
found: string[];
|
|
51
|
+
notFound: string[];
|
|
52
|
+
}>;
|
|
53
|
+
updatePaymentSubscription(context: PaymentProcessorContext): Promise<PaymentProcessorError | PaymentProcessorSessionResponse | void>;
|
|
44
54
|
updatePaymentData(sessionId: string, data: Record<string, unknown>): Promise<Record<string, unknown> | PaymentProcessorError>;
|
|
45
55
|
createStripeProduct(product: Product): Promise<Product>;
|
|
46
56
|
deleteStripeProduct(product: Product): Promise<void>;
|
|
@@ -120,7 +120,7 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
120
120
|
relations: ["region"]
|
|
121
121
|
});
|
|
122
122
|
cart.region = region;
|
|
123
|
-
|
|
123
|
+
let subscribableItems = cart.items.filter((i) => i.variant.product.metadata.subscription);
|
|
124
124
|
if (subscribableItems.length == 0) {
|
|
125
125
|
return this.buildError("No subscribable items found in cart", {});
|
|
126
126
|
}
|
|
@@ -130,6 +130,9 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
130
130
|
if (subscribableItems.length > 20) {
|
|
131
131
|
return this.buildError("Too many subscribable items found in cart", {});
|
|
132
132
|
}
|
|
133
|
+
const existingSubscription = await this.isSubscribed(cart.customer_id, subscribableItems.map((i) => i.product_id));
|
|
134
|
+
this.logger.info(`Subscriptions exist for : ${existingSubscription.found.join(", ")} with user ${cart.customer_id}`);
|
|
135
|
+
subscribableItems = subscribableItems.filter((i) => existingSubscription.notFound.includes(i.product_id));
|
|
133
136
|
const stripeSubscriptionItems = subscribableItems.map(async (i) => {
|
|
134
137
|
var _a, _b, _c, _d;
|
|
135
138
|
let product;
|
|
@@ -196,16 +199,26 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
196
199
|
return true;
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
|
-
async
|
|
200
|
-
var _a
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
async initiateSubscription(resource_id) {
|
|
203
|
+
var _a;
|
|
204
|
+
const cart = await this.cartService.retrieve(resource_id, {
|
|
205
|
+
relations: [
|
|
206
|
+
"customer",
|
|
207
|
+
"region",
|
|
208
|
+
"items",
|
|
209
|
+
"items.variant",
|
|
210
|
+
"items.variant.product",
|
|
211
|
+
"items.variant.prices",
|
|
212
|
+
"billing_address",
|
|
213
|
+
"shipping_address"
|
|
214
|
+
]
|
|
215
|
+
});
|
|
216
|
+
const customer = cart.customer;
|
|
217
|
+
if (!customer) {
|
|
218
|
+
return;
|
|
205
219
|
}
|
|
206
|
-
const description = ((_a = cart_context.payment_description) !== null && _a !== void 0 ? _a : (_b = this.options_) === null || _b === void 0 ? void 0 : _b.payment_description);
|
|
207
220
|
let stripeCustomer;
|
|
208
|
-
if ((
|
|
221
|
+
if ((_a = customer === null || customer === void 0 ? void 0 : customer.metadata) === null || _a === void 0 ? void 0 : _a.stripe_id) {
|
|
209
222
|
try {
|
|
210
223
|
stripeCustomer = (await this.stripe_.customers.retrieve(customer.metadata.stripe_id, {
|
|
211
224
|
expand: ["subscriptions", "sources"]
|
|
@@ -214,7 +227,7 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
214
227
|
catch (e) {
|
|
215
228
|
try {
|
|
216
229
|
stripeCustomer = await this.stripe_.customers.create({
|
|
217
|
-
email
|
|
230
|
+
email: customer.email
|
|
218
231
|
});
|
|
219
232
|
}
|
|
220
233
|
catch (e) {
|
|
@@ -225,7 +238,7 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
225
238
|
else {
|
|
226
239
|
try {
|
|
227
240
|
stripeCustomer = await this.stripe_.customers.create({
|
|
228
|
-
email
|
|
241
|
+
email: customer.email
|
|
229
242
|
});
|
|
230
243
|
}
|
|
231
244
|
catch (e) {
|
|
@@ -258,7 +271,7 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
258
271
|
const items = itemsExpected;
|
|
259
272
|
const createSubscriptionParams = {
|
|
260
273
|
items: items,
|
|
261
|
-
currency: currency_code,
|
|
274
|
+
currency: cart.region.currency_code,
|
|
262
275
|
metadata: { resource_id },
|
|
263
276
|
cancel_at_period_end: this.options.cancel_at_period_end,
|
|
264
277
|
customer: stripeCustomer.id,
|
|
@@ -278,18 +291,31 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
278
291
|
// session_data = (await this.stripe_.paymentIntents.create(
|
|
279
292
|
// intentRequest
|
|
280
293
|
// )) as unknown as Record<string, unknown>
|
|
294
|
+
return { session_data, customer: medusaCustomerUpdated };
|
|
281
295
|
}
|
|
282
296
|
}
|
|
283
297
|
catch (e) {
|
|
284
298
|
return this.buildError("An error occurred in InitiatePayment during the creation of the stripe payment intent", e);
|
|
285
299
|
}
|
|
300
|
+
}
|
|
301
|
+
async initiatePayment(context) {
|
|
302
|
+
var _a, _b;
|
|
303
|
+
const intentRequestData = this.getPaymentIntentOptions();
|
|
304
|
+
const { email, context: cart_context, currency_code, amount, resource_id, customer } = context;
|
|
305
|
+
if (!(await this.isSubscriptionCart(resource_id))) {
|
|
306
|
+
return super.initiatePayment(context);
|
|
307
|
+
}
|
|
308
|
+
const subscriptionData = (await this.initiateSubscription(resource_id));
|
|
309
|
+
// const stripeCustomer = await this.stripe_.customers.retrieve(
|
|
310
|
+
// subscriptionData.medusaCustomerUpdated.metadata.stripe_id as string
|
|
311
|
+
// );
|
|
286
312
|
return {
|
|
287
|
-
session_data,
|
|
288
|
-
update_requests: ((
|
|
313
|
+
session_data: subscriptionData.session_data,
|
|
314
|
+
update_requests: ((_b = (_a = subscriptionData.customer) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.stripe_id)
|
|
289
315
|
? undefined
|
|
290
316
|
: {
|
|
291
317
|
customer_metadata: {
|
|
292
|
-
stripe_id:
|
|
318
|
+
stripe_id: subscriptionData.customer.metadata.stripe_id
|
|
293
319
|
}
|
|
294
320
|
}
|
|
295
321
|
};
|
|
@@ -353,41 +379,88 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
353
379
|
if (!(await this.isSubscriptionCart(resource_id))) {
|
|
354
380
|
return super.updatePayment(context);
|
|
355
381
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
382
|
+
return await this.updatePaymentSubscription(context);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
findSubscriptionWithProductId(subscriptions, stripeProductId) {
|
|
386
|
+
const found = subscriptions.find((s) => {
|
|
387
|
+
const plansInSubscription = s.items.data.flatMap((d) => d.plan);
|
|
388
|
+
const productsInSubscription = plansInSubscription.map((p) => p.product);
|
|
389
|
+
const result = productsInSubscription.includes(stripeProductId);
|
|
390
|
+
return result;
|
|
391
|
+
});
|
|
392
|
+
return found;
|
|
393
|
+
}
|
|
394
|
+
async isSubscribed(stripeCustomerId, stripeProductId) {
|
|
395
|
+
var _a;
|
|
396
|
+
const subscriptions = [];
|
|
397
|
+
const page = 1;
|
|
398
|
+
const limit = 100;
|
|
399
|
+
const found = [];
|
|
400
|
+
const notFound = [];
|
|
401
|
+
let currentSetSubscriptions;
|
|
402
|
+
do {
|
|
403
|
+
currentSetSubscriptions = await this.stripe_.subscriptions.list({
|
|
404
|
+
customer: stripeCustomerId,
|
|
405
|
+
status: "active",
|
|
406
|
+
limit,
|
|
407
|
+
expand: [
|
|
408
|
+
"items.data.plan",
|
|
409
|
+
"items.data.price",
|
|
410
|
+
"items.data.plan.product"
|
|
411
|
+
],
|
|
412
|
+
starting_after: (_a = subscriptions[subscriptions.length - 1]) === null || _a === void 0 ? void 0 : _a.id
|
|
413
|
+
});
|
|
414
|
+
subscriptions.push(...currentSetSubscriptions.data);
|
|
415
|
+
for (const product of stripeProductId) {
|
|
416
|
+
const foundSubscription = this.findSubscriptionWithProductId(currentSetSubscriptions.data, product);
|
|
417
|
+
if (foundSubscription) {
|
|
418
|
+
found.push(product);
|
|
381
419
|
}
|
|
382
420
|
else {
|
|
383
|
-
|
|
384
|
-
session_data: subscriptionData
|
|
385
|
-
};
|
|
421
|
+
notFound.push(product);
|
|
386
422
|
}
|
|
387
423
|
}
|
|
388
|
-
|
|
389
|
-
|
|
424
|
+
} while (currentSetSubscriptions.has_more);
|
|
425
|
+
return { found, notFound };
|
|
426
|
+
}
|
|
427
|
+
async updatePaymentSubscription(context) {
|
|
428
|
+
const { amount, customer, paymentSessionData, resource_id } = context;
|
|
429
|
+
const subscriptionData = paymentSessionData;
|
|
430
|
+
if (amount && paymentSessionData.amount === Math.round(amount)) {
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
try {
|
|
434
|
+
const id = subscriptionData.id;
|
|
435
|
+
const itemsExpected = await this.getStripeSubscriptionItemsFromCart(resource_id);
|
|
436
|
+
if (itemsExpected.error) {
|
|
437
|
+
return itemsExpected;
|
|
438
|
+
}
|
|
439
|
+
const items = itemsExpected;
|
|
440
|
+
if (subscriptionData.status === "active" ||
|
|
441
|
+
subscriptionData.status === "trialing") {
|
|
442
|
+
const subscriptionUpdateParams = {
|
|
443
|
+
items: items,
|
|
444
|
+
metadata: { resource_id },
|
|
445
|
+
cancel_at_period_end: this.options.cancel_at_period_end,
|
|
446
|
+
collection_method: "charge_automatically",
|
|
447
|
+
payment_behavior: "default_incomplete",
|
|
448
|
+
payment_settings: {
|
|
449
|
+
save_default_payment_method: "on_subscription"
|
|
450
|
+
},
|
|
451
|
+
expand: ["latest_invoice.payment_intent"]
|
|
452
|
+
};
|
|
453
|
+
const sessionData = (await this.stripe_.subscriptions.update(id, subscriptionUpdateParams));
|
|
454
|
+
return { session_data: sessionData };
|
|
390
455
|
}
|
|
456
|
+
else {
|
|
457
|
+
return {
|
|
458
|
+
session_data: subscriptionData
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
catch (e) {
|
|
463
|
+
return this.buildError("An error occurred in updatePayment", e);
|
|
391
464
|
}
|
|
392
465
|
}
|
|
393
466
|
async updatePaymentData(sessionId, data) {
|
|
@@ -471,4 +544,4 @@ class StripeSubscriptionService extends stripe_provider_1.default {
|
|
|
471
544
|
}
|
|
472
545
|
StripeSubscriptionService.identifier = "stripe-subscription";
|
|
473
546
|
exports.default = StripeSubscriptionService;
|
|
474
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLXN1YnNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3N0cmlwZS1zdWJzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FhMEI7QUFDMUIsb0RBQTRCO0FBRzVCLDBHQUFpRjtBQUVqRixvREFBdUI7QUFFdkIsTUFBZSx5QkFBMEIsU0FBUSx5QkFBYztJQVczRCxZQUNJLFNBTUMsRUFDRCxPQUFPO1FBRVAsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsZUFBZSxDQUFDLGtCQUFpQztRQUM3QyxNQUFNLHlCQUF5QixHQUFHLGdCQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELHlCQUF5QixDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztRQUV2RCxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ2xDLE9BQU8seUJBQXlCLENBQUM7SUFDckMsQ0FBQztJQUVTLElBQUk7UUFDVixJQUFJLENBQUMsT0FBTztZQUNSLElBQUksQ0FBQyxPQUFPO2dCQUNaLElBQUksZ0JBQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtvQkFDOUIsVUFB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
|
|
547
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLXN1YnNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3N0cmlwZS1zdWJzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FjMEI7QUFDMUIsb0RBQTRCO0FBRzVCLDBHQUFpRjtBQUVqRixvREFBdUI7QUFFdkIsTUFBZSx5QkFBMEIsU0FBUSx5QkFBYztJQVczRCxZQUNJLFNBTUMsRUFDRCxPQUFPO1FBRVAsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsZUFBZSxDQUFDLGtCQUFpQztRQUM3QyxNQUFNLHlCQUF5QixHQUFHLGdCQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELHlCQUF5QixDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztRQUV2RCxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ2xDLE9BQU8seUJBQXlCLENBQUM7SUFDckMsQ0FBQztJQUVTLElBQUk7UUFDVixJQUFJLENBQUMsT0FBTztZQUNSLElBQUksQ0FBQyxPQUFPO2dCQUNaLElBQUksZ0JBQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtvQkFDOUIsVUFB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
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = void 0;
|
|
4
4
|
const handle_subscription_1 = require("../utils/handle-subscription");
|
|
5
|
+
const route_1 = require("../api/store/stripe/hooks/route");
|
|
5
6
|
async function stripeEventsHandler({ data, eventName, container }) {
|
|
6
7
|
const event = data;
|
|
7
8
|
const paymentIntent = event.data.object;
|
|
@@ -14,6 +15,6 @@ async function stripeEventsHandler({ data, eventName, container }) {
|
|
|
14
15
|
}
|
|
15
16
|
exports.default = stripeEventsHandler;
|
|
16
17
|
exports.config = {
|
|
17
|
-
event:
|
|
18
|
+
event: route_1.STRIPE_HOOK_RECEIVED_EVENT
|
|
18
19
|
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N1YnNjcmliZXJzL3N0cmlwZS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxzRUFBc0U7QUFFdEUsMkRBQTZFO0FBRTlELEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxFQUM5QyxJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDa0I7SUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBRW5CLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBOEIsQ0FBQztJQUVoRSxNQUFNLElBQUEsNENBQXNCLEVBQUM7UUFDekIsS0FBSyxFQUFFLElBQUk7UUFDWCxTQUFTO1FBQ1QsYUFBYTtLQUNoQixDQUFDLENBQUM7SUFFSCw4QkFBOEI7QUFDbEMsQ0FBQztBQWhCRCxzQ0FnQkM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDcEMsS0FBSyxFQUFFLGtDQUEwQjtDQUNwQyxDQUFDIn0=
|