@glomopay/react-native-sdk 3.0.1 → 3.1.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 (40) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/MIGRATION.md +50 -0
  3. package/README.md +131 -50
  4. package/lib/glomo-checkout.d.ts.map +1 -1
  5. package/lib/glomo-checkout.js +38 -1
  6. package/lib/glomo-standard-checkout.d.ts +20 -0
  7. package/lib/glomo-standard-checkout.d.ts.map +1 -1
  8. package/lib/glomo-standard-checkout.js +14 -3
  9. package/lib/glomo-subscriptions-checkout.d.ts +8 -0
  10. package/lib/glomo-subscriptions-checkout.d.ts.map +1 -0
  11. package/lib/glomo-subscriptions-checkout.js +85 -0
  12. package/lib/index.d.ts +1 -1
  13. package/lib/index.d.ts.map +1 -1
  14. package/lib/types/checkout.d.ts +15 -3
  15. package/lib/types/checkout.d.ts.map +1 -1
  16. package/lib/types/subscriptions-checkout.d.ts +29 -0
  17. package/lib/types/subscriptions-checkout.d.ts.map +1 -0
  18. package/lib/types/subscriptions-checkout.js +3 -0
  19. package/lib/use-glomo-checkout.d.ts +34 -4
  20. package/lib/use-glomo-checkout.d.ts.map +1 -1
  21. package/lib/use-glomo-checkout.js +92 -13
  22. package/lib/use-standard-checkout.d.ts +11 -2
  23. package/lib/use-standard-checkout.d.ts.map +1 -1
  24. package/lib/use-standard-checkout.js +52 -35
  25. package/lib/utils/analytics.d.ts +87 -2
  26. package/lib/utils/analytics.d.ts.map +1 -1
  27. package/lib/utils/analytics.js +356 -15
  28. package/lib/utils/device-compliance.d.ts.map +1 -1
  29. package/lib/utils/device-compliance.js +0 -1
  30. package/package.json +15 -4
  31. package/src/glomo-checkout.tsx +79 -5
  32. package/src/glomo-standard-checkout.tsx +33 -4
  33. package/src/glomo-subscriptions-checkout.tsx +83 -0
  34. package/src/index.ts +1 -1
  35. package/src/types/checkout.ts +10 -3
  36. package/src/types/subscriptions-checkout.ts +31 -0
  37. package/src/use-glomo-checkout.tsx +158 -17
  38. package/src/use-standard-checkout.tsx +70 -52
  39. package/src/utils/analytics.ts +482 -17
  40. package/src/utils/device-compliance.ts +0 -1
@@ -11,7 +11,10 @@ const validation_1 = require("./utils/validation");
11
11
  const device_compliance_1 = require("./utils/device-compliance");
12
12
  const analytics_1 = require("./utils/analytics");
13
13
  /** The main SDK hook for the GlomoPay Standard Checkout flow */
14
- function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onPaymentFailure, onConnectionError, onPaymentTerminate, onSdkError, onBankTransferSubmitted, onPayViaBankCompleted, onPayViaBankBankConnectionSuccessful, onUserRefusedCameraPermissions, devMode = false, }, mockMode) {
14
+ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onPaymentFailure, onConnectionError, onPaymentTerminate, onSdkError, onBankTransferSubmitted, onPayViaBankCompleted, onPayViaBankBankConnectionSuccessful, onUserRefusedCameraPermissions, devMode = false, }, mockMode, internalOptions) {
15
+ var _a;
16
+ // Resolving analytics trackers - defaults to standard, subscription flow overrides
17
+ const trackers = (_a = internalOptions === null || internalOptions === void 0 ? void 0 : internalOptions.analyticsTrackers) !== null && _a !== void 0 ? _a : analytics_1.standardCheckoutTrackers;
15
18
  // Refs for the WebViews
16
19
  const mainWebViewRef = (0, react_1.useRef)(null);
17
20
  const flowWebViewRef = (0, react_1.useRef)(null);
@@ -94,7 +97,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
94
97
  // Calling onConnectionError callback if provided
95
98
  (0, validation_1.safeCallback)(onConnectionError, [nativeEvent], "onConnectionError", devMode);
96
99
  // Tracking connection error
97
- (0, analytics_1.trackStandardConnectionError)(orderId, nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.code, publicKey, devMode, mockMode, checkoutUrl);
100
+ trackers.trackConnectionError(orderId, nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.code, publicKey, devMode, mockMode, checkoutUrl);
98
101
  }
