@primer-io/react-native 2.27.0 → 2.28.0-beta.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.
@@ -154,7 +154,7 @@ dependencies {
154
154
  api 'com.facebook.react:react-native:+'
155
155
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
156
156
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1"
157
- implementation 'io.primer:android:2.31.0'
157
+ implementation 'io.primer:android:2.32.0-express-checkout.1'
158
158
  testImplementation 'io.mockk:mockk:1.13.11'
159
159
  testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
160
160
  testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
@@ -28,6 +28,15 @@ data class PrimerCustomerRN(
28
28
  @Serializable
29
29
  data class PrimerOrderRN(
30
30
  val countryCode: CountryCode?,
31
+ val shipping: PrimerShippingRN?
32
+ )
33
+
34
+ @Serializable
35
+ data class PrimerShippingRN(
36
+ val amount: Int?,
37
+ val methodId: String?,
38
+ val methodName: String?,
39
+ val methodDescription: String?
31
40
  )
32
41
 
33
42
  @Serializable
@@ -25,13 +25,13 @@ data class PrimerSettingsRN(
25
25
 
26
26
  @Serializable
27
27
  data class LocaleSettingsRN(
28
- val languageCode: String? = null,
28
+ val languageCode: String? = null,
29
29
  val localeCode: String? = null
30
30
  )
31
31
 
32
32
  @Serializable
33
33
  data class PrimerPaymentMethodOptionsRN(
34
- @SerialName("android")
34
+ @SerialName("android")
35
35
  val androidSettingsRN: AndroidSettingsRN = AndroidSettingsRN(),
36
36
  var cardPaymentOptions: PrimerCardPaymentOptionsRN = PrimerCardPaymentOptionsRN(),
37
37
  var googlePayOptions: PrimerGooglePayOptionsRN = PrimerGooglePayOptionsRN(),
@@ -124,7 +124,7 @@ data class PrimerThreeDsOptionsRN(
124
124
  val threeDsOptionsAndroid: PrimerThreeDsAndroidOptionsRN? = null
125
125
  )
126
126
 
127
- @Serializable
127
+ @Serializable
128
128
  data class PrimerThreeDsAndroidOptionsRN(val threeDsAppRequestorUrl: String? = null)
129
129
 
130
130
  @Serializable
@@ -133,10 +133,20 @@ data class PrimerGooglePayOptionsRN(
133
133
  var allowedCardNetworks: List<String> =
134
134
  listOf("AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"),
135
135
  var buttonStyle: GooglePayButtonStyle = GooglePayButtonStyle.BLACK,
136
- @SerialName("isCaptureBillingAddressEnabled")
136
+ @SerialName("isCaptureBillingAddressEnabled")
137
137
  var captureBillingAddress: Boolean = false,
138
138
  @SerialName("isExistingPaymentMethodRequired")
139
- var existingPaymentMethodRequired: Boolean = false
139
+ var existingPaymentMethodRequired: Boolean = false,
140
+ var shippingAddressParameters: PrimerGoogleShippingAddressParametersRN? = null,
141
+ @SerialName("requireShippingMethod")
142
+ var requireShippingMethod: Boolean = false,
143
+ @SerialName("emailAddressRequired")
144
+ var emailAddressRequired: Boolean = false
145
+ )
146
+
147
+ @Serializable
148
+ data class PrimerGoogleShippingAddressParametersRN(
149
+ var phoneNumberRequired: Boolean = false
140
150
  )
141
151
 
142
152
  @Serializable
@@ -153,8 +163,8 @@ data class PrimerStripeOptionsRN(
153
163
  ) {
154
164
  @Serializable
155
165
  data class MandateDataRN(
156
- @SerialName("fullMandateText") val fullMandateText: String? = null,
157
- @SerialName("fullMandateStringResourceName") val fullMandateStringResName: String? = null,
166
+ @SerialName("fullMandateText") val fullMandateText: String? = null,
167
+ @SerialName("fullMandateStringResourceName") val fullMandateStringResName: String? = null,
158
168
  val merchantName: String? = null
159
169
  )
160
170
  }
@@ -1,6 +1,10 @@
1
1
  package com.primerioreactnative.extensions
2
2
 
3
3
  import com.primerioreactnative.datamodels.PrimerOrderRN
4
+ import com.primerioreactnative.datamodels.PrimerShippingRN
4
5
  import io.primer.android.domain.action.models.PrimerOrder
6
+ import io.primer.android.domain.action.models.PrimerShipping
5
7
 
6
- internal fun PrimerOrder.toPrimerOrderRN() = PrimerOrderRN(countryCode)
8
+ internal fun PrimerOrder.toPrimerOrderRN() = PrimerOrderRN(countryCode, shipping?.toPrimerShippingRN())
9
+
10
+ internal fun PrimerShipping.toPrimerShippingRN() = PrimerShippingRN(amount, methodId, methodName, methodDescription)
@@ -22,16 +22,22 @@ fun PrimerGooglePayOptionsRN.toPrimerGooglePayOptions() =
22
22
  allowedCardNetworks = allowedCardNetworks,
23
23
  buttonStyle = buttonStyle,
24
24
  captureBillingAddress = captureBillingAddress,
25
- existingPaymentMethodRequired = existingPaymentMethodRequired
25
+ existingPaymentMethodRequired = existingPaymentMethodRequired,
26
+ shippingAddressParameters = shippingAddressParameters?.toPrimerGoogleShippingAddressParameters(),
27
+ requireShippingMethod = requireShippingMethod,
28
+ emailAddressRequired = emailAddressRequired
26
29
  )
27
30
 
31
+ fun PrimerGoogleShippingAddressParametersRN.toPrimerGoogleShippingAddressParameters() =
32
+ PrimerGoogleShippingAddressParameters(phoneNumberRequired)
33
+
28
34
  fun PrimerKlarnaOptionsRN.toPrimerKlarnaOptions() =
29
35
  PrimerKlarnaOptions(recurringPaymentDescription, webViewTitle)
30
36
 
31
37
  fun PrimerThreeDsOptionsRN.toPrimerThreeDsOptions() =
32
38
  PrimerThreeDsOptions(threeDsOptionsAndroid?.threeDsAppRequestorUrl)
33
39
 
34
- fun PrimerStripeOptionsRN.toPrimerStripeOptions(context: Context) =
40
+ fun PrimerStripeOptionsRN.toPrimerStripeOptions(context: Context) =
35
41
  PrimerStripeOptions(mandateData = mandateData?.toMandateData(context), publishableKey = publishableKey)
36
42
 
37
43
  private fun PrimerStripeOptionsRN.MandateDataRN.toMandateData(context: Context) = when {
@@ -44,7 +50,7 @@ private fun PrimerStripeOptionsRN.MandateDataRN.toMandateData(context: Context)
44
50
  if (fullMandateText != null) {
45
51
  FullMandateStringData(fullMandateText)
46
52
  } else {
47
- error("Missing mandate data")
53
+ error("Missing mandate data")
48
54
  }
49
55
  }
50
56
  }
@@ -34,20 +34,51 @@ extension PrimerSettings {
34
34
 
35
35
  var applePayOptions: PrimerApplePayOptions?
36
36
  if let rnApplePayOptions = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["applePayOptions"] as? [String: Any]),
37
- let rnApplePayMerchantIdentifier = rnApplePayOptions["merchantIdentifier"] as? String,
38
- let rnApplePayMerchantName = rnApplePayOptions["merchantName"] as? String
37
+ let rnApplePayMerchantIdentifier = rnApplePayOptions["merchantIdentifier"] as? String
39
38
  {
39
+ let rnApplePayMerchantName = rnApplePayOptions["merchantName"] as? String
40
40
  let rnApplePayIsCaptureBillingAddressEnabled = (rnApplePayOptions["isCaptureBillingAddressEnabled"] as? Bool) ?? false
41
41
  let rnApplePayShowApplePayForUnsupportedDevice = (rnApplePayOptions["showApplePayForUnsupportedDevice"] as? Bool) ?? true
42
42
  let rnApplePayCheckProvidedNetworks = (rnApplePayOptions["checkProvidedNetworks"] as? Bool) ?? true
43
43
 
44
+ var shippingOptions: PrimerApplePayOptions.ShippingOptions? = nil
45
+ if let rnShippingOptions = rnApplePayOptions["shippingOptions"] as? [String: Any] {
46
+ let isCaptureShippingAddressEnabled = rnShippingOptions["isCaptureShippingAddressEnabled"] as? Bool ?? false
47
+ let requireShippingMethod = rnShippingOptions["requireShippingMethod"] as? Bool ?? false
48
+
49
+ var additionalShippingContactFields: [PrimerApplePayOptions.ShippingOptions.AdditionalShippingContactField]? = nil
50
+ if let additionalFieldsStrings = rnShippingOptions["additionalShippingContactFields"] as? [String] {
51
+ additionalShippingContactFields = additionalFieldsStrings.compactMap { fieldStr in
52
+ switch fieldStr {
53
+ case "name":
54
+ return .name
55
+ case "emailAddress":
56
+ return .emailAddress
57
+ case "phoneNumber":
58
+ return .phoneNumber
59
+ default:
60
+ return nil // Ignore unknown values or handle accordingly
61
+ }
62
+ }
63
+ }
64
+
65
+ shippingOptions = PrimerApplePayOptions.ShippingOptions(
66
+ isCaptureShippingAddressEnabled: isCaptureShippingAddressEnabled,
67
+ additionalShippingContactFields: additionalShippingContactFields,
68
+ requireShippingMethod: requireShippingMethod
69
+ )
70
+ }
71
+
44
72
  applePayOptions = PrimerApplePayOptions(
45
73
  merchantIdentifier: rnApplePayMerchantIdentifier,
46
74
  merchantName: rnApplePayMerchantName,
47
75
  isCaptureBillingAddressEnabled: rnApplePayIsCaptureBillingAddressEnabled,
48
76
  showApplePayForUnsupportedDevice: rnApplePayShowApplePayForUnsupportedDevice,
49
- checkProvidedNetworks: rnApplePayCheckProvidedNetworks)
77
+ checkProvidedNetworks: rnApplePayCheckProvidedNetworks,
78
+ shippingOptions: shippingOptions
79
+ )
50
80
  }
81
+
51
82
 
52
83
  var klarnaOptions: PrimerKlarnaOptions?
53
84
  if let rnKlarnaRecurringPaymentDescription = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["klarnaOptions"] as? [String: Any])?["recurringPaymentDescription"] as? String {
@@ -7,7 +7,6 @@
7
7
 
8
8
  import Foundation
9
9
  import PrimerSDK
10
- import PrimerStripeSDK
11
10
  import React
12
11
 
13
12
  @objc
@@ -21,6 +21,13 @@ interface IPrimerLineItem {
21
21
  export declare type PrimerOrder = IPrimerOrder;
22
22
  interface IPrimerOrder {
23
23
  countryCode?: string;
24
+ shipping?: IPrimerShipping;
25
+ }
26
+ interface IPrimerShipping {
27
+ amount?: number;
28
+ methodId?: string;
29
+ methodName?: string;
30
+ methodDescription?: string;
24
31
  }
25
32
  export declare type PrimerCustomer = IPrimerCustomer;
26
33
  interface IPrimerCustomer {
@@ -1 +1 @@
1
- {"version":3,"file":"PrimerClientSession.d.ts","sourceRoot":"","sources":["../../../src/models/PrimerClientSession.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,UAAU,oBAAoB;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,oBAAY,cAAc,GAAG,eAAe,CAAC;AAE7C,UAAU,eAAe;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,WAAW,GAAG,YAAY,CAAC;AAEvC,UAAU,YAAY;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oBAAY,cAAc,GAAG,eAAe,CAAC;AAE7C,UAAU,eAAe;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,cAAc,CAAC;CACpC;AAED,oBAAY,aAAa,GAAG,cAAc,CAAC;AAE3C,UAAU,cAAc;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"PrimerClientSession.d.ts","sourceRoot":"","sources":["../../../src/models/PrimerClientSession.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,UAAU,oBAAoB;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,oBAAY,cAAc,GAAG,eAAe,CAAC;AAE7C,UAAU,eAAe;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,WAAW,GAAG,YAAY,CAAC;AAEvC,UAAU,YAAY;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,UAAU,eAAe;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,oBAAY,cAAc,GAAG,eAAe,CAAC;AAE7C,UAAU,eAAe;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,cAAc,CAAC;CACpC;AAED,oBAAY,aAAa,GAAG,cAAc,CAAC;AAE3C,UAAU,cAAc;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -68,11 +68,30 @@ interface IPrimerApayaOptions {
68
68
  }
69
69
  interface IPrimerApplePayOptions {
70
70
  merchantIdentifier: string;
71
- merchantName: string;
71
+ /**
72
+ * @deprecated Use Client Session API to provide merchant name value: https://primer.io/docs/payment-methods/apple-pay/direct-integration#prepare-the-client-session
73
+ */
74
+ merchantName?: string;
72
75
  isCaptureBillingAddressEnabled?: boolean;
76
+ /**
77
+ * If you don't want to present the Apple Pay option when the device doesn't support it, set this to `false`.
78
+ * Default value is `true`.
79
+ */
73
80
  showApplePayForUnsupportedDevice?: boolean;
81
+ /**
82
+ * Due to reports about the Apple Pay flow not presenting because `canMakePayments(usingNetworks:)` was returning false
83
+ * when there were no cards in the Wallet, we introduced this flag to continue supporting the old behavior.
84
+ * Default value is `true`.
85
+ */
74
86
  checkProvidedNetworks?: boolean;
87
+ shippingOptions?: IShippingOptions;
88
+ }
89
+ interface IShippingOptions {
90
+ isCaptureShippingAddressEnabled: boolean;
91
+ additionalShippingContactFields?: AdditionalShippingContactField[];
92
+ requireShippingMethod: boolean;
75
93
  }
94
+ declare type AdditionalShippingContactField = 'name' | 'emailAddress' | 'phoneNumber';
76
95
  interface IPrimerCardPaymentOptions {
77
96
  is3DSOnVaultingEnabled: boolean;
78
97
  }
@@ -85,6 +104,12 @@ interface IPrimerGooglePayOptions {
85
104
  allowedCardNetworks?: string[];
86
105
  isCaptureBillingAddressEnabled?: boolean;
87
106
  isExistingPaymentMethodRequired?: boolean;
107
+ shippingAddressParameters?: IPrimerGoogleShippingAddressParameters;
108
+ requireShippingMethod?: boolean;
109
+ emailAddressRequired?: boolean;
110
+ }
111
+ interface IPrimerGoogleShippingAddressParameters {
112
+ isPhoneNumberRequired?: boolean;
88
113
  }
89
114
  interface IPrimerKlarnaOptions {
90
115
  recurringPaymentDescription?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PrimerSettings.d.ts","sourceRoot":"","sources":["../../../src/models/PrimerSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrimerSettings.d.ts","sourceRoot":"","sources":["../../../src/models/PrimerSettings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "2.27.0",
3
+ "version": "2.28.0-beta.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.31.0"
19
+ s.dependency "PrimerSDK", "2.32.0-express-checkout.1"
20
20
  end
@@ -26,6 +26,14 @@ export type PrimerOrder = IPrimerOrder;
26
26
 
27
27
  interface IPrimerOrder {
28
28
  countryCode?: string;
29
+ shipping?: IPrimerShipping;
30
+ }
31
+
32
+ interface IPrimerShipping {
33
+ amount?: number;
34
+ methodId?: string;
35
+ methodName?: string;
36
+ methodDescription?: string;
29
37
  }
30
38
 
31
39
  export type PrimerCustomer = IPrimerCustomer;
@@ -50,4 +58,4 @@ interface IPrimerAddress {
50
58
  city?: string;
51
59
  state?: string;
52
60
  countryCode?: string;
53
- }
61
+ }
@@ -94,11 +94,30 @@ interface IPrimerApayaOptions {
94
94
 
95
95
  interface IPrimerApplePayOptions {
96
96
  merchantIdentifier: string;
97
- merchantName: string;
97
+ /**
98
+ * @deprecated Use Client Session API to provide merchant name value: https://primer.io/docs/payment-methods/apple-pay/direct-integration#prepare-the-client-session
99
+ */
100
+ merchantName?: string;
98
101
  isCaptureBillingAddressEnabled?: boolean;
102
+ /**
103
+ * If you don't want to present the Apple Pay option when the device doesn't support it, set this to `false`.
104
+ * Default value is `true`.
105
+ */
99
106
  showApplePayForUnsupportedDevice?: boolean;
107
+ /**
108
+ * Due to reports about the Apple Pay flow not presenting because `canMakePayments(usingNetworks:)` was returning false
109
+ * when there were no cards in the Wallet, we introduced this flag to continue supporting the old behavior.
110
+ * Default value is `true`.
111
+ */
100
112
  checkProvidedNetworks?: boolean;
113
+ shippingOptions?: IShippingOptions;
101
114
  }
115
+ interface IShippingOptions {
116
+ isCaptureShippingAddressEnabled: boolean;
117
+ additionalShippingContactFields?: AdditionalShippingContactField[];
118
+ requireShippingMethod: boolean;
119
+ }
120
+ type AdditionalShippingContactField = 'name' | 'emailAddress' | 'phoneNumber';
102
121
 
103
122
  interface IPrimerCardPaymentOptions {
104
123
  is3DSOnVaultingEnabled: boolean;
@@ -114,6 +133,13 @@ interface IPrimerGooglePayOptions {
114
133
  allowedCardNetworks?: string[];
115
134
  isCaptureBillingAddressEnabled?: boolean;
116
135
  isExistingPaymentMethodRequired?: boolean;
136
+ shippingAddressParameters?: IPrimerGoogleShippingAddressParameters;
137
+ requireShippingMethod?: boolean;
138
+ emailAddressRequired?: boolean;
139
+ }
140
+
141
+ interface IPrimerGoogleShippingAddressParameters {
142
+ isPhoneNumberRequired?: boolean;
117
143
  }
118
144
 
119
145
  interface IPrimerKlarnaOptions {
@@ -163,4 +189,4 @@ interface IPrimerStripeTemplateMandateData extends IPrimerStripeMandateData {
163
189
  interface IPrimerFullMandateData extends IPrimerStripeMandateData {
164
190
  fullMandateText: string;
165
191
  fullMandateStringResourceName?: string;
166
- }
192
+ }