@dereekb/nestjs 12.7.0 → 13.0.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.
- package/LICENSE +1 -1
- package/index.cjs.js +292 -0
- package/index.d.ts +1 -0
- package/index.esm.js +270 -0
- package/mailgun/index.cjs.js +646 -0
- package/mailgun/index.d.ts +1 -0
- package/mailgun/index.esm.js +633 -0
- package/mailgun/package.json +24 -3
- package/mailgun/src/lib/mailgun.d.ts +2 -2
- package/mailgun/src/lib/mailgun.type.d.ts +1 -1
- package/mailgun/src/lib/mailgun.util.d.ts +22 -17
- package/openai/index.cjs.js +310 -0
- package/openai/index.d.ts +1 -0
- package/openai/index.esm.js +293 -0
- package/openai/package.json +24 -5
- package/openai/src/lib/index.d.ts +0 -1
- package/openai/src/lib/webhook/webhook.openai.controller.d.ts +1 -1
- package/openai/src/lib/webhook/webhook.openai.d.ts +2 -2
- package/openai/src/lib/webhook/webhook.openai.service.d.ts +1 -1
- package/package.json +58 -28
- package/stripe/index.cjs.js +223 -0
- package/stripe/index.d.ts +1 -0
- package/stripe/index.esm.js +215 -0
- package/stripe/package.json +24 -5
- package/stripe/src/lib/index.d.ts +1 -1
- package/stripe/src/lib/stripe.module.d.ts +2 -2
- package/stripe/src/lib/webhook/webhook.stripe.controller.d.ts +1 -1
- package/typeform/index.cjs.js +378 -0
- package/typeform/index.d.ts +1 -0
- package/typeform/index.esm.js +363 -0
- package/typeform/package.json +24 -5
- package/typeform/src/lib/index.d.ts +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.controller.d.ts +1 -1
- package/vapiai/index.cjs.js +306 -0
- package/vapiai/index.d.ts +1 -0
- package/vapiai/index.esm.js +297 -0
- package/vapiai/package.json +24 -5
- package/vapiai/src/lib/index.d.ts +0 -1
- package/vapiai/src/lib/vapiai.type.d.ts +3 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.controller.d.ts +1 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.d.ts +1 -9
- package/vapiai/src/lib/webhook/webhook.vapiai.types.d.ts +6 -34
- package/CHANGELOG.md +0 -2001
- package/mailgun/LICENSE +0 -21
- package/mailgun/src/index.js +0 -5
- package/mailgun/src/index.js.map +0 -1
- package/mailgun/src/lib/index.js +0 -10
- package/mailgun/src/lib/index.js.map +0 -1
- package/mailgun/src/lib/mailgun.api.js +0 -37
- package/mailgun/src/lib/mailgun.api.js.map +0 -1
- package/mailgun/src/lib/mailgun.config.js +0 -45
- package/mailgun/src/lib/mailgun.config.js.map +0 -1
- package/mailgun/src/lib/mailgun.js +0 -205
- package/mailgun/src/lib/mailgun.js.map +0 -1
- package/mailgun/src/lib/mailgun.service.js +0 -53
- package/mailgun/src/lib/mailgun.service.js.map +0 -1
- package/mailgun/src/lib/mailgun.service.module.js +0 -84
- package/mailgun/src/lib/mailgun.service.module.js.map +0 -1
- package/mailgun/src/lib/mailgun.type.js +0 -3
- package/mailgun/src/lib/mailgun.type.js.map +0 -1
- package/mailgun/src/lib/mailgun.util.js +0 -206
- package/mailgun/src/lib/mailgun.util.js.map +0 -1
- package/openai/LICENSE +0 -21
- package/openai/src/index.js +0 -5
- package/openai/src/index.js.map +0 -1
- package/openai/src/lib/index.js +0 -11
- package/openai/src/lib/index.js.map +0 -1
- package/openai/src/lib/openai.api.js +0 -22
- package/openai/src/lib/openai.api.js.map +0 -1
- package/openai/src/lib/openai.config.js +0 -29
- package/openai/src/lib/openai.config.js.map +0 -1
- package/openai/src/lib/openai.module.js +0 -41
- package/openai/src/lib/openai.module.js.map +0 -1
- package/openai/src/lib/openai.type.js +0 -3
- package/openai/src/lib/openai.type.js.map +0 -1
- package/openai/src/lib/openai.util.js +0 -48
- package/openai/src/lib/openai.util.js.map +0 -1
- package/openai/src/lib/webhook/index.js +0 -10
- package/openai/src/lib/webhook/index.js.map +0 -1
- package/openai/src/lib/webhook/webhook.openai.config.js +0 -17
- package/openai/src/lib/webhook/webhook.openai.config.js.map +0 -1
- package/openai/src/lib/webhook/webhook.openai.controller.js +0 -30
- package/openai/src/lib/webhook/webhook.openai.controller.js.map +0 -1
- package/openai/src/lib/webhook/webhook.openai.js +0 -41
- package/openai/src/lib/webhook/webhook.openai.js.map +0 -1
- package/openai/src/lib/webhook/webhook.openai.module.js +0 -39
- package/openai/src/lib/webhook/webhook.openai.module.js.map +0 -1
- package/openai/src/lib/webhook/webhook.openai.service.js +0 -48
- package/openai/src/lib/webhook/webhook.openai.service.js.map +0 -1
- package/openai/src/lib/webhook/webhook.openai.verify.js +0 -37
- package/openai/src/lib/webhook/webhook.openai.verify.js.map +0 -1
- package/src/index.js +0 -5
- package/src/index.js.map +0 -1
- package/src/lib/decorators/index.js +0 -6
- package/src/lib/decorators/index.js.map +0 -1
- package/src/lib/decorators/local.decorator.js +0 -17
- package/src/lib/decorators/local.decorator.js.map +0 -1
- package/src/lib/decorators/rawbody.js +0 -44
- package/src/lib/decorators/rawbody.js.map +0 -1
- package/src/lib/index.js +0 -7
- package/src/lib/index.js.map +0 -1
- package/src/lib/middlewares/index.js +0 -7
- package/src/lib/middlewares/index.js.map +0 -1
- package/src/lib/middlewares/json.middleware.js +0 -16
- package/src/lib/middlewares/json.middleware.js.map +0 -1
- package/src/lib/middlewares/rawbody.middleware.js +0 -16
- package/src/lib/middlewares/rawbody.middleware.js.map +0 -1
- package/src/lib/middlewares/webhook.js +0 -51
- package/src/lib/middlewares/webhook.js.map +0 -1
- package/src/lib/module/client/client.config.js +0 -13
- package/src/lib/module/client/client.config.js.map +0 -1
- package/src/lib/module/client/client.js +0 -8
- package/src/lib/module/client/client.js.map +0 -1
- package/src/lib/module/client/client.module.js +0 -36
- package/src/lib/module/client/client.module.js.map +0 -1
- package/src/lib/module/client/client.service.js +0 -30
- package/src/lib/module/client/client.service.js.map +0 -1
- package/src/lib/module/client/index.js +0 -8
- package/src/lib/module/client/index.js.map +0 -1
- package/src/lib/module/env/env.config.js +0 -14
- package/src/lib/module/env/env.config.js.map +0 -1
- package/src/lib/module/env/env.js +0 -10
- package/src/lib/module/env/env.js.map +0 -1
- package/src/lib/module/env/env.nest.js +0 -16
- package/src/lib/module/env/env.nest.js.map +0 -1
- package/src/lib/module/env/env.service.js +0 -33
- package/src/lib/module/env/env.service.js.map +0 -1
- package/src/lib/module/env/index.js +0 -8
- package/src/lib/module/env/index.js.map +0 -1
- package/src/lib/module/index.js +0 -7
- package/src/lib/module/index.js.map +0 -1
- package/src/lib/module/module.js +0 -26
- package/src/lib/module/module.js.map +0 -1
- package/stripe/LICENSE +0 -21
- package/stripe/src/index.js +0 -5
- package/stripe/src/index.js.map +0 -1
- package/stripe/src/lib/index.js +0 -8
- package/stripe/src/lib/index.js.map +0 -1
- package/stripe/src/lib/stripe.api.js +0 -40
- package/stripe/src/lib/stripe.api.js.map +0 -1
- package/stripe/src/lib/stripe.config.js +0 -19
- package/stripe/src/lib/stripe.config.js.map +0 -1
- package/stripe/src/lib/stripe.module.js +0 -41
- package/stripe/src/lib/stripe.module.js.map +0 -1
- package/stripe/src/lib/stripe.type.js +0 -4
- package/stripe/src/lib/stripe.type.js.map +0 -1
- package/stripe/src/lib/webhook/index.js +0 -8
- package/stripe/src/lib/webhook/index.js.map +0 -1
- package/stripe/src/lib/webhook/webhook.stripe.controller.js +0 -30
- package/stripe/src/lib/webhook/webhook.stripe.controller.js.map +0 -1
- package/stripe/src/lib/webhook/webhook.stripe.js +0 -67
- package/stripe/src/lib/webhook/webhook.stripe.js.map +0 -1
- package/stripe/src/lib/webhook/webhook.stripe.module.js +0 -20
- package/stripe/src/lib/webhook/webhook.stripe.module.js.map +0 -1
- package/stripe/src/lib/webhook/webhook.stripe.service.js +0 -36
- package/stripe/src/lib/webhook/webhook.stripe.service.js.map +0 -1
- package/typeform/LICENSE +0 -21
- package/typeform/src/index.js +0 -5
- package/typeform/src/index.js.map +0 -1
- package/typeform/src/lib/index.js +0 -11
- package/typeform/src/lib/index.js.map +0 -1
- package/typeform/src/lib/typeform.api.js +0 -22
- package/typeform/src/lib/typeform.api.js.map +0 -1
- package/typeform/src/lib/typeform.config.js +0 -21
- package/typeform/src/lib/typeform.config.js.map +0 -1
- package/typeform/src/lib/typeform.module.js +0 -39
- package/typeform/src/lib/typeform.module.js.map +0 -1
- package/typeform/src/lib/typeform.type.js +0 -3
- package/typeform/src/lib/typeform.type.js.map +0 -1
- package/typeform/src/lib/typeform.util.js +0 -26
- package/typeform/src/lib/typeform.util.js.map +0 -1
- package/typeform/src/lib/webhook/index.js +0 -12
- package/typeform/src/lib/webhook/index.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.config.js +0 -17
- package/typeform/src/lib/webhook/webhook.typeform.config.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.controller.js +0 -30
- package/typeform/src/lib/webhook/webhook.typeform.controller.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.form.js +0 -113
- package/typeform/src/lib/webhook/webhook.typeform.form.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.js +0 -27
- package/typeform/src/lib/webhook/webhook.typeform.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.module.js +0 -38
- package/typeform/src/lib/webhook/webhook.typeform.module.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.service.js +0 -45
- package/typeform/src/lib/webhook/webhook.typeform.service.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.type.js +0 -3
- package/typeform/src/lib/webhook/webhook.typeform.type.js.map +0 -1
- package/typeform/src/lib/webhook/webhook.typeform.verify.js +0 -28
- package/typeform/src/lib/webhook/webhook.typeform.verify.js.map +0 -1
- package/vapiai/LICENSE +0 -21
- package/vapiai/src/index.js +0 -5
- package/vapiai/src/index.js.map +0 -1
- package/vapiai/src/lib/index.js +0 -10
- package/vapiai/src/lib/index.js.map +0 -1
- package/vapiai/src/lib/vapiai.api.js +0 -32
- package/vapiai/src/lib/vapiai.api.js.map +0 -1
- package/vapiai/src/lib/vapiai.config.js +0 -17
- package/vapiai/src/lib/vapiai.config.js.map +0 -1
- package/vapiai/src/lib/vapiai.module.js +0 -38
- package/vapiai/src/lib/vapiai.module.js.map +0 -1
- package/vapiai/src/lib/vapiai.type.js +0 -3
- package/vapiai/src/lib/vapiai.type.js.map +0 -1
- package/vapiai/src/lib/webhook/index.js +0 -10
- package/vapiai/src/lib/webhook/index.js.map +0 -1
- package/vapiai/src/lib/webhook/webhook.vapi.config.js +0 -20
- package/vapiai/src/lib/webhook/webhook.vapi.config.js.map +0 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.controller.js +0 -38
- package/vapiai/src/lib/webhook/webhook.vapiai.controller.js.map +0 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.js +0 -42
- package/vapiai/src/lib/webhook/webhook.vapiai.js.map +0 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.module.js +0 -41
- package/vapiai/src/lib/webhook/webhook.vapiai.module.js.map +0 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.service.js +0 -52
- package/vapiai/src/lib/webhook/webhook.vapiai.service.js.map +0 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.types.js +0 -25
- package/vapiai/src/lib/webhook/webhook.vapiai.types.js.map +0 -1
- package/vapiai/src/lib/webhook/webhook.vapiai.verify.js +0 -49
- package/vapiai/src/lib/webhook/webhook.vapiai.verify.js.map +0 -1
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var util = require('@dereekb/util');
|
|
4
|
+
var nestjs = require('@dereekb/nestjs');
|
|
5
|
+
var common = require('@nestjs/common');
|
|
6
|
+
var Stripe = require('stripe');
|
|
7
|
+
var config = require('@nestjs/config');
|
|
8
|
+
|
|
9
|
+
exports.StripeWebhookEventType = void 0;
|
|
10
|
+
(function (StripeWebhookEventType) {
|
|
11
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END"] = "customer.subscription.trial_will_end";
|
|
12
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_DELETED"] = "customer.subscription.deleted";
|
|
13
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_CREATED"] = "customer.subscription.created";
|
|
14
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_UPDATED"] = "customer.subscription.updated";
|
|
15
|
+
StripeWebhookEventType["CHECKOUT_SESSION_COMPLETED"] = "checkout.session.completed";
|
|
16
|
+
StripeWebhookEventType["CHECKOUT_SESSION_ASYNC_PAYMENT_FAILED"] = "checkout.session.async_payment_failed";
|
|
17
|
+
StripeWebhookEventType["CHECKOUT_SESSION_ASYNC_PAYMENT_SUCCEEDED"] = "checkout.session.async_payment_suceeded";
|
|
18
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_ABORTED"] = "subscription_schedule.aborted";
|
|
19
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_CANCELLED"] = "subscription_schedule.canceled";
|
|
20
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_COMPLETED"] = "subscription_schedule.completed";
|
|
21
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_CREATED"] = "subscription_schedule.created";
|
|
22
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_EXPIRING"] = "subscription_schedule.expiring";
|
|
23
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_RELEASED"] = "subscription_schedule.released";
|
|
24
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_UPDATED"] = "subscription_schedule.updated";
|
|
25
|
+
})(exports.StripeWebhookEventType || (exports.StripeWebhookEventType = {}));
|
|
26
|
+
/**
|
|
27
|
+
* Creates a StripeWebhookEvent and treats the data as the input type.
|
|
28
|
+
*
|
|
29
|
+
* @param event
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
function stripeWebhookEvent(event) {
|
|
33
|
+
return {
|
|
34
|
+
event,
|
|
35
|
+
data: event.data.object
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function stripeWebhookEventMapper(mapFn) {
|
|
39
|
+
return event => ({
|
|
40
|
+
event,
|
|
41
|
+
data: mapFn(event.data.object, event)
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const stripeEventHandlerFactory = util.handlerFactory(x => x.type);
|
|
45
|
+
const stripeEventHandlerConfigurerFactory = util.handlerConfigurerFactory({
|
|
46
|
+
configurerForAccessor: accessor => {
|
|
47
|
+
// eslint-disable-next-line
|
|
48
|
+
const fnWithKey = util.handlerMappedSetFunctionFactory(accessor, stripeWebhookEvent);
|
|
49
|
+
const configurer = {
|
|
50
|
+
...accessor,
|
|
51
|
+
handleCheckoutSessionComplete: fnWithKey(exports.StripeWebhookEventType.CHECKOUT_SESSION_COMPLETED),
|
|
52
|
+
handleCheckoutSessionAsyncPaymentFailed: fnWithKey(exports.StripeWebhookEventType.CHECKOUT_SESSION_ASYNC_PAYMENT_FAILED),
|
|
53
|
+
handleCheckoutSessionAsyncPaymentSuccess: fnWithKey(exports.StripeWebhookEventType.CHECKOUT_SESSION_ASYNC_PAYMENT_SUCCEEDED),
|
|
54
|
+
handleCustomerSubscriptionCreated: fnWithKey(exports.StripeWebhookEventType.CUSTOMER_SUBSCRIPTION_CREATED),
|
|
55
|
+
handleCustomerSubscriptionUpdated: fnWithKey(exports.StripeWebhookEventType.CUSTOMER_SUBSCRIPTION_UPDATED),
|
|
56
|
+
handleCustomerSubscriptionDeleted: fnWithKey(exports.StripeWebhookEventType.CUSTOMER_SUBSCRIPTION_DELETED),
|
|
57
|
+
handleSubscriptionScheduleAborted: fnWithKey(exports.StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_ABORTED),
|
|
58
|
+
handleSubscriptionScheduleCancelled: fnWithKey(exports.StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_CANCELLED),
|
|
59
|
+
handleSubscriptionScheduleCompleted: fnWithKey(exports.StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_COMPLETED),
|
|
60
|
+
handleSubscriptionScheduleCreated: fnWithKey(exports.StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_CREATED),
|
|
61
|
+
handleSubscriptionScheduleExpiring: fnWithKey(exports.StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_EXPIRING),
|
|
62
|
+
handleSubscriptionScheduleReleased: fnWithKey(exports.StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_RELEASED),
|
|
63
|
+
handleSubscriptionScheduleUpdated: fnWithKey(exports.StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_UPDATED)
|
|
64
|
+
};
|
|
65
|
+
return configurer;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
/******************************************************************************
|
|
70
|
+
Copyright (c) Microsoft Corporation.
|
|
71
|
+
|
|
72
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
73
|
+
purpose with or without fee is hereby granted.
|
|
74
|
+
|
|
75
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
76
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
77
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
78
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
79
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
80
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
81
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
82
|
+
***************************************************************************** */
|
|
83
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
function __decorate(decorators, target, key, desc) {
|
|
87
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
88
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
89
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
90
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function __param(paramIndex, decorator) {
|
|
94
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function __metadata(metadataKey, metadataValue) {
|
|
98
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
102
|
+
var e = new Error(message);
|
|
103
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Configuration for StripeService
|
|
108
|
+
*/
|
|
109
|
+
class StripeServiceConfig {
|
|
110
|
+
stripe;
|
|
111
|
+
static assertValidConfig(config) {
|
|
112
|
+
if (!config.stripe.secret) {
|
|
113
|
+
throw new Error('No stripe secret specified.');
|
|
114
|
+
} else if (!config.stripe.webhookSecret) {
|
|
115
|
+
throw new Error('No stripe webhook secret specified.');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
exports.StripeApi = class StripeApi {
|
|
121
|
+
config;
|
|
122
|
+
stripe;
|
|
123
|
+
constructor(config) {
|
|
124
|
+
this.config = config;
|
|
125
|
+
this.stripe = new Stripe(config.stripe.secret, config.stripe.config);
|
|
126
|
+
}
|
|
127
|
+
// MARK: Event
|
|
128
|
+
/**
|
|
129
|
+
* Verifies the event and reads the stripe signature from a request.
|
|
130
|
+
*/
|
|
131
|
+
readStripeEventFromWebhookRequest(req, rawBody) {
|
|
132
|
+
const signature = req.get('stripe-signature');
|
|
133
|
+
if (!signature) {
|
|
134
|
+
throw new common.BadRequestException(`missing stripe-signature`);
|
|
135
|
+
}
|
|
136
|
+
let event;
|
|
137
|
+
try {
|
|
138
|
+
event = this.stripe.webhooks.constructEvent(rawBody, signature, this.config.stripe.webhookSecret);
|
|
139
|
+
} catch (e) {
|
|
140
|
+
throw new common.BadRequestException(`stripe signature read error: ${e?.message}`);
|
|
141
|
+
}
|
|
142
|
+
return event;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
exports.StripeApi = __decorate([common.Injectable(), __param(0, common.Inject(StripeServiceConfig)), __metadata("design:paramtypes", [StripeServiceConfig])], exports.StripeApi);
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Service that makes system changes based on Stripe webhook events.
|
|
149
|
+
*/
|
|
150
|
+
exports.StripeWebhookService = class StripeWebhookService {
|
|
151
|
+
logger = new common.Logger('StripeWebhookService');
|
|
152
|
+
_stripeApi;
|
|
153
|
+
handler = stripeEventHandlerFactory();
|
|
154
|
+
configure = stripeEventHandlerConfigurerFactory(this.handler);
|
|
155
|
+
constructor(stripeApi) {
|
|
156
|
+
this._stripeApi = stripeApi;
|
|
157
|
+
}
|
|
158
|
+
async updateForWebhook(req, rawBody) {
|
|
159
|
+
const event = this._stripeApi.readStripeEventFromWebhookRequest(req, rawBody);
|
|
160
|
+
return this.updateForStripeEvent(event);
|
|
161
|
+
}
|
|
162
|
+
async updateForStripeEvent(event) {
|
|
163
|
+
const handled = await this.handler(event);
|
|
164
|
+
if (!handled) {
|
|
165
|
+
this.logger.warn('Received unexpected/unhandled stripe event: ', event);
|
|
166
|
+
}
|
|
167
|
+
return handled;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
exports.StripeWebhookService = __decorate([common.Injectable(), __param(0, common.Inject(exports.StripeApi)), __metadata("design:paramtypes", [exports.StripeApi])], exports.StripeWebhookService);
|
|
171
|
+
|
|
172
|
+
exports.StripeWebhookController = class StripeWebhookController {
|
|
173
|
+
_stripeWebhookService;
|
|
174
|
+
constructor(stripeWebhookService) {
|
|
175
|
+
this._stripeWebhookService = stripeWebhookService;
|
|
176
|
+
}
|
|
177
|
+
async handleStripeWebhook(req, rawBody) {
|
|
178
|
+
await this._stripeWebhookService.updateForWebhook(req, rawBody);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
__decorate([common.Post(), __param(0, common.Req()), __param(1, nestjs.RawBody()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object]), __metadata("design:returntype", Promise)], exports.StripeWebhookController.prototype, "handleStripeWebhook", null);
|
|
182
|
+
exports.StripeWebhookController = __decorate([common.Controller('/webhook/stripe'), __param(0, common.Inject(exports.StripeWebhookService)), __metadata("design:paramtypes", [exports.StripeWebhookService])], exports.StripeWebhookController);
|
|
183
|
+
|
|
184
|
+
const STRIPE_DEFAULT_API_VERSION = '2020-08-27';
|
|
185
|
+
function stripeServiceConfigFactory(configService) {
|
|
186
|
+
const config = {
|
|
187
|
+
stripe: {
|
|
188
|
+
secret: configService.get('STRIPE_SECRET'),
|
|
189
|
+
webhookSecret: configService.get('STRIPE_WEBHOOK_SECRET'),
|
|
190
|
+
config: {
|
|
191
|
+
apiVersion: STRIPE_DEFAULT_API_VERSION
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
StripeServiceConfig.assertValidConfig(config);
|
|
196
|
+
return config;
|
|
197
|
+
}
|
|
198
|
+
exports.StripeModule = class StripeModule {};
|
|
199
|
+
exports.StripeModule = __decorate([common.Module({
|
|
200
|
+
imports: [config.ConfigModule],
|
|
201
|
+
providers: [{
|
|
202
|
+
provide: StripeServiceConfig,
|
|
203
|
+
inject: [config.ConfigService],
|
|
204
|
+
useFactory: stripeServiceConfigFactory
|
|
205
|
+
}, exports.StripeApi],
|
|
206
|
+
exports: [exports.StripeApi]
|
|
207
|
+
})], exports.StripeModule);
|
|
208
|
+
|
|
209
|
+
exports.StripeWebhookModule = class StripeWebhookModule {};
|
|
210
|
+
exports.StripeWebhookModule = __decorate([common.Module({
|
|
211
|
+
controllers: [exports.StripeWebhookController],
|
|
212
|
+
imports: [exports.StripeModule],
|
|
213
|
+
exports: [exports.StripeModule, exports.StripeWebhookService],
|
|
214
|
+
providers: [exports.StripeWebhookService]
|
|
215
|
+
})], exports.StripeWebhookModule);
|
|
216
|
+
|
|
217
|
+
exports.STRIPE_DEFAULT_API_VERSION = STRIPE_DEFAULT_API_VERSION;
|
|
218
|
+
exports.StripeServiceConfig = StripeServiceConfig;
|
|
219
|
+
exports.stripeEventHandlerConfigurerFactory = stripeEventHandlerConfigurerFactory;
|
|
220
|
+
exports.stripeEventHandlerFactory = stripeEventHandlerFactory;
|
|
221
|
+
exports.stripeServiceConfigFactory = stripeServiceConfigFactory;
|
|
222
|
+
exports.stripeWebhookEvent = stripeWebhookEvent;
|
|
223
|
+
exports.stripeWebhookEventMapper = stripeWebhookEventMapper;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/index";
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { handlerFactory, handlerConfigurerFactory, handlerMappedSetFunctionFactory } from '@dereekb/util';
|
|
2
|
+
import { RawBody } from '@dereekb/nestjs';
|
|
3
|
+
import { Injectable, Inject, BadRequestException, Logger, Post, Req, Controller, Module } from '@nestjs/common';
|
|
4
|
+
import Stripe from 'stripe';
|
|
5
|
+
import { ConfigService, ConfigModule } from '@nestjs/config';
|
|
6
|
+
|
|
7
|
+
var StripeWebhookEventType;
|
|
8
|
+
(function (StripeWebhookEventType) {
|
|
9
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END"] = "customer.subscription.trial_will_end";
|
|
10
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_DELETED"] = "customer.subscription.deleted";
|
|
11
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_CREATED"] = "customer.subscription.created";
|
|
12
|
+
StripeWebhookEventType["CUSTOMER_SUBSCRIPTION_UPDATED"] = "customer.subscription.updated";
|
|
13
|
+
StripeWebhookEventType["CHECKOUT_SESSION_COMPLETED"] = "checkout.session.completed";
|
|
14
|
+
StripeWebhookEventType["CHECKOUT_SESSION_ASYNC_PAYMENT_FAILED"] = "checkout.session.async_payment_failed";
|
|
15
|
+
StripeWebhookEventType["CHECKOUT_SESSION_ASYNC_PAYMENT_SUCCEEDED"] = "checkout.session.async_payment_suceeded";
|
|
16
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_ABORTED"] = "subscription_schedule.aborted";
|
|
17
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_CANCELLED"] = "subscription_schedule.canceled";
|
|
18
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_COMPLETED"] = "subscription_schedule.completed";
|
|
19
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_CREATED"] = "subscription_schedule.created";
|
|
20
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_EXPIRING"] = "subscription_schedule.expiring";
|
|
21
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_RELEASED"] = "subscription_schedule.released";
|
|
22
|
+
StripeWebhookEventType["SUBSCRIPTION_SCHEDULE_UPDATED"] = "subscription_schedule.updated";
|
|
23
|
+
})(StripeWebhookEventType || (StripeWebhookEventType = {}));
|
|
24
|
+
/**
|
|
25
|
+
* Creates a StripeWebhookEvent and treats the data as the input type.
|
|
26
|
+
*
|
|
27
|
+
* @param event
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
function stripeWebhookEvent(event) {
|
|
31
|
+
return {
|
|
32
|
+
event,
|
|
33
|
+
data: event.data.object
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function stripeWebhookEventMapper(mapFn) {
|
|
37
|
+
return event => ({
|
|
38
|
+
event,
|
|
39
|
+
data: mapFn(event.data.object, event)
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const stripeEventHandlerFactory = handlerFactory(x => x.type);
|
|
43
|
+
const stripeEventHandlerConfigurerFactory = handlerConfigurerFactory({
|
|
44
|
+
configurerForAccessor: accessor => {
|
|
45
|
+
// eslint-disable-next-line
|
|
46
|
+
const fnWithKey = handlerMappedSetFunctionFactory(accessor, stripeWebhookEvent);
|
|
47
|
+
const configurer = {
|
|
48
|
+
...accessor,
|
|
49
|
+
handleCheckoutSessionComplete: fnWithKey(StripeWebhookEventType.CHECKOUT_SESSION_COMPLETED),
|
|
50
|
+
handleCheckoutSessionAsyncPaymentFailed: fnWithKey(StripeWebhookEventType.CHECKOUT_SESSION_ASYNC_PAYMENT_FAILED),
|
|
51
|
+
handleCheckoutSessionAsyncPaymentSuccess: fnWithKey(StripeWebhookEventType.CHECKOUT_SESSION_ASYNC_PAYMENT_SUCCEEDED),
|
|
52
|
+
handleCustomerSubscriptionCreated: fnWithKey(StripeWebhookEventType.CUSTOMER_SUBSCRIPTION_CREATED),
|
|
53
|
+
handleCustomerSubscriptionUpdated: fnWithKey(StripeWebhookEventType.CUSTOMER_SUBSCRIPTION_UPDATED),
|
|
54
|
+
handleCustomerSubscriptionDeleted: fnWithKey(StripeWebhookEventType.CUSTOMER_SUBSCRIPTION_DELETED),
|
|
55
|
+
handleSubscriptionScheduleAborted: fnWithKey(StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_ABORTED),
|
|
56
|
+
handleSubscriptionScheduleCancelled: fnWithKey(StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_CANCELLED),
|
|
57
|
+
handleSubscriptionScheduleCompleted: fnWithKey(StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_COMPLETED),
|
|
58
|
+
handleSubscriptionScheduleCreated: fnWithKey(StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_CREATED),
|
|
59
|
+
handleSubscriptionScheduleExpiring: fnWithKey(StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_EXPIRING),
|
|
60
|
+
handleSubscriptionScheduleReleased: fnWithKey(StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_RELEASED),
|
|
61
|
+
handleSubscriptionScheduleUpdated: fnWithKey(StripeWebhookEventType.SUBSCRIPTION_SCHEDULE_UPDATED)
|
|
62
|
+
};
|
|
63
|
+
return configurer;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
/******************************************************************************
|
|
68
|
+
Copyright (c) Microsoft Corporation.
|
|
69
|
+
|
|
70
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
71
|
+
purpose with or without fee is hereby granted.
|
|
72
|
+
|
|
73
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
74
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
75
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
76
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
77
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
78
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
79
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
80
|
+
***************************************************************************** */
|
|
81
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
function __decorate(decorators, target, key, desc) {
|
|
85
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
86
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
87
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
88
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function __param(paramIndex, decorator) {
|
|
92
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function __metadata(metadataKey, metadataValue) {
|
|
96
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
100
|
+
var e = new Error(message);
|
|
101
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Configuration for StripeService
|
|
106
|
+
*/
|
|
107
|
+
class StripeServiceConfig {
|
|
108
|
+
stripe;
|
|
109
|
+
static assertValidConfig(config) {
|
|
110
|
+
if (!config.stripe.secret) {
|
|
111
|
+
throw new Error('No stripe secret specified.');
|
|
112
|
+
} else if (!config.stripe.webhookSecret) {
|
|
113
|
+
throw new Error('No stripe webhook secret specified.');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
let StripeApi = class StripeApi {
|
|
119
|
+
config;
|
|
120
|
+
stripe;
|
|
121
|
+
constructor(config) {
|
|
122
|
+
this.config = config;
|
|
123
|
+
this.stripe = new Stripe(config.stripe.secret, config.stripe.config);
|
|
124
|
+
}
|
|
125
|
+
// MARK: Event
|
|
126
|
+
/**
|
|
127
|
+
* Verifies the event and reads the stripe signature from a request.
|
|
128
|
+
*/
|
|
129
|
+
readStripeEventFromWebhookRequest(req, rawBody) {
|
|
130
|
+
const signature = req.get('stripe-signature');
|
|
131
|
+
if (!signature) {
|
|
132
|
+
throw new BadRequestException(`missing stripe-signature`);
|
|
133
|
+
}
|
|
134
|
+
let event;
|
|
135
|
+
try {
|
|
136
|
+
event = this.stripe.webhooks.constructEvent(rawBody, signature, this.config.stripe.webhookSecret);
|
|
137
|
+
} catch (e) {
|
|
138
|
+
throw new BadRequestException(`stripe signature read error: ${e?.message}`);
|
|
139
|
+
}
|
|
140
|
+
return event;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
StripeApi = __decorate([Injectable(), __param(0, Inject(StripeServiceConfig)), __metadata("design:paramtypes", [StripeServiceConfig])], StripeApi);
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Service that makes system changes based on Stripe webhook events.
|
|
147
|
+
*/
|
|
148
|
+
let StripeWebhookService = class StripeWebhookService {
|
|
149
|
+
logger = new Logger('StripeWebhookService');
|
|
150
|
+
_stripeApi;
|
|
151
|
+
handler = stripeEventHandlerFactory();
|
|
152
|
+
configure = stripeEventHandlerConfigurerFactory(this.handler);
|
|
153
|
+
constructor(stripeApi) {
|
|
154
|
+
this._stripeApi = stripeApi;
|
|
155
|
+
}
|
|
156
|
+
async updateForWebhook(req, rawBody) {
|
|
157
|
+
const event = this._stripeApi.readStripeEventFromWebhookRequest(req, rawBody);
|
|
158
|
+
return this.updateForStripeEvent(event);
|
|
159
|
+
}
|
|
160
|
+
async updateForStripeEvent(event) {
|
|
161
|
+
const handled = await this.handler(event);
|
|
162
|
+
if (!handled) {
|
|
163
|
+
this.logger.warn('Received unexpected/unhandled stripe event: ', event);
|
|
164
|
+
}
|
|
165
|
+
return handled;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
StripeWebhookService = __decorate([Injectable(), __param(0, Inject(StripeApi)), __metadata("design:paramtypes", [StripeApi])], StripeWebhookService);
|
|
169
|
+
|
|
170
|
+
let StripeWebhookController = class StripeWebhookController {
|
|
171
|
+
_stripeWebhookService;
|
|
172
|
+
constructor(stripeWebhookService) {
|
|
173
|
+
this._stripeWebhookService = stripeWebhookService;
|
|
174
|
+
}
|
|
175
|
+
async handleStripeWebhook(req, rawBody) {
|
|
176
|
+
await this._stripeWebhookService.updateForWebhook(req, rawBody);
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
__decorate([Post(), __param(0, Req()), __param(1, RawBody()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object]), __metadata("design:returntype", Promise)], StripeWebhookController.prototype, "handleStripeWebhook", null);
|
|
180
|
+
StripeWebhookController = __decorate([Controller('/webhook/stripe'), __param(0, Inject(StripeWebhookService)), __metadata("design:paramtypes", [StripeWebhookService])], StripeWebhookController);
|
|
181
|
+
|
|
182
|
+
const STRIPE_DEFAULT_API_VERSION = '2020-08-27';
|
|
183
|
+
function stripeServiceConfigFactory(configService) {
|
|
184
|
+
const config = {
|
|
185
|
+
stripe: {
|
|
186
|
+
secret: configService.get('STRIPE_SECRET'),
|
|
187
|
+
webhookSecret: configService.get('STRIPE_WEBHOOK_SECRET'),
|
|
188
|
+
config: {
|
|
189
|
+
apiVersion: STRIPE_DEFAULT_API_VERSION
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
StripeServiceConfig.assertValidConfig(config);
|
|
194
|
+
return config;
|
|
195
|
+
}
|
|
196
|
+
let StripeModule = class StripeModule {};
|
|
197
|
+
StripeModule = __decorate([Module({
|
|
198
|
+
imports: [ConfigModule],
|
|
199
|
+
providers: [{
|
|
200
|
+
provide: StripeServiceConfig,
|
|
201
|
+
inject: [ConfigService],
|
|
202
|
+
useFactory: stripeServiceConfigFactory
|
|
203
|
+
}, StripeApi],
|
|
204
|
+
exports: [StripeApi]
|
|
205
|
+
})], StripeModule);
|
|
206
|
+
|
|
207
|
+
let StripeWebhookModule = class StripeWebhookModule {};
|
|
208
|
+
StripeWebhookModule = __decorate([Module({
|
|
209
|
+
controllers: [StripeWebhookController],
|
|
210
|
+
imports: [StripeModule],
|
|
211
|
+
exports: [StripeModule, StripeWebhookService],
|
|
212
|
+
providers: [StripeWebhookService]
|
|
213
|
+
})], StripeWebhookModule);
|
|
214
|
+
|
|
215
|
+
export { STRIPE_DEFAULT_API_VERSION, StripeApi, StripeModule, StripeServiceConfig, StripeWebhookController, StripeWebhookEventType, StripeWebhookModule, StripeWebhookService, stripeEventHandlerConfigurerFactory, stripeEventHandlerFactory, stripeServiceConfigFactory, stripeWebhookEvent, stripeWebhookEventMapper };
|
package/stripe/package.json
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/nestjs/stripe",
|
|
3
|
-
"version": "
|
|
4
|
-
"type": "commonjs",
|
|
5
|
-
"peerDependencies": {},
|
|
6
|
-
"dependencies": {},
|
|
3
|
+
"version": "13.0.0",
|
|
7
4
|
"types": "./src/index.d.ts",
|
|
8
|
-
"
|
|
5
|
+
"module": "./index.esm.js",
|
|
6
|
+
"main": "./index.cjs.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./src/index.d.ts",
|
|
10
|
+
"node": {
|
|
11
|
+
"require": "./index.cjs.js"
|
|
12
|
+
},
|
|
13
|
+
"browser": {
|
|
14
|
+
"require": "./index.cjs.js",
|
|
15
|
+
"import": "./index.esm.js"
|
|
16
|
+
},
|
|
17
|
+
"default": "./index.cjs.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"@dereekb/date": "13.0.0",
|
|
22
|
+
"@dereekb/nestjs": "13.0.0",
|
|
23
|
+
"@dereekb/model": "13.0.0",
|
|
24
|
+
"@dereekb/rxjs": "13.0.0",
|
|
25
|
+
"@dereekb/util": "13.0.0",
|
|
26
|
+
"core-js": "^3.0.0"
|
|
27
|
+
}
|
|
9
28
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConfigService } from '@nestjs/config';
|
|
2
|
-
import
|
|
2
|
+
import { Stripe } from 'stripe';
|
|
3
3
|
import { StripeServiceConfig } from './stripe.config';
|
|
4
|
-
export declare const STRIPE_DEFAULT_API_VERSION:
|
|
4
|
+
export declare const STRIPE_DEFAULT_API_VERSION: Stripe.LatestApiVersion;
|
|
5
5
|
export declare function stripeServiceConfigFactory(configService: ConfigService): StripeServiceConfig;
|
|
6
6
|
export declare class StripeModule {
|
|
7
7
|
}
|