@payloadcms/plugin-stripe 0.0.3 → 0.0.5

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 (50) hide show
  1. package/README.md +117 -15
  2. package/dist/extendWebpackConfig.d.ts +3 -0
  3. package/dist/extendWebpackConfig.js +31 -0
  4. package/dist/extendWebpackConfig.js.map +1 -0
  5. package/dist/hooks/createNewInStripe.d.ts +7 -0
  6. package/dist/hooks/createNewInStripe.js +125 -0
  7. package/dist/hooks/createNewInStripe.js.map +1 -0
  8. package/dist/hooks/createNewStripeCustomer.d.ts +2 -0
  9. package/dist/hooks/createNewStripeCustomer.js +104 -0
  10. package/dist/hooks/createNewStripeCustomer.js.map +1 -0
  11. package/dist/hooks/deleteFromStripe.d.ts +7 -0
  12. package/dist/hooks/deleteFromStripe.js +81 -0
  13. package/dist/hooks/deleteFromStripe.js.map +1 -0
  14. package/dist/hooks/deleteStripeCustomer.d.ts +2 -0
  15. package/dist/hooks/deleteStripeCustomer.js +74 -0
  16. package/dist/hooks/deleteStripeCustomer.js.map +1 -0
  17. package/dist/hooks/syncExistingStripeCustomer.d.ts +2 -0
  18. package/dist/hooks/syncExistingStripeCustomer.js +80 -0
  19. package/dist/hooks/syncExistingStripeCustomer.js.map +1 -0
  20. package/dist/hooks/syncExistingWithStripe.d.ts +7 -0
  21. package/dist/hooks/syncExistingWithStripe.js +96 -0
  22. package/dist/hooks/syncExistingWithStripe.js.map +1 -0
  23. package/dist/index.d.ts +2 -3
  24. package/dist/index.js +131 -20
  25. package/dist/index.js.map +1 -1
  26. package/dist/mocks/serverModule.d.ts +2 -0
  27. package/dist/mocks/serverModule.js +6 -0
  28. package/dist/mocks/serverModule.js.map +1 -0
  29. package/dist/routes/rest.d.ts +6 -1
  30. package/dist/routes/rest.js +3 -2
  31. package/dist/routes/rest.js.map +1 -1
  32. package/dist/routes/webhooks.d.ts +8 -1
  33. package/dist/routes/webhooks.js +99 -22
  34. package/dist/routes/webhooks.js.map +1 -1
  35. package/dist/types.d.ts +29 -5
  36. package/dist/utilities/stripeProxy.js +7 -1
  37. package/dist/utilities/stripeProxy.js.map +1 -1
  38. package/dist/webhooks/handleCreatedOrUpdated.d.ts +7 -0
  39. package/dist/webhooks/handleCreatedOrUpdated.js +194 -0
  40. package/dist/webhooks/handleCreatedOrUpdated.js.map +1 -0
  41. package/dist/webhooks/handleDeleted.d.ts +7 -0
  42. package/dist/webhooks/handleDeleted.js +106 -0
  43. package/dist/webhooks/handleDeleted.js.map +1 -0
  44. package/dist/webhooks/handleWebhooks.d.ts +2 -0
  45. package/dist/webhooks/handleWebhooks.js +236 -0
  46. package/dist/webhooks/handleWebhooks.js.map +1 -0
  47. package/dist/webhooks/index.d.ts +2 -0
  48. package/dist/webhooks/index.js +94 -0
  49. package/dist/webhooks/index.js.map +1 -0
  50. package/package.json +3 -3
@@ -1,33 +1,110 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
40
  };
5
41
  Object.defineProperty(exports, "__esModule", { value: true });
6
42
  exports.stripeWebhooks = void 0;
7
43
  var stripe_1 = __importDefault(require("stripe"));
