@mathrunet/masamune 0.5.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/functions/agora_cloud_recording.js +1 -1
  3. package/dist/functions/agora_cloud_recording.js.map +1 -1
  4. package/dist/functions/agora_token.js +1 -1
  5. package/dist/functions/agora_token.js.map +1 -1
  6. package/dist/functions/android_auth_code.js +1 -1
  7. package/dist/functions/android_auth_code.js.map +1 -1
  8. package/dist/functions/android_token.js +1 -4
  9. package/dist/functions/android_token.js.map +1 -1
  10. package/dist/functions/consumable_verify_android.js +1 -1
  11. package/dist/functions/consumable_verify_android.js.map +1 -1
  12. package/dist/functions/consumable_verify_ios.js +1 -1
  13. package/dist/functions/consumable_verify_ios.js.map +1 -1
  14. package/dist/functions/gmail.js +1 -1
  15. package/dist/functions/gmail.js.map +1 -1
  16. package/dist/functions/nonconsumable_verify_android.js +1 -1
  17. package/dist/functions/nonconsumable_verify_android.js.map +1 -1
  18. package/dist/functions/nonconsumable_verify_ios.js +1 -1
  19. package/dist/functions/nonconsumable_verify_ios.js.map +1 -1
  20. package/dist/functions/openai_chat_gpt.js +1 -1
  21. package/dist/functions/openai_chat_gpt.js.map +1 -1
  22. package/dist/functions/{purchase_hook_android.js → purchase_webhook_android.js} +111 -108
  23. package/dist/functions/purchase_webhook_android.js.map +1 -0
  24. package/dist/functions/{purchase_hook_ios.js → purchase_webhook_ios.js} +3 -3
  25. package/dist/functions/purchase_webhook_ios.js.map +1 -0
  26. package/dist/functions/send_grid.js +1 -1
  27. package/dist/functions/send_grid.js.map +1 -1
  28. package/dist/functions/send_notification.js +1 -1
  29. package/dist/functions/send_notification.js.map +1 -1
  30. package/dist/functions/stripe.js +1 -1
  31. package/dist/functions/stripe.js.map +1 -1
  32. package/dist/functions/stripe_webhook.d.ts +1 -0
  33. package/dist/functions/stripe_webhook.js +573 -0
  34. package/dist/functions/stripe_webhook.js.map +1 -0
  35. package/dist/functions/stripe_webhook_connect.d.ts +1 -0
  36. package/dist/functions/stripe_webhook_connect.js +140 -0
  37. package/dist/functions/stripe_webhook_connect.js.map +1 -0
  38. package/dist/functions/stripe_webhook_secure.d.ts +1 -0
  39. package/dist/functions/stripe_webhook_secure.js +150 -0
  40. package/dist/functions/stripe_webhook_secure.js.map +1 -0
  41. package/dist/functions/subscription_verify_android.js +2 -2
  42. package/dist/functions/subscription_verify_android.js.map +1 -1
  43. package/dist/functions/subscription_verify_ios.js +2 -2
  44. package/dist/functions/subscription_verify_ios.js.map +1 -1
  45. package/dist/functions.d.ts +13 -13
  46. package/dist/functions.js +13 -13
  47. package/dist/functions.js.map +1 -1
  48. package/dist/index.d.ts +6 -1
  49. package/dist/index.js +5 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/lib/functions_data.d.ts +6 -2
  52. package/dist/lib/functions_data.js.map +1 -1
  53. package/dist/lib/verify_android.js +0 -3
  54. package/dist/lib/verify_android.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/functions/purchase_hook_android.js.map +0 -1
  57. package/dist/functions/purchase_hook_ios.js.map +0 -1
  58. /package/dist/functions/{purchase_hook_android.d.ts → purchase_webhook_android.d.ts} +0 -0
  59. /package/dist/functions/{purchase_hook_ios.d.ts → purchase_webhook_ios.d.ts} +0 -0
