react-native-candle 0.1.12 → 0.1.14

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 +301 -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 +12 -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 +12 -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 +75 -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 +78 -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 +86 -6
@@ -8,19 +8,45 @@ 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(
30
+ appKey: appUser.appKey, appSecret: appUser.appSecret, appUserID: appUser.appUserID))
31
+ let hostingVC = HostingViewController(uiView: wrapperView)
32
+ self.rootVC = hostingVC
33
+ guard let rootViewController = UIApplication.keyWindow?.rootViewController,
34
+ let view = rootViewController.view,
35
+ let rootView = view.subviews.first
36
+ else {
37
+ throw RNClientError.badInitialization(message: "Application root view was not initialized.")
38
+ }
39
+ view.insertSubview(hostingVC.view, belowSubview: rootView)
40
+ hostingVC.view.translatesAutoresizingMaskIntoConstraints = false
41
+ NSLayoutConstraint.activate([
42
+ hostingVC.view.heightAnchor.constraint(equalTo: view.heightAnchor),
43
+ hostingVC.view.widthAnchor.constraint(equalTo: view.widthAnchor),
44
+ hostingVC.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
45
+ hostingVC.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
46
+ ])
47
+ }
48
+ }
49
+
24
50
  public func candleLinkSheet(
25
51
  isPresented: Bool,
26
52
  services: [Service]?,
@@ -29,24 +55,24 @@ final class HybridRNCandle: HybridRNCandleSpec {
29
55
  showDynamicLoading: Bool,
30
56
  presentationBackground: PresentationBackground,
31
57
  presentationStyle: PresentationStyle,
32
- onSuccess: @escaping (String) -> Void
58
+ onSuccess: @escaping (LinkedAccount) -> Void
33
59
  ) throws {
34
60
  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
61
+ try viewModel.isPresented = isPresented
62
+ try viewModel.services = services
63
+ try viewModel.cornerRadius = cornerRadius
64
+ try viewModel.customerName = customerName
65
+ try viewModel.showDynamicLoading = showDynamicLoading
66
+ try viewModel.presentationBackground = presentationBackground
67
+ try viewModel.presentationStyle = presentationStyle
68
+ try viewModel.showSheet = isPresented
69
+ try viewModel.$linkedAccount
70
+ .removeDuplicates()
71
+ .compactMap { $0 }
44
72
  .receive(on: RunLoop.main)
45
73
  .sink { [weak self] linkedAccount in
46
- guard let account = try? self?.encodeToJSONString(linkedAccount) else {
47
- return
48
- }
49
- onSuccess(account)
74
+ guard let self else { return }
75
+ onSuccess(self.toLinkedAccount(linkedAccount))
50
76
  }
51
77
  .store(in: &cancellables)
52
78
  }
@@ -56,94 +82,54 @@ final class HybridRNCandle: HybridRNCandleSpec {
56
82
 
57
83
  public func unlinkAccount(linkedAccountID: String) throws -> Promise<Void> {
58
84
  Promise.async {
59
- try await self.viewModel.candleClient?.unlinkAccount(linkedAccountID: linkedAccountID)
85
+ try await self.viewModel.candleClient.unlinkAccount(linkedAccountID: linkedAccountID)
60
86
  }
61
87
  }
62
88
 
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
- }
89
+ public func getLinkedAccounts() throws -> Promise<[LinkedAccount]> {
90
+ Promise.async { [weak self] in
91
+ guard let self else {
92
+ throw RNClientError.badInitialization(message: "Self was deinitialized \(#function).")
106
93
  }
94
+ let accounts = try await self.viewModel.candleClient.getLinkedAccounts()
95
+ return accounts.map(self.toLinkedAccount)
107
96
  }
108
97
  }
109
98
 
110
- public func getFiatAccounts() throws -> NitroModules.Promise<String> {
99
+ public func getFiatAccounts() throws -> Promise<String> {
111
100
  .async {
112
- let accounts = try await self.viewModel.candleClient?.getFiatAccounts() ?? []
101
+ let accounts = try await self.viewModel.candleClient.getFiatAccounts()
113
102
  return try self.encodeToJSONString(accounts)
114
103
  }
115
104
  }
116
105
 
117
- public func getActivity(span: String?) throws -> NitroModules.Promise<String> {
106
+ public func getActivity(span: String?) throws -> Promise<String> {
118
107
  .async {
119
108
  let activity =
120
- try await self.viewModel.candleClient?.getActivity(query: .init(span: span)) ?? []
109
+ try await self.viewModel.candleClient.getActivity(query: .init(span: span))
121
110
  return try self.encodeToJSONString(activity)
122
111
  }
123
112
  }
124
113
 
125
- public func deleteUser() throws -> NitroModules.Promise<Void> {
114
+ public func deleteUser() throws -> Promise<Void> {
126
115
  .async {
127
- try await self.viewModel.candleClient?.deleteUser()
116
+ try await self.viewModel.candleClient.deleteUser()
128
117
  }
129
118
  }
130
119
 
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
120
+ public func getAvailableTools() throws -> Promise<[AnyMapHolder]> {
121
+ .async { [weak self] in
122
+ guard let self else {
123
+ throw RNClientError.badInitialization(message: "Self was deinitialized \(#function).")
139
124
  }
140
- throw RNClientError.badEncoding
125
+ let result = try await self.viewModel.candleClient.getAvailableTools()
126
+ return result.map(self.toHolder)
141
127
  }
142
128
  }
143
129
 
144
- public func executeTool(tool: ToolCall) throws -> NitroModules.Promise<String> {
130
+ public func executeTool(tool: ToolCall) throws -> Promise<String> {
145
131
  .async {
146
- let result = await self.viewModel.candleClient?.executeTool(
132
+ let result = try await self.viewModel.candleClient.executeTool(
147
133
  tool: RNToolCall(name: tool.name, arguments: tool.arguments)
148
134
  )
149
135
  return try self.encodeToJSONString(result)
@@ -152,30 +138,55 @@ final class HybridRNCandle: HybridRNCandleSpec {
152
138
 
153
139
  // MARK: - Private
154
140
 
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 :(")
141
+ private func toHolder(_ dict: [String: Any]) -> AnyMapHolder {
142
+ let holder = AnyMapHolder()
143
+ for (key, rawValue) in dict {
144
+ let anyValue = self.toValue(rawValue)
145
+ switch anyValue {
146
+ case .string(let s):
147
+ holder.setString(key: key, value: s)
148
+ case .number(let d):
149
+ holder.setDouble(key: key, value: d)
150
+ case .bigint(let i):
151
+ holder.setBigInt(key: key, value: i)
152
+ case .bool(let b):
153
+ holder.setBoolean(key: key, value: b)
154
+ case .array(let arr):
155
+ holder.setArray(key: key, value: arr)
156
+ case .object(let obj):
157
+ holder.setObject(key: key, value: obj)
158
+ case .null:
159
+ holder.setNull(key: key)
160
+ }
161
+ }
162
+ return holder
163
+ }
164
+
165
+ private func toValue(_ value: Any) -> AnyValue {
166
+ switch value {
167
+ case let int as Int:
168
+ return .bigint(Int64(int))
169
+ case let int as Int64:
170
+ return .bigint(int)
171
+ case let double as Double:
172
+ return .number(double)
173
+ case let bool as Bool:
174
+ return .bool(bool)
175
+ case let str as String:
176
+ return .string(str)
177
+ case let array as [Any]:
178
+ return .array(array.map(toValue(_:)))
179
+ case let object as [String: Any]:
180
+ let mapped = object.mapValues { toValue($0) }
181
+ return .object(mapped)
182
+ default:
183
+ return .null
166
184
  }
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
185
  }
176
186
 
177
187
  enum RNClientError: Error {
178
188
  case badEncoding
189
+ case badInitialization(message: String)
179
190
  }
180
191
 
181
192
  struct RNToolCall: ToolCallRequest, Codable {
@@ -190,4 +201,194 @@ final class HybridRNCandle: HybridRNCandleSpec {
190
201
  }
191
202
  throw RNClientError.badEncoding
192
203
  }
204
+
205
+ private func toLinkedAccount(_ account: Candle.Models.LinkedAccount) -> LinkedAccount {
206
+ let service: Service = toRNService(service: account.service)
207
+ switch account.details {
208
+ case .ActiveLinkedAccountDetails(let details):
209
+ return LinkedAccount(
210
+ serviceUserID: account.serviceUserID,
211
+ details: .init(
212
+ state: .active,
213
+ username: details.username,
214
+ legalName: details.legalName,
215
+ accountOpened: details.accountOpened
216
+ ),
217
+ linkedAccountID: account.linkedAccountID,
218
+ service: service
219
+ )
220
+ case .InactiveLinkedAccountDetails:
221
+ return LinkedAccount(
222
+ serviceUserID: account.serviceUserID,
223
+ details: nil,
224
+ linkedAccountID: account.linkedAccountID,
225
+ service: service
226
+ )
227
+ }
228
+ }
229
+
230
+ func toRNService(service: Candle.Models.Service) -> Service {
231
+ switch service {
232
+ case .apple:
233
+ return .apple
234
+ case .cashApp:
235
+ return .cashApp
236
+ case .sandbox:
237
+ return .sandbox
238
+ case .robinhood:
239
+ return .robinhood
240
+ case .uber:
241
+ return .uber
242
+ case .lyft:
243
+ return .lyft
244
+ case .venmo:
245
+ return .venmo
246
+ case .chime:
247
+ return .chime
248
+ case .paypal:
249
+ return .paypal
250
+ case .coinbase:
251
+ return .coinbase
252
+ case .discover:
253
+ return .discover
254
+ case .americanExpress:
255
+ return .americanExpress
256
+ case .jpmorganChase:
257
+ return .jpmorganChase
258
+ case .bankOfAmerica:
259
+ return .bankOfAmerica
260
+ case .capitalOne:
261
+ return .capitalOne
262
+ case .citibank:
263
+ return .citibank
264
+ case .vanguard:
265
+ return .vanguard
266
+ case .wellsFargo:
267
+ return .wellsFargo
268
+ case .charlesSchwab:
269
+ return .charlesSchwab
270
+ case .kalshi:
271
+ return .kalshi
272
+ case .experian:
273
+ return .experian
274
+ case .waymo:
275
+ return .waymo
276
+ case .revel:
277
+ return .revel
278
+ case .turo:
279
+ return .turo
280
+ case .getaround:
281
+ return .getaround
282
+ case .zipcar:
283
+ return .zipcar
284
+ case .airbnb:
285
+ return .airbnb
286
+ case .americanAirlines:
287
+ return .americanAirlines
288
+ case .delta:
289
+ return .delta
290
+ case .united:
291
+ return .united
292
+ case .jetblue:
293
+ return .jetblue
294
+ case .southwest:
295
+ return .southwest
296
+ case .hawaiian:
297
+ return .hawaiian
298
+ case .hotels:
299
+ return .hotels
300
+ case .geico:
301
+ return .geico
302
+ case .progressive:
303
+ return .progressive
304
+ case .aaa:
305
+ return .aaa
306
+ case .stateFarm:
307
+ return .stateFarm
308
+ case .hertz:
309
+ return .hertz
310
+ case .avis:
311
+ return .avis
312
+ case .tesla:
313
+ return .tesla
314
+ case .doordash:
315
+ return .doordash
316
+ case .uberEats:
317
+ return .uberEats
318
+ case .grubhub:
319
+ return .grubhub
320
+ case .resy:
321
+ return .resy
322
+ case .opentable:
323
+ return .opentable
324
+ case .starbucks:
325
+ return .starbucks
326
+ case .blueBottle:
327
+ return .blueBottle
328
+ case .costco:
329
+ return .costco
330
+ case .amazon:
331
+ return .amazon
332
+ case .walmart:
333
+ return .walmart
334
+ case .wholeFoods:
335
+ return .wholeFoods
336
+ case .mcdonalds:
337
+ return .mcdonalds
338
+ case .chipotle:
339
+ return .chipotle
340
+ case .sweetgreen:
341
+ return .sweetgreen
342
+ case .snapchat:
343
+ return .snapchat
344
+ case .x:
345
+ return .x
346
+ case .facebook:
347
+ return .facebook
348
+ case .instagram:
349
+ return .instagram
350
+ case .signal:
351
+ return .signal
352
+ case .whatsapp:
353
+ return .whatsapp
354
+ case .messenger:
355
+ return .messenger
356
+ case .linkedin:
357
+ return .linkedin
358
+ case .discord:
359
+ return .discord
360
+ case .messages:
361
+ return .messages
362
+ case .telegram:
363
+ return .telegram
364
+ case .reddit:
365
+ return .reddit
366
+ case .pinterest:
367
+ return .pinterest
368
+ case .newYorkTimes:
369
+ return .newYorkTimes
370
+ case .washingtonPost:
371
+ return .washingtonPost
372
+ case .wallStreetJournal:
373
+ return .wallStreetJournal
374
+ case .cnn:
375
+ return .cnn
376
+ case .yahoo:
377
+ return .yahoo
378
+ case .fox:
379
+ return .fox
380
+ case .perplexity:
381
+ return .perplexity
382
+ case .openai:
383
+ return .openai
384
+ case .polymarket:
385
+ return .polymarket
386
+ case .espn:
387
+ return .espn
388
+ case .youtube:
389
+ return .youtube
390
+ case .netflix:
391
+ return .netflix
392
+ }
393
+ }
193
394
  }
@@ -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":[]}