8
- var stripeWebhooks = function (req, res, next, stripeConfig) {
9
- var stripeSecretKey = stripeConfig.stripeSecretKey, stripeWebhookEndpointSecret = stripeConfig.stripeWebhookEndpointSecret, webhooks = stripeConfig.webhooks;
10
- if (webhooks && stripeWebhookEndpointSecret) {
11
- var stripe = new stripe_1.default(stripeSecretKey, { apiVersion: '2022-08-01' });
12
- var stripeSignature = req.headers['stripe-signature'];
13
- if (stripeSignature) {
14
- var event_1;
15
- try {
16
- event_1 = stripe.webhooks.constructEvent(req.body, stripeSignature, stripeWebhookEndpointSecret);
17
- }
18
- catch (err) {
19
- res.status(400).send("Webhook Error: ".concat(err.message));
20
- }
21
- if (event_1) {
22
- var webhookEventHandler = webhooks[event_1.type];
23
- if (typeof webhookEventHandler === 'function') {
24
- webhookEventHandler(event_1, stripe, stripeConfig);
44
+ var webhooks_1 = require("../webhooks");
45
+ var stripeWebhooks = function (args) { return __awaiter(void 0, void 0, void 0, function () {
46
+ var req, res, next, config, stripeConfig, stripeSecretKey, stripeWebhooksEndpointSecret, webhooks, stripe, stripeSignature, event_1, webhookEventHandler;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ req = args.req, res = args.res, next = args.next, config = args.config, stripeConfig = args.stripeConfig;
51
+ stripeSecretKey = stripeConfig.stripeSecretKey, stripeWebhooksEndpointSecret = stripeConfig.stripeWebhooksEndpointSecret, webhooks = stripeConfig.webhooks;
52
+ if (!stripeWebhooksEndpointSecret) return [3 /*break*/, 2];
53
+ stripe = new stripe_1.default(stripeSecretKey, {
54
+ apiVersion: '2022-08-01',
55
+ appInfo: {
56
+ name: 'Stripe Payload Plugin',
57
+ url: 'https://payloadcms.com',
58
+ }
59
+ });
60
+ stripeSignature = req.headers['stripe-signature'];
61
+ if (!stripeSignature) return [3 /*break*/, 2];
62
+ try {
63
+ event_1 = stripe.webhooks.constructEvent(req.body, stripeSignature, stripeWebhooksEndpointSecret);
25
64
  }
26
- ;
27
- }
65
+ catch (err) {
66
+ req.payload.logger.error((err === null || err === void 0 ? void 0 : err.message) || 'Error constructing Stripe event');
67
+ res.status(400);
68
+ }
69
+ if (!event_1) return [3 /*break*/, 2];
70
+ return [4 /*yield*/, (0, webhooks_1.handleWebhooks)({
71
+ payload: req.payload,
72
+ event: event_1,
73
+ stripe: stripe,
74
+ config: config,
75
+ stripeConfig: stripeConfig
76
+ })];
77
+ case 1:
78
+ _a.sent();
79
+ // Fire external webhook handlers if they exist
80
+ if (typeof webhooks === 'function') {
81
+ webhooks({
82
+ payload: req.payload,
83
+ event: event_1,
84
+ stripe: stripe,
85
+ config: config,
86
+ stripeConfig: stripeConfig
87
+ });
88
+ }
89
+ if (typeof webhooks === 'object') {
90
+ webhookEventHandler = webhooks[event_1.type];
91
+ if (typeof webhookEventHandler === 'function') {
92
+ webhookEventHandler({
93
+ payload: req.payload,
94
+ event: event_1,
95
+ stripe: stripe,
96
+ config: config,
97
+ stripeConfig: stripeConfig
98
+ });
99
+ }
100
+ ;
101
+ }
102
+ _a.label = 2;
103
+ case 2:
104
+ res.json({ received: true });
105
+ return [2 /*return*/];
28
106
  }
29
- }
30
- res.json({ received: true });
31
- };
107
+ });
108
+ }); };
32
109
  exports.stripeWebhooks = stripeWebhooks;
