@baseplate-dev/fastify-generators 0.6.1 → 1.0.7
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/CHANGELOG.md +25 -0
- package/LICENSE +114 -123
- package/dist/constants/fastify-packages.d.ts +1 -2
- package/dist/constants/fastify-packages.d.ts.map +1 -1
- package/dist/constants/fastify-packages.js +1 -2
- package/dist/constants/fastify-packages.js.map +1 -1
- package/dist/generators/core/config-service/config-service.generator.d.ts.map +1 -1
- package/dist/generators/core/config-service/config-service.generator.js +10 -1
- package/dist/generators/core/config-service/config-service.generator.js.map +1 -1
- package/dist/generators/core/index.d.ts +0 -1
- package/dist/generators/core/index.d.ts.map +1 -1
- package/dist/generators/core/index.js +0 -1
- package/dist/generators/core/index.js.map +1 -1
- package/dist/generators/index.d.ts +0 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +0 -1
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/pothos/index.d.ts +0 -1
- package/dist/generators/pothos/index.d.ts.map +1 -1
- package/dist/generators/pothos/index.js +0 -1
- package/dist/generators/pothos/index.js.map +1 -1
- package/dist/generators/prisma/prisma-model-index/prisma-model-index.generator.d.ts +3 -1
- package/dist/generators/prisma/prisma-model-index/prisma-model-index.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-model-index/prisma-model-index.generator.js +4 -3
- package/dist/generators/prisma/prisma-model-index/prisma-model-index.generator.js.map +1 -1
- package/dist/generators/yoga/yoga-plugin/templates/src/plugins/graphql/index.ts +2 -9
- package/dist/generators/yoga/yoga-plugin/yoga-plugin.generator.d.ts.map +1 -1
- package/dist/generators/yoga/yoga-plugin/yoga-plugin.generator.js +0 -1
- package/dist/generators/yoga/yoga-plugin/yoga-plugin.generator.js.map +1 -1
- package/package.json +11 -10
- package/dist/generators/core/fastify-sentry/fastify-sentry.generator.d.ts +0 -105
- package/dist/generators/core/fastify-sentry/fastify-sentry.generator.d.ts.map +0 -1
- package/dist/generators/core/fastify-sentry/fastify-sentry.generator.js +0 -152
- package/dist/generators/core/fastify-sentry/fastify-sentry.generator.js.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/index.d.ts +0 -74
- package/dist/generators/core/fastify-sentry/generated/index.d.ts.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/index.js +0 -11
- package/dist/generators/core/fastify-sentry/generated/index.js.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/template-paths.d.ts +0 -13
- package/dist/generators/core/fastify-sentry/generated/template-paths.d.ts.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/template-paths.js +0 -23
- package/dist/generators/core/fastify-sentry/generated/template-paths.js.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/template-renderers.d.ts +0 -35
- package/dist/generators/core/fastify-sentry/generated/template-renderers.d.ts.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/template-renderers.js +0 -50
- package/dist/generators/core/fastify-sentry/generated/template-renderers.js.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/ts-import-providers.d.ts +0 -27
- package/dist/generators/core/fastify-sentry/generated/ts-import-providers.d.ts.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/ts-import-providers.js +0 -34
- package/dist/generators/core/fastify-sentry/generated/ts-import-providers.js.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/typed-templates.d.ts +0 -29
- package/dist/generators/core/fastify-sentry/generated/typed-templates.d.ts.map +0 -1
- package/dist/generators/core/fastify-sentry/generated/typed-templates.js +0 -33
- package/dist/generators/core/fastify-sentry/generated/typed-templates.js.map +0 -1
- package/dist/generators/core/fastify-sentry/index.d.ts +0 -4
- package/dist/generators/core/fastify-sentry/index.d.ts.map +0 -1
- package/dist/generators/core/fastify-sentry/index.js +0 -3
- package/dist/generators/core/fastify-sentry/index.js.map +0 -1
- package/dist/generators/core/fastify-sentry/templates/src/instrument.ts +0 -41
- package/dist/generators/core/fastify-sentry/templates/src/services/sentry.ts +0 -72
- package/dist/generators/pothos/pothos-sentry/generated/index.d.ts +0 -23
- package/dist/generators/pothos/pothos-sentry/generated/index.d.ts.map +0 -1
- package/dist/generators/pothos/pothos-sentry/generated/index.js +0 -9
- package/dist/generators/pothos/pothos-sentry/generated/index.js.map +0 -1
- package/dist/generators/pothos/pothos-sentry/generated/template-paths.d.ts +0 -12
- package/dist/generators/pothos/pothos-sentry/generated/template-paths.d.ts.map +0 -1
- package/dist/generators/pothos/pothos-sentry/generated/template-paths.js +0 -22
- package/dist/generators/pothos/pothos-sentry/generated/template-paths.js.map +0 -1
- package/dist/generators/pothos/pothos-sentry/generated/template-renderers.d.ts +0 -18
- package/dist/generators/pothos/pothos-sentry/generated/template-renderers.d.ts.map +0 -1
- package/dist/generators/pothos/pothos-sentry/generated/template-renderers.js +0 -34
- package/dist/generators/pothos/pothos-sentry/generated/template-renderers.js.map +0 -1
- package/dist/generators/pothos/pothos-sentry/generated/typed-templates.d.ts +0 -4
- package/dist/generators/pothos/pothos-sentry/generated/typed-templates.d.ts.map +0 -1
- package/dist/generators/pothos/pothos-sentry/generated/typed-templates.js +0 -13
- package/dist/generators/pothos/pothos-sentry/generated/typed-templates.js.map +0 -1
- package/dist/generators/pothos/pothos-sentry/index.d.ts +0 -2
- package/dist/generators/pothos/pothos-sentry/index.d.ts.map +0 -1
- package/dist/generators/pothos/pothos-sentry/index.js +0 -2
- package/dist/generators/pothos/pothos-sentry/index.js.map +0 -1
- package/dist/generators/pothos/pothos-sentry/pothos-sentry.generator.d.ts +0 -25
- package/dist/generators/pothos/pothos-sentry/pothos-sentry.generator.d.ts.map +0 -1
- package/dist/generators/pothos/pothos-sentry/pothos-sentry.generator.js +0 -65
- package/dist/generators/pothos/pothos-sentry/pothos-sentry.generator.js.map +0 -1
- package/dist/generators/pothos/pothos-sentry/templates/src/plugins/graphql/use-sentry.ts +0 -66
- package/dist/generators/stripe/fastify-stripe/fastify-stripe.generator.d.ts +0 -61
- package/dist/generators/stripe/fastify-stripe/fastify-stripe.generator.d.ts.map +0 -1
- package/dist/generators/stripe/fastify-stripe/fastify-stripe.generator.js +0 -60
- package/dist/generators/stripe/fastify-stripe/fastify-stripe.generator.js.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/index.d.ts +0 -90
- package/dist/generators/stripe/fastify-stripe/generated/index.d.ts.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/index.js +0 -11
- package/dist/generators/stripe/fastify-stripe/generated/index.js.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/template-paths.d.ts +0 -15
- package/dist/generators/stripe/fastify-stripe/generated/template-paths.d.ts.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/template-paths.js +0 -25
- package/dist/generators/stripe/fastify-stripe/generated/template-paths.js.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/template-renderers.d.ts +0 -38
- package/dist/generators/stripe/fastify-stripe/generated/template-renderers.d.ts.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/template-renderers.js +0 -56
- package/dist/generators/stripe/fastify-stripe/generated/template-renderers.js.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.d.ts +0 -30
- package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.d.ts.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.js +0 -32
- package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.js.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/typed-templates.d.ts +0 -79
- package/dist/generators/stripe/fastify-stripe/generated/typed-templates.d.ts.map +0 -1
- package/dist/generators/stripe/fastify-stripe/generated/typed-templates.js +0 -63
- package/dist/generators/stripe/fastify-stripe/generated/typed-templates.js.map +0 -1
- package/dist/generators/stripe/fastify-stripe/index.d.ts +0 -4
- package/dist/generators/stripe/fastify-stripe/index.d.ts.map +0 -1
- package/dist/generators/stripe/fastify-stripe/index.js +0 -3
- package/dist/generators/stripe/fastify-stripe/index.js.map +0 -1
- package/dist/generators/stripe/fastify-stripe/templates/src/plugins/stripe-webhook.int.test.ts +0 -69
- package/dist/generators/stripe/fastify-stripe/templates/src/plugins/stripe-webhook.ts +0 -48
- package/dist/generators/stripe/fastify-stripe/templates/src/services/stripe-events.ts +0 -30
- package/dist/generators/stripe/fastify-stripe/templates/src/services/stripe.ts +0 -8
- package/dist/generators/stripe/index.d.ts +0 -2
- package/dist/generators/stripe/index.d.ts.map +0 -1
- package/dist/generators/stripe/index.js +0 -2
- package/dist/generators/stripe/index.js.map +0 -1
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { createTsTemplateFile } from '@baseplate-dev/core-generators';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { configServiceImportsProvider } from '#src/generators/core/config-service/generated/ts-import-providers.js';
|
|
4
|
-
import { errorHandlerServiceImportsProvider } from '#src/generators/core/error-handler-service/generated/ts-import-providers.js';
|
|
5
|
-
import { loggerServiceImportsProvider } from '#src/generators/core/logger-service/generated/ts-import-providers.js';
|
|
6
|
-
const pluginsWebhook = createTsTemplateFile({
|
|
7
|
-
fileOptions: { kind: 'singleton' },
|
|
8
|
-
group: 'plugins',
|
|
9
|
-
importMapProviders: {
|
|
10
|
-
configServiceImports: configServiceImportsProvider,
|
|
11
|
-
errorHandlerServiceImports: errorHandlerServiceImportsProvider,
|
|
12
|
-
},
|
|
13
|
-
name: 'plugins-webhook',
|
|
14
|
-
referencedGeneratorTemplates: { service: {}, serviceEvents: {} },
|
|
15
|
-
source: {
|
|
16
|
-
path: path.join(import.meta.dirname, '../templates/src/plugins/stripe-webhook.ts'),
|
|
17
|
-
},
|
|
18
|
-
variables: {},
|
|
19
|
-
});
|
|
20
|
-
const pluginsWebhookTest = createTsTemplateFile({
|
|
21
|
-
fileOptions: { kind: 'singleton' },
|
|
22
|
-
group: 'plugins',
|
|
23
|
-
importMapProviders: {},
|
|
24
|
-
name: 'plugins-webhook-test',
|
|
25
|
-
referencedGeneratorTemplates: {
|
|
26
|
-
pluginsWebhook: {},
|
|
27
|
-
service: {},
|
|
28
|
-
serviceEvents: {},
|
|
29
|
-
},
|
|
30
|
-
source: {
|
|
31
|
-
path: path.join(import.meta.dirname, '../templates/src/plugins/stripe-webhook.int.test.ts'),
|
|
32
|
-
},
|
|
33
|
-
variables: {},
|
|
34
|
-
});
|
|
35
|
-
export const pluginsGroup = { pluginsWebhook, pluginsWebhookTest };
|
|
36
|
-
const service = createTsTemplateFile({
|
|
37
|
-
fileOptions: { kind: 'singleton' },
|
|
38
|
-
group: 'services',
|
|
39
|
-
importMapProviders: { configServiceImports: configServiceImportsProvider },
|
|
40
|
-
name: 'service',
|
|
41
|
-
projectExports: { stripe: {} },
|
|
42
|
-
source: {
|
|
43
|
-
path: path.join(import.meta.dirname, '../templates/src/services/stripe.ts'),
|
|
44
|
-
},
|
|
45
|
-
variables: {},
|
|
46
|
-
});
|
|
47
|
-
const serviceEvents = createTsTemplateFile({
|
|
48
|
-
fileOptions: { kind: 'singleton' },
|
|
49
|
-
group: 'services',
|
|
50
|
-
importMapProviders: { loggerServiceImports: loggerServiceImportsProvider },
|
|
51
|
-
name: 'service-events',
|
|
52
|
-
projectExports: {
|
|
53
|
-
StripeEventHandler: { isTypeOnly: true },
|
|
54
|
-
stripeEventService: {},
|
|
55
|
-
},
|
|
56
|
-
source: {
|
|
57
|
-
path: path.join(import.meta.dirname, '../templates/src/services/stripe-events.ts'),
|
|
58
|
-
},
|
|
59
|
-
variables: {},
|
|
60
|
-
});
|
|
61
|
-
export const servicesGroup = { service, serviceEvents };
|
|
62
|
-
export const STRIPE_FASTIFY_STRIPE_TEMPLATES = { pluginsGroup, servicesGroup };
|
|
63
|
-
//# sourceMappingURL=typed-templates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typed-templates.js","sourceRoot":"","sources":["../../../../../src/generators/stripe/fastify-stripe/generated/typed-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sEAAsE,CAAC;AACpH,OAAO,EAAE,kCAAkC,EAAE,MAAM,6EAA6E,CAAC;AACjI,OAAO,EAAE,4BAA4B,EAAE,MAAM,sEAAsE,CAAC;AAEpH,MAAM,cAAc,GAAG,oBAAoB,CAAC;IAC1C,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAClC,KAAK,EAAE,SAAS;IAChB,kBAAkB,EAAE;QAClB,oBAAoB,EAAE,4BAA4B;QAClD,0BAA0B,EAAE,kCAAkC;KAC/D;IACD,IAAI,EAAE,iBAAiB;IACvB,4BAA4B,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;IAChE,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC,IAAI,CACb,MAAM,CAAC,IAAI,CAAC,OAAO,EACnB,4CAA4C,CAC7C;KACF;IACD,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;IAC9C,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAClC,KAAK,EAAE,SAAS;IAChB,kBAAkB,EAAE,EAAE;IACtB,IAAI,EAAE,sBAAsB;IAC5B,4BAA4B,EAAE;QAC5B,cAAc,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,EAAE;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC,IAAI,CACb,MAAM,CAAC,IAAI,CAAC,OAAO,EACnB,qDAAqD,CACtD;KACF;IACD,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AAEnE,MAAM,OAAO,GAAG,oBAAoB,CAAC;IACnC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAClC,KAAK,EAAE,UAAU;IACjB,kBAAkB,EAAE,EAAE,oBAAoB,EAAE,4BAA4B,EAAE;IAC1E,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9B,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,qCAAqC,CAAC;KAC5E;IACD,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,oBAAoB,CAAC;IACzC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAClC,KAAK,EAAE,UAAU;IACjB,kBAAkB,EAAE,EAAE,oBAAoB,EAAE,4BAA4B,EAAE;IAC1E,IAAI,EAAE,gBAAgB;IACtB,cAAc,EAAE;QACd,kBAAkB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;QACxC,kBAAkB,EAAE,EAAE;KACvB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC,IAAI,CACb,MAAM,CAAC,IAAI,CAAC,OAAO,EACnB,4CAA4C,CAC7C;KACF;IACD,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAExD,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generators/stripe/fastify-stripe/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,YAAY,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/generators/stripe/fastify-stripe/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC"}
|
package/dist/generators/stripe/fastify-stripe/templates/src/plugins/stripe-webhook.int.test.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
|
-
import type { Stripe } from 'stripe';
|
|
4
|
-
|
|
5
|
-
import { stripeWebhookPlugin } from '$pluginsWebhook';
|
|
6
|
-
import { stripe } from '$service';
|
|
7
|
-
import { stripeEventService } from '$serviceEvents';
|
|
8
|
-
import Fastify from 'fastify';
|
|
9
|
-
import rawBodyPlugin from 'fastify-raw-body';
|
|
10
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
11
|
-
|
|
12
|
-
vi.mock('@src/services/stripe');
|
|
13
|
-
|
|
14
|
-
const mockedStripe = vi.mocked(stripe, true);
|
|
15
|
-
|
|
16
|
-
function createFakeWebhookEvent(data?: Partial<Stripe.Event>): Stripe.Event {
|
|
17
|
-
return {
|
|
18
|
-
id: 'payment-id',
|
|
19
|
-
object: 'event',
|
|
20
|
-
api_version: '2020-08-27',
|
|
21
|
-
created: 1_642_600_000,
|
|
22
|
-
livemode: false,
|
|
23
|
-
pending_webhooks: 0,
|
|
24
|
-
type: 'payment_intent.succeeded',
|
|
25
|
-
request: null,
|
|
26
|
-
data: {
|
|
27
|
-
object: {
|
|
28
|
-
amount: 100,
|
|
29
|
-
} as Stripe.PaymentIntent,
|
|
30
|
-
},
|
|
31
|
-
...data,
|
|
32
|
-
} as Stripe.Event;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
describe('stripeWebhookPlugin', () => {
|
|
36
|
-
it('handles webhook and calls stripe event service', async () => {
|
|
37
|
-
mockedStripe.webhooks.constructEventAsync.mockResolvedValue(
|
|
38
|
-
createFakeWebhookEvent(),
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
const fastify = Fastify();
|
|
42
|
-
await fastify.register(rawBodyPlugin, { global: false });
|
|
43
|
-
await fastify.register(stripeWebhookPlugin);
|
|
44
|
-
|
|
45
|
-
const eventHandler = vi.fn();
|
|
46
|
-
stripeEventService.registerHandler(
|
|
47
|
-
'payment_intent.succeeded',
|
|
48
|
-
eventHandler,
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
const event = createFakeWebhookEvent();
|
|
52
|
-
const response = await fastify.inject({
|
|
53
|
-
method: 'POST',
|
|
54
|
-
url: '/webhooks/stripe',
|
|
55
|
-
payload: event,
|
|
56
|
-
headers: {
|
|
57
|
-
'stripe-signature': 'signature',
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
expect(response.statusCode).toBe(200);
|
|
62
|
-
|
|
63
|
-
expect(mockedStripe.webhooks.constructEventAsync.mock.calls[0][1]).toBe(
|
|
64
|
-
'signature',
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
expect(eventHandler).toHaveBeenCalledWith(event);
|
|
68
|
-
});
|
|
69
|
-
});
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
|
-
import type { Stripe } from 'stripe';
|
|
4
|
-
|
|
5
|
-
import { stripe } from '$service';
|
|
6
|
-
import { stripeEventService } from '$serviceEvents';
|
|
7
|
-
import { config } from '%configServiceImports';
|
|
8
|
-
import { BadRequestError, logError } from '%errorHandlerServiceImports';
|
|
9
|
-
import fp from 'fastify-plugin';
|
|
10
|
-
|
|
11
|
-
async function getStripeEvent(
|
|
12
|
-
rawBody: string | Buffer = '',
|
|
13
|
-
signature: string | string[] = '',
|
|
14
|
-
): Promise<Stripe.Event> {
|
|
15
|
-
try {
|
|
16
|
-
return await stripe.webhooks.constructEventAsync(
|
|
17
|
-
rawBody,
|
|
18
|
-
signature,
|
|
19
|
-
config.STRIPE_ENDPOINT_SECRET,
|
|
20
|
-
);
|
|
21
|
-
} catch (err) {
|
|
22
|
-
logError(err);
|
|
23
|
-
throw new BadRequestError('Stripe webhook signature verification failed');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export const stripeWebhookPlugin = fp(
|
|
28
|
-
(fastify, opts, done) => {
|
|
29
|
-
fastify.post('/webhooks/stripe', {
|
|
30
|
-
config: { rawBody: true },
|
|
31
|
-
handler: async (req, reply) => {
|
|
32
|
-
const signature = req.headers['stripe-signature'] ?? '';
|
|
33
|
-
|
|
34
|
-
const event = await getStripeEvent(req.rawBody, signature);
|
|
35
|
-
|
|
36
|
-
await stripeEventService.handleStripeEvent(event);
|
|
37
|
-
|
|
38
|
-
await reply.send({ success: true });
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
done();
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
encapsulate: true,
|
|
46
|
-
name: 'stripe-webhook',
|
|
47
|
-
},
|
|
48
|
-
);
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
|
-
import type Stripe from 'stripe';
|
|
4
|
-
|
|
5
|
-
import { logger } from '%loggerServiceImports';
|
|
6
|
-
|
|
7
|
-
export type StripeEventHandler = (event: Stripe.Event) => Promise<void>;
|
|
8
|
-
|
|
9
|
-
const eventHandlers: Partial<Record<string, StripeEventHandler>> = {};
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Service that allows registering handlers from Stripe events.
|
|
13
|
-
*/
|
|
14
|
-
export const stripeEventService = {
|
|
15
|
-
registerHandler(type: string, handler: StripeEventHandler): void {
|
|
16
|
-
if (eventHandlers[type]) {
|
|
17
|
-
throw new Error(`Handler for ${type} already registered`);
|
|
18
|
-
}
|
|
19
|
-
eventHandlers[type] = handler;
|
|
20
|
-
},
|
|
21
|
-
async handleStripeEvent(event: Stripe.Event): Promise<void> {
|
|
22
|
-
const handler = eventHandlers[event.type];
|
|
23
|
-
|
|
24
|
-
if (!handler) {
|
|
25
|
-
logger.info(`No handler registered for event type ${event.type}`);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
await handler(event);
|
|
29
|
-
},
|
|
30
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/stripe/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/stripe/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|