@primer-io/react-native 2.26.3 → 2.27.1

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 (77) hide show
  1. package/android/.project +6 -0
  2. package/android/.settings/org.eclipse.buildship.core.prefs +5 -5
  3. package/android/build.gradle +1 -3
  4. package/android/src/main/AndroidManifest.xml +1 -4
  5. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +3 -3
  6. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +4 -3
  7. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +2 -2
  8. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +46 -9
  9. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +4 -0
  10. package/android/src/main/java/com/primerioreactnative/components/manager/ach/AchMandateManager.kt +70 -0
  11. package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +283 -0
  12. package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +7 -37
  13. package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +5 -31
  14. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutAdditionalInfoRN.kt +17 -4
  15. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +1 -1
  16. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +44 -37
  17. package/android/src/main/java/com/primerioreactnative/datamodels/ach/AchUserDetailsCollectableDataRN.kt +22 -0
  18. package/android/src/main/java/com/primerioreactnative/datamodels/ach/AchUserDetailsStepRN.kt +22 -0
  19. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsCollectableData.kt +11 -0
  20. package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsStep.kt +14 -0
  21. package/android/src/main/java/com/primerioreactnative/extensions/JSONExtensions.kt +41 -0
  22. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +4 -0
  23. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +42 -15
  24. package/ios/Sources/DataModels/Ach Component/RNTAchUserDetailsCollectableData.swift +54 -0
  25. package/ios/Sources/DataModels/Ach Component/RNTAchUserDetailsStep.swift +40 -0
  26. package/ios/Sources/DataModels/PrimerCheckoutAdditionalInfoRN.swift +61 -0
  27. package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +24 -1
  28. package/ios/Sources/Headless Universal Checkout/Managers/Ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.m +28 -0
  29. package/ios/Sources/Headless Universal Checkout/Managers/Ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.swift +233 -0
  30. package/ios/Sources/Headless Universal Checkout/Managers/Ach/RNTAchMandateManager.m +16 -0
  31. package/ios/Sources/Headless Universal Checkout/Managers/Ach/RNTAchMandateManager.swift +53 -0
  32. package/ios/Sources/Headless Universal Checkout/Managers/Klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.swift +2 -2
  33. package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +55 -7
  34. package/ios/Sources/version.swift +1 -1
  35. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +106 -0
  36. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -0
  37. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +38 -0
  38. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -0
  39. package/lib/commonjs/index.js +70 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/models/ach/AchCollectableData.js +6 -0
  42. package/lib/commonjs/models/ach/AchCollectableData.js.map +1 -0
  43. package/lib/commonjs/models/ach/AchSteps.js +6 -0
  44. package/lib/commonjs/models/ach/AchSteps.js.map +1 -0
  45. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +99 -0
  46. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -0
  47. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +31 -0
  48. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -0
  49. package/lib/module/index.js +8 -0
  50. package/lib/module/index.js.map +1 -1
  51. package/lib/module/models/ach/AchCollectableData.js +2 -0
  52. package/lib/module/models/ach/AchCollectableData.js.map +1 -0
  53. package/lib/module/models/ach/AchSteps.js +2 -0
  54. package/lib/module/models/ach/AchSteps.js.map +1 -0
  55. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts +53 -0
  56. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts.map +1 -0
  57. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts +12 -0
  58. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts.map +1 -0
  59. package/lib/typescript/index.d.ts +8 -0
  60. package/lib/typescript/index.d.ts.map +1 -1
  61. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +10 -0
  62. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -1
  63. package/lib/typescript/models/PrimerSettings.d.ts +14 -0
  64. package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
  65. package/lib/typescript/models/ach/AchCollectableData.d.ts +25 -0
  66. package/lib/typescript/models/ach/AchCollectableData.d.ts.map +1 -0
  67. package/lib/typescript/models/ach/AchSteps.d.ts +28 -0
  68. package/lib/typescript/models/ach/AchSteps.d.ts.map +1 -0
  69. package/package.json +1 -1
  70. package/primer-io-react-native.podspec +1 -1
  71. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.ts +158 -0
  72. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.ts +32 -0
  73. package/src/index.tsx +8 -0
  74. package/src/models/PrimerCheckoutAdditionalInfo.ts +19 -5
  75. package/src/models/PrimerSettings.ts +19 -0
  76. package/src/models/ach/AchCollectableData.ts +29 -0
  77. package/src/models/ach/AchSteps.ts +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AchCollectableData.d.ts","sourceRoot":"","sources":["../../../../src/models/ach/AchCollectableData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF,oBAAY,kBAAkB,GAAG,6BAA6B,CAAA;AAE9D,oBAAY,6BAA6B,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,CAAA;AAExF;;GAEG;AACH,oBAAY,YAAY,GAAG;IACvB,mBAAmB,EAAE,WAAW,CAAC;IACjC,KAAK,EAAE,MAAM,CAAA;CAChB,GAAG,6BAA6B,CAAA;AAEjC;;GAEG;AACH,oBAAY,WAAW,GAAG;IACtB,mBAAmB,EAAE,UAAU,CAAC;IAChC,KAAK,EAAE,MAAM,CAAA;CAChB,GAAG,6BAA6B,CAAA;AAEjC;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC1B,mBAAmB,EAAE,cAAc,CAAC;IACpC,KAAK,EAAE,MAAM,CAAA;CAChB,GAAG,6BAA6B,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { NamedComponentStep } from "../NamedComponentStep";