33
110
  //# sourceMappingURL=webhooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/routes/webhooks.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4B;AAKrB,IAAM,cAAc,GAAG,UAC5B,GAAmB,EACnB,GAAa,EACb,IAAS,EACT,YAA0B;IAGxB,IAAA,eAAe,GAGb,YAAY,gBAHC,EACf,2BAA2B,GAEzB,YAAY,4BAFa,EAC3B,QAAQ,GACN,YAAY,SADN,CACO;IAEjB,IAAI,QAAQ,IAAI,2BAA2B,EAAE;QAC3C,IAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;QAEzE,IAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAExD,IAAI,eAAe,EAAE;YACnB,IAAI,OAA+B,CAAC;YAEpC,IAAI;gBACF,OAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;aAChG;YAAC,OAAO,GAAQ,EAAE;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAkB,GAAG,CAAC,OAAO,CAAE,CAAC,CAAC;aACvD;YAED,IAAI,OAAK,EAAE;gBACT,IAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAK,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;oBAC7C,mBAAmB,CAAC,OAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;iBACjD;gBAAA,CAAC;aACH;SACF;KACF;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AApCW,QAAA,cAAc,kBAoCzB"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/routes/webhooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAI5B,wCAA6C;AAGtC,IAAM,cAAc,GAAG,UAAO,IAMpC;;;;;gBAEG,GAAG,GAKD,IAAI,IALH,EACH,GAAG,GAID,IAAI,IAJH,EACH,IAAI,GAGF,IAAI,KAHF,EACJ,MAAM,GAEJ,IAAI,OAFA,EACN,YAAY,GACV,IAAI,aADM,CACL;gBAGP,eAAe,GAGb,YAAY,gBAHC,EACf,4BAA4B,GAE1B,YAAY,6BAFc,EAC5B,QAAQ,GACN,YAAY,SADN,CACM;qBAEZ,4BAA4B,EAA5B,wBAA4B;gBACxB,MAAM,GAAG,IAAI,gBAAM,CAAC,eAAe,EAAE;oBACzC,UAAU,EAAE,YAAY;oBACxB,OAAO,EAAE;wBACP,IAAI,EAAE,uBAAuB;wBAC7B,GAAG,EAAE,wBAAwB;qBAC9B;iBACF,CAAC,CAAC;gBAEG,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;qBAEpD,eAAe,EAAf,wBAAe;gBAGjB,IAAI;oBACF,OAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;iBACjG;gBAAC,OAAO,GAAQ,EAAE;oBACjB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,KAAI,iCAAiC,CAAC,CAAC;oBAC5E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBACjB;qBAEG,OAAK,EAAL,wBAAK;gBACP,qBAAM,IAAA,yBAAc,EAAC;wBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,KAAK,SAAA;wBACL,MAAM,QAAA;wBACN,MAAM,QAAA;wBACN,YAAY,cAAA;qBACb,CAAC,EAAA;;gBANF,SAME,CAAC;gBAEH,+CAA+C;gBAC/C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;oBAClC,QAAQ,CAAC;wBACP,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,KAAK,SAAA;wBACL,MAAM,QAAA;wBACN,MAAM,QAAA;wBACN,YAAY,cAAA;qBACb,CAAC,CAAC;iBACJ;gBAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBAC1B,mBAAmB,GAAG,QAAQ,CAAC,OAAK,CAAC,IAAI,CAAC,CAAC;oBACjD,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;wBAC7C,mBAAmB,CAAC;4BAClB,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,KAAK,SAAA;4BACL,MAAM,QAAA;4BACN,MAAM,QAAA;4BACN,YAAY,cAAA;yBACb,CAAC,CAAC;qBACJ;oBAAA,CAAC;iBACH;;;gBAKP,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;;;KAC9B,CAAC;AA/EW,QAAA,cAAc,kBA+EzB"}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,35 @@
1
+ import { Payload } from "payload";
2
+ import { Config as PayloadConfig } from "payload/config";
1
3
  import Stripe from "stripe";
2
- export declare type StripeWebhookHandler = (event: any, stripe: Stripe, stripeConfig: StripeConfig) => void;
4
+ export declare type StripeWebhookHandler = (args: {
5
+ payload: Payload;
6
+ event: any;
7
+ stripe: Stripe;
8
+ config: PayloadConfig;
9
+ stripeConfig?: StripeConfig;
10
+ }) => void;
11
+ export declare type StripeWebhookHandlers = {
12
+ [webhookName: string]: StripeWebhookHandler;
13
+ };
14
+ export declare type FieldSyncConfig = {
15
+ field: string;
16
+ property: string;
17
+ };
18
+ export declare type SyncConfig = {
19
+ collection: string;
20
+ resource: 'customers' | 'products';
21
+ resourceSingular: 'customer' | 'product';
22
+ fields: FieldSyncConfig[];
23
+ };
3
24
  export declare type StripeConfig = {
4
25
  stripeSecretKey: string;
5
- stripeWebhookEndpointSecret?: string;
6
- webhooks?: {
7
- [webhookName: string]: StripeWebhookHandler;
8
- };
26
+ stripeWebhooksEndpointSecret?: string;
27
+ webhooks?: StripeWebhookHandler | StripeWebhookHandlers;
28
+ sync?: SyncConfig[];
29
+ logs?: boolean;
30
+ };
31
+ export declare type SanitizedStripeConfig = StripeConfig & {
32
+ sync: SyncConfig[];
9
33
  };