99
102
  else {
100
103
  if (devMode) {
@@ -107,7 +110,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
107
110
  console.error("[Glomo-RN-SDK Standard] Error in handleError:", error);
108
111
  }
109
112
  }
110
- }, [devMode, onConnectionError, checkoutUrl, orderId, publicKey, mockMode]);
113
+ }, [devMode, onConnectionError, checkoutUrl, orderId, publicKey, mockMode, trackers]);
111
114
  // Handler for the WebView HTTP errors
112
115
  const handleHttpError = (0, react_1.useCallback)((syntheticEvent) => {
113
116
  try {
@@ -138,7 +141,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
138
141
  console.warn("[Glomo-RN-SDK Standard] Invalid message data from MainWebView");
139
142
  }
140
143
  // Tracking invalid message received
141
- (0, analytics_1.trackStandardInvalidMessageReceived)("main", data, checkoutUrl, orderId, publicKey, devMode, mockMode, checkoutUrl);
144
+ trackers.trackInvalidMessageReceived("main", data, checkoutUrl, orderId, publicKey, devMode, mockMode, checkoutUrl);
142
145
  return;
143
146
  }
144
147
  const message = JSON.parse(data);
@@ -163,7 +166,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
163
166
  setFlowWebViewUrl(url);
164
167
  setShowFlowWebView(true);
165
168
  // Tracking window.open interception
166
- (0, analytics_1.trackStandardWindowOpen)("main", url, orderId, publicKey, devMode, mockMode, checkoutUrl);
169
+ trackers.trackWindowOpen("main", url, orderId, publicKey, devMode, mockMode, checkoutUrl);
167
170
  }
168
171
  else {
169
172
  if (devMode) {
@@ -180,7 +183,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
180
183
  setShowFlowWebView(false);
181
184
  setFlowWebViewUrl("");
182
185
  // Tracking window.close interception
183
- (0, analytics_1.trackStandardWindowClose)("main", orderId, publicKey, devMode, mockMode, checkoutUrl);
186
+ trackers.trackWindowClose("main", orderId, publicKey, devMode, mockMode, checkoutUrl);
184
187
  return;
185
188
  }
186
189
  // Handling merchant JS callbacks on flow completion (payment events, lifecycle events)
@@ -201,7 +204,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
201
204
  setStatus("payment_successful");
202
205
  (0, validation_1.safeCallback)(onPaymentSuccess, [payload], "onPaymentSuccess", devMode);
203
206
  // Tracking payment success callback
204
- (0, analytics_1.trackStandardPaymentSuccess)(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
207
+ trackers.trackPaymentSuccess(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
205
208
  }
206
209
  else {
207
210
  if (devMode) {
@@ -224,7 +227,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
224
227
  setStatus("payment_failed");
225
228
  (0, validation_1.safeCallback)(onPaymentFailure, [payload], "onPaymentFailure", devMode);
226
229
  // Tracking payment failure callback
227
- (0, analytics_1.trackStandardPaymentFailure)(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
230
+ trackers.trackPaymentFailure(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
228
231
  }
229
232
  else {
230
233
  if (devMode) {
@@ -250,7 +253,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
250
253
  transactionReference: (_d = payload === null || payload === void 0 ? void 0 : payload.transactionReference) !== null && _d !== void 0 ? _d : "",
251
254
  },
252
255
  ], "onBankTransferSubmitted", devMode);
253
- (0, analytics_1.trackStandardBankTransferSubmitted)(orderId, publicKey, devMode, mockMode, checkoutUrl);
256
+ trackers.trackBankTransferSubmitted(orderId, publicKey, devMode, mockMode, checkoutUrl);
254
257
  return;
255
258
  }
256
259
  // Handling pay via bank - bank connection successful event (informational, no status change)
@@ -268,7 +271,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
268
271
  bankImageAlt: (_j = payload === null || payload === void 0 ? void 0 : payload.bankImageAlt) !== null && _j !== void 0 ? _j : "",
269
272
  },
270
273
  ], "onPayViaBankBankConnectionSuccessful", devMode);
