@tryheliumai/paywall-sdk-react-native 0.1.24 → 0.1.26
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/ios/HeliumSwiftInterface.swift +10 -6
- package/lib/commonjs/purchase-handlers.js +3 -1
- package/lib/commonjs/purchase-handlers.js.map +1 -1
- package/lib/module/purchase-handlers.js +3 -1
- package/lib/module/purchase-handlers.js.map +1 -1
- package/lib/typescript/commonjs/src/purchase-handlers.d.ts +3 -3
- package/lib/typescript/commonjs/src/purchase-handlers.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types.d.ts +5 -1
- package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
- package/lib/typescript/module/src/purchase-handlers.d.ts +3 -3
- package/lib/typescript/module/src/purchase-handlers.d.ts.map +1 -1
- package/lib/typescript/module/src/types.d.ts +5 -1
- package/lib/typescript/module/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/purchase-handlers.ts +4 -4
- package/src/types.ts +5 -1
|
@@ -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
|
|
|
@@ -132,7 +135,8 @@ class BridgingPaywallDelegate: HeliumPaywallDelegate {
|
|
|
132
135
|
|
|
133
136
|
callback(PurchaseState.PurchaseResponse(
|
|
134
137
|
transactionId: transactionId,
|
|
135
|
-
status: status
|
|
138
|
+
status: status,
|
|
139
|
+
error: nil
|
|
136
140
|
))
|
|
137
141
|
}
|
|
138
142
|
|
|
@@ -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,
|
|
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":[]}
|
|
@@ -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,
|
|
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 {
|
|
1
|
+
import type { HeliumPurchaseResult } from './types';
|
|
2
2
|
export interface HeliumCallbacks {
|
|
3
|
-
makePurchase: (productId: string) => Promise<
|
|
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<
|
|
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,
|
|
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<
|
|
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,
|
|
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 {
|
|
1
|
+
import type { HeliumPurchaseResult } from './types';
|
|
2
2
|
export interface HeliumCallbacks {
|
|
3
|
-
makePurchase: (productId: string) => Promise<
|
|
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<
|
|
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,
|
|
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<
|
|
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,
|
|
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
package/src/purchase-handlers.ts
CHANGED
|
@@ -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<
|
|
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<
|
|
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<
|
|
9
|
+
makePurchase: (productId: string) => Promise<HeliumPurchaseResult>;
|
|
6
10
|
restorePurchases: () => Promise<boolean>;
|
|
7
11
|
onHeliumPaywallEvent: (event: any) => void;
|
|
8
12
|
}
|