@@ -0,0 +1,573 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const functions = __importStar(require("firebase-functions"));
36
+ const stripe = __importStar(require("stripe"));
37
+ const admin = __importStar(require("firebase-admin"));
38
+ /**
39
+ * Receives and processes webhooks from Stripe.
40
+ * Please register the URL when you deploy this in your Stripe webhook settings.
41
+ * Firestore integration is a must; please make Firestore available as well.
42
+ *
43
+ * StripeからのWebhookを受け取り処理を行います。
44
+ * こちらをデプロイした際のURLをStripeのWebhook設定に登録してください。
45
+ * Firestoreとの連携が必須です。Firestoreも利用可能にしてください。
46
+ *
47
+ * @param {string} purchase.stripe.secret_key
48
+ * API key (secret key) to connect to Stripe.
49
+ * Log in to the following URL and create a project.
50
+ * After the project is created, the secret key can be copied.
51
+ *
52
+ * Stripeへ接続するためのAPIキー(シークレットキー)。
53
+ * 下記URLにログインし、プロジェクトを作成します。
54
+ * プロジェクト作成後、シークレットキーをコピーすることができます。
55
+ *
56
+ * Production environment
57
+ * https://dashboard.stripe.com/apikeys
58
+ * Development enveironment
59
+ * https://dashboard.stripe.com/test/apikeys
60
+ *
61
+ * @param {string} purchase.stripe.user_path
62
+ * Stripe user (customer) pass.
63
+ * Stripeのユーザー(カスタマー)用パス。
64
+ *
65
+ * @param {string} purchase.stripe.payment_path
66
+ * Path for payment method information to be placed under [purchase.stripe.user_path].
67
+ * [purchase.stripe.user_path]の下に配置する支払い方法の情報用パス。
68
+ *
69
+ * @param {string} purchase.stripe.purchase_path
70
+ * Path for purchase information to be placed under [purchase.stripe.user_path].
71
+ * [purchase.stripe.user_path]の下に配置する購入情報用パス。
72
+ *
73
+ * @param {string} purchase.stripe.webhook_secret
74
+ * Specify the **Signature Secret** after setting it up as a webhook.
75
+ * Webhookとして設定したあとの**署名シークレット**を指定します。
76
+ *
77
+ */
78
+ module.exports = (regions, topics) => functions.region(...regions).https.onRequest((req, res) => __awaiter(void 0, void 0, void 0, function* () {
79
+ var _a;
80
+ try {
81
+ const config = functions.config().purchase;
82
+ const stripeConfig = config.stripe;
83
+ const apiKey = stripeConfig.secret_key;
84
+ const stripeUserPath = stripeConfig.user_path;
85
+ const stripePurchasePath = stripeConfig.purchase_path;
86
+ const stripeWebhookSecret = stripeConfig.webhook_secret;
87
+ const firestoreInstance = admin.firestore();
88
+ const stripeClient = new stripe.Stripe(apiKey, {
89
+ apiVersion: "2022-11-15",
90
+ });
91
+ const signature = req.headers["stripe-signature"];
92
+ if (!signature) {
93
+ res.status(403).send(JSON.stringify({
94
+ "error": "Access denied.",
95
+ }));
96
+ return;
97
+ }
98
+ const event = stripeClient.webhooks.constructEvent(req.rawBody, signature, stripeWebhookSecret);
99
+ switch (event.type) {
100
+ case "payment_intent.requires_action":
101
+ case "payment_intent.amount_capturable_updated": {
102
+ const payment = event.data.object;
103
+ const purchaseId = payment["id"];
104
+ const customerId = payment["customer"];
105
+ const status = payment["status"];
106
+ if (!customerId) {
107
+ res.status(404).send(JSON.stringify({
108
+ "error": "The customer id is not found.",
109
+ }));
110
+ return;
111
+ }
112
+ if (!status) {
113
+ res.status(404).send(JSON.stringify({
114
+ "error": "The status is not found.",
115
+ }));
116
+ return;
117
+ }
118
+ const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
119
+ if (userCol.empty) {
120
+ res.status(404).send(JSON.stringify({
121
+ "error": "The account data is not found.",
122
+ }));
123
+ return;
124
+ }
125
+ const user = userCol.docs[0];
126
+ const userId = user.id;
127
+ const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("purchaseId", "==", purchaseId).get();
128
+ if (purchaseCol.empty) {
129
+ res.status(404).send(JSON.stringify({
130
+ "error": "The purchase data is not found.",
131
+ }));
132
+ return;
133
+ }
134
+ const purchase = purchaseCol.docs[0];
135
+ const update = {};
136
+ switch (status) {
137
+ case "requires_payment_method":
138
+ case "requires_confirmation": {
139
+ update["confirm"] = false;
140
+ update["verify"] = false;
141
+ update["capture"] = false;
142
+ update["success"] = false;
143
+ break;
144
+ }
145
+ case "requires_action": {
146
+ update["confirm"] = true;
147
+ update["verify"] = false;
148
+ update["capture"] = false;
149
+ update["success"] = false;
150
+ break;
151
+ }
152
+ case "requires_capture": {
153
+ update["confirm"] = true;
154
+ update["verify"] = true;
155
+ update["capture"] = false;
156
+ update["success"] = false;
157
+ break;
158
+ }
159
+ }
160
+ update["updatedTime"] = new Date();
161
+ yield purchase.ref.set(update, {
162
+ merge: true,
163
+ });
164
+ res.status(200).send(JSON.stringify({
165
+ "success": true,
166
+ }));
167
+ return;
168
+ }
169
+ case "payment_intent.succeeded": {
170
+ const payment = event.data.object;
171
+ const purchaseId = payment["id"];
172
+ const customerId = payment["customer"];
173
+ if (!customerId) {
174
+ res.status(404).send(JSON.stringify({
175
+ "error": "The customer id is not found.",
176
+ }));
177
+ return;
178
+ }
179
+ const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
180
+ if (userCol.empty) {
181
+ res.status(404).send(JSON.stringify({
182
+ "error": "The account data is not found.",
183
+ }));
184
+ return;
185
+ }
186
+ const user = userCol.docs[0];
187
+ const userId = user.id;
188
+ const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("purchaseId", "==", purchaseId).get();
189
+ if (purchaseCol.empty) {
190
+ res.status(404).send(JSON.stringify({
191
+ "error": "The purchase data is not found.",
192
+ }));
193
+ return;
194
+ }
195
+ const purchase = purchaseCol.docs[0];
196
+ const update = {};
197
+ update["confirm"] = true;
198
+ update["verify"] = true;
199
+ update["capture"] = true;
200
+ update["success"] = true;
201
+ update["error"] = admin.firestore.FieldValue.delete();
202
+ update["errorMessage"] = admin.firestore.FieldValue.delete();
203
+ update["updatedTime"] = new Date();
204
+ if (payment["charges"] && payment["charges"]["data"] && payment["charges"]["data"].length > 0 && payment["charges"]["data"][0]) {
205
+ if (payment["charges"]["data"][0]["receipt_url"]) {
206
+ update["receiptUrl"] = payment["charges"]["data"][0]["receipt_url"];
207
+ }
208
+ if (payment["charges"]["data"][0]["amount_captured"]) {
209
+ update["capturedAmount"] = payment["charges"]["data"][0]["amount_captured"];
210
+ }
211
+ }
212
+ yield purchase.ref.set(update, {
213
+ merge: true,
214
+ });
215
+ res.status(200).send(JSON.stringify({
216
+ "success": true,
217
+ }));
218
+ return;
219
+ }
220
+ case "payment_intent.payment_failed": {
221
+ const payment = event.data.object;
222
+ const purchaseId = payment["id"];
223
+ const customerId = payment["customer"];
224
+ const status = payment["status"];
225
+ if (!customerId) {
226
+ res.status(404).send(JSON.stringify({
227
+ "error": "The customer id is not found.",
228
+ }));
229
+ return;
230
+ }
231
+ const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
232
+ if (userCol.empty) {
233
+ res.status(404).send(JSON.stringify({
234
+ "error": "The account data is not found.",
235
+ }));
236
+ return;
237
+ }
238
+ const user = userCol.docs[0];
239
+ const userId = user.id;
240
+ const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("purchaseId", "==", purchaseId).get();
241
+ if (purchaseCol.empty) {
242
+ res.status(404).send(JSON.stringify({
243
+ "error": "The purchase data is not found.",
244
+ }));
245
+ return;
246
+ }
247
+ const errorMessage = payment["last_payment_error"]["message"];
248
+ const purchase = purchaseCol.docs[0];
249
+ const update = {};
250
+ switch (status) {
251
+ case "requires_payment_method":
252
+ case "requires_confirmation": {
253
+ update["confirm"] = false;
254
+ update["verify"] = false;
255
+ update["capture"] = false;
256
+ update["success"] = false;
257
+ break;
258
+ }
259
+ case "requires_action": {
260
+ update["confirm"] = true;
261
+ update["verify"] = false;
262
+ update["capture"] = false;
263
+ update["success"] = false;
264
+ break;
265
+ }
266
+ case "requires_capture": {
267
+ update["confirm"] = true;
268
+ update["verify"] = true;
269
+ update["capture"] = false;
270
+ update["success"] = false;
271
+ break;
272
+ }
273
+ }
274
+ update["updatedTime"] = new Date();
275
+ update["error"] = true;
276
+ update["errorMessage"] = errorMessage;
277
+ yield purchase.ref.set(update, {
278
+ merge: true,
279
+ });
280
+ res.status(200).send(JSON.stringify({
281
+ "success": true,
282
+ }));
283
+ return;
284
+ }
285
+ case "payment_method.detached":
286
+ case "payment_method.updated": {
287
+ const payment = event.data.object;
288
+ const previous = event.data.previous_attributes;
289
+ let customerId = payment["customer"];
290
+ if (!customerId) {
291
+ customerId = previous["customer"];
292
+ }
293
+ if (!customerId) {
294
+ res.status(404).send(JSON.stringify({
295
+ "error": "The customer id is not found.",
296
+ }));
297
+ return;
298
+ }
299
+ const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
300
+ if (col.empty) {
301
+ res.status(404).send(JSON.stringify({
302
+ "error": "The account data is not found.",
303
+ }));
304
+ return;
305
+ }
306
+ const user = col.docs[0];
307
+ const userId = user.id;
308
+ yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
309
+ res.status(200).send(JSON.stringify({
310
+ "success": true,
311
+ }));
312
+ return;
313
+ }
314
+ case "customer.updated": {
315
+ const customer = event.data.object;
316
+ const customerId = customer["id"];
317
+ if (!customerId) {
318
+ res.status(404).send(JSON.stringify({
319
+ "error": "The customer id is not found.",
320
+ }));
321
+ return;
322
+ }
323
+ const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
324
+ if (col.empty) {
325
+ res.status(404).send(JSON.stringify({
326
+ "error": "The account data is not found.",
327
+ }));
328
+ return;
329
+ }
330
+ const user = col.docs[0];
331
+ const userId = user.id;
332
+ yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
333
+ res.status(200).send(JSON.stringify({
334
+ "success": true,
335
+ }));
336
+ return;
337
+ }
338
+ case "checkout.session.completed": {
339
+ const session = event.data.object;
340
+ const customerId = session["customer"];
341
+ if (!customerId) {
342
+ res.status(404).send(JSON.stringify({
343
+ "error": "The customer id is not found.",
344
+ }));
345
+ return;
346
+ }
347
+ const setupIntent = session["setup_intent"];
348
+ if (!setupIntent) {
349
+ res.status(404).send(JSON.stringify({
350
+ "error": "The setup intent is not found.",
351
+ }));
352
+ return;
353
+ }
354
+ const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
355
+ if (col.empty) {
356
+ res.status(404).send(JSON.stringify({
357
+ "error": "The account data is not found.",
358
+ }));
359
+ return;
360
+ }
361
+ const user = col.docs[0];
362
+ const userId = user.id;
363
+ const update = {};
364
+ if (session["setup_intent"]) {
365
+ update["setupIntent"] = session["setup_intent"];
366
+ }
367
+ yield user.ref.set(update, {
368
+ merge: true,
369
+ });
370
+ yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
371
+ res.status(200).send(JSON.stringify({
372
+ "success": true,
373
+ }));
374
+ return;
375
+ }
376
+ case "customer.subscription.trial_will_end":
377
+ case "customer.subscription.updated":
378
+ case "customer.subscription.created": {
379
+ const now = new Date();
380
+ const update = {};
381
+ const subscription = event.data.object;
382
+ const status = subscription["status"];
383
+ if (status != "active") {
384
+ res.status(200).send(JSON.stringify({
385
+ "success": "Subscription is not active.",
386
+ }));
387
+ return;
388
+ }
389
+ const endDate = new Date(subscription["current_period_end"] * 1000);
390
+ const id = subscription["id"];
391
+ const userId = subscription.metadata.userId;
392
+ const orderId = (_a = subscription.metadata.orderId) !== null && _a !== void 0 ? _a : id;
393
+ const targetPath = `${stripePurchasePath}/${orderId}`;
394
+ const plan = subscription.plan;
395
+ let doc;
396
+ const subscriptionCol = yield firestoreInstance.collection(`${stripePurchasePath}`).where("subscription", "==", id).get();
397
+ if (subscriptionCol.empty) {
398
+ doc = yield firestoreInstance.doc(targetPath);
399
+ }
400
+ else {
401
+ doc = subscriptionCol.docs[0].ref;
402
+ }
403
+ update["expired"] = now >= endDate;
404
+ if (userId) {
405
+ update["user"] = userId;
406
+ }
407
+ update["@uid"] = orderId;
408
+ update["@time"] = new Date();
409
+ update["subscription"] = id;
410
+ update["application"] = subscription["application"];
411
+ update["application_fee_percent"] = subscription["application_fee_percent"];
412
+ update["cancel_at"] = subscription["cancel_at"];
413
+ update["cancel_at_period_end"] = subscription["cancel_at_period_end"];
414
+ update["canceled_at"] = subscription["canceled_at"];
415
+ update["collection_method"] = subscription["collection_method"];
416
+ update["currency"] = subscription["currency"];
417
+ update["current_period_start"] = subscription["current_period_start"];
418
+ update["current_period_end"] = subscription["current_period_end"];
419
+ update["customer"] = subscription["customer"];
420
+ update["default_payment_method"] = subscription["default_payment_method"];
421
+ update["ended_at"] = subscription["ended_at"];
422
+ update["latest_invoice"] = subscription["latest_invoice"];
423
+ update["price_id"] = plan["id"];
424
+ update["active"] = plan["active"];
425
+ update["amount"] = plan["amount"];
426
+ update["billing_scheme"] = plan["billing_scheme"];
427
+ update["interval"] = plan["interval"];
428
+ update["interval_count"] = plan["interval_count"];
429
+ update["usage_type"] = plan["usage_type"];
430
+ update["quantity"] = subscription["quantity"];
431
+ update["start_date"] = subscription["start_date"];
432
+ update["start_date"] = subscription["start_date"];
433
+ console.log(`Subscription status is ${status} ${stripePurchasePath}.`);
434
+ yield doc.set(update, {
435
+ merge: true,
436
+ });
437
+ res.status(200).send(JSON.stringify({
438
+ "success": "Subscription is active.",
439
+ }));
440
+ break;
441
+ }
442
+ case "customer.subscription.deleted": {
443
+ const subscription = event.data.object;
444
+ const status = subscription["status"];
445
+ console.log(`Subscription status is ${status} ${"expired"}.`);
446
+ // Then define and call a method to handle the subscription deleted.
447
+ // handleSubscriptionDeleted(subscriptionDeleted);
448
+ break;
449
+ }
450
+ default: {
451
+ res.status(404).send(JSON.stringify({
452
+ "error": "Event is not found.",
453
+ }));
454
+ return;
455
+ }
456
+ }
457
+ }
458
+ catch (err) {
459
+ console.error(err);
460
+ throw err;
461
+ }
462
+ }));
463
+ /**
464
+ * Synchronize Stripe acquisition results to Firestore.
465
+ *
466
+ * Stripeの取得結果をFirestoreに同期します。
467
+ *
468
+ * @param {stripe.Stripe} stripeClient
469
+ * Stripe client instances.
470
+ * ストライプのクライアントインスタンス。
471
+ *
472
+ * @param {FirebaseFirestore.Firestore} firestoreInstance
473
+ * Firestore client instances.
474
+ * Firestoreのクライアントインスタンス。
475
+ *
476
+ * @param {string} userId
477
+ * User ID.
478
+ * ユーザーID。
479
+ *
480
+ * @param {string} customerId
481
+ * Customer ID.
482
+ * 顧客ID。
483
+ *
484
+ * @returns {Promise<void>}
485
+ *
486
+ */
487
+ function syncStripePayment(stripeClient, firestoreInstance, userId, customerId) {
488
+ return __awaiter(this, void 0, void 0, function* () {
489
+ const config = functions.config().purchase;
490
+ const stripeConfig = config.stripe;
491
+ const stripeUserPath = stripeConfig.user_path;
492
+ const stripePaymentPath = stripeConfig.payment_path;
493
+ const customer = yield stripeClient.customers.retrieve(customerId);
494
+ let defaultSource = customer.invoice_settings.default_payment_method;
495
+ const paymentMethods = yield stripeClient.customers.listPaymentMethods(customerId, {
496
+ type: "card",
497
+ });
498
+ if (!defaultSource && paymentMethods.data.length > 0) {
499
+ defaultSource = paymentMethods.data[0].id;
500
+ yield stripeClient.customers.update(customerId, {
501
+ invoice_settings: {
502
+ default_payment_method: defaultSource,
503
+ },
504
+ });
505
+ }
506
+ const payments = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePaymentPath}`).get();
507
+ yield firestoreInstance.runTransaction((transaction) => __awaiter(this, void 0, void 0, function* () {
508
+ payments.docs.forEach((doc) => {
509
+ const data = doc.data();
510
+ const method = paymentMethods.data.find((m) => m.id == data["id"]);
511
+ if (!method) {
512
+ transaction.delete(doc.ref);
513
+ }
514
+ else {
515
+ const card = method.card;
516
+ if (!card) {
517
+ return;
518
+ }
519
+ const update = {};
520
+ const isDefault = method.id == defaultSource;
521
+ if (method.type === data["type"] && card.exp_month === data["expMonth"] && card.exp_year === data["expYear"] && card.brand === data["brand"] && card.last4 === data["numberLast"] && card.last4 === data["numberLast"] && isDefault === data["default"]) {
522
+ return;
523
+ }
524
+ update["type"] = method.type;
525
+ update["expMonth"] = card.exp_month;
526
+ update["expYear"] = card.exp_year;
527
+ update["brand"] = card.brand;
528
+ update["numberLast"] = card.last4;
529
+ update["default"] = isDefault;
530
+ transaction.set(doc.ref, update, {
531
+ merge: true,
532
+ });
533
+ }
534
+ });
535
+ paymentMethods.data.forEach((method) => __awaiter(this, void 0, void 0, function* () {
536
+ const card = method.card;
537
+ if (!card) {
538
+ return;
539
+ }
540
+ const doc = payments.docs.find((item) => item.data()["id"] == method.id);
541
+ if (doc) {
542
+ return;
543
+ }
544
+ const uid = method.id;
545
+ const update = {};
546
+ const isDefault = method.id == defaultSource;
547
+ update["@uid"] = uid;
548
+ update["@time"] = new Date();
549
+ update["id"] = uid;
550
+ update["type"] = method.type;
551
+ update["expMonth"] = card.exp_month;
552
+ update["expYear"] = card.exp_year;
553
+ update["brand"] = card.brand;
554
+ update["numberLast"] = card.last4;
555
+ update["default"] = isDefault;
556
+ transaction.set(firestoreInstance.doc(`${stripeUserPath}/${userId}/${stripePaymentPath}/${uid}`), update, {
557
+ merge: true,
558
+ });
559
+ }));
560
+ const update = {};
561
+ if (defaultSource) {
562
+ update["defaultPayment"] = defaultSource;
563
+ }
564
+ else {
565
+ update["defaultPayment"] = admin.firestore.FieldValue.delete();
566
+ }
567
+ yield transaction.set(firestoreInstance.doc(`${stripeUserPath}/${userId}`), update, {
568
+ merge: true,
569
+ });
570
+ }));
571
+ });
572
+ }
573
+ //# sourceMappingURL=stripe_webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe_webhook.js","sourceRoot":"","sources":["../../src/functions/stripe_webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};