2
+ export declare type AchStep = AchUserDetailsStep;
3
+ export declare type AchUserDetailsStep = UserDetailsRetrieved | UserDetailsCollected;
4
+ /**
5
+ * A type representing the retrieved user details.
6
+ */
7
+ export declare type UserDetailsRetrieved = {
8
+ stepName: "userDetailsRetrieved";
9
+ /**
10
+ * The first name previously sent on client session creation.
11
+ */
12
+ firstName: string;
13
+ /**
14
+ * The last name previously sent on client session creation.
15
+ */
16
+ lastName: string;
17
+ /**
18
+ * The email address previously sent on client session creation.
19
+ */
20
+ emailAddress: string;
21
+ } & NamedComponentStep;
22
+ /**
23
+ * A type representing the collected user details.
24
+ */
25
+ export declare type UserDetailsCollected = {
26
+ stepName: "userDetailsCollected";
27
+ } & NamedComponentStep;
28
+ //# sourceMappingURL=AchSteps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AchSteps.d.ts","sourceRoot":"","sources":["../../../../src/models/ach/AchSteps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,oBAAY,OAAO,GAAG,kBAAkB,CAAA;AAExC,oBAAY,kBAAkB,GAAG,oBAAoB,GAAG,oBAAoB,CAAA;AAE5E;;GAEG;AACH,oBAAY,oBAAoB,GAAG;IAC/B,QAAQ,EAAE,sBAAsB,CAAC;IACjC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;CACvB,GAAG,kBAAkB,CAAA;AAEtB;;GAEG;AACH,oBAAY,oBAAoB,GAAG;IAAE,QAAQ,EAAE,sBAAsB,CAAA;CAAE,GAAG,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "2.26.3",
3
+ "version": "2.27.1",
4
4
  "description": "Primer SDK for RN",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -16,5 +16,5 @@ Pod::Spec.new do |s|
16
16
  s.source_files = "ios/**/*.{h,m,mm,swift}"
17
17
 
18
18
  s.dependency "React-Core"
19
- s.dependency "PrimerSDK", "2.30.1"
19
+ s.dependency "PrimerSDK", "2.31.3"
20
20
  end