271
- (0, analytics_1.trackStandardPayViaBankBankConnectionSuccessful)(orderId, publicKey, (_k = payload === null || payload === void 0 ? void 0 : payload.bankIdentifier) !== null && _k !== void 0 ? _k : "", devMode, mockMode, checkoutUrl);
274
+ trackers.trackPayViaBankBankConnectionSuccessful(orderId, publicKey, (_k = payload === null || payload === void 0 ? void 0 : payload.bankIdentifier) !== null && _k !== void 0 ? _k : "", devMode, mockMode, checkoutUrl);
272
275
  return;
273
276
  }
274
277
  /**
@@ -295,7 +298,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
295
298
  setFlowWebViewUrl("");
296
299
  setStatus("pay_via_bank_completed");
297
300
  (0, validation_1.safeCallback)(onPayViaBankCompleted, [{ status: (_l = payload === null || payload === void 0 ? void 0 : payload.status) !== null && _l !== void 0 ? _l : "unknown" }], "onPayViaBankCompleted", devMode);
298
- (0, analytics_1.trackStandardPayViaBankCompleted)(orderId, publicKey, (_m = payload === null || payload === void 0 ? void 0 : payload.status) !== null && _m !== void 0 ? _m : "unknown", devMode, mockMode, checkoutUrl);
301
+ trackers.trackPayViaBankCompleted(orderId, publicKey, (_m = payload === null || payload === void 0 ? void 0 : payload.status) !== null && _m !== void 0 ? _m : "unknown", devMode, mockMode, checkoutUrl);
299
302
  return;
300
303
  }
301
304
  // Handling checkout.closed events
@@ -308,7 +311,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
308
311
  setFlowWebViewUrl("");
309
312
  (0, validation_1.safeCallback)(onPaymentTerminate, [], "onPaymentTerminate", devMode);
310
313
  // Tracking payment terminate callback
311
- (0, analytics_1.trackStandardPaymentTerminate)(orderId, "checkout_closed", publicKey, devMode, mockMode, checkoutUrl);
314
+ trackers.trackPaymentTerminate(orderId, "checkout_closed", publicKey, devMode, mockMode, checkoutUrl);
312
315
  return;
313
316
  }
314
317
  }
@@ -330,6 +333,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
330
333
  orderId,
331
334
  publicKey,
332
335
  checkoutUrl,
336
+ trackers,
333
337
  ]);
334
338
  /**
335
339
  * Handler for the flow WebView messages.
@@ -346,7 +350,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
346
350
  console.warn("[Glomo-RN-SDK Standard] Invalid message data from FlowWebView");
347
351
  }
348
352
  // Tracking invalid message received
349
- (0, analytics_1.trackStandardInvalidMessageReceived)("flow", data, flowWebViewUrl, orderId, publicKey, devMode, mockMode, checkoutUrl);
353
+ trackers.trackInvalidMessageReceived("flow", data, flowWebViewUrl, orderId, publicKey, devMode, mockMode, checkoutUrl);
350
354
  return;
351
355
  }
352
356
  const message = JSON.parse(data);
@@ -369,7 +373,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
369
373
  }
370
374
  setFlowWebViewUrl(url);
371
375
  // Tracking window.open interception
372
- (0, analytics_1.trackStandardWindowOpen)("flow", url, orderId, publicKey, devMode, mockMode, checkoutUrl);
376
+ trackers.trackWindowOpen("flow", url, orderId, publicKey, devMode, mockMode, checkoutUrl);
373
377
  }
374
378
  else {
375
379
  if (devMode) {
@@ -386,7 +390,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
386
390
  setShowFlowWebView(false);
387
391
  setFlowWebViewUrl("");
388
392
  // Tracking window.close interception
389
- (0, analytics_1.trackStandardWindowClose)("flow", orderId, publicKey, devMode, mockMode, checkoutUrl);
393
+ trackers.trackWindowClose("flow", orderId, publicKey, devMode, mockMode, checkoutUrl);
390
394
  return;
391
395
  }
392
396
  // Handling merchant JS callbacks from the flow WebView (payment events, lifecycle events)
@@ -407,7 +411,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
407
411
  setStatus("payment_successful");
408
412
  (0, validation_1.safeCallback)(onPaymentSuccess, [payload], "onPaymentSuccess", devMode);
409
413
  // Tracking payment success callback
410
- (0, analytics_1.trackStandardPaymentSuccess)(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
414
+ trackers.trackPaymentSuccess(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
411
415
  }
412
416
  else {
413
417
  if (devMode) {
@@ -430,7 +434,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
430
434
  setStatus("payment_failed");
431
435
  (0, validation_1.safeCallback)(onPaymentFailure, [payload], "onPaymentFailure", devMode);
432
436
  // Tracking payment failure callback
433
- (0, analytics_1.trackStandardPaymentFailure)(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
437
+ trackers.trackPaymentFailure(payload.orderId, payload.paymentId, publicKey, devMode, mockMode, checkoutUrl);
434
438
  }
435
439
  else {
436
440
  if (devMode) {
@@ -454,7 +458,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
454
458
  bankImageAlt: (_f = payload === null || payload === void 0 ? void 0 : payload.bankImageAlt) !== null && _f !== void 0 ? _f : "",
455
459
  },
456
460
  ], "onPayViaBankBankConnectionSuccessful", devMode);
457
- (0, analytics_1.trackStandardPayViaBankBankConnectionSuccessful)(orderId, publicKey, (_g = payload === null || payload === void 0 ? void 0 : payload.bankIdentifier) !== null && _g !== void 0 ? _g : "", devMode, mockMode, checkoutUrl);
461
+ trackers.trackPayViaBankBankConnectionSuccessful(orderId, publicKey, (_g = payload === null || payload === void 0 ? void 0 : payload.bankIdentifier) !== null && _g !== void 0 ? _g : "", devMode, mockMode, checkoutUrl);
458
462
  return;
459
463
  }
460
464
  // Handling glomoCheckoutJourneyTerminate from the flow WebView (pay via bank completion)
@@ -476,7 +480,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
476
480
  setFlowWebViewUrl("");
477
481
  setStatus("pay_via_bank_completed");
478
482
  (0, validation_1.safeCallback)(onPayViaBankCompleted, [{ status: (_h = payload === null || payload === void 0 ? void 0 : payload.status) !== null && _h !== void 0 ? _h : "unknown" }], "onPayViaBankCompleted", devMode);
479
- (0, analytics_1.trackStandardPayViaBankCompleted)(orderId, publicKey, (_j = payload === null || payload === void 0 ? void 0 : payload.status) !== null && _j !== void 0 ? _j : "unknown", devMode, mockMode, checkoutUrl);
483
+ trackers.trackPayViaBankCompleted(orderId, publicKey, (_j = payload === null || payload === void 0 ? void 0 : payload.status) !== null && _j !== void 0 ? _j : "unknown", devMode, mockMode, checkoutUrl);
480
484
  return;
481
485
  }
482
486
  }
@@ -497,6 +501,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
497
501
  publicKey,
498
502
  flowWebViewUrl,
499
503
  checkoutUrl,
504
+ trackers,
500
505
  ]);
501
506
  // Handler for the navigation state changes
502
507
  const handleNavigationStateChange = (0, react_1.useCallback)((navState) => {
@@ -529,14 +534,14 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
529
534
  (0, validation_1.safeCallback)(onPaymentTerminate, [], "onPaymentTerminate", devMode);
530
535
  // Tracking payment terminate callback (user dismiss/back button)
531
536
  const terminateSource = react_native_1.Platform.OS === "ios" ? "user_dismiss" : "back_button";
532
- (0, analytics_1.trackStandardPaymentTerminate)(orderId, terminateSource, publicKey, devMode, mockMode, checkoutUrl);
537
+ trackers.trackPaymentTerminate(orderId, terminateSource, publicKey, devMode, mockMode, checkoutUrl);
533
538
  }
534
539
  catch (error) {
535
540
  if (devMode) {
536
541
  console.error("[Glomo-RN-SDK Standard] Error in handleModalBackButton:", error);
537
542
  }
538
543
  }
539
- }, [showFlowWebView, devMode, onPaymentTerminate, status, orderId, publicKey, mockMode, checkoutUrl]);
544
+ }, [showFlowWebView, devMode, onPaymentTerminate, status, orderId, publicKey, mockMode, checkoutUrl, trackers]);
540
545
  /** Closes the flow WebView and returns to the main checkout */