10
34
  export declare type StripeProxy = (args: {
11
35
  stripeSecretKey: string;
@@ -49,7 +49,13 @@ var stripeProxy = function (_a) {
49
49
  return __generator(this, function (_b) {
50
50
  switch (_b.label) {
51
51
  case 0:
52
- stripe = new stripe_1.default(stripeSecretKey, { apiVersion: '2022-08-01' });
52
+ stripe = new stripe_1.default(stripeSecretKey, {
53
+ apiVersion: '2022-08-01',
54
+ appInfo: {
55
+ name: 'Stripe Payload Plugin',
56
+ url: 'https://payloadcms.com',
57
+ }
58
+ });
53
59
  if (!(typeof stripeMethod === 'string')) return [3 /*break*/, 7];
54
60
  topLevelMethod = stripeMethod.split('.')[0];
55
61
  contextToBind = stripe[topLevelMethod];
@@ -1 +1 @@
1
- {"version":3,"file":"stripeProxy.js","sourceRoot":"","sources":["../../src/utilities/stripeProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAmC;AACnC,kDAA4B;AAGrB,IAAM,WAAW,GAAgB,UAAO,EAI9C;QAHC,eAAe,qBAAA,EACf,YAAY,kBAAA,EACZ,UAAU,gBAAA;;;;;;oBAEJ,MAAM,GAAG,IAAI,gBAAM,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;yBAErE,CAAA,OAAO,YAAY,KAAK,QAAQ,CAAA,EAAhC,wBAAgC;oBAC5B,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAiB,CAAC;oBAC5D,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;oBAGvC,WAAW,GAAG,IAAA,oBAAS,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;yBAEpE,CAAA,OAAO,WAAW,KAAK,UAAU,CAAA,EAAjC,wBAAiC;;;;oBAEV,qBAAM,WAAW,eAAI,UAAU,GAAC;;oBAAjD,cAAc,GAAG,SAAgC;oBACvD,sBAAO;4BACL,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,cAAc;yBACrB,EAAC;;;oBAEF,sBAAO;4BACL,MAAM,EAAE,GAAG;4BACX,OAAO,EAAE,2CAAoC,OAAK,CAAE;yBACrD,EAAC;;wBAGJ,MAAM,KAAK,CAAC,yCAAkC,YAAY,uCAAoC,CAAC,CAAA;;wBAGjG,MAAM,KAAK,CAAC,2CAA2C,CAAC,CAAA;;;;;CAE3D,CAAA;AAjCY,QAAA,WAAW,eAiCvB"}
1
+ {"version":3,"file":"stripeProxy.js","sourceRoot":"","sources":["../../src/utilities/stripeProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAmC;AACnC,kDAA4B;AAGrB,IAAM,WAAW,GAAgB,UAAO,EAI9C;QAHC,eAAe,qBAAA,EACf,YAAY,kBAAA,EACZ,UAAU,gBAAA;;;;;;oBAEJ,MAAM,GAAG,IAAI,gBAAM,CAAC,eAAe,EAAE;wBACzC,UAAU,EAAE,YAAY;wBACxB,OAAO,EAAE;4BACP,IAAI,EAAE,uBAAuB;4BAC7B,GAAG,EAAE,wBAAwB;yBAC9B;qBACF,CAAC,CAAC;yBAEC,CAAA,OAAO,YAAY,KAAK,QAAQ,CAAA,EAAhC,wBAAgC;oBAC5B,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAiB,CAAC;oBAC5D,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;oBAGvC,WAAW,GAAG,IAAA,oBAAS,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;yBAEpE,CAAA,OAAO,WAAW,KAAK,UAAU,CAAA,EAAjC,wBAAiC;;;;oBAEV,qBAAM,WAAW,eAAI,UAAU,GAAC;;oBAAjD,cAAc,GAAG,SAAgC;oBACvD,sBAAO;4BACL,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,cAAc;yBACrB,EAAC;;;oBAEF,sBAAO;4BACL,MAAM,EAAE,GAAG;4BACX,OAAO,EAAE,2CAAoC,OAAK,CAAE;yBACrD,EAAC;;wBAGJ,MAAM,KAAK,CAAC,yCAAkC,YAAY,uCAAoC,CAAC,CAAA;;wBAGjG,MAAM,KAAK,CAAC,2CAA2C,CAAC,CAAA;;;;;CAE3D,CAAA;AAvCY,QAAA,WAAW,eAuCvB"}
@@ -0,0 +1,7 @@
1
+ import { SanitizedStripeConfig, StripeWebhookHandler } from '../types';
2
+ declare type HandleCreatedOrUpdated = (args: Parameters<StripeWebhookHandler>[0] & {
3
+ syncConfig: SanitizedStripeConfig['sync'][0];
4
+ resourceType: string;
5
+ }) => void;
6
+ export declare const handleCreatedOrUpdated: HandleCreatedOrUpdated;
7
+ export {};
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.handleCreatedOrUpdated = void 0;
51
+ var handleCreatedOrUpdated = function (args) { return __awaiter(void 0, void 0, void 0, function () {
52
+ var payload, event, resourceType, stripeConfig, payloadConfig, syncConfig, logs, stripeDoc, stripeID, eventObject, isNestedChange, collectionSlug_1, isAuthCollection, payloadQuery, foundDoc, syncedData, authDoc, authQuery, err_1, error_1, error_2, error_3;
53
+ var _a, _b, _c;
54
+ return __generator(this, function (_d) {
55
+ switch (_d.label) {
56
+ case 0:
57
+ payload = args.payload, event = args.event, resourceType = args.resourceType, stripeConfig = args.stripeConfig, payloadConfig = args.config, syncConfig = args.syncConfig;
58
+ logs = (stripeConfig || {}).logs;
59
+ stripeDoc = ((_a = event === null || event === void 0 ? void 0 : event.data) === null || _a === void 0 ? void 0 : _a.object) || {};
60
+ stripeID = stripeDoc.id, eventObject = stripeDoc.object;
61
+ isNestedChange = eventObject !== resourceType;
62
+ // let stripeID = docID;
63
+ // if (isNestedChange) {
64
+ // const parentResource = stripeDoc[resourceType];
65
+ // stripeID = parentResource;
66
+ // }
67
+ if (isNestedChange) {
68
+ if (logs)
69
+ payload.logger.info("- This change occurred on a nested field of ".concat(resourceType, ". Nested fields are not yet supported."));
70
+ }
71
+ if (!!isNestedChange) return [3 /*break*/, 20];
72
+ if (logs)
73
+ payload.logger.info("- A new document was created or updated in Stripe, now syncing to Payload...");
74
+ collectionSlug_1 = syncConfig === null || syncConfig === void 0 ? void 0 : syncConfig.collection;
75
+ isAuthCollection = Boolean((_c = (_b = payloadConfig === null || payloadConfig === void 0 ? void 0 : payloadConfig.collections) === null || _b === void 0 ? void 0 : _b.find(function (collection) { return collection.slug === collectionSlug_1; })) === null || _c === void 0 ? void 0 : _c.auth);
76
+ return [4 /*yield*/, payload.find({
77
+ collection: collectionSlug_1,
78
+ where: {
79
+ stripeID: {
80
+ equals: stripeID,
81
+ },
82
+ },
83
+ })];
84
+ case 1:
85
+ payloadQuery = _d.sent();
86
+ foundDoc = payloadQuery.docs[0];
87
+ syncedData = syncConfig.fields.reduce(function (acc, field) {
88
+ var fieldName = field.field, property = field.property;
89
+ acc[fieldName] = stripeDoc[property];
90
+ return acc;
91
+ }, {});
92
+ syncedData = __assign(__assign({}, syncedData), { stripeID: stripeID, skipSync: true });
93
+ if (!!foundDoc) return [3 /*break*/, 16];
94
+ if (logs)
95
+ payload.logger.info("- No existing '".concat(collectionSlug_1, "' document found with Stripe ID: '").concat(stripeID, "', creating new..."));
96
+ authDoc = null;
97
+ if (!isAuthCollection) return [3 /*break*/, 11];
98
+ _d.label = 2;
99
+ case 2:
100
+ _d.trys.push([2, 10, , 11]);
101
+ if (!(stripeDoc === null || stripeDoc === void 0 ? void 0 : stripeDoc.email)) return [3 /*break*/, 8];
102
+ return [4 /*yield*/, payload.find({
103
+ collection: collectionSlug_1,
104
+ where: {
105
+ email: {
106
+ equals: stripeDoc.email,
107
+ },
108
+ },
109
+ })];
110
+ case 3:
111
+ authQuery = _d.sent();
112
+ authDoc = authQuery.docs[0];
113
+ if (!authDoc) return [3 /*break*/, 7];
114
+ if (logs)
115
+ payload.logger.info("- Account already exists with e-mail: ".concat(stripeDoc.email, ", updating now..."));
116
+ _d.label = 4;
117
+ case 4:
118
+ _d.trys.push([4, 6, , 7]);
119
+ return [4 /*yield*/, payload.update({
120
+ collection: collectionSlug_1,
121
+ id: authDoc.id,
122
+ data: syncedData,
123
+ })];
124
+ case 5:
125
+ _d.sent();
126
+ if (logs)
127
+ payload.logger.info("\u2705 Successfully updated '".concat(collectionSlug_1, "' document in Payload with ID: '").concat(authDoc.id, ".'"));
128
+ return [3 /*break*/, 7];
129
+ case 6:
130
+ err_1 = _d.sent();
131
+ if (logs)
132
+ payload.logger.error("- Error updating existing '".concat(collectionSlug_1, "' document: ").concat(err_1.message));
133
+ return [3 /*break*/, 7];
134
+ case 7: return [3 /*break*/, 9];
135
+ case 8:
136
+ if (logs)
137
+ payload.logger.error("No email was provided from Stripe, cannot create new '".concat(collectionSlug_1, "' document."));
138
+ _d.label = 9;
139
+ case 9: return [3 /*break*/, 11];
140
+ case 10:
141
+ error_1 = _d.sent();
142
+ if (logs)
143
+ payload.logger.error("Error looking up '".concat(collectionSlug_1, "' document in Payload: ").concat(error_1 === null || error_1 === void 0 ? void 0 : error_1.message));
144
+ return [3 /*break*/, 11];
145
+ case 11:
146
+ if (!(!isAuthCollection || (isAuthCollection && !authDoc))) return [3 /*break*/, 15];
147
+ _d.label = 12;
148
+ case 12:
149
+ _d.trys.push([12, 14, , 15]);
150
+ if (logs)
151
+ payload.logger.info("- Creating new '".concat(collectionSlug_1, "' document in Payload with Stripe ID: '").concat(stripeID, "'."));
152
+ return [4 /*yield*/, payload.create({
153
+ collection: collectionSlug_1,
154
+ data: __assign(__assign({}, syncedData), { password: 'password', passwordConfirm: 'password' }),
155
+ disableVerificationEmail: isAuthCollection ? true : undefined,
156
+ })];
157
+ case 13:
158
+ _d.sent();
159
+ if (logs)
160
+ payload.logger.info("\u2705 Successfully created new '".concat(collectionSlug_1, "' document in Payload with Stripe ID: '").concat(stripeID, "'."));
161
+ return [3 /*break*/, 15];
162
+ case 14:
163
+ error_2 = _d.sent();
164
+ if (logs)
165
+ payload.logger.error("Error creating new document in Payload: ".concat(error_2 === null || error_2 === void 0 ? void 0 : error_2.message));
166
+ return [3 /*break*/, 15];
167
+ case 15: return [3 /*break*/, 20];
168
+ case 16:
169
+ if (logs)
170
+ payload.logger.info("- Existing '".concat(collectionSlug_1, "' document found in Payload with Stripe ID: '").concat(stripeID, "', updating now..."));
171
+ _d.label = 17;
172
+ case 17:
173
+ _d.trys.push([17, 19, , 20]);
174
+ return [4 /*yield*/, payload.update({
175
+ collection: collectionSlug_1,
176
+ id: foundDoc.id,
177
+ data: syncedData,
178
+ })];
179
+ case 18:
180
+ _d.sent();
181
+ if (logs)
182
+ payload.logger.info("\u2705 Successfully updated '".concat(collectionSlug_1, "' document in Payload from Stripe ID: '").concat(stripeID, "'."));
183
+ return [3 /*break*/, 20];
184
+ case 19:
185
+ error_3 = _d.sent();
186
+ if (logs)
187
+ payload.logger.error("Error updating '".concat(collectionSlug_1, "' document in Payload: ").concat(error_3 === null || error_3 === void 0 ? void 0 : error_3.message));
188
+ return [3 /*break*/, 20];
189
+ case 20: return [2 /*return*/];
190
+ }
191
+ });
192
+ }); };
193
+ exports.handleCreatedOrUpdated = handleCreatedOrUpdated;
194
+ //# sourceMappingURL=handleCreatedOrUpdated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleCreatedOrUpdated.js","sourceRoot":"","sources":["../../src/webhooks/handleCreatedOrUpdated.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { SanitizedStripeConfig, StripeWebhookHandler } from '../types';
2
+ declare type HandleDeleted = (args: Parameters<StripeWebhookHandler>[0] & {
3
+ resourceType: string;
4
+ syncConfig: SanitizedStripeConfig['sync'][0];
5
+ }) => void;
6
+ export declare const handleDeleted: HandleDeleted;
7
+ export {};
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.handleDeleted = void 0;
40
+ var handleDeleted = function (args) { return __awaiter(void 0, void 0, void 0, function () {
41
+ var payload, event, stripeConfig, resourceType, syncConfig, logs, collectionSlug, _a, stripeID, eventObject // use this to determine if this is a nested field
42
+ , isNestedDelete, payloadQuery, foundDoc, error_1;
43
+ var _b;
44
+ return __generator(this, function (_c) {
45
+ switch (_c.label) {
46
+ case 0:
47
+ payload = args.payload, event = args.event, stripeConfig = args.stripeConfig, resourceType = args.resourceType, syncConfig = args.syncConfig;
48
+ logs = (stripeConfig || {}).logs;
49
+ collectionSlug = syncConfig === null || syncConfig === void 0 ? void 0 : syncConfig.collection;
50
+ _a = ((_b = event === null || event === void 0 ? void 0 : event.data) === null || _b === void 0 ? void 0 : _b.object) || {}, stripeID = _a.id, eventObject = _a.object;
51
+ isNestedDelete = eventObject !== resourceType;
52
+ if (isNestedDelete) {
53
+ if (logs)
54
+ payload.logger.info("- This deletion occurred on a nested field of ".concat(resourceType, ". Nested fields are not yet supported."));
55
+ }
56
+ if (!!isNestedDelete) return [3 /*break*/, 4];
57
+ if (logs)
58
+ payload.logger.info("- A '".concat(resourceType, "' resource was deleted in Stripe, now deleting '").concat(collectionSlug, "' document in Payload with Stripe ID: '").concat(stripeID, "'..."));
59
+ _c.label = 1;
60
+ case 1:
61
+ _c.trys.push([1, 3, , 4]);
62
+ return [4 /*yield*/, payload.find({
63
+ collection: collectionSlug,
64
+ where: {
65
+ stripeID: {
66
+ equals: stripeID,
67
+ },
68
+ },
69
+ })];
70
+ case 2:
71
+ payloadQuery = _c.sent();
72
+ foundDoc = payloadQuery.docs[0];
73
+ if (!foundDoc) {
74
+ if (logs)
75
+ payload.logger.info("- Nothing to delete, no existing document found with Stripe ID: '".concat(stripeID, "'."));
76
+ }
77
+ if (foundDoc) {
78
+ if (logs)
79
+ payload.logger.info("- Deleting Payload document with ID: '".concat(foundDoc.id, "'..."));
80
+ try {
81
+ payload.delete({
82
+ collection: collectionSlug,
83
+ id: foundDoc.id,
84
+ });
85
+ // NOTE: the `afterDelete` hook will trigger, which will attempt to delete the document from Stripe and safely error out
86
+ // There is no known way of preventing this from happening. In other hooks we use the `skipSync` field, but here the document is already deleted.
87
+ if (logs)
88
+ payload.logger.info("- \u2705 Successfully deleted Payload document with ID: '".concat(foundDoc.id, "'."));
89
+ }
90
+ catch (error) {
91
+ if (logs)
92
+ payload.logger.error("Error deleting document: ".concat(error === null || error === void 0 ? void 0 : error.message));
93
+ }
94
+ }
95
+ return [3 /*break*/, 4];
96
+ case 3:
97
+ error_1 = _c.sent();
98
+ if (logs)
99
+ payload.logger.error(error_1 === null || error_1 === void 0 ? void 0 : error_1.message);
100
+ return [3 /*break*/, 4];
101
+ case 4: return [2 /*return*/];
102
+ }
103
+ });
104
+ }); };
105
+ exports.handleDeleted = handleDeleted;
106
+ //# sourceMappingURL=handleDeleted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleDeleted.js","sourceRoot":"","sources":["../../src/webhooks/handleDeleted.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,IAAM,aAAa,GAAkB,UAAO,IAAI;;;;;;;gBAEnD,OAAO,GAKL,IAAI,QALC,EACP,KAAK,GAIH,IAAI,MAJD,EACL,YAAY,GAGV,IAAI,aAHM,EACZ,YAAY,GAEV,IAAI,aAFM,EACZ,UAAU,GACR,IAAI,WADI,CACH;gBAED,IAAI,GAAK,CAAA,YAAY,IAAI,EAAE,CAAA,KAAvB,CAAwB;gBAE9B,cAAc,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAC;gBAExC,KAGG,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,MAAM,KAAI,EAAE,EAF5B,QAAQ,QAAA,EACJ,WAAW,YAAA,CACc;gBAG7B,cAAc,GAAG,WAAW,KAAK,YAAY,CAAC;gBAEpD,IAAI,cAAc,EAAE;oBAClB,IAAI,IAAI;wBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAiD,YAAY,2CAAwC,CAAC,CAAC;iBACtI;qBAEG,CAAC,cAAc,EAAf,wBAAe;gBACjB,IAAI,IAAI;oBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAQ,YAAY,6DAAmD,cAAc,oDAA0C,QAAQ,SAAM,CAAC,CAAC;;;;gBAGtJ,qBAAM,OAAO,CAAC,IAAI,CAAC;wBACtC,UAAU,EAAE,cAAc;wBAC1B,KAAK,EAAE;4BACL,QAAQ,EAAE;gCACR,MAAM,EAAE,QAAQ;6BACjB;yBACF;qBACF,CAAC,EAAA;;gBAPI,YAAY,GAAG,SAOnB;gBAEI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC;gBAE7C,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,IAAI;wBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,2EAAoE,QAAQ,OAAI,CAAC,CAAC;iBACjH;gBAED,IAAI,QAAQ,EAAE;oBACZ,IAAI,IAAI;wBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAyC,QAAQ,CAAC,EAAE,SAAM,CAAC,CAAC;oBAE1F,IAAI;wBACF,OAAO,CAAC,MAAM,CAAC;4BACb,UAAU,EAAE,cAAc;4BAC1B,EAAE,EAAE,QAAQ,CAAC,EAAE;yBAChB,CAAC,CAAC;wBAEH,wHAAwH;wBACxH,iJAAiJ;wBACjJ,IAAI,IAAI;4BAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mEAAuD,QAAQ,CAAC,EAAE,OAAI,CAAC,CAAC;qBACvG;oBAAC,OAAO,KAAU,EAAE;wBACnB,IAAI,IAAI;4BAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAA4B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAE,CAAC,CAAC;qBAC9E;iBACF;;;;gBAED,IAAI,IAAI;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAK,aAAL,OAAK,uBAAL,OAAK,CAAE,OAAO,CAAC,CAAC;;;;;KAGpD,CAAA;AAhEY,QAAA,aAAa,iBAgEzB"}
@@ -0,0 +1,2 @@
1
+ import { StripeWebhookHandler } from '../types';
2
+ export declare const handleWebhooks: StripeWebhookHandler;