@@ -0,0 +1,158 @@
1
+ import {
2
+ NativeEventEmitter,
3
+ NativeModules,
4
+ EmitterSubscription,
5
+ } from 'react-native';
6
+ import { PrimerComponentDataValidationError, PrimerInvalidComponentData, PrimerValidComponentData, PrimerValidatingComponentData } from 'src/models/PrimerComponentDataValidation';
7
+ import { PrimerError } from 'src/models/PrimerError';
8
+ import { EventType, eventTypes } from './Utils/EventType';
9
+ import { AchStep, UserDetailsRetrieved } from 'src/models/ach/AchSteps';
10
+ import { AchValidatableData } from 'src/models/ach/AchCollectableData';
11
+
12
+ const { RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent } = NativeModules;
13
+
14
+ const eventEmitter = new NativeEventEmitter(RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent);
15
+ export interface AchManagerProps {
16
+ paymentMethodType: string;
17
+ onStep?: (data: AchStep) => void;
18
+ onError?: (error: PrimerError) => void;
19
+ onInvalid?: (data: PrimerInvalidComponentData<AchValidatableData>) => void;
20
+ onValid?: (data: PrimerValidComponentData<AchValidatableData>) => void;
21
+ onValidating?: (data: PrimerValidatingComponentData<AchValidatableData>) => void;
22
+ onValidationError?: (data: PrimerComponentDataValidationError<AchValidatableData>) => void;
23
+ }
24
+
25
+ export interface StripeAchUserDetailsComponent {
26
+ /**
27
+ * Starts the component, causing the {@link UserDetailsRetrieved} step
28
+ * to be emitted.
29
+ */
30
+ start(): Promise<void>;
31
+
32
+ /**
33
+ * Sets the customer's first name.
34
+ * @param value The customer's first name.
35
+ */
36
+ handleFirstNameChange(value: String): Promise<void>;
37
+
38
+ /**
39
+ * Sets the customer's last name.
40
+ * @param value The customer's last name.
41
+ */
42
+ handleLastNameChange(value: String): Promise<void>;
43
+
44
+ /**
45
+ * Sets the customer's email address.
46
+ * @param value The customer's email address.
47
+ */
48
+ handleEmailAddressChange(value: String): Promise<void>;
49
+
50
+ /**
51
+ * Submits the component, initiating the payment authorization process.
52
+ * This function should only be called after setting the customer first name,
53
+ * last name and email address.
54
+ */
55
+ submit(): Promise<void>;
56
+ }
57
+
58
+ export class PrimerHeadlessUniversalCheckoutAchManager {
59
+ ///////////////////////////////////////////
60
+ // Init
61
+ ///////////////////////////////////////////
62
+ constructor() { }
63
+
64
+ ///////////////////////////////////////////
65
+ // API
66
+ ///////////////////////////////////////////
67
+
68
+ async provide(props: AchManagerProps): Promise<StripeAchUserDetailsComponent | any> {
69
+ await this.configureListeners(props);
70
+
71
+ if (props.paymentMethodType == "STRIPE_ACH") {
72
+ const component: StripeAchUserDetailsComponent = {
73
+ start: async () => {
74
+ RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent.start();
75
+ },
76
+ submit: async () => {
77
+ RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent.submit();
78
+ },
79
+ handleFirstNameChange: async (value: String) => {
80
+ RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent.onSetFirstName(value);
81
+ },
82
+ handleLastNameChange: async (value: String) => {
83
+ RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent.onSetLastName(value);
84
+ },
85
+ handleEmailAddressChange: async (value: String) => {
86
+ RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent.onSetEmailAddress(value);
87
+ }
88
+ }
89
+ await RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent.configure();
90
+ return component;
91
+ } else {
92
+ return null;
93
+ }
94
+ }
95
+
96
+ private async configureListeners(props: AchManagerProps): Promise<void> {
97
+ if (props?.onStep) {
98
+ this.addListener('onStep', (data) => {
99
+ props.onStep?.(data);
100
+ });
101
+ }
102
+
103
+ if (props?.onInvalid) {
104
+ this.addListener('onInvalid', (data) => {
105
+ props.onInvalid?.(data);
106
+ });
107
+ }
108
+
109
+ if (props?.onError) {
110
+ this.addListener('onError', (data) => {
111
+ props.onError?.(data);
112
+ });
113
+ }
114
+
115
+ if (props?.onValid) {
116
+ this.addListener('onValid', (data) => {
117
+ props.onValid?.(data);
118
+ });
119
+ }
120
+
121
+ if (props?.onValidating) {
122
+ this.addListener('onValidating', (data) => {
123
+ props.onValidating?.(data);
124
+ });
125
+ }
126
+
127
+ if (props?.onValidationError) {
128
+ this.addListener('onValidationError', (data) => {
129
+ props.onValidationError?.(data);
130
+ });
131
+ }
132
+ }
133
+
134
+ ///////////////////////////////////////////
135
+ // HELPERS
136
+ ///////////////////////////////////////////
137
+
138
+ async addListener(
139
+ eventType: EventType,
140
+ listener: (...args: any[]) => any
141
+ ): Promise<EmitterSubscription> {
142
+ return eventEmitter.addListener(eventType, listener);
143
+ }
144
+
145
+ removeListener(subscription: EmitterSubscription): void {
146
+ return subscription.remove();
147
+ }
148
+
149
+ removeAllListenersForEvent(eventType: EventType) {
150
+ eventEmitter.removeAllListeners(eventType);
151
+ }
152
+
153
+ removeAllListeners() {
154
+ eventTypes.forEach((eventType) =>
155
+ this.removeAllListenersForEvent(eventType)
156
+ );
157
+ }
158
+ }
@@ -0,0 +1,32 @@
1
+ import {
2
+ NativeModules
3
+ } from 'react-native';
4
+
5
+ const { RNTAchMandateManager } = NativeModules;
6
+
7
+ export class PrimerHeadlessUniversalCheckoutAchMandateManager {
8
+ ///////////////////////////////////////////
9
+ // Init
10
+ ///////////////////////////////////////////
11
+ constructor() { }
12
+
13
+ ///////////////////////////////////////////
14
+ // API
15
+ ///////////////////////////////////////////
16
+
17
+ /**
18
+ * Accepts the ACH mandate, completing the payment.
19
+ */
20
+ async acceptMandate(): Promise<void> {
21
+ console.log("Accepting mandate");
22
+ await RNTAchMandateManager.acceptMandate();
23
+ }
24
+
25
+ /**
26
+ * Declines the ACH mandate, cancelling the payment.
27
+ */
28
+ async declineMandate(): Promise<void> {
29
+ console.log("Declining mandate");
30
+ await RNTAchMandateManager.declineMandate();
31
+ }
32
+ }
package/src/index.tsx CHANGED
@@ -76,6 +76,14 @@ import { PaymentSessionCreated, PaymentSessionAuthorized, PaymentSessionFinalize
76
76
  export { PaymentSessionCreated, PaymentSessionAuthorized, PaymentSessionFinalized, PaymentViewLoaded, KlarnaPaymentStep };
77
77
  import { PrimerKlarnaPaymentView } from './HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView'
78
78
  export { PrimerKlarnaPaymentView }
79
+ import { UserDetailsRetrieved, UserDetailsCollected, AchStep } from './models/ach/AchSteps';
80
+ export { UserDetailsRetrieved as CollectUserDetails, UserDetailsCollected, AchStep }
81
+ import { AchFirstName, AchLastName, AchEmailAddress, AchValidatableData } from './models/ach/AchCollectableData';
82
+ export { AchFirstName, AchLastName, AchEmailAddress, AchValidatableData };
83
+ import { PrimerHeadlessUniversalCheckoutAchManager, StripeAchUserDetailsComponent, AchManagerProps } from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager';
84
+ export { PrimerHeadlessUniversalCheckoutAchManager as AchManager, StripeAchUserDetailsComponent, AchManagerProps };
85
+ import { PrimerHeadlessUniversalCheckoutAchMandateManager } from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager';
86
+ export { PrimerHeadlessUniversalCheckoutAchMandateManager as AchMandateManager };
79
87
 
80
88
  import { PrimerHeadlessUniversalCheckoutComponentWithRedirectManager, BanksComponent, ComponentWithRedirectManagerProps } from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager';
81
89
  export { PrimerHeadlessUniversalCheckoutComponentWithRedirectManager as ComponentWithRedirectManager, BanksComponent, ComponentWithRedirectManagerProps };
@@ -1,35 +1,49 @@
1
1
  export type PrimerCheckoutAdditionalInfo = IPrimerCheckoutAdditionalInfo;
2
2
 
3
- interface IPrimerCheckoutAdditionalInfo {}
3
+ interface IPrimerCheckoutAdditionalInfo {
4
+ /**
5
+ * The name of this additional info.
6
+ */
7
+ additionalInfoName: string
8
+ }
4
9
 
5
- export type MultibancoCheckoutAdditionalInfo = IMultibancoCheckoutAdditionalInfo;
6
10
 
11
+ export type MultibancoCheckoutAdditionalInfo = IMultibancoCheckoutAdditionalInfo;
7
12
  interface IMultibancoCheckoutAdditionalInfo extends IPrimerCheckoutAdditionalInfo {
8
13
  expiresAt?: string;
9
14
  entity?: string;
10
15
  reference?: string;
16
+ additionalInfoName: "MultibancoCheckoutAdditionalInfo";
11
17
  }
12
18
 
19
+
13
20
  export type PrimerCheckoutQRCodeInfo = IPrimerCheckoutQRCodeInfo;
14
21
 
15
22
  interface IPrimerCheckoutQRCodeInfo extends IPrimerCheckoutAdditionalInfo {}
16
23
 
17
24
  export type PromptPayCheckoutAdditionalInfo = IPromptPayCheckoutAdditionalInfo;
18
-
19
25
  interface IPromptPayCheckoutAdditionalInfo extends IPrimerCheckoutQRCodeInfo {
20
26
  expiresAt: string;
21
27
  qrCodeUrl?: string;
22
28
  qrCodeBase64?: string;
29
+ additionalInfoName: "PromptPayCheckoutAdditionalInfo";
23
30
  }
24
31
 
32
+
25
33
  export type PrimerCheckoutVoucherAdditionalInfo = IPrimerCheckoutVoucherAdditionalInfo;
26
34
 
27
35
  interface IPrimerCheckoutVoucherAdditionalInfo extends IPrimerCheckoutAdditionalInfo {}
28
36
 
29
- export type XenditCheckoutVoucherAdditionalInfo = IXenditCheckoutVoucherAdditionalInfo;
30
37
 
38
+ export type XenditCheckoutVoucherAdditionalInfo = IXenditCheckoutVoucherAdditionalInfo;
31
39
  interface IXenditCheckoutVoucherAdditionalInfo extends IPrimerCheckoutVoucherAdditionalInfo {
32
40
  expiresAt: string;
33
41
  couponCode: string;
34
42
  retailerName: string;
35
- }
43
+ additionalInfoName: "XenditCheckoutVoucherAdditionalInfo";
44
+ }
45
+
46
+
47
+ export type DisplayStripeAchMandateAdditionalInfo = {
48
+ additionalInfoName: "DisplayStripeAchMandateAdditionalInfo";
49
+ } & IPrimerCheckoutAdditionalInfo;
@@ -85,6 +85,7 @@ interface IPrimerPaymentMethodOptions {
85
85
  googlePayOptions?: IPrimerGooglePayOptions;
86
86
  klarnaOptions?: IPrimerKlarnaOptions;
87
87
  threeDsOptions?: IPrimerThreeDsOptions;
88
+ stripeOptions?: IPrimerStripeOptions;
88
89
  }
89
90
 
90
91
  interface IPrimerApayaOptions {
@@ -145,3 +146,21 @@ interface IPrimerThreeDsOptions {
145
146
  threeDsAppRequestorUrl?: string;
146
147
  };
147
148
  }
149
+
150
+ //----------------------------------------
151
+
152
+ interface IPrimerStripeOptions {
153
+ publishableKey?: string;
154
+ mandateData?: IPrimerStripeTemplateMandateData | IPrimerFullMandateData;
155
+ }
156
+
157
+ interface IPrimerStripeMandateData {}
158
+
159
+ interface IPrimerStripeTemplateMandateData extends IPrimerStripeMandateData {
160
+ merchantName: string;
161
+ }
162
+
163
+ interface IPrimerFullMandateData extends IPrimerStripeMandateData {
164
+ fullMandateText: string;
165
+ fullMandateStringResourceName?: string;
166
+ }
@@ -0,0 +1,29 @@
1
+ import { NamedComponentValidatableData } from "../NamedComponentValidatableData";
2
+
3
+ export type AchValidatableData = AchUserDetailsValidatableData
4
+
5
+ export type AchUserDetailsValidatableData = AchFirstName | AchLastName | AchEmailAddress
6
+
7
+ /**
8
+ * A type representing representing the customer's first name.
9
+ */
10
+ export type AchFirstName = {
11
+ validatableDataName: "firstName",
12
+ value: string
13
+ } & NamedComponentValidatableData
14
+
15
+ /**
16
+ * A type representing representing the customer's last name.
17
+ */
18
+ export type AchLastName = {
19
+ validatableDataName: "lastName",
20
+ value: string
21
+ } & NamedComponentValidatableData
22
+
23
+ /**
24
+ * A type representing representing the customer's email address.
25
+ */
26
+ export type AchEmailAddress = {
27
+ validatableDataName: "emailAddress",
28
+ value: string
29
+ } & NamedComponentValidatableData
@@ -0,0 +1,29 @@
1
+ import { NamedComponentStep } from "../NamedComponentStep";
2
+
3
+ export type AchStep = AchUserDetailsStep
4
+
5
+ export type AchUserDetailsStep = UserDetailsRetrieved | UserDetailsCollected
6
+
7
+ /**
8
+ * A type representing the retrieved user details.
9
+ */
10
+ export type UserDetailsRetrieved = {
11
+ stepName: "userDetailsRetrieved",
12
+ /**
13
+ * The first name previously sent on client session creation.
14
+ */
15
+ firstName: string,
16
+ /**
17
+ * The last name previously sent on client session creation.
18
+ */
19
+ lastName: string,
20
+ /**
21
+ * The email address previously sent on client session creation.
22
+ */
23
+ emailAddress: string
24
+ } & NamedComponentStep
25
+
26
+ /**
27
+ * A type representing the collected user details.
28
+ */
29
+ export type UserDetailsCollected = { stepName: "userDetailsCollected" } & NamedComponentStep;