541
546
  const handleFlowBack = (0, react_1.useCallback)(() => {
542
547
  if (devMode) {
@@ -544,8 +549,8 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
544
549
  }
545
550
  setShowFlowWebView(false);
546
551
  setFlowWebViewUrl("");
547
- (0, analytics_1.trackStandardWindowClose)("flow", orderId, publicKey, devMode, mockMode, checkoutUrl);
548
- }, [devMode, orderId, publicKey, mockMode, checkoutUrl]);
552
+ trackers.trackWindowClose("flow", orderId, publicKey, devMode, mockMode, checkoutUrl);
553
+ }, [devMode, orderId, publicKey, mockMode, checkoutUrl, trackers]);
549
554
  /**
550
555
  * Handler for WebView permission requests (e.g. camera access for bank authentication).
551
556
  * On Android, prompts the user for camera permission via PermissionsAndroid.
@@ -653,7 +658,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
653
658
  console.log(`[Glomo-RN-SDK Standard] Attempting to start checkout of ${checkoutUrl} from status: ${status}`);
654
659
  }
655
660
  // Tracking start attempt with current status
656
- (0, analytics_1.trackStandardStartAttempt)(status, orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
661
+ trackers.trackStartAttempt(status, orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
657
662
  if (deviceComplianceCheck === true) {
658
663
  // Device detected as compromised
659
664
  if (devMode) {
@@ -667,7 +672,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
667
672
  ];
668
673
  (0, validation_1.safeCallback)(onSdkError, [errors], "onSdkError", devMode);
669
674
  // Tracking start() failure
670
- (0, analytics_1.trackStandardStartFailure)("device_forbidden", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
675
+ trackers.trackStartFailure("device_forbidden", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
671
676
  setShowCheckout(false);
672
677
  return false;
673
678
  }
@@ -685,8 +690,8 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
685
690
  },
686
691
  ];
687
692
  (0, validation_1.safeCallback)(onSdkError, [errors], "onSdkError", devMode);
688
- (0, analytics_1.trackStandardSdkError)(errors, orderId, publicKey, devMode, mockMode, checkoutUrl);
689
- (0, analytics_1.trackStandardStartFailure)("validation_error", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
693
+ trackers.trackSdkError(errors, orderId, publicKey, devMode, mockMode, checkoutUrl);
694
+ trackers.trackStartFailure("validation_error", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
690
695
  setShowCheckout(false);
691
696
  return false;
692
697
  }
@@ -700,7 +705,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
700
705
  };
701
706
  errors.push(error);
702
707
  }
703
- if (!(0, validation_1.isValidOrderId)(orderId)) {
708
+ if (!(internalOptions === null || internalOptions === void 0 ? void 0 : internalOptions._skipOrderIdValidation) && !(0, validation_1.isValidOrderId)(orderId)) {
704
709
  const error = {
705
710
  type: "validation_error",
706
711
  message: "Invalid orderId: must start with 'order_' and be a valid string",
@@ -728,8 +733,8 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
728
733
  }
729
734
  (0, validation_1.safeCallback)(onSdkError, [errors], "onSdkError", devMode);
730
735
  // Tracking start() failure
731
- (0, analytics_1.trackStandardSdkError)(errors, orderId, publicKey, devMode, mockMode, checkoutUrl);
732
- (0, analytics_1.trackStandardStartFailure)("validation_error", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
736
+ trackers.trackSdkError(errors, orderId, publicKey, devMode, mockMode, checkoutUrl);
737
+ trackers.trackStartFailure("validation_error", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
733
738
  setShowCheckout(false);
734
739
  return false;
735
740
  }
@@ -738,7 +743,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
738
743
  console.log(`[Glomo-RN-SDK Standard] Cannot start checkout. Current status: ${status}. Payment already successful.`);
739
744
  }
740
745
  // Tracking start() failure
741
- (0, analytics_1.trackStandardStartFailure)("payment_successful", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
746
+ trackers.trackStartFailure("payment_successful", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
742
747
  setShowCheckout(false);
743
748
  return false;
744
749
  }
@@ -752,7 +757,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
752
757
  console.log(`[Glomo-RN-SDK Standard] Cannot start checkout. Unknown status: ${status}.`);
753
758
  }
754
759
  // Tracking start() failure
755
- (0, analytics_1.trackStandardStartFailure)("invalid_status", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
760
+ trackers.trackStartFailure("invalid_status", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
756
761
  setShowCheckout(false);
757
762
  return false;
758
763
  }
@@ -761,7 +766,7 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
761
766
  console.error("[Glomo-RN-SDK Standard] Cannot start checkout. Invalid checkout URL.");
762
767
  }
763
768
  // Tracking start() failure
764
- (0, analytics_1.trackStandardStartFailure)("invalid_url", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
769
+ trackers.trackStartFailure("invalid_url", orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
765
770
  setShowCheckout(false);
766
771
  return false;
767
772
  }
@@ -774,11 +779,23 @@ function useStandardCheckout({ server, publicKey, orderId, onPaymentSuccess, onP
774
779
  payViaBankCompletedHandledRef.current = false;
775
780
  setStatus("payment_in_progress");
776
781
  // Tracking successful start
777
- (0, analytics_1.trackStandardStartSuccess)(orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
782
+ trackers.trackStartSuccess(orderId, publicKey, devMode, mockMode, checkoutUrl, jailbreakDetectionInfo);
778
783
  // Opening the checkout modal
779
784
  setShowCheckout(true);
780
785
  return true;
781
- }, [devMode, status, publicKey, orderId, baseCheckoutUrl, checkoutUrl, mockMode, onSdkError, server]);
786
+ }, [
787
+ devMode,
788
+ status,
789
+ publicKey,
790
+ orderId,
791
+ baseCheckoutUrl,
792
+ checkoutUrl,
793
+ mockMode,
794
+ onSdkError,
795
+ server,
796
+ trackers,
797
+ internalOptions,
798
+ ]);
782
799
  // Initializing Segment analytics
783
800
  (0, react_1.useEffect)(() => {
784
801
  (0, segment_1.initializeSegment)(devMode);
@@ -12,7 +12,7 @@
12
12
  /**
13
13
  * Flow type for checkout
14
14
  */
15
- export type FlowType = "lrs" | "standard" | "unified";
15
+ export type FlowType = "lrs" | "standard" | "unified" | "subscriptions";
16
16
  /**
17
17
  * Common properties that should be included with every event
18
18
  */
@@ -34,7 +34,7 @@ export interface CommonEventProperties {
34
34
  export interface SdkError {
35
35
  type: "validation_error" | "device_forbidden";
36
36
  message: string;
37
- field?: "publicKey" | "orderId" | "baseCheckoutUrl" | "generatedCheckoutUrl";
37
+ field?: "publicKey" | "orderId" | "subscriptionId" | "baseCheckoutUrl" | "generatedCheckoutUrl";
38
38
  }
39
39
  /**
40
40
  * Tracks when the start() method has been called successfully
@@ -283,4 +283,89 @@ export declare function trackOrderTypeDetectionFailed(orderId: string, publicKey
283
283
  * @returns true if GlomoPay Segment is available, false otherwise
284
284
  */
285
285
  export declare function checkAnalyticsStatus(devMode?: boolean): boolean;
286
+ /**
287
+ * Tracks when the subscription checkout start() method is called (attempted)
288
+ */
289
+ export declare function trackSubscriptionStartAttempt(status: string, orderId: string, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string, jailbreakDetectionInfo?: {
290
+ jailbreakDetectionLibraryInstalled: boolean;
291
+ jailbreakDetected: boolean | null;
292
+ }): void;
293
+ /**
294
+ * Tracks when the subscription checkout start() method has been called successfully
295
+ */
296
+ export declare function trackSubscriptionStartSuccess(orderId: string, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string, jailbreakDetectionInfo?: {
297
+ jailbreakDetectionLibraryInstalled: boolean;
298
+ jailbreakDetected: boolean | null;
299
+ }): void;
300
+ /**
301
+ * Tracks when the subscription checkout start() method fails
302
+ */
303
+ export declare function trackSubscriptionStartFailure(reason: "device_forbidden" | "validation_error" | "payment_successful" | "invalid_status" | "invalid_url", orderId?: string, publicKey?: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string, jailbreakDetectionInfo?: {
304
+ jailbreakDetectionLibraryInstalled: boolean;
305
+ jailbreakDetected: boolean | null;
306
+ }): void;
307
+ /**
308
+ * Tracks when window.open is intercepted from the subscription checkout WebView
309
+ */
310
+ export declare function trackSubscriptionWindowOpen(source: "main" | "flow", url: string, orderId: string, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
311
+ /**
312
+ * Tracks when window.close is intercepted from the subscription checkout WebView
313
+ */
314
+ export declare function trackSubscriptionWindowClose(source: "main" | "flow", orderId: string, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
315
+ /**
316
+ * Tracks when invalid message data is received from a subscription checkout WebView
317
+ */
318
+ export declare function trackSubscriptionInvalidMessageReceived(webviewType: "main" | "flow", data: unknown, url: string | undefined, orderId: string, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
319
+ /**
320
+ * Tracks when subscription checkout onPaymentSuccess callback is invoked
321
+ */
322
+ export declare function trackSubscriptionPaymentSuccess(orderId: string, paymentId: string, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
323
+ /**
324
+ * Tracks when subscription checkout onPaymentFailure callback is invoked
325
+ */
326
+ export declare function trackSubscriptionPaymentFailure(orderId: string, paymentId: string, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
327
+ /**
328
+ * Tracks when subscription checkout onPaymentTerminate callback is invoked
329
+ */
330
+ export declare function trackSubscriptionPaymentTerminate(orderId: string, source: "user_dismiss" | "back_button" | "checkout_closed", publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
331
+ /**
332
+ * Tracks when subscription checkout onConnectionError callback is invoked
333
+ */
334
+ export declare function trackSubscriptionConnectionError(orderId: string, errorCode: number | undefined, publicKey: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
335
+ /**
336
+ * Tracks when subscription checkout onSdkError callback is invoked
337
+ */
338
+ export declare function trackSubscriptionSdkError(errors: Array<SdkError>, orderId?: string, publicKey?: string, devMode?: boolean, mockMode?: boolean, checkoutUrl?: string): void;
339
+ /**
340
+ * Internal telemetry - fires when a merchant uses functionality that is
341
+ * unsupported in the current context or deprecated.
342
+ * Fires at most once per detection site (callers use a ref guard).
343
+ */
344
+ export declare function trackUseOfUnsupportedFunctionality(name: string, orderId: string | undefined, publicKey: string, devMode: boolean, mockMode: boolean, checkoutUrl: string): void;
345
+ /**
346
+ * Internal tracker map interface.
347
+ * Each flow (standard, subscription) provides its own implementation.
348
+ * useStandardCheckout calls through this map at every analytics call site.
349
+ * Not exported to merchants via index.ts.
350
+ */
351
+ export interface CheckoutAnalyticsTrackers {
352
+ trackStartAttempt: typeof trackStandardStartAttempt;
353
+ trackStartSuccess: typeof trackStandardStartSuccess;
354
+ trackStartFailure: typeof trackStandardStartFailure;
355
+ trackWindowOpen: typeof trackStandardWindowOpen;
356
+ trackWindowClose: typeof trackStandardWindowClose;
357
+ trackInvalidMessageReceived: typeof trackStandardInvalidMessageReceived;
358
+ trackPaymentSuccess: typeof trackStandardPaymentSuccess;
359
+ trackPaymentFailure: typeof trackStandardPaymentFailure;
360
+ trackPaymentTerminate: typeof trackStandardPaymentTerminate;
361
+ trackConnectionError: typeof trackStandardConnectionError;
362
+ trackSdkError: typeof trackStandardSdkError;
363
+ trackBankTransferSubmitted: typeof trackStandardBankTransferSubmitted;
364
+ trackPayViaBankCompleted: typeof trackStandardPayViaBankCompleted;
365
+ trackPayViaBankBankConnectionSuccessful: typeof trackStandardPayViaBankBankConnectionSuccessful;
366
+ }
367
+ /** Standard checkout tracker map - delegates to trackStandard* functions */
368
+ export declare const standardCheckoutTrackers: CheckoutAnalyticsTrackers;
369
+ /** Subscription checkout tracker map - delegates to trackSubscription* functions, no-ops for bank transfer */
370
+ export declare const subscriptionCheckoutTrackers: CheckoutAnalyticsTrackers;
286
371
  //# sourceMappingURL=analytics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":"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"}