react-native-candle 0.1.12 → 0.1.13

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 (33) hide show
  1. package/ios/Sources/CandleLinkSheetWrapperView.swift +179 -38
  2. package/ios/Sources/CandleLinkViewModel.swift +3 -11
  3. package/ios/Sources/RNCandle.swift +300 -100
  4. package/ios/Sources/UIApplication++.swift +0 -1
  5. package/lib/commonjs/index.js +33 -41
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/module/index.js +31 -35
  8. package/lib/module/index.js.map +1 -1
  9. package/lib/typescript/commonjs/src/index.d.ts +23 -19
  10. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  11. package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts +11 -6
  12. package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts.map +1 -1
  13. package/lib/typescript/module/src/index.d.ts +23 -19
  14. package/lib/typescript/module/src/index.d.ts.map +1 -1
  15. package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts +11 -6
  16. package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts.map +1 -1
  17. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.cpp +20 -4
  18. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.hpp +99 -20
  19. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Umbrella.hpp +6 -0
  20. package/nitrogen/generated/ios/c++/HybridRNCandleSpecSwift.hpp +15 -3
  21. package/nitrogen/generated/ios/swift/AppUser.swift +44 -0
  22. package/nitrogen/generated/ios/swift/Func_void_LinkedAccount.swift +44 -0
  23. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__shared_ptr_AnyMap__.swift +47 -0
  24. package/nitrogen/generated/ios/swift/HybridRNCandleSpec.swift +4 -2
  25. package/nitrogen/generated/ios/swift/HybridRNCandleSpec_cxx.swift +40 -12
  26. package/nitrogen/generated/ios/swift/Service.swift +292 -0
  27. package/nitrogen/generated/shared/c++/AppUser.hpp +73 -0
  28. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.cpp +1 -0
  29. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.hpp +10 -3
  30. package/nitrogen/generated/shared/c++/Service.hpp +292 -0
  31. package/package.json +1 -1
  32. package/src/index.ts +55 -55
  33. package/src/specs/RNCandle.nitro.ts +85 -6
@@ -8,19 +8,44 @@ import UIKit
8
8
  @available(iOS 17.0, *)
9
9
  final class HybridRNCandle: HybridRNCandleSpec {
10
10
 
11
- private let viewModel = CandleLinkViewModel()
12
- private var rootVC: UIViewController?
11
+ private var rootVC: HostingViewController<CandleLinkSheetWrapper>?
12
+
13
13
  private var cancellables = Set<AnyCancellable>()
14
14
 
15
- override init() {
16
- super.init()
17
- Task { @MainActor in
18
- setup()
15
+ var viewModel: CandleLinkViewModel {
16
+ get throws {
17
+ if let viewModel = rootVC?.uiView.viewModel {
18
+ return viewModel
19
+ }
20
+ throw RNClientError.badInitialization(message: "Failed to properly initialize the client.")
19
21
  }
20
22
  }
21
23
 
22
24
  // MARK: - UI
23
25
 
26
+ public func initialize(appUser: AppUser) throws {
27
+ Task { @MainActor in
28
+ let wrapperView = CandleLinkSheetWrapper(
29
+ appUser: .init(appKey: appUser.appKey, appSecret: appUser.appSecret))
30
+ let hostingVC = HostingViewController(uiView: wrapperView)
31
+ self.rootVC = hostingVC
32
+ guard let rootViewController = UIApplication.keyWindow?.rootViewController,
33
+ let view = rootViewController.view,
34
+ let rootView = view.subviews.first
35
+ else {
36
+ throw RNClientError.badInitialization(message: "Application root view was not initialized.")
37
+ }
38
+ view.insertSubview(hostingVC.view, belowSubview: rootView)
39
+ hostingVC.view.translatesAutoresizingMaskIntoConstraints = false
40
+ NSLayoutConstraint.activate([
41
+ hostingVC.view.heightAnchor.constraint(equalTo: view.heightAnchor),
42
+ hostingVC.view.widthAnchor.constraint(equalTo: view.widthAnchor),
43
+ hostingVC.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
44
+ hostingVC.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
45
+ ])
46
+ }
47
+ }
48
+
24
49
  public func candleLinkSheet(
25
50
  isPresented: Bool,
26
51
  services: [Service]?,
@@ -29,24 +54,24 @@ final class HybridRNCandle: HybridRNCandleSpec {
29
54
  showDynamicLoading: Bool,
30
55
  presentationBackground: PresentationBackground,
31
56
  presentationStyle: PresentationStyle,
32
- onSuccess: @escaping (String) -> Void
57
+ onSuccess: @escaping (LinkedAccount) -> Void
33
58
  ) throws {
34
59
  Task { @MainActor in
35
- viewModel.isPresented = isPresented
36
- viewModel.services = services
37
- viewModel.cornerRadius = cornerRadius
38
- viewModel.customerName = customerName
39
- viewModel.showDynamicLoading = showDynamicLoading
40
- viewModel.presentationBackground = presentationBackground
41
- viewModel.presentationStyle = presentationStyle
42
- viewModel.showSheet = isPresented
43
- viewModel.$linkedAccount
60
+ try viewModel.isPresented = isPresented
61
+ try viewModel.services = services
62
+ try viewModel.cornerRadius = cornerRadius
63
+ try viewModel.customerName = customerName
64
+ try viewModel.showDynamicLoading = showDynamicLoading
65
+ try viewModel.presentationBackground = presentationBackground
66
+ try viewModel.presentationStyle = presentationStyle
67
+ try viewModel.showSheet = isPresented
68
+ try viewModel.$linkedAccount
69
+ .removeDuplicates()
70
+ .compactMap { $0 }
44
71
  .receive(on: RunLoop.main)
45
72
  .sink { [weak self] linkedAccount in
46
- guard let account = try? self?.encodeToJSONString(linkedAccount) else {
47
- return
48
- }
49
- onSuccess(account)
73
+ guard let self else { return }
74
+ onSuccess(self.toLinkedAccount(linkedAccount))
50
75
  }
51
76
  .store(in: &cancellables)
52
77
  }
@@ -56,94 +81,54 @@ final class HybridRNCandle: HybridRNCandleSpec {
56
81
 
57
82
  public func unlinkAccount(linkedAccountID: String) throws -> Promise<Void> {
58
83
  Promise.async {
59
- try await self.viewModel.candleClient?.unlinkAccount(linkedAccountID: linkedAccountID)
84
+ try await self.viewModel.candleClient.unlinkAccount(linkedAccountID: linkedAccountID)
60
85
  }
61
86
  }
62
87
 
63
- public func getLinkedAccounts() throws -> NitroModules.Promise<[LinkedAccount]> {
64
- Promise.async {
65
- let accounts = try await self.viewModel.candleClient?.getLinkedAccounts() ?? []
66
- // FIXME: Make this mapping better or use Codable
67
- return accounts.map { account in
68
- let service: Service
69
- switch account.service {
70
- case .apple:
71
- service = .apple
72
- case .cashApp:
73
- service = .cashApp
74
- case .lyft:
75
- service = .lyft
76
- case .uber:
77
- service = .uber
78
- case .robinhood:
79
- service = .robinhood
80
- case .venmo:
81
- service = .venmo
82
- default:
83
- service = .sandbox
84
- }
85
- switch account.details {
86
- case .ActiveLinkedAccountDetails(let details):
87
- return LinkedAccount(
88
- serviceUserID: account.serviceUserID,
89
- details: .init(
90
- state: .active,
91
- username: details.username,
92
- legalName: details.legalName,
93
- accountOpened: details.accountOpened
94
- ),
95
- linkedAccountID: account.linkedAccountID,
96
- service: service
97
- )
98
- case .InactiveLinkedAccountDetails:
99
- return LinkedAccount(
100
- serviceUserID: account.serviceUserID,
101
- details: nil,
102
- linkedAccountID: account.linkedAccountID,
103
- service: service
104
- )
105
- }
88
+ public func getLinkedAccounts() throws -> Promise<[LinkedAccount]> {
89
+ Promise.async { [weak self] in
90
+ guard let self else {
91
+ throw RNClientError.badInitialization(message: "Self was deinitialized \(#function).")
106
92
  }
93
+ let accounts = try await self.viewModel.candleClient.getLinkedAccounts()
94
+ return accounts.map(self.toLinkedAccount)
107
95
  }
108
96
  }
109
97
 
110
- public func getFiatAccounts() throws -> NitroModules.Promise<String> {
98
+ public func getFiatAccounts() throws -> Promise<String> {
111
99
  .async {
112
- let accounts = try await self.viewModel.candleClient?.getFiatAccounts() ?? []
100
+ let accounts = try await self.viewModel.candleClient.getFiatAccounts()
113
101
  return try self.encodeToJSONString(accounts)
114
102
  }
115
103
  }
116
104
 
117
- public func getActivity(span: String?) throws -> NitroModules.Promise<String> {
105
+ public func getActivity(span: String?) throws -> Promise<String> {
118
106
  .async {
119
107
  let activity =
120
- try await self.viewModel.candleClient?.getActivity(query: .init(span: span)) ?? []
108
+ try await self.viewModel.candleClient.getActivity(query: .init(span: span))
121
109
  return try self.encodeToJSONString(activity)
122
110
  }
123
111
  }
124
112
 
125
- public func deleteUser() throws -> NitroModules.Promise<Void> {
113
+ public func deleteUser() throws -> Promise<Void> {
126
114
  .async {
127
- try await self.viewModel.candleClient?.deleteUser()
115
+ try await self.viewModel.candleClient.deleteUser()
128
116
  }
129
117
  }
130
118
 
131
- public func getAvailableTools() throws -> NitroModules.Promise<String> {
132
- .async {
133
- let result = await self.viewModel.candleClient?.getAvailableTools()
134
- if let result,
135
- let data = try? JSONSerialization.data(withJSONObject: result, options: []),
136
- let string = String(data: data, encoding: .utf8)
137
- {
138
- return string
119
+ public func getAvailableTools() throws -> Promise<[AnyMapHolder]> {
120
+ .async { [weak self] in
121
+ guard let self else {
122
+ throw RNClientError.badInitialization(message: "Self was deinitialized \(#function).")
139
123
  }
140
- throw RNClientError.badEncoding
124
+ let result = try await self.viewModel.candleClient.getAvailableTools()
125
+ return result.map(self.toHolder)
141
126
  }
142
127
  }
143
128
 
144
- public func executeTool(tool: ToolCall) throws -> NitroModules.Promise<String> {
129
+ public func executeTool(tool: ToolCall) throws -> Promise<String> {
145
130
  .async {
146
- let result = await self.viewModel.candleClient?.executeTool(
131
+ let result = try await self.viewModel.candleClient.executeTool(
147
132
  tool: RNToolCall(name: tool.name, arguments: tool.arguments)
148
133
  )
149
134
  return try self.encodeToJSONString(result)
@@ -152,30 +137,55 @@ final class HybridRNCandle: HybridRNCandleSpec {
152
137
 
153
138
  // MARK: - Private
154
139
 
155
- @MainActor
156
- @available(iOS 17.0, *)
157
- private func setup() {
158
- let wrapperView = CandleLinkSheetWrapper(viewModel: viewModel)
159
- let hostingVC = HostingViewController(uiView: wrapperView)
160
- self.rootVC = hostingVC
161
- guard let rootViewController = UIApplication.keyWindow?.rootViewController,
162
- let view = rootViewController.view,
163
- let rootView = view.subviews.first
164
- else {
165
- fatalError("No root vc :(")
140
+ private func toHolder(_ dict: [String: Any]) -> AnyMapHolder {
141
+ let holder = AnyMapHolder()
142
+ for (key, rawValue) in dict {
143
+ let anyValue = self.toValue(rawValue)
144
+ switch anyValue {
145
+ case .string(let s):
146
+ holder.setString(key: key, value: s)
147
+ case .number(let d):
148
+ holder.setDouble(key: key, value: d)
149
+ case .bigint(let i):
150
+ holder.setBigInt(key: key, value: i)
151
+ case .bool(let b):
152
+ holder.setBoolean(key: key, value: b)
153
+ case .array(let arr):
154
+ holder.setArray(key: key, value: arr)
155
+ case .object(let obj):
156
+ holder.setObject(key: key, value: obj)
157
+ case .null:
158
+ holder.setNull(key: key)
159
+ }
160
+ }
161
+ return holder
162
+ }
163
+
164
+ private func toValue(_ value: Any) -> AnyValue {
165
+ switch value {
166
+ case let int as Int:
167
+ return .bigint(Int64(int))
168
+ case let int as Int64:
169
+ return .bigint(int)
170
+ case let double as Double:
171
+ return .number(double)
172
+ case let bool as Bool:
173
+ return .bool(bool)
174
+ case let str as String:
175
+ return .string(str)
176
+ case let array as [Any]:
177
+ return .array(array.map(toValue(_:)))
178
+ case let object as [String: Any]:
179
+ let mapped = object.mapValues { toValue($0) }
180
+ return .object(mapped)
181
+ default:
182
+ return .null
166
183
  }
167
- view.insertSubview(hostingVC.view, belowSubview: rootView)
168
- hostingVC.view.translatesAutoresizingMaskIntoConstraints = false
169
- NSLayoutConstraint.activate([
170
- hostingVC.view.heightAnchor.constraint(equalTo: view.heightAnchor),
171
- hostingVC.view.widthAnchor.constraint(equalTo: view.widthAnchor),
172
- hostingVC.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
173
- hostingVC.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
174
- ])
175
184
  }
176
185
 
177
186
  enum RNClientError: Error {
178
187
  case badEncoding
188
+ case badInitialization(message: String)
179
189
  }
180
190
 
181
191
  struct RNToolCall: ToolCallRequest, Codable {
@@ -190,4 +200,194 @@ final class HybridRNCandle: HybridRNCandleSpec {
190
200
  }
191
201
  throw RNClientError.badEncoding
192
202
  }
203
+
204
+ private func toLinkedAccount(_ account: Candle.Models.LinkedAccount) -> LinkedAccount {
205
+ let service: Service = toRNService(service: account.service)
206
+ switch account.details {
207
+ case .ActiveLinkedAccountDetails(let details):
208
+ return LinkedAccount(
209
+ serviceUserID: account.serviceUserID,
210
+ details: .init(
211
+ state: .active,
212
+ username: details.username,
213
+ legalName: details.legalName,
214
+ accountOpened: details.accountOpened
215
+ ),
216
+ linkedAccountID: account.linkedAccountID,
217
+ service: service
218
+ )
219
+ case .InactiveLinkedAccountDetails:
220
+ return LinkedAccount(
221
+ serviceUserID: account.serviceUserID,
222
+ details: nil,
223
+ linkedAccountID: account.linkedAccountID,
224
+ service: service
225
+ )
226
+ }
227
+ }
228
+
229
+ func toRNService(service: Candle.Models.Service) -> Service {
230
+ switch service {
231
+ case .apple:
232
+ return .apple
233
+ case .cashApp:
234
+ return .cashApp
235
+ case .sandbox:
236
+ return .sandbox
237
+ case .robinhood:
238
+ return .robinhood
239
+ case .uber:
240
+ return .uber
241
+ case .lyft:
242
+ return .lyft
243
+ case .venmo:
244
+ return .venmo
245
+ case .chime:
246
+ return .chime
247
+ case .paypal:
248
+ return .paypal
249
+ case .coinbase:
250
+ return .coinbase
251
+ case .discover:
252
+ return .discover
253
+ case .americanExpress:
254
+ return .americanExpress
255
+ case .jpmorganChase:
256
+ return .jpmorganChase
257
+ case .bankOfAmerica:
258
+ return .bankOfAmerica
259
+ case .capitalOne:
260
+ return .capitalOne
261
+ case .citibank:
262
+ return .citibank
263
+ case .vanguard:
264
+ return .vanguard
265
+ case .wellsFargo:
266
+ return .wellsFargo
267
+ case .charlesSchwab:
268
+ return .charlesSchwab
269
+ case .kalshi:
270
+ return .kalshi
271
+ case .experian:
272
+ return .experian
273
+ case .waymo:
274
+ return .waymo
275
+ case .revel:
276
+ return .revel
277
+ case .turo:
278
+ return .turo
279
+ case .getaround:
280
+ return .getaround
281
+ case .zipcar:
282
+ return .zipcar
283
+ case .airbnb:
284
+ return .airbnb
285
+ case .americanAirlines:
286
+ return .americanAirlines
287
+ case .delta:
288
+ return .delta
289
+ case .united:
290
+ return .united
291
+ case .jetblue:
292
+ return .jetblue
293
+ case .southwest:
294
+ return .southwest
295
+ case .hawaiian:
296
+ return .hawaiian
297
+ case .hotels:
298
+ return .hotels
299
+ case .geico:
300
+ return .geico
301
+ case .progressive:
302
+ return .progressive
303
+ case .aaa:
304
+ return .aaa
305
+ case .stateFarm:
306
+ return .stateFarm
307
+ case .hertz:
308
+ return .hertz
309
+ case .avis:
310
+ return .avis
311
+ case .tesla:
312
+ return .tesla
313
+ case .doordash:
314
+ return .doordash
315
+ case .uberEats:
316
+ return .uberEats
317
+ case .grubhub:
318
+ return .grubhub
319
+ case .resy:
320
+ return .resy
321
+ case .opentable:
322
+ return .opentable
323
+ case .starbucks:
324
+ return .starbucks
325
+ case .blueBottle:
326
+ return .blueBottle
327
+ case .costco:
328
+ return .costco
329
+ case .amazon:
330
+ return .amazon
331
+ case .walmart:
332
+ return .walmart
333
+ case .wholeFoods:
334
+ return .wholeFoods
335
+ case .mcdonalds:
336
+ return .mcdonalds
337
+ case .chipotle:
338
+ return .chipotle
339
+ case .sweetgreen:
340
+ return .sweetgreen
341
+ case .snapchat:
342
+ return .snapchat
343
+ case .x:
344
+ return .x
345
+ case .facebook:
346
+ return .facebook
347
+ case .instagram:
348
+ return .instagram
349
+ case .signal:
350
+ return .signal
351
+ case .whatsapp:
352
+ return .whatsapp
353
+ case .messenger:
354
+ return .messenger
355
+ case .linkedin:
356
+ return .linkedin
357
+ case .discord:
358
+ return .discord
359
+ case .messages:
360
+ return .messages
361
+ case .telegram:
362
+ return .telegram
363
+ case .reddit:
364
+ return .reddit
365
+ case .pinterest:
366
+ return .pinterest
367
+ case .newYorkTimes:
368
+ return .newYorkTimes
369
+ case .washingtonPost:
370
+ return .washingtonPost
371
+ case .wallStreetJournal:
372
+ return .wallStreetJournal
373
+ case .cnn:
374
+ return .cnn
375
+ case .yahoo:
376
+ return .yahoo
377
+ case .fox:
378
+ return .fox
379
+ case .perplexity:
380
+ return .perplexity
381
+ case .openai:
382
+ return .openai
383
+ case .polymarket:
384
+ return .polymarket
385
+ case .espn:
386
+ return .espn
387
+ case .youtube:
388
+ return .youtube
389
+ case .netflix:
390
+ return .netflix
391
+ }
392
+ }
193
393
  }
@@ -2,7 +2,6 @@ import UIKit
2
2
 
3
3
  extension UIApplication {
4
4
  /// Returns the current key window if available.
5
- @MainActor
6
5
  static var keyWindow: UIWindow? {
7
6
  UIApplication
8
7
  .shared
@@ -3,47 +3,39 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.deleteUser = deleteUser;
7
- exports.executeTool = executeTool;
8
- exports.getAvailableTools = getAvailableTools;
9
- exports.getLinkedAccounts = getLinkedAccounts;
10
- exports.presentCandleLinkSheet = presentCandleLinkSheet;
11
- exports.unlinkAccount = unlinkAccount;
6
+ exports.CandleClient = void 0;
12
7
  var _reactNativeNitroModules = require("react-native-nitro-modules");
13
- const CandleHybridObject = _reactNativeNitroModules.NitroModules.createHybridObject("RNCandle");
14
- function presentCandleLinkSheet({
15
- services = undefined,
16
- cornerRadius = 24,
17
- customerName,
18
- showDynamicLoading = true,
19
- presentationBackground = "default",
20
- presentationStyle = "sheet",
21
- onSuccess
22
- }) {
23
- CandleHybridObject.candleLinkSheet(true, services, cornerRadius, customerName, showDynamicLoading, presentationBackground, presentationStyle, onSuccess);
24
- }
25
- async function getLinkedAccounts() {
26
- return await CandleHybridObject.getLinkedAccounts();
27
- }
28
- async function unlinkAccount(linkedAccountID) {
29
- await CandleHybridObject.unlinkAccount(linkedAccountID);
30
- }
31
-
32
- // export async function getFiatAccounts(): Promise<string> {
33
- // return await CandleHybridObject.getFiatAccounts();
34
- // }
35
-
36
- // export async function getActivity(span?: string): Promise<string> {
37
- // return await CandleHybridObject.getActivity(span);
38
- // }
39
-
40
- async function deleteUser() {
41
- await CandleHybridObject.deleteUser();
42
- }
43
- async function getAvailableTools() {
44
- return await CandleHybridObject.getAvailableTools();
45
- }
46
- async function executeTool(tool) {
47
- return await CandleHybridObject.executeTool(tool);
8
+ class CandleClient {
9
+ constructor(appUser) {
10
+ const CandleHybridObject = _reactNativeNitroModules.NitroModules.createHybridObject("RNCandle");
11
+ this.candle = CandleHybridObject;
12
+ this.candle.initialize(appUser);
13
+ }
14
+ presentCandleLinkSheet({
15
+ services = undefined,
16
+ cornerRadius = 24,
17
+ customerName,
18
+ showDynamicLoading = true,
19
+ presentationBackground = "default",
20
+ onSuccess
21
+ }) {
22
+ this.candle.candleLinkSheet(true, services, cornerRadius, customerName, showDynamicLoading, presentationBackground, "fullScreen", onSuccess);
23
+ }
24
+ async getLinkedAccounts() {
25
+ return this.candle.getLinkedAccounts();
26
+ }
27
+ async unlinkAccount(linkedAccountID) {
28
+ await this.candle.unlinkAccount(linkedAccountID);
29
+ }
30
+ async deleteUser() {
31
+ await this.candle.deleteUser();
32
+ }
33
+ async getAvailableTools() {
34
+ return this.candle.getAvailableTools();
35
+ }
36
+ async executeTool(tool) {
37
+ return this.candle.executeTool(tool);
38
+ }
48
39
  }
40
+ exports.CandleClient = CandleClient;
49
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","CandleHybridObject","NitroModules","createHybridObject","presentCandleLinkSheet","services","undefined","cornerRadius","customerName","showDynamicLoading","presentationBackground","presentationStyle","onSuccess","candleLinkSheet","getLinkedAccounts","unlinkAccount","linkedAccountID","deleteUser","getAvailableTools","executeTool","tool"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AASA,MAAMC,kBAAkB,GACtBC,qCAAY,CAACC,kBAAkB,CAAW,UAAU,CAAC;AAEhD,SAASC,sBAAsBA,CAAC;EACrCC,QAAQ,GAAGC,SAAS;EACpBC,YAAY,GAAG,EAAE;EACjBC,YAAY;EACZC,kBAAkB,GAAG,IAAI;EACzBC,sBAAsB,GAAG,SAAS;EAClCC,iBAAiB,GAAG,OAAO;EAC3BC;AAUF,CAAC,EAAQ;EACPX,kBAAkB,CAACY,eAAe,CAChC,IAAI,EACJR,QAAQ,EACRE,YAAY,EACZC,YAAY,EACZC,kBAAkB,EAClBC,sBAAsB,EACtBC,iBAAiB,EACjBC,SACF,CAAC;AACH;AAEO,eAAeE,iBAAiBA,CAAA,EAA6B;EAClE,OAAO,MAAMb,kBAAkB,CAACa,iBAAiB,CAAC,CAAC;AACrD;AAEO,eAAeC,aAAaA,CAACC,eAAuB,EAAiB;EAC1E,MAAMf,kBAAkB,CAACc,aAAa,CAACC,eAAe,CAAC;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,eAAeC,UAAUA,CAAA,EAAkB;EAChD,MAAMhB,kBAAkB,CAACgB,UAAU,CAAC,CAAC;AACvC;AAEO,eAAeC,iBAAiBA,CAAA,EAAoB;EACzD,OAAO,MAAMjB,kBAAkB,CAACiB,iBAAiB,CAAC,CAAC;AACrD;AAEO,eAAeC,WAAWA,CAACC,IAGjC,EAAmB;EAClB,OAAO,MAAMnB,kBAAkB,CAACkB,WAAW,CAACC,IAAI,CAAC;AACnD","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","CandleClient","constructor","appUser","CandleHybridObject","NitroModules","createHybridObject","candle","initialize","presentCandleLinkSheet","services","undefined","cornerRadius","customerName","showDynamicLoading","presentationBackground","onSuccess","candleLinkSheet","getLinkedAccounts","unlinkAccount","linkedAccountID","deleteUser","getAvailableTools","executeTool","tool","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AASO,MAAMC,YAAY,CAAC;EAGxBC,WAAWA,CAACC,OAAgB,EAAE;IAC5B,MAAMC,kBAAkB,GACtBC,qCAAY,CAACC,kBAAkB,CAAW,UAAU,CAAC;IACvD,IAAI,CAACC,MAAM,GAAGH,kBAAkB;IAChC,IAAI,CAACG,MAAM,CAACC,UAAU,CAACL,OAAO,CAAC;EACjC;EAEOM,sBAAsBA,CAAC;IAC5BC,QAAQ,GAAGC,SAAS;IACpBC,YAAY,GAAG,EAAE;IACjBC,YAAY;IACZC,kBAAkB,GAAG,IAAI;IACzBC,sBAAsB,GAAG,SAAS;IAClCC;EASF,CAAC,EAAQ;IACP,IAAI,CAACT,MAAM,CAACU,eAAe,CACzB,IAAI,EACJP,QAAQ,EACRE,YAAY,EACZC,YAAY,EACZC,kBAAkB,EAClBC,sBAAsB,EACtB,YAAY,EACZC,SACF,CAAC;EACH;EAEA,MAAaE,iBAAiBA,CAAA,EAA6B;IACzD,OAAO,IAAI,CAACX,MAAM,CAACW,iBAAiB,CAAC,CAAC;EACxC;EAEA,MAAaC,aAAaA,CAACC,eAAuB,EAAiB;IACjE,MAAM,IAAI,CAACb,MAAM,CAACY,aAAa,CAACC,eAAe,CAAC;EAClD;EAEA,MAAaC,UAAUA,CAAA,EAAkB;IACvC,MAAM,IAAI,CAACd,MAAM,CAACc,UAAU,CAAC,CAAC;EAChC;EAEA,MAAaC,iBAAiBA,CAAA,EAAwC;IACpE,OAAO,IAAI,CAACf,MAAM,CAACe,iBAAiB,CAAC,CAAC;EACxC;EAEA,MAAaC,WAAWA,CAACC,IAGxB,EAAmB;IAClB,OAAO,IAAI,CAACjB,MAAM,CAACgB,WAAW,CAACC,IAAI,CAAC;EACtC;AACF;AAACC,OAAA,CAAAxB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,40 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  import { NitroModules } from "react-native-nitro-modules";
4
- const CandleHybridObject = NitroModules.createHybridObject("RNCandle");
5
- export function presentCandleLinkSheet({
6
- services = undefined,
7
- cornerRadius = 24,
8
- customerName,
9
- showDynamicLoading = true,
10
- presentationBackground = "default",
11
- presentationStyle = "sheet",
12
- onSuccess
13
- }) {
14
- CandleHybridObject.candleLinkSheet(true, services, cornerRadius, customerName, showDynamicLoading, presentationBackground, presentationStyle, onSuccess);
15
- }
16
- export async function getLinkedAccounts() {
17
- return await CandleHybridObject.getLinkedAccounts();
18
- }
19
- export async function unlinkAccount(linkedAccountID) {
20
- await CandleHybridObject.unlinkAccount(linkedAccountID);
21
- }
22
-
23
- // export async function getFiatAccounts(): Promise<string> {
24
- // return await CandleHybridObject.getFiatAccounts();
25
- // }
26
-
27
- // export async function getActivity(span?: string): Promise<string> {
28
- // return await CandleHybridObject.getActivity(span);
29
- // }
30
-
31
- export async function deleteUser() {
32
- await CandleHybridObject.deleteUser();
33
- }
34
- export async function getAvailableTools() {
35
- return await CandleHybridObject.getAvailableTools();
36
- }
37
- export async function executeTool(tool) {
38
- return await CandleHybridObject.executeTool(tool);
4
+ export class CandleClient {
5
+ constructor(appUser) {
6
+ const CandleHybridObject = NitroModules.createHybridObject("RNCandle");
7
+ this.candle = CandleHybridObject;
8
+ this.candle.initialize(appUser);
9
+ }
10
+ presentCandleLinkSheet({
11
+ services = undefined,
12
+ cornerRadius = 24,
13
+ customerName,
14
+ showDynamicLoading = true,
15
+ presentationBackground = "default",
16
+ onSuccess
17
+ }) {
18
+ this.candle.candleLinkSheet(true, services, cornerRadius, customerName, showDynamicLoading, presentationBackground, "fullScreen", onSuccess);
19
+ }
20
+ async getLinkedAccounts() {
21
+ return this.candle.getLinkedAccounts();
22
+ }
23
+ async unlinkAccount(linkedAccountID) {
24
+ await this.candle.unlinkAccount(linkedAccountID);
25
+ }
26
+ async deleteUser() {
27
+ await this.candle.deleteUser();
28
+ }
29
+ async getAvailableTools() {
30
+ return this.candle.getAvailableTools();
31
+ }
32
+ async executeTool(tool) {
33
+ return this.candle.executeTool(tool);
34
+ }
39
35
  }
40
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","CandleHybridObject","createHybridObject","presentCandleLinkSheet","services","undefined","cornerRadius","customerName","showDynamicLoading","presentationBackground","presentationStyle","onSuccess","candleLinkSheet","getLinkedAccounts","unlinkAccount","linkedAccountID","deleteUser","getAvailableTools","executeTool","tool"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AASzD,MAAMC,kBAAkB,GACtBD,YAAY,CAACE,kBAAkB,CAAW,UAAU,CAAC;AAEvD,OAAO,SAASC,sBAAsBA,CAAC;EACrCC,QAAQ,GAAGC,SAAS;EACpBC,YAAY,GAAG,EAAE;EACjBC,YAAY;EACZC,kBAAkB,GAAG,IAAI;EACzBC,sBAAsB,GAAG,SAAS;EAClCC,iBAAiB,GAAG,OAAO;EAC3BC;AAUF,CAAC,EAAQ;EACPV,kBAAkB,CAACW,eAAe,CAChC,IAAI,EACJR,QAAQ,EACRE,YAAY,EACZC,YAAY,EACZC,kBAAkB,EAClBC,sBAAsB,EACtBC,iBAAiB,EACjBC,SACF,CAAC;AACH;AAEA,OAAO,eAAeE,iBAAiBA,CAAA,EAA6B;EAClE,OAAO,MAAMZ,kBAAkB,CAACY,iBAAiB,CAAC,CAAC;AACrD;AAEA,OAAO,eAAeC,aAAaA,CAACC,eAAuB,EAAiB;EAC1E,MAAMd,kBAAkB,CAACa,aAAa,CAACC,eAAe,CAAC;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeC,UAAUA,CAAA,EAAkB;EAChD,MAAMf,kBAAkB,CAACe,UAAU,CAAC,CAAC;AACvC;AAEA,OAAO,eAAeC,iBAAiBA,CAAA,EAAoB;EACzD,OAAO,MAAMhB,kBAAkB,CAACgB,iBAAiB,CAAC,CAAC;AACrD;AAEA,OAAO,eAAeC,WAAWA,CAACC,IAGjC,EAAmB;EAClB,OAAO,MAAMlB,kBAAkB,CAACiB,WAAW,CAACC,IAAI,CAAC;AACnD","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","CandleClient","constructor","appUser","CandleHybridObject","createHybridObject","candle","initialize","presentCandleLinkSheet","services","undefined","cornerRadius","customerName","showDynamicLoading","presentationBackground","onSuccess","candleLinkSheet","getLinkedAccounts","unlinkAccount","linkedAccountID","deleteUser","getAvailableTools","executeTool","tool"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AASzD,OAAO,MAAMC,YAAY,CAAC;EAGxBC,WAAWA,CAACC,OAAgB,EAAE;IAC5B,MAAMC,kBAAkB,GACtBJ,YAAY,CAACK,kBAAkB,CAAW,UAAU,CAAC;IACvD,IAAI,CAACC,MAAM,GAAGF,kBAAkB;IAChC,IAAI,CAACE,MAAM,CAACC,UAAU,CAACJ,OAAO,CAAC;EACjC;EAEOK,sBAAsBA,CAAC;IAC5BC,QAAQ,GAAGC,SAAS;IACpBC,YAAY,GAAG,EAAE;IACjBC,YAAY;IACZC,kBAAkB,GAAG,IAAI;IACzBC,sBAAsB,GAAG,SAAS;IAClCC;EASF,CAAC,EAAQ;IACP,IAAI,CAACT,MAAM,CAACU,eAAe,CACzB,IAAI,EACJP,QAAQ,EACRE,YAAY,EACZC,YAAY,EACZC,kBAAkB,EAClBC,sBAAsB,EACtB,YAAY,EACZC,SACF,CAAC;EACH;EAEA,MAAaE,iBAAiBA,CAAA,EAA6B;IACzD,OAAO,IAAI,CAACX,MAAM,CAACW,iBAAiB,CAAC,CAAC;EACxC;EAEA,MAAaC,aAAaA,CAACC,eAAuB,EAAiB;IACjE,MAAM,IAAI,CAACb,MAAM,CAACY,aAAa,CAACC,eAAe,CAAC;EAClD;EAEA,MAAaC,UAAUA,CAAA,EAAkB;IACvC,MAAM,IAAI,CAACd,MAAM,CAACc,UAAU,CAAC,CAAC;EAChC;EAEA,MAAaC,iBAAiBA,CAAA,EAAwC;IACpE,OAAO,IAAI,CAACf,MAAM,CAACe,iBAAiB,CAAC,CAAC;EACxC;EAEA,MAAaC,WAAWA,CAACC,IAGxB,EAAmB;IAClB,OAAO,IAAI,CAACjB,MAAM,CAACgB,WAAW,CAACC,IAAI,CAAC;EACtC;AACF","ignoreList":[]}