@onramper/onramper-react-native 1.1.1 → 1.2.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 (56) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +11 -0
  3. package/ios/Frameworks/OnramperSDK.xcframework/Info.plist +5 -5
  4. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64/OnramperSDK.framework/Modules/OnramperSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  5. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64/OnramperSDK.framework/Modules/OnramperSDK.swiftmodule/arm64-apple-ios.swiftinterface +25 -2
  6. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64/OnramperSDK.framework/OnramperSDK +0 -0
  7. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64/OnramperSDK.framework/OnramperSDK_OnramperSDK.bundle/PrivacyInfo.xcprivacy +36 -0
  8. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64/OnramperSDK.framework/PrivacyInfo.xcprivacy +36 -0
  9. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64/dSYMs/OnramperSDK.framework.dSYM/Contents/Resources/DWARF/OnramperSDK +0 -0
  10. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64/dSYMs/OnramperSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/OnramperSDK.yml +2684 -2578
  11. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/OnramperSDK.framework/Modules/OnramperSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  12. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/OnramperSDK.framework/Modules/OnramperSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +25 -2
  13. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/OnramperSDK.framework/Modules/OnramperSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  14. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/OnramperSDK.framework/Modules/OnramperSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +25 -2
  15. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/OnramperSDK.framework/OnramperSDK +0 -0
  16. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/OnramperSDK.framework/OnramperSDK_OnramperSDK.bundle/PrivacyInfo.xcprivacy +36 -0
  17. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/OnramperSDK.framework/PrivacyInfo.xcprivacy +36 -0
  18. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/OnramperSDK.framework.dSYM/Contents/Resources/DWARF/OnramperSDK +0 -0
  19. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/OnramperSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/OnramperSDK.yml +2684 -2578
  20. package/ios/Frameworks/OnramperSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/OnramperSDK.framework.dSYM/Contents/Resources/Relocations/x86_64/OnramperSDK.yml +2651 -2545
  21. package/ios/HybridOnramperNitro.swift +32 -4
  22. package/ios/OnramperCheckoutBridge.swift +33 -0
  23. package/lib/commonjs/OnramperClient.js +47 -3
  24. package/lib/commonjs/OnramperClient.js.map +1 -1
  25. package/lib/module/OnramperClient.js +47 -3
  26. package/lib/module/OnramperClient.js.map +1 -1
  27. package/lib/typescript/commonjs/src/OnramperClient.d.ts +17 -2
  28. package/lib/typescript/commonjs/src/OnramperClient.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/src/index.d.ts +1 -1
  30. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/src/specs/OnramperNitro.nitro.d.ts +2 -1
  32. package/lib/typescript/commonjs/src/specs/OnramperNitro.nitro.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/src/types.d.ts +9 -0
  34. package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
  35. package/lib/typescript/module/src/OnramperClient.d.ts +17 -2
  36. package/lib/typescript/module/src/OnramperClient.d.ts.map +1 -1
  37. package/lib/typescript/module/src/index.d.ts +1 -1
  38. package/lib/typescript/module/src/index.d.ts.map +1 -1
  39. package/lib/typescript/module/src/specs/OnramperNitro.nitro.d.ts +2 -1
  40. package/lib/typescript/module/src/specs/OnramperNitro.nitro.d.ts.map +1 -1
  41. package/lib/typescript/module/src/types.d.ts +9 -0
  42. package/lib/typescript/module/src/types.d.ts.map +1 -1
  43. package/nitrogen/generated/ios/OnramperReactNative-Swift-Cxx-Bridge.cpp +8 -0
  44. package/nitrogen/generated/ios/OnramperReactNative-Swift-Cxx-Bridge.hpp +38 -0
  45. package/nitrogen/generated/ios/OnramperReactNative-Swift-Cxx-Umbrella.hpp +1 -0
  46. package/nitrogen/generated/ios/c++/HybridOnramperNitroSpecSwift.hpp +9 -2
  47. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +53 -0
  48. package/nitrogen/generated/ios/swift/HybridOnramperNitroSpec.swift +2 -1
  49. package/nitrogen/generated/ios/swift/HybridOnramperNitroSpec_cxx.swift +24 -2
  50. package/nitrogen/generated/shared/c++/HybridOnramperNitroSpec.cpp +1 -0
  51. package/nitrogen/generated/shared/c++/HybridOnramperNitroSpec.hpp +3 -1
  52. package/package.json +2 -2
  53. package/src/OnramperClient.ts +55 -2
  54. package/src/index.ts +1 -0
  55. package/src/specs/OnramperNitro.nitro.ts +7 -2
  56. package/src/types.ts +27 -0
@@ -11,10 +11,12 @@ import SwiftUI
11
11
  final class HybridOnramperNitro: HybridOnramperNitroSpec {
12
12
  private var client: OnramperClient?
13
13
  private var stateObservation: AnyCancellable?
14
+ private var transactionIdObservation: AnyCancellable?
14
15
  private var eventTask: Task<Void, Never>?
15
16
 
16
17
  private var onState: ((String) -> Void)?
17
18
  private var onEvent: ((String) -> Void)?
19
+ private var onTransactionId: ((String?) -> Void)?
18
20
  // Nitro wraps a callback's return value in a Promise; our callback already
19
21
  // returns Promise<NitroSessionCredentials>, hence the doubly-nested Promise.
20
22
  private var sessionHandler: (() -> Promise<Promise<NitroSessionCredentials>>)?
@@ -33,6 +35,10 @@ final class HybridOnramperNitro: HybridOnramperNitroSpec {
33
35
  self.onEvent = onEvent
34
36
  }
35
37
 
38
+ func setTransactionIdListener(onTransactionId: @escaping (String?) -> Void) {
39
+ self.onTransactionId = onTransactionId
40
+ }
41
+
36
42
  func setSessionExpirationHandler(handler: @escaping () -> Promise<Promise<NitroSessionCredentials>>) {
37
43
  self.sessionHandler = handler
38
44
  }
@@ -96,6 +102,9 @@ final class HybridOnramperNitro: HybridOnramperNitroSpec {
96
102
  stateObservation = client.$state.sink { [weak self] state in
97
103
  self?.onState?(jsonString(state.toJSDict()))
98
104
  }
105
+ transactionIdObservation = client.$currentTransactionId.sink { [weak self] transactionId in
106
+ self?.onTransactionId?(transactionId)
107
+ }
99
108
  // `events` is a computed AsyncStream that captures a single continuation, so
100
109
  // access it exactly once here. CheckoutEvent is Sendable → safe to iterate
101
110
  // off the main actor.
@@ -139,17 +148,33 @@ final class HybridOnramperNitro: HybridOnramperNitroSpec {
139
148
 
140
149
  // MARK: - Checkout
141
150
 
142
- func getCheckoutRequirements(requestJson: String, styleJson: String) throws -> Promise<PreparedIntentResult> {
151
+ func getCheckoutRequirements(
152
+ requestJson: String,
153
+ prefillJson: String,
154
+ styleJson: String
155
+ ) throws -> Promise<PreparedIntentResult> {
143
156
  return Promise.async { [weak self] in
144
157
  guard let self else { throw OnramperError.notInitialized }
145
- return try await self.performGetCheckoutRequirements(requestJson: requestJson, styleJson: styleJson)
158
+ return try await self.performGetCheckoutRequirements(
159
+ requestJson: requestJson,
160
+ prefillJson: prefillJson,
161
+ styleJson: styleJson
162
+ )
146
163
  }
147
164
  }
148
165
 
149
166
  @MainActor
150
- private func performGetCheckoutRequirements(requestJson: String, styleJson: String) async throws -> PreparedIntentResult {
167
+ private func performGetCheckoutRequirements(
168
+ requestJson: String,
169
+ prefillJson: String,
170
+ styleJson: String
171
+ ) async throws -> PreparedIntentResult {
151
172
  let client = try requireClient()
152
173
  let request = try decodeCheckoutRequest(requestJson)
174
+ // Best-effort: an unusable prefill payload decodes to nil and the checkout
175
+ // proceeds without it. Never logged — the values are user PII, and the SDK
176
+ // makes the same guarantee at every log level.
177
+ let prefill = decodeUserPrefill(prefillJson)
153
178
  let style = decodeCheckoutButtonStyle(styleJson)
154
179
 
155
180
  // Single-flight, scoped to this client: a new prepared intent supersedes
@@ -159,7 +184,7 @@ final class HybridOnramperNitro: HybridOnramperNitroSpec {
159
184
  await PreparedIntentRegistry.shared.drop(prev)
160
185
  }
161
186
 
162
- let result = try await client.getCheckoutRequirements(request, buttonStyle: style)
187
+ let result = try await client.getCheckoutRequirements(request, prefill: prefill, buttonStyle: style)
163
188
  let entry = PreparedIntentRegistry.PreparedIntent(button: AnyView(result.button), createdAt: Date())
164
189
  let handle = await PreparedIntentRegistry.shared.store(entry)
165
190
  lastPreparedHandle = handle
@@ -183,10 +208,13 @@ final class HybridOnramperNitro: HybridOnramperNitroSpec {
183
208
  func dispose() {
184
209
  stateObservation?.cancel()
185
210
  stateObservation = nil
211
+ transactionIdObservation?.cancel()
212
+ transactionIdObservation = nil
186
213
  eventTask?.cancel()
187
214
  eventTask = nil
188
215
  onState = nil
189
216
  onEvent = nil
217
+ onTransactionId = nil
190
218
  sessionHandler = nil
191
219
  lastPreparedHandle = nil
192
220
  client = nil
@@ -50,6 +50,39 @@ func decodeCheckoutRequest(_ json: String) throws -> CheckoutIntentRequest {
50
50
  }
51
51
  }
52
52
 
53
+ private struct UserPrefillJSON: Decodable {
54
+ let email: String?
55
+ let firstName: String?
56
+ let lastName: String?
57
+ let phoneNumber: String?
58
+ }
59
+
60
+ /// Decodes the JS `OnramperUserPrefill` JSON, or `nil` when the caller supplied
61
+ /// nothing (`{}`) or the payload is unusable.
62
+ ///
63
+ /// Never throws. Prefill is best-effort on the SDK side and must never fail a
64
+ /// checkout that would otherwise succeed, so a malformed payload degrades to
65
+ /// "no prefill" rather than surfacing an error. `nil` for an all-empty payload
66
+ /// also spares a token mint the server is guaranteed to reject
67
+ /// (`no_fields_supplied`) — the SDK's own `hasAnyValue` check.
68
+ ///
69
+ /// Only nil-ness is checked. Present-but-invalid values (a malformed phone
70
+ /// number, say) are passed through to the server, which is authoritative;
71
+ /// mirroring its validation here would drift the moment either side changed.
72
+ func decodeUserPrefill(_ json: String) -> OnramperUserPrefill? {
73
+ guard let data = json.data(using: .utf8),
74
+ let p = try? JSONDecoder().decode(UserPrefillJSON.self, from: data) else {
75
+ return nil
76
+ }
77
+ let prefill = OnramperUserPrefill(
78
+ email: p.email,
79
+ firstName: p.firstName,
80
+ lastName: p.lastName,
81
+ phoneNumber: p.phoneNumber
82
+ )
83
+ return prefill == OnramperUserPrefill() ? nil : prefill
84
+ }
85
+
53
86
  private struct CheckoutButtonStyleJSON: Decodable {
54
87
  let backgroundColor: String?
55
88
  let foregroundColor: String?
@@ -19,11 +19,13 @@ class OnramperClient {
19
19
  kind: 'idle'
20
20
  };
21
21
  lastError = null;
22
+ currentTransactionId = null;
22
23
 
23
24
  // Each client owns its own native instance (and thus its own SDK client).
24
25
  native = (0, _OnramperNative.createOnramperNative)();
25
26
  stateListeners = new Set();
26
27
  eventListeners = new Set();
28
+ transactionIdListeners = new Set();
27
29
 
28
30
  // Resolved when the constructor-issued configure() completes. Public methods
29
31
  // that need the native client await this first.
@@ -37,11 +39,21 @@ class OnramperClient {
37
39
  for (const fn of this.stateListeners) fn(s);
38
40
  });
39
41
 
40
- // Single native checkout-event callback → fan out to listeners.
42
+ // Single native checkout-event callback → keep the transaction ID mirror
43
+ // synchronized at finalization, then fan out to checkout listeners.
41
44
  this.native.setEventListener(json => {
42
45
  const e = JSON.parse(json);
46
+ if (e.type === 'checkoutFinalized') {
47
+ this.updateCurrentTransactionId(e.response.onramperTransactionId);
48
+ }
43
49
  for (const fn of this.eventListeners) fn(e);
44
50
  });
51
+ this.native.setTransactionIdListener(transactionId => {
52
+ // The SDK transiently publishes nil while re-preparing after the payment
53
+ // sheet is dismissed. The finalized transaction ID remains durable across
54
+ // that attempt change; only explicit reset()/signOut() clear the JS mirror.
55
+ if (transactionId !== undefined) this.updateCurrentTransactionId(transactionId);
56
+ });
45
57
 
46
58
  // The SDK calls this when its session expires; return fresh credentials.
47
59
  // Nitro stores the async callback natively and awaits it directly — no
@@ -68,6 +80,17 @@ class OnramperClient {
68
80
  // before calling initialize(). The error still surfaces via initialize().
69
81
  this.configured.catch(() => undefined);
70
82
  }
83
+ updateCurrentTransactionId(next) {
84
+ if (next === this.currentTransactionId) return;
85
+ this.currentTransactionId = next;
86
+ for (const fn of [...this.transactionIdListeners]) {
87
+ try {
88
+ fn(next);
89
+ } catch (error) {
90
+ console.error('Onramper transaction ID listener threw:', error);
91
+ }
92
+ }
93
+ }
71
94
  async initialize(creds) {
72
95
  try {
73
96
  await this.configured;
@@ -80,6 +103,7 @@ class OnramperClient {
80
103
  try {
81
104
  await this.configured;
82
105
  await this.native.reset();
106
+ this.updateCurrentTransactionId(null);
83
107
  } catch (e) {
84
108
  throw _errors.OnramperError.from(e);
85
109
  }
@@ -95,6 +119,7 @@ class OnramperClient {
95
119
  try {
96
120
  await this.configured;
97
121
  await this.native.signOut();
122
+ this.updateCurrentTransactionId(null);
98
123
  } catch (e) {
99
124
  throw _errors.OnramperError.from(e);
100
125
  }
@@ -104,11 +129,21 @@ class OnramperClient {
104
129
  * Fetches checkout requirements + quote and returns a native checkout button
105
130
  * to render plus the quote. The button handles login / finalize / webview
106
131
  * internally; outcomes surface via the event stream (`addEventListener`).
132
+ *
133
+ * Pass `prefill` to pre-populate the OnramperID sign-in and additional-info
134
+ * screens with values you already know about the user. It is best-effort and
135
+ * never blocks sign-in — there is no error to handle. Note the caveat on
136
+ * `OnramperUserPrefill.email` before supplying it.
137
+ *
138
+ * `prefill` trails `buttonStyle` here, unlike the Swift
139
+ * `getCheckoutRequirements(_:prefill:buttonStyle:)` where argument labels make
140
+ * the middle position free: appending it keeps every existing JS call site
141
+ * working unchanged.
107
142
  */
108
- async getCheckoutRequirements(request, buttonStyle = {}) {
143
+ async getCheckoutRequirements(request, buttonStyle = {}, prefill = {}) {
109
144
  try {
110
145
  await this.configured;
111
- const result = await this.native.getCheckoutRequirements(JSON.stringify(request), JSON.stringify(buttonStyle));
146
+ const result = await this.native.getCheckoutRequirements(JSON.stringify(request), JSON.stringify(prefill), JSON.stringify(buttonStyle));
112
147
  const quote = JSON.parse(result.quoteJson);
113
148
  const button = /*#__PURE__*/(0, _react.createElement)(_OnramperCheckoutButtonView.OnramperCheckoutButtonView, {
114
149
  intentHandle: result.intentHandle,
@@ -139,6 +174,14 @@ class OnramperClient {
139
174
  };
140
175
  }
141
176
 
177
+ /** Subscribe to the durable Onramper transaction ID. Successful reset/signOut publish null. */
178
+ addTransactionIdListener(fn) {
179
+ this.transactionIdListeners.add(fn);
180
+ return () => {
181
+ this.transactionIdListeners.delete(fn);
182
+ };
183
+ }
184
+
142
185
  /** Subscribe to a specific checkout event. Returns an unsubscribe function. */
143
186
  addEventListener(name, fn) {
144
187
  const wrapper = e => {
@@ -154,6 +197,7 @@ class OnramperClient {
154
197
  destroy() {
155
198
  this.stateListeners.clear();
156
199
  this.eventListeners.clear();
200
+ this.transactionIdListeners.clear();
157
201
  this.native.dispose();
158
202
  }
159
203
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_OnramperCheckoutButtonView","_OnramperNative","_errors","OnramperClient","state","kind","lastError","native","createOnramperNative","stateListeners","Set","eventListeners","constructor","config","setStateListener","json","s","JSON","parse","OnramperError","from","error","fn","setEventListener","e","setSessionExpirationHandler","creds","onSessionExpired","sessionId","sessionToken","configured","configure","apiKey","clientId","environment","theme","logLevel","catch","err","undefined","initialize","reset","signOut","getCheckoutRequirements","request","buttonStyle","result","stringify","quote","quoteJson","button","createElement","OnramperCheckoutButtonView","intentHandle","style","width","minHeight","cancelPreparedIntent","addStateListener","add","delete","addEventListener","name","wrapper","type","destroy","clear","dispose","exports"],"sourceRoot":"../../src","sources":["OnramperClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_OnramperCheckoutButtonView","_OnramperNative","_errors","OnramperClient","state","kind","lastError","currentTransactionId","native","createOnramperNative","stateListeners","Set","eventListeners","transactionIdListeners","constructor","config","setStateListener","json","s","JSON","parse","OnramperError","from","error","fn","setEventListener","e","type","updateCurrentTransactionId","response","onramperTransactionId","setTransactionIdListener","transactionId","undefined","setSessionExpirationHandler","creds","onSessionExpired","sessionId","sessionToken","configured","configure","apiKey","clientId","environment","theme","logLevel","catch","err","next","console","initialize","reset","signOut","getCheckoutRequirements","request","buttonStyle","prefill","result","stringify","quote","quoteJson","button","createElement","OnramperCheckoutButtonView","intentHandle","style","width","minHeight","cancelPreparedIntent","addStateListener","add","delete","addTransactionIdListener","addEventListener","name","wrapper","destroy","clear","dispose","exports"],"sourceRoot":"../../src","sources":["OnramperClient.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAmBA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,cAAc,CAAC;EAC1BC,KAAK,GAAkB;IAAEC,IAAI,EAAE;EAAO,CAAC;EACvCC,SAAS,GAAyB,IAAI;EACtCC,oBAAoB,GAAkB,IAAI;;EAE1C;EACiBC,MAAM,GAAG,IAAAC,oCAAoB,EAAC,CAAC;EAE/BC,cAAc,GAAG,IAAIC,GAAG,CAAiC,CAAC;EAC1DC,cAAc,GAAG,IAAID,GAAG,CAAiC,CAAC;EAC1DE,sBAAsB,GAAG,IAAIF,GAAG,CAAyC,CAAC;;EAE3F;EACA;;EAGAG,WAAWA,CAACC,MAA6B,EAAE;IACzC;IACA,IAAI,CAACP,MAAM,CAACQ,gBAAgB,CAAEC,IAAI,IAAK;MACrC,MAAMC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAkB;MAC3C,IAAI,CAACb,KAAK,GAAGc,CAAC;MACd,IAAIA,CAAC,CAACb,IAAI,KAAK,QAAQ,EAAE,IAAI,CAACC,SAAS,GAAGe,qBAAa,CAACC,IAAI,CAACJ,CAAC,CAACK,KAAK,CAAC;MACrE,KAAK,MAAMC,EAAE,IAAI,IAAI,CAACd,cAAc,EAAEc,EAAE,CAACN,CAAC,CAAC;IAC7C,CAAC,CAAC;;IAEF;IACA;IACA,IAAI,CAACV,MAAM,CAACiB,gBAAgB,CAAER,IAAI,IAAK;MACrC,MAAMS,CAAC,GAAGP,IAAI,CAACC,KAAK,CAACH,IAAI,CAAkB;MAC3C,IAAIS,CAAC,CAACC,IAAI,KAAK,mBAAmB,EAAE;QAClC,IAAI,CAACC,0BAA0B,CAACF,CAAC,CAACG,QAAQ,CAACC,qBAAqB,CAAC;MACnE;MACA,KAAK,MAAMN,EAAE,IAAI,IAAI,CAACZ,cAAc,EAAEY,EAAE,CAACE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,IAAI,CAAClB,MAAM,CAACuB,wBAAwB,CAAEC,aAAa,IAAK;MACtD;MACA;MACA;MACA,IAAIA,aAAa,KAAKC,SAAS,EAAE,IAAI,CAACL,0BAA0B,CAACI,aAAa,CAAC;IACjF,CAAC,CAAC;;IAEF;IACA;IACA;IACA,IAAI,CAACxB,MAAM,CAAC0B,2BAA2B,CAAC,YAAY;MAClD,MAAMC,KAAK,GAAG,MAAMpB,MAAM,CAACqB,gBAAgB,CAAC,CAAC;MAC7C,OAAO;QAAEC,SAAS,EAAEF,KAAK,CAACE,SAAS;QAAEC,YAAY,EAAEH,KAAK,CAACG;MAAa,CAAC;IACzE,CAAC,CAAC;IAEF,IAAI,CAACC,UAAU,GAAG,IAAI,CAAC/B,MAAM,CAC1BgC,SAAS,CAAC;MACTC,MAAM,EAAE1B,MAAM,CAAC0B,MAAM;MACrBC,QAAQ,EAAE3B,MAAM,CAAC2B,QAAQ;MACzBC,WAAW,EAAE5B,MAAM,CAAC4B,WAAW;MAC/BC,KAAK,EAAE7B,MAAM,CAAC6B,KAAK,IAAI,QAAQ;MAC/BC,QAAQ,EAAE9B,MAAM,CAAC8B,QAAQ,IAAI;IAC/B,CAAC,CAAC,CACDC,KAAK,CAAEpB,CAAU,IAAK;MACrB,MAAMqB,GAAG,GAAG1B,qBAAa,CAACC,IAAI,CAACI,CAAC,CAAC;MACjC,IAAI,CAACpB,SAAS,GAAGyC,GAAG;MACpB,MAAMA,GAAG;IACX,CAAC,CAAC;IACJ;IACA;IACA,IAAI,CAACR,UAAU,CAACO,KAAK,CAAC,MAAMb,SAAS,CAAC;EACxC;EAEQL,0BAA0BA,CAACoB,IAAmB,EAAQ;IAC5D,IAAIA,IAAI,KAAK,IAAI,CAACzC,oBAAoB,EAAE;IAExC,IAAI,CAACA,oBAAoB,GAAGyC,IAAI;IAChC,KAAK,MAAMxB,EAAE,IAAI,CAAC,GAAG,IAAI,CAACX,sBAAsB,CAAC,EAAE;MACjD,IAAI;QACFW,EAAE,CAACwB,IAAI,CAAC;MACV,CAAC,CAAC,OAAOzB,KAAc,EAAE;QACvB0B,OAAO,CAAC1B,KAAK,CAAC,yCAAyC,EAAEA,KAAK,CAAC;MACjE;IACF;EACF;EAEA,MAAM2B,UAAUA,CAACf,KAAyB,EAAiB;IACzD,IAAI;MACF,MAAM,IAAI,CAACI,UAAU;MACrB,MAAM,IAAI,CAAC/B,MAAM,CAAC0C,UAAU,CAACf,KAAK,CAACE,SAAS,EAAEF,KAAK,CAACG,YAAY,CAAC;IACnE,CAAC,CAAC,OAAOZ,CAAU,EAAE;MACnB,MAAML,qBAAa,CAACC,IAAI,CAACI,CAAC,CAAC;IAC7B;EACF;EAEA,MAAMyB,KAAKA,CAAA,EAAkB;IAC3B,IAAI;MACF,MAAM,IAAI,CAACZ,UAAU;MACrB,MAAM,IAAI,CAAC/B,MAAM,CAAC2C,KAAK,CAAC,CAAC;MACzB,IAAI,CAACvB,0BAA0B,CAAC,IAAI,CAAC;IACvC,CAAC,CAAC,OAAOF,CAAU,EAAE;MACnB,MAAML,qBAAa,CAACC,IAAI,CAACI,CAAC,CAAC;IAC7B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAM0B,OAAOA,CAAA,EAAkB;IAC7B,IAAI;MACF,MAAM,IAAI,CAACb,UAAU;MACrB,MAAM,IAAI,CAAC/B,MAAM,CAAC4C,OAAO,CAAC,CAAC;MAC3B,IAAI,CAACxB,0BAA0B,CAAC,IAAI,CAAC;IACvC,CAAC,CAAC,OAAOF,CAAU,EAAE;MACnB,MAAML,qBAAa,CAACC,IAAI,CAACI,CAAC,CAAC;IAC7B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM2B,uBAAuBA,CAC3BC,OAAwB,EACxBC,WAAgC,GAAG,CAAC,CAAC,EACrCC,OAA4B,GAAG,CAAC,CAAC,EACO;IACxC,IAAI;MACF,MAAM,IAAI,CAACjB,UAAU;MACrB,MAAMkB,MAAM,GAAG,MAAM,IAAI,CAACjD,MAAM,CAAC6C,uBAAuB,CACtDlC,IAAI,CAACuC,SAAS,CAACJ,OAAO,CAAC,EACvBnC,IAAI,CAACuC,SAAS,CAACF,OAAO,CAAC,EACvBrC,IAAI,CAACuC,SAAS,CAACH,WAAW,CAC5B,CAAC;MACD,MAAMI,KAAK,GAAGxC,IAAI,CAACC,KAAK,CAACqC,MAAM,CAACG,SAAS,CAAkB;MAC3D,MAAMC,MAAM,gBAAG,IAAAC,oBAAa,EAACC,sDAA0B,EAAE;QACvDC,YAAY,EAAEP,MAAM,CAACO,YAAY;QACjCC,KAAK,EAAE;UAAEC,KAAK,EAAE,MAAM;UAAEC,SAAS,EAAE;QAAG;MACxC,CAAC,CAAC;MACF,OAAO;QAAEN,MAAM;QAAEF;MAAM,CAAC;IAC1B,CAAC,CAAC,OAAOjC,CAAU,EAAE;MACnB,MAAML,qBAAa,CAACC,IAAI,CAACI,CAAC,CAAC;IAC7B;EACF;;EAEA;EACA0C,oBAAoBA,CAACJ,YAAoB,EAAiB;IACxD,OAAO,IAAI,CAACxD,MAAM,CAAC4D,oBAAoB,CAACJ,YAAY,CAAC;EACvD;;EAEA;EACAK,gBAAgBA,CAAC7C,EAAkC,EAAc;IAC/D,IAAI,CAACd,cAAc,CAAC4D,GAAG,CAAC9C,EAAE,CAAC;IAC3B,OAAO,MAAM;MACX,IAAI,CAACd,cAAc,CAAC6D,MAAM,CAAC/C,EAAE,CAAC;IAChC,CAAC;EACH;;EAEA;EACAgD,wBAAwBA,CAAChD,EAA0C,EAAc;IAC/E,IAAI,CAACX,sBAAsB,CAACyD,GAAG,CAAC9C,EAAE,CAAC;IACnC,OAAO,MAAM;MACX,IAAI,CAACX,sBAAsB,CAAC0D,MAAM,CAAC/C,EAAE,CAAC;IACxC,CAAC;EACH;;EAEA;EACAiD,gBAAgBA,CAAsBC,IAAO,EAAElD,EAAgC,EAAc;IAC3F,MAAMmD,OAAO,GAAIjD,CAAgB,IAAK;MACpC,IAAIA,CAAC,CAACC,IAAI,KAAK+C,IAAI,EAAElD,EAAE,CAACE,CAAoB,CAAC;IAC/C,CAAC;IACD,IAAI,CAACd,cAAc,CAAC0D,GAAG,CAACK,OAAO,CAAC;IAChC,OAAO,MAAM;MACX,IAAI,CAAC/D,cAAc,CAAC2D,MAAM,CAACI,OAAO,CAAC;IACrC,CAAC;EACH;;EAEA;EACAC,OAAOA,CAAA,EAAS;IACd,IAAI,CAAClE,cAAc,CAACmE,KAAK,CAAC,CAAC;IAC3B,IAAI,CAACjE,cAAc,CAACiE,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAChE,sBAAsB,CAACgE,KAAK,CAAC,CAAC;IACnC,IAAI,CAACrE,MAAM,CAACsE,OAAO,CAAC,CAAC;EACvB;AACF;AAACC,OAAA,CAAA5E,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -15,11 +15,13 @@ export class OnramperClient {
15
15
  kind: 'idle'
16
16
  };
17
17
  lastError = null;
18
+ currentTransactionId = null;
18
19
 
19
20
  // Each client owns its own native instance (and thus its own SDK client).
20
21
  native = createOnramperNative();
21
22
  stateListeners = new Set();
22
23
  eventListeners = new Set();
24
+ transactionIdListeners = new Set();
23
25
 
24
26
  // Resolved when the constructor-issued configure() completes. Public methods
25
27
  // that need the native client await this first.
@@ -33,11 +35,21 @@ export class OnramperClient {
33
35
  for (const fn of this.stateListeners) fn(s);
34
36
  });
35
37
 
36
- // Single native checkout-event callback → fan out to listeners.
38
+ // Single native checkout-event callback → keep the transaction ID mirror
39
+ // synchronized at finalization, then fan out to checkout listeners.
37
40
  this.native.setEventListener(json => {
38
41
  const e = JSON.parse(json);
42
+ if (e.type === 'checkoutFinalized') {
43
+ this.updateCurrentTransactionId(e.response.onramperTransactionId);
44
+ }
39
45
  for (const fn of this.eventListeners) fn(e);
40
46
  });
47
+ this.native.setTransactionIdListener(transactionId => {
48
+ // The SDK transiently publishes nil while re-preparing after the payment
49
+ // sheet is dismissed. The finalized transaction ID remains durable across
50
+ // that attempt change; only explicit reset()/signOut() clear the JS mirror.
51
+ if (transactionId !== undefined) this.updateCurrentTransactionId(transactionId);
52
+ });
41
53
 
42
54
  // The SDK calls this when its session expires; return fresh credentials.
43
55
  // Nitro stores the async callback natively and awaits it directly — no
@@ -64,6 +76,17 @@ export class OnramperClient {
64
76
  // before calling initialize(). The error still surfaces via initialize().
65
77
  this.configured.catch(() => undefined);
66
78
  }
79
+ updateCurrentTransactionId(next) {
80
+ if (next === this.currentTransactionId) return;
81
+ this.currentTransactionId = next;
82
+ for (const fn of [...this.transactionIdListeners]) {
83
+ try {
84
+ fn(next);
85
+ } catch (error) {
86
+ console.error('Onramper transaction ID listener threw:', error);
87
+ }
88
+ }
89
+ }
67
90
  async initialize(creds) {
68
91
  try {
69
92
  await this.configured;
@@ -76,6 +99,7 @@ export class OnramperClient {
76
99
  try {
77
100
  await this.configured;
78
101
  await this.native.reset();
102
+ this.updateCurrentTransactionId(null);
79
103
  } catch (e) {
80
104
  throw OnramperError.from(e);
81
105
  }
@@ -91,6 +115,7 @@ export class OnramperClient {
91
115
  try {
92
116
  await this.configured;
93
117
  await this.native.signOut();
118
+ this.updateCurrentTransactionId(null);
94
119
  } catch (e) {
95
120
  throw OnramperError.from(e);
96
121
  }
@@ -100,11 +125,21 @@ export class OnramperClient {
100
125
  * Fetches checkout requirements + quote and returns a native checkout button
101
126
  * to render plus the quote. The button handles login / finalize / webview
102
127
  * internally; outcomes surface via the event stream (`addEventListener`).
128
+ *
129
+ * Pass `prefill` to pre-populate the OnramperID sign-in and additional-info
130
+ * screens with values you already know about the user. It is best-effort and
131
+ * never blocks sign-in — there is no error to handle. Note the caveat on
132
+ * `OnramperUserPrefill.email` before supplying it.
133
+ *
134
+ * `prefill` trails `buttonStyle` here, unlike the Swift
135
+ * `getCheckoutRequirements(_:prefill:buttonStyle:)` where argument labels make
136
+ * the middle position free: appending it keeps every existing JS call site
137
+ * working unchanged.
103
138
  */
104
- async getCheckoutRequirements(request, buttonStyle = {}) {
139
+ async getCheckoutRequirements(request, buttonStyle = {}, prefill = {}) {
105
140
  try {
106
141
  await this.configured;
107
- const result = await this.native.getCheckoutRequirements(JSON.stringify(request), JSON.stringify(buttonStyle));
142
+ const result = await this.native.getCheckoutRequirements(JSON.stringify(request), JSON.stringify(prefill), JSON.stringify(buttonStyle));
108
143
  const quote = JSON.parse(result.quoteJson);
109
144
  const button = /*#__PURE__*/createElement(OnramperCheckoutButtonView, {
110
145
  intentHandle: result.intentHandle,
@@ -135,6 +170,14 @@ export class OnramperClient {
135
170
  };
136
171
  }
137
172
 
173
+ /** Subscribe to the durable Onramper transaction ID. Successful reset/signOut publish null. */
174
+ addTransactionIdListener(fn) {
175
+ this.transactionIdListeners.add(fn);
176
+ return () => {
177
+ this.transactionIdListeners.delete(fn);
178
+ };
179
+ }
180
+
138
181
  /** Subscribe to a specific checkout event. Returns an unsubscribe function. */
139
182
  addEventListener(name, fn) {
140
183
  const wrapper = e => {
@@ -150,6 +193,7 @@ export class OnramperClient {
150
193
  destroy() {
151
194
  this.stateListeners.clear();
152
195
  this.eventListeners.clear();
196
+ this.transactionIdListeners.clear();
153
197
  this.native.dispose();
154
198
  }
155
199
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createElement","OnramperCheckoutButtonView","createOnramperNative","OnramperError","OnramperClient","state","kind","lastError","native","stateListeners","Set","eventListeners","constructor","config","setStateListener","json","s","JSON","parse","from","error","fn","setEventListener","e","setSessionExpirationHandler","creds","onSessionExpired","sessionId","sessionToken","configured","configure","apiKey","clientId","environment","theme","logLevel","catch","err","undefined","initialize","reset","signOut","getCheckoutRequirements","request","buttonStyle","result","stringify","quote","quoteJson","button","intentHandle","style","width","minHeight","cancelPreparedIntent","addStateListener","add","delete","addEventListener","name","wrapper","type","destroy","clear","dispose"],"sourceRoot":"../../src","sources":["OnramperClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createElement","OnramperCheckoutButtonView","createOnramperNative","OnramperError","OnramperClient","state","kind","lastError","currentTransactionId","native","stateListeners","Set","eventListeners","transactionIdListeners","constructor","config","setStateListener","json","s","JSON","parse","from","error","fn","setEventListener","e","type","updateCurrentTransactionId","response","onramperTransactionId","setTransactionIdListener","transactionId","undefined","setSessionExpirationHandler","creds","onSessionExpired","sessionId","sessionToken","configured","configure","apiKey","clientId","environment","theme","logLevel","catch","err","next","console","initialize","reset","signOut","getCheckoutRequirements","request","buttonStyle","prefill","result","stringify","quote","quoteJson","button","intentHandle","style","width","minHeight","cancelPreparedIntent","addStateListener","add","delete","addTransactionIdListener","addEventListener","name","wrapper","destroy","clear","dispose"],"sourceRoot":"../../src","sources":["OnramperClient.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { type ReactElement } from 'react';
2
2
  import { OnramperError } from './errors';
3
3
  import type { EventName, EventPayload } from './events';
4
- import type { CheckoutButtonStyle, CheckoutRequest, OnramperConfiguration, OnramperState, QuoteResponse, SessionCredentials } from './types';
4
+ import type { CheckoutButtonStyle, CheckoutRequest, OnramperConfiguration, OnramperState, OnramperUserPrefill, QuoteResponse, SessionCredentials } from './types';
5
5
  export interface GetCheckoutRequirementsResult {
6
6
  /** A native checkout button element to render. Tapping it drives login, finalize, and the payment webview internally. */
7
7
  button: ReactElement;
@@ -17,11 +17,14 @@ export interface GetCheckoutRequirementsResult {
17
17
  export declare class OnramperClient {
18
18
  state: OnramperState;
19
19
  lastError: OnramperError | null;
20
+ currentTransactionId: string | null;
20
21
  private readonly native;
21
22
  private readonly stateListeners;
22
23
  private readonly eventListeners;
24
+ private readonly transactionIdListeners;
23
25
  private readonly configured;
24
26
  constructor(config: OnramperConfiguration);
27
+ private updateCurrentTransactionId;
25
28
  initialize(creds: SessionCredentials): Promise<void>;
26
29
  reset(): Promise<void>;
27
30
  /**
@@ -35,12 +38,24 @@ export declare class OnramperClient {
35
38
  * Fetches checkout requirements + quote and returns a native checkout button
36
39
  * to render plus the quote. The button handles login / finalize / webview
37
40
  * internally; outcomes surface via the event stream (`addEventListener`).
41
+ *
42
+ * Pass `prefill` to pre-populate the OnramperID sign-in and additional-info
43
+ * screens with values you already know about the user. It is best-effort and
44
+ * never blocks sign-in — there is no error to handle. Note the caveat on
45
+ * `OnramperUserPrefill.email` before supplying it.
46
+ *
47
+ * `prefill` trails `buttonStyle` here, unlike the Swift
48
+ * `getCheckoutRequirements(_:prefill:buttonStyle:)` where argument labels make
49
+ * the middle position free: appending it keeps every existing JS call site
50
+ * working unchanged.
38
51
  */
39
- getCheckoutRequirements(request: CheckoutRequest, buttonStyle?: CheckoutButtonStyle): Promise<GetCheckoutRequirementsResult>;
52
+ getCheckoutRequirements(request: CheckoutRequest, buttonStyle?: CheckoutButtonStyle, prefill?: OnramperUserPrefill): Promise<GetCheckoutRequirementsResult>;
40
53
  /** Discards a prepared intent (e.g. if the user navigates away before checkout). */
41
54
  cancelPreparedIntent(intentHandle: string): Promise<void>;
42
55
  /** Subscribe to state changes. Returns an unsubscribe function. */
43
56
  addStateListener(fn: (state: OnramperState) => void): () => void;
57
+ /** Subscribe to the durable Onramper transaction ID. Successful reset/signOut publish null. */
58
+ addTransactionIdListener(fn: (transactionId: string | null) => void): () => void;
44
59
  /** Subscribe to a specific checkout event. Returns an unsubscribe function. */
45
60
  addEventListener<K extends EventName>(name: K, fn: (e: EventPayload<K>) => void): () => void;
46
61
  /** Tear down: clears JS listeners and releases the native callbacks + SDK client. */
@@ -1 +1 @@
1
- {"version":3,"file":"OnramperClient.d.ts","sourceRoot":"","sources":["../../../../src/OnramperClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,OAAO,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAiB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,6BAA6B;IAC5C,yHAAyH;IACzH,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,aAAa,CAAoB;IACxC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IAGvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAI5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,MAAM,EAAE,qBAAqB;IAyCnC,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B;;;;OAIG;IACG,uBAAuB,CAC3B,OAAO,EAAE,eAAe,EACxB,WAAW,GAAE,mBAAwB,GACpC,OAAO,CAAC,6BAA6B,CAAC;IAezC,oFAAoF;IACpF,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhE,+EAA+E;IAC/E,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAU5F,qFAAqF;IACrF,OAAO,IAAI,IAAI;CAKhB"}
1
+ {"version":3,"file":"OnramperClient.d.ts","sourceRoot":"","sources":["../../../../src/OnramperClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,OAAO,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAiB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,6BAA6B;IAC5C,yHAAyH;IACzH,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,aAAa,CAAoB;IACxC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqD;IAI5F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,MAAM,EAAE,qBAAqB;IAoDzC,OAAO,CAAC,0BAA0B;IAa5B,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;;;;;;;;;;;;;OAcG;IACG,uBAAuB,CAC3B,OAAO,EAAE,eAAe,EACxB,WAAW,GAAE,mBAAwB,EACrC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,6BAA6B,CAAC;IAmBzC,oFAAoF;IACpF,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhE,+FAA+F;IAC/F,wBAAwB,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhF,+EAA+E;IAC/E,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAU5F,qFAAqF;IACrF,OAAO,IAAI,IAAI;CAMhB"}
@@ -4,6 +4,6 @@ export { OnramperCheckoutButtonView } from './OnramperCheckoutButtonView';
4
4
  export type { OnramperCheckoutButtonViewProps } from './OnramperCheckoutButtonView';
5
5
  export { OnramperError } from './errors';
6
6
  export type { OnramperErrorCode, OnramperErrorPayload } from './errors';
7
- export type { CheckoutButtonStyle, CheckoutFinalizeResponse, CheckoutRequest, CheckoutPaymentType, CheckoutRequirement, HeadlessCheckoutData, OnramperConfiguration, OnramperEnvironment, OnramperLogLevel, OnramperState, OnramperTheme, QuoteResponse, RenderType, ReverificationField, SessionCredentials, ToSItem, TransactionType, UserInfoField, UserInfoFieldType, WalletInfo, } from './types';
7
+ export type { CheckoutButtonStyle, CheckoutFinalizeResponse, CheckoutRequest, CheckoutPaymentType, CheckoutRequirement, HeadlessCheckoutData, OnramperConfiguration, OnramperEnvironment, OnramperLogLevel, OnramperState, OnramperTheme, OnramperUserPrefill, QuoteResponse, RenderType, ReverificationField, SessionCredentials, ToSItem, TransactionType, UserInfoField, UserInfoFieldType, WalletInfo, } from './types';
8
8
  export type { CheckoutEvent, EventName, EventPayload } from './events';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxE,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,OAAO,EACP,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxE,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,OAAO,EACP,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -30,10 +30,11 @@ export interface OnramperNitro extends HybridObject<{
30
30
  initialize(sessionId: string, sessionToken: string): Promise<void>;
31
31
  reset(): Promise<void>;
32
32
  signOut(): Promise<void>;
33
- getCheckoutRequirements(requestJson: string, styleJson: string): Promise<PreparedIntentResult>;
33
+ getCheckoutRequirements(requestJson: string, prefillJson: string, styleJson: string): Promise<PreparedIntentResult>;
34
34
  cancelPreparedIntent(intentHandle: string): Promise<void>;
35
35
  setStateListener(onState: (stateJson: string) => void): void;
36
36
  setEventListener(onEvent: (eventJson: string) => void): void;
37
+ setTransactionIdListener(onTransactionId: (transactionId: string | undefined) => void): void;
37
38
  setSessionExpirationHandler(handler: () => Promise<NitroSessionCredentials>): void;
38
39
  }
39
40
  //# sourceMappingURL=OnramperNitro.nitro.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnramperNitro.nitro.d.ts","sourceRoot":"","sources":["../../../../../src/specs/OnramperNitro.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;IACnE,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAMzB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/F,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG1D,gBAAgB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,gBAAgB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAI7D,2BAA2B,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;CAKpF"}
1
+ {"version":3,"file":"OnramperNitro.nitro.d.ts","sourceRoot":"","sources":["../../../../../src/specs/OnramperNitro.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;IACnE,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IASzB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpH,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG1D,gBAAgB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,gBAAgB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAE7D,wBAAwB,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,GAAG,IAAI,CAAC;IAI7F,2BAA2B,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;CAKpF"}
@@ -49,6 +49,13 @@ export interface QuoteResponse {
49
49
  transactionFee: number;
50
50
  recommendations?: string[];
51
51
  }
52
+ export interface OnramperUserPrefill {
53
+ email?: string;
54
+ firstName?: string;
55
+ lastName?: string;
56
+ /** E.164 format, e.g. `+3712345678`. Always a candidate — the user still verifies it. */
57
+ phoneNumber?: string;
58
+ }
52
59
  export interface CheckoutButtonStyle {
53
60
  backgroundColor?: string;
54
61
  foregroundColor?: string;
@@ -63,6 +70,8 @@ export interface HeadlessCheckoutData {
63
70
  }
64
71
  export interface CheckoutFinalizeResponse {
65
72
  headlessCheckoutId: string;
73
+ /** Durable Onramper transaction identifier for support, reconciliation, and status lookups. */
74
+ onramperTransactionId: string;
66
75
  headlessCheckoutData: HeadlessCheckoutData;
67
76
  }
68
77
  export type CheckoutRequirement = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type ReactElement } from 'react';
2
2
  import { OnramperError } from './errors.js';
3
3
  import type { EventName, EventPayload } from './events.js';
4
- import type { CheckoutButtonStyle, CheckoutRequest, OnramperConfiguration, OnramperState, QuoteResponse, SessionCredentials } from './types.js';
4
+ import type { CheckoutButtonStyle, CheckoutRequest, OnramperConfiguration, OnramperState, OnramperUserPrefill, QuoteResponse, SessionCredentials } from './types.js';
5
5
  export interface GetCheckoutRequirementsResult {
6
6
  /** A native checkout button element to render. Tapping it drives login, finalize, and the payment webview internally. */
7
7
  button: ReactElement;
@@ -17,11 +17,14 @@ export interface GetCheckoutRequirementsResult {
17
17
  export declare class OnramperClient {
18
18
  state: OnramperState;
19
19
  lastError: OnramperError | null;
20
+ currentTransactionId: string | null;
20
21
  private readonly native;
21
22
  private readonly stateListeners;
22
23
  private readonly eventListeners;
24
+ private readonly transactionIdListeners;
23
25
  private readonly configured;
24
26
  constructor(config: OnramperConfiguration);
27
+ private updateCurrentTransactionId;
25
28
  initialize(creds: SessionCredentials): Promise<void>;
26
29
  reset(): Promise<void>;
27
30
  /**
@@ -35,12 +38,24 @@ export declare class OnramperClient {
35
38
  * Fetches checkout requirements + quote and returns a native checkout button
36
39
  * to render plus the quote. The button handles login / finalize / webview
37
40
  * internally; outcomes surface via the event stream (`addEventListener`).
41
+ *
42
+ * Pass `prefill` to pre-populate the OnramperID sign-in and additional-info
43
+ * screens with values you already know about the user. It is best-effort and
44
+ * never blocks sign-in — there is no error to handle. Note the caveat on
45
+ * `OnramperUserPrefill.email` before supplying it.
46
+ *
47
+ * `prefill` trails `buttonStyle` here, unlike the Swift
48
+ * `getCheckoutRequirements(_:prefill:buttonStyle:)` where argument labels make
49
+ * the middle position free: appending it keeps every existing JS call site
50
+ * working unchanged.
38
51
  */
39
- getCheckoutRequirements(request: CheckoutRequest, buttonStyle?: CheckoutButtonStyle): Promise<GetCheckoutRequirementsResult>;
52
+ getCheckoutRequirements(request: CheckoutRequest, buttonStyle?: CheckoutButtonStyle, prefill?: OnramperUserPrefill): Promise<GetCheckoutRequirementsResult>;
40
53
  /** Discards a prepared intent (e.g. if the user navigates away before checkout). */
41
54
  cancelPreparedIntent(intentHandle: string): Promise<void>;
42
55
  /** Subscribe to state changes. Returns an unsubscribe function. */
43
56
  addStateListener(fn: (state: OnramperState) => void): () => void;
57
+ /** Subscribe to the durable Onramper transaction ID. Successful reset/signOut publish null. */
58
+ addTransactionIdListener(fn: (transactionId: string | null) => void): () => void;
44
59
  /** Subscribe to a specific checkout event. Returns an unsubscribe function. */
45
60
  addEventListener<K extends EventName>(name: K, fn: (e: EventPayload<K>) => void): () => void;
46
61
  /** Tear down: clears JS listeners and releases the native callbacks + SDK client. */
@@ -1 +1 @@
1
- {"version":3,"file":"OnramperClient.d.ts","sourceRoot":"","sources":["../../../../src/OnramperClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,OAAO,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAU,CAAC;AACzC,OAAO,KAAK,EAAiB,SAAS,EAAE,YAAY,EAAE,MAAM,aAAU,CAAC;AACvE,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAS,CAAC;AAEjB,MAAM,WAAW,6BAA6B;IAC5C,yHAAyH;IACzH,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,aAAa,CAAoB;IACxC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IAGvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAI5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,MAAM,EAAE,qBAAqB;IAyCnC,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B;;;;OAIG;IACG,uBAAuB,CAC3B,OAAO,EAAE,eAAe,EACxB,WAAW,GAAE,mBAAwB,GACpC,OAAO,CAAC,6BAA6B,CAAC;IAezC,oFAAoF;IACpF,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhE,+EAA+E;IAC/E,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAU5F,qFAAqF;IACrF,OAAO,IAAI,IAAI;CAKhB"}
1
+ {"version":3,"file":"OnramperClient.d.ts","sourceRoot":"","sources":["../../../../src/OnramperClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,OAAO,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAU,CAAC;AACzC,OAAO,KAAK,EAAiB,SAAS,EAAE,YAAY,EAAE,MAAM,aAAU,CAAC;AACvE,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAS,CAAC;AAEjB,MAAM,WAAW,6BAA6B;IAC5C,yHAAyH;IACzH,MAAM,EAAE,YAAY,CAAC;IACrB,wEAAwE;IACxE,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,aAAa,CAAoB;IACxC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAQ;IACvC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqD;IAI5F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,MAAM,EAAE,qBAAqB;IAoDzC,OAAO,CAAC,0BAA0B;IAa5B,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;;;;;;;;;;;;;OAcG;IACG,uBAAuB,CAC3B,OAAO,EAAE,eAAe,EACxB,WAAW,GAAE,mBAAwB,EACrC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,6BAA6B,CAAC;IAmBzC,oFAAoF;IACpF,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhE,+FAA+F;IAC/F,wBAAwB,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhF,+EAA+E;IAC/E,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAU5F,qFAAqF;IACrF,OAAO,IAAI,IAAI;CAMhB"}