@tryheliumai/paywall-sdk-react-native 0.1.23 → 0.1.25

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.
package/README.md CHANGED
@@ -1,9 +1,3 @@
1
- ---
2
- title: 'SDK Quickstart (React Native)'
3
- description: 'Integrate Helium into your React Native App'
4
- icon: 'code'
5
- ---
6
-
7
1
  ## **Background**
8
2
 
9
3
  Get set up with the Helium SDK for iOS in 5 minutes. Reach out over your Helium slack channel, or email founders@tryhelium.com for any questions.
@@ -6,7 +6,7 @@
6
6
  //
7
7
 
8
8
  import Foundation
9
- import HeliumC
9
+ import Helium
10
10
  import SwiftUI
11
11
  import UIKit
12
12
  import React
@@ -28,6 +28,7 @@ class PurchaseState: ObservableObject {
28
28
  struct PurchaseResponse {
29
29
  let transactionId: String
30
30
  let status: String
31
+ let error: String?
31
32
  }
32
33
 
33
34
  @Published var pendingResponses: [String: (PurchaseResponse) -> Void] = [:]
@@ -47,16 +48,15 @@ class BridgingPaywallDelegate: HeliumPaywallDelegate {
47
48
  public func makePurchase(productId: String) async -> HeliumPaywallTransactionStatus {
48
49
  return await withCheckedContinuation { continuation in
49
50
  let transactionId = UUID().uuidString
50
-
51
+ // Store continuation callback
52
+ purchaseState.pendingResponses[transactionId] = { response in
51
53
  let userInfo: [String: Any] = [
52
- NSLocalizedDescriptionKey: "Failed to make purchase",
54
+ NSLocalizedDescriptionKey: response.error ?? "Failed to make purchase",
53
55
  NSLocalizedFailureReasonErrorKey: "An unknown error occurred",
54
56
  NSLocalizedRecoverySuggestionErrorKey: "Please try again later"
55
57
  ]
56
58
  let failureError = NSError(domain: "PaywallErrorDomain", code: 1001, userInfo: userInfo)
57
59
 
58
- // Store continuation callback
59
- purchaseState.pendingResponses[transactionId] = { response in
60
60
  let status: HeliumPaywallTransactionStatus = switch response.status {
61
61
  case "completed": .purchased
62
62
  case "purchased": .purchased
@@ -88,12 +88,15 @@ class BridgingPaywallDelegate: HeliumPaywallDelegate {
88
88
  return
89
89
  }
90
90
 
91
+ let error = response["error"] as? String
92
+
91
93
  // Remove callback before executing to prevent multiple calls
92
94
  purchaseState.pendingResponses.removeValue(forKey: transactionId)
93
95
 
94
96
  callback(PurchaseState.PurchaseResponse(
95
97
  transactionId: transactionId,
96
- status: status
98
+ status: status,
99
+ error: error
97
100
  ))
98
101
  }
99
102
 
@@ -6,7 +6,7 @@
6
6
  //
7
7
  import Foundation
8
8
  import React
9
- import HeliumC
9
+ import Helium
10
10
  import SwiftUI
11
11
 
12
12
  // Helper extension to find parent view controller
@@ -15,7 +15,9 @@ class DemoHeliumCallbacks {
15
15
  productId
16
16
  }
17
17
  });
18
- return 'completed';
18
+ return {
19
+ status: 'completed'
20
+ };
19
21
  }
20
22
  async restorePurchases() {
21
23
  this.events.push({
@@ -1 +1 @@
1
- {"version":3,"names":["DemoHeliumCallbacks","events","makePurchase","productId","push","timestamp","Date","event","type","restorePurchases","onHeliumPaywallEvent","getEventHistory","exports"],"sourceRoot":"../../src","sources":["purchase-handlers.ts"],"mappings":";;;;;;AAQE;AACO,MAAMA,mBAAmB,CAA4B;EAClDC,MAAM,GAAsC,EAAE;EAEtD,MAAMC,YAAYA,CAACC,SAAiB,EAAoC;IACtE,IAAI,CAACF,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE,UAAU;QAAEL;MAAU;IAAE,CAAC,CAAC;IACnF,OAAO,WAAW;EACpB;EAEA,MAAMM,gBAAgBA,CAAA,EAAqB;IACzC,IAAI,CAACR,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE;MAAU;IAAE,CAAC,CAAC;IACvE,OAAO,IAAI;EACb;EAEAE,oBAAoBA,CAACH,KAAU,EAAQ;IACrC,IAAI,CAACN,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC;IAAM,CAAC,CAAC;EACpD;EAEAI,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACV,MAAM;EACpB;AACF;AAACW,OAAA,CAAAZ,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["DemoHeliumCallbacks","events","makePurchase","productId","push","timestamp","Date","event","type","status","restorePurchases","onHeliumPaywallEvent","getEventHistory","exports"],"sourceRoot":"../../src","sources":["purchase-handlers.ts"],"mappings":";;;;;;AAQE;AACO,MAAMA,mBAAmB,CAA4B;EAClDC,MAAM,GAAsC,EAAE;EAEtD,MAAMC,YAAYA,CAACC,SAAiB,EAAiC;IACnE,IAAI,CAACF,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE,UAAU;QAAEL;MAAU;IAAE,CAAC,CAAC;IACnF,OAAO;MAAEM,MAAM,EAAE;IAAuC,CAAC;EAC3D;EAEA,MAAMC,gBAAgBA,CAAA,EAAqB;IACzC,IAAI,CAACT,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE;MAAU;IAAE,CAAC,CAAC;IACvE,OAAO,IAAI;EACb;EAEAG,oBAAoBA,CAACJ,KAAU,EAAQ;IACrC,IAAI,CAACN,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC;IAAM,CAAC,CAAC;EACpD;EAEAK,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACX,MAAM;EACpB;AACF;AAACY,OAAA,CAAAb,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -11,7 +11,9 @@ export class DemoHeliumCallbacks {
11
11
  productId
12
12
  }
13
13
  });
14
- return 'completed';
14
+ return {
15
+ status: 'completed'
16
+ };
15
17
  }
16
18
  async restorePurchases() {
17
19
  this.events.push({
@@ -1 +1 @@
1
- {"version":3,"names":["DemoHeliumCallbacks","events","makePurchase","productId","push","timestamp","Date","event","type","restorePurchases","onHeliumPaywallEvent","getEventHistory"],"sourceRoot":"../../src","sources":["purchase-handlers.ts"],"mappings":";;AAQE;AACA,OAAO,MAAMA,mBAAmB,CAA4B;EAClDC,MAAM,GAAsC,EAAE;EAEtD,MAAMC,YAAYA,CAACC,SAAiB,EAAoC;IACtE,IAAI,CAACF,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE,UAAU;QAAEL;MAAU;IAAE,CAAC,CAAC;IACnF,OAAO,WAAW;EACpB;EAEA,MAAMM,gBAAgBA,CAAA,EAAqB;IACzC,IAAI,CAACR,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE;MAAU;IAAE,CAAC,CAAC;IACvE,OAAO,IAAI;EACb;EAEAE,oBAAoBA,CAACH,KAAU,EAAQ;IACrC,IAAI,CAACN,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC;IAAM,CAAC,CAAC;EACpD;EAEAI,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACV,MAAM;EACpB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["DemoHeliumCallbacks","events","makePurchase","productId","push","timestamp","Date","event","type","status","restorePurchases","onHeliumPaywallEvent","getEventHistory"],"sourceRoot":"../../src","sources":["purchase-handlers.ts"],"mappings":";;AAQE;AACA,OAAO,MAAMA,mBAAmB,CAA4B;EAClDC,MAAM,GAAsC,EAAE;EAEtD,MAAMC,YAAYA,CAACC,SAAiB,EAAiC;IACnE,IAAI,CAACF,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE,UAAU;QAAEL;MAAU;IAAE,CAAC,CAAC;IACnF,OAAO;MAAEM,MAAM,EAAE;IAAuC,CAAC;EAC3D;EAEA,MAAMC,gBAAgBA,CAAA,EAAqB;IACzC,IAAI,CAACT,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,IAAI,EAAE;MAAU;IAAE,CAAC,CAAC;IACvE,OAAO,IAAI;EACb;EAEAG,oBAAoBA,CAACJ,KAAU,EAAQ;IACrC,IAAI,CAACN,MAAM,CAACG,IAAI,CAAC;MAAEC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MAAEC;IAAM,CAAC,CAAC;EACpD;EAEAK,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACX,MAAM;EACpB;AACF","ignoreList":[]}
@@ -1,12 +1,12 @@
1
- import type { HeliumTransactionStatus } from './types';
1
+ import type { HeliumPurchaseResult } from './types';
2
2
  export interface HeliumCallbacks {
3
- makePurchase: (productId: string) => Promise<string>;
3
+ makePurchase: (productId: string) => Promise<HeliumPurchaseResult>;
4
4
  restorePurchases: () => Promise<boolean>;
5
5
  onHeliumPaywallEvent: (event: any) => void;
6
6
  }
7
7
  export declare class DemoHeliumCallbacks implements HeliumCallbacks {
8
8
  private events;
9
- makePurchase(productId: string): Promise<HeliumTransactionStatus>;
9
+ makePurchase(productId: string): Promise<HeliumPurchaseResult>;
10
10
  restorePurchases(): Promise<boolean>;
11
11
  onHeliumPaywallEvent(event: any): void;
12
12
  getEventHistory(): {
@@ -1 +1 @@
1
- {"version":3,"file":"purchase-handlers.d.ts","sourceRoot":"","sources":["../../../../src/purchase-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAGD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,MAAM,CAAyC;IAEjD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAKjE,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1C,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItC,eAAe;mBAhBc,IAAI;eAAS,GAAG;;CAmB9C"}
1
+ {"version":3,"file":"purchase-handlers.d.ts","sourceRoot":"","sources":["../../../../src/purchase-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnE,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAGD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,MAAM,CAAyC;IAEjD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK9D,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1C,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItC,eAAe;mBAhBc,IAAI;eAAS,GAAG;;CAmB9C"}
@@ -1,7 +1,11 @@
1
1
  export type HeliumTransactionStatus = 'completed' | 'failed' | 'cancelled' | 'pending' | 'restored';
2
+ export type HeliumPurchaseResult = {
3
+ status: HeliumTransactionStatus;
4
+ error?: string;
5
+ };
2
6
  export type HeliumDownloadStatus = 'success' | 'failed' | 'inProgress' | 'notStarted';
3
7
  export interface HeliumCallbacks {
4
- makePurchase: (productId: string) => Promise<HeliumTransactionStatus>;
8
+ makePurchase: (productId: string) => Promise<HeliumPurchaseResult>;
5
9
  restorePurchases: () => Promise<boolean>;
6
10
  onHeliumPaywallEvent: (event: any) => void;
7
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AACpG,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtE,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AACpG,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnE,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb"}
@@ -1,12 +1,12 @@
1
- import type { HeliumTransactionStatus } from './types';
1
+ import type { HeliumPurchaseResult } from './types';
2
2
  export interface HeliumCallbacks {
3
- makePurchase: (productId: string) => Promise<string>;
3
+ makePurchase: (productId: string) => Promise<HeliumPurchaseResult>;
4
4
  restorePurchases: () => Promise<boolean>;
5
5
  onHeliumPaywallEvent: (event: any) => void;
6
6
  }
7
7
  export declare class DemoHeliumCallbacks implements HeliumCallbacks {
8
8
  private events;
9
- makePurchase(productId: string): Promise<HeliumTransactionStatus>;
9
+ makePurchase(productId: string): Promise<HeliumPurchaseResult>;
10
10
  restorePurchases(): Promise<boolean>;
11
11
  onHeliumPaywallEvent(event: any): void;
12
12
  getEventHistory(): {
@@ -1 +1 @@
1
- {"version":3,"file":"purchase-handlers.d.ts","sourceRoot":"","sources":["../../../../src/purchase-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAGD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,MAAM,CAAyC;IAEjD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAKjE,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1C,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItC,eAAe;mBAhBc,IAAI;eAAS,GAAG;;CAmB9C"}
1
+ {"version":3,"file":"purchase-handlers.d.ts","sourceRoot":"","sources":["../../../../src/purchase-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnE,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAGD,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,MAAM,CAAyC;IAEjD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK9D,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1C,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItC,eAAe;mBAhBc,IAAI;eAAS,GAAG;;CAmB9C"}
@@ -1,7 +1,11 @@
1
1
  export type HeliumTransactionStatus = 'completed' | 'failed' | 'cancelled' | 'pending' | 'restored';
2
+ export type HeliumPurchaseResult = {
3
+ status: HeliumTransactionStatus;
4
+ error?: string;
5
+ };
2
6
  export type HeliumDownloadStatus = 'success' | 'failed' | 'inProgress' | 'notStarted';
3
7
  export interface HeliumCallbacks {
4
- makePurchase: (productId: string) => Promise<HeliumTransactionStatus>;
8
+ makePurchase: (productId: string) => Promise<HeliumPurchaseResult>;
5
9
  restorePurchases: () => Promise<boolean>;
6
10
  onHeliumPaywallEvent: (event: any) => void;
7
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AACpG,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtE,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AACpG,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnE,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryheliumai/paywall-sdk-react-native",
3
- "version": "0.1.23",
3
+ "version": "0.1.25",
4
4
  "description": "Paywall SDK Helium",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/commonjs/index.js",
@@ -1,7 +1,7 @@
1
- import type { HeliumTransactionStatus } from './types';
1
+ import type { HeliumTransactionStatus, HeliumPurchaseResult } from './types';
2
2
 
3
3
  export interface HeliumCallbacks {
4
- makePurchase: (productId: string) => Promise<string>;
4
+ makePurchase: (productId: string) => Promise<HeliumPurchaseResult>;
5
5
  restorePurchases: () => Promise<boolean>; // Modified to return Promise
6
6
  onHeliumPaywallEvent: (event: any) => void;
7
7
  }
@@ -10,9 +10,9 @@ export interface HeliumCallbacks {
10
10
  export class DemoHeliumCallbacks implements HeliumCallbacks {
11
11
  private events: { timestamp: Date; event: any }[] = [];
12
12
 
13
- async makePurchase(productId: string): Promise<HeliumTransactionStatus> {
13
+ async makePurchase(productId: string): Promise<HeliumPurchaseResult> {
14
14
  this.events.push({ timestamp: new Date(), event: { type: 'purchase', productId } });
15
- return 'completed' as HeliumTransactionStatus;
15
+ return { status: 'completed' as HeliumTransactionStatus };
16
16
  }
17
17
 
18
18
  async restorePurchases(): Promise<boolean> {
package/src/types.ts CHANGED
@@ -1,8 +1,12 @@
1
1
  export type HeliumTransactionStatus = 'completed' | 'failed' | 'cancelled' | 'pending' | 'restored';
2
+ export type HeliumPurchaseResult = {
3
+ status: HeliumTransactionStatus;
4
+ error?: string; // Optional error message
5
+ };
2
6
  export type HeliumDownloadStatus = 'success' | 'failed' | 'inProgress' | 'notStarted';
3
7
 
4
8
  export interface HeliumCallbacks {
5
- makePurchase: (productId: string) => Promise<HeliumTransactionStatus>;
9
+ makePurchase: (productId: string) => Promise<HeliumPurchaseResult>;
6
10
  restorePurchases: () => Promise<boolean>;
7
11
  onHeliumPaywallEvent: (event: any) => void;
8
12
  }