@sudobility/subscription_lib 0.0.28 → 0.0.30
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/dist/core/service.d.ts +2 -1
- package/dist/core/service.d.ts.map +1 -1
- package/dist/core/service.js +14 -10
- package/dist/core/service.js.map +1 -1
- package/dist/hooks/useUserSubscription.d.ts.map +1 -1
- package/dist/hooks/useUserSubscription.js +39 -40
- package/dist/hooks/useUserSubscription.js.map +1 -1
- package/package.json +2 -2
package/dist/core/service.d.ts
CHANGED
|
@@ -10,13 +10,14 @@ export declare class SubscriptionService {
|
|
|
10
10
|
private offersCache;
|
|
11
11
|
private currentSubscription;
|
|
12
12
|
private loadOfferingsPromise;
|
|
13
|
-
private
|
|
13
|
+
private loadCustomerInfoPromise;
|
|
14
14
|
constructor(config: SubscriptionServiceConfig);
|
|
15
15
|
loadOfferings(params?: {
|
|
16
16
|
currency?: string;
|
|
17
17
|
}): Promise<void>;
|
|
18
18
|
private doLoadOfferings;
|
|
19
19
|
loadCustomerInfo(): Promise<void>;
|
|
20
|
+
private doLoadCustomerInfo;
|
|
20
21
|
restorePurchases(): Promise<CurrentSubscription>;
|
|
21
22
|
getOffer(offerId: string): SubscriptionOffer | null;
|
|
22
23
|
getOfferIds(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/core/service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EAEpB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,yBAAyB;IAExC,OAAO,EAAE,mBAAmB,CAAC;IAE7B,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAKD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/core/service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EAEpB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,yBAAyB;IAExC,OAAO,EAAE,mBAAmB,CAAC;IAE7B,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAKD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,uBAAuB,CAA8B;gBAEjD,MAAM,EAAE,yBAAyB;IAcvC,aAAa,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAwBpD,eAAe;IAmBvB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;YAczB,kBAAkB;IAe1B,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA2BtD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAOnD,WAAW,IAAI,MAAM,EAAE;IASvB,YAAY,IAAI,iBAAiB,EAAE;IAUnC,sBAAsB,IAAI,mBAAmB,GAAG,IAAI;IAOpD,kBAAkB,IAAI,mBAAmB;IAYzC,iBAAiB,IAAI,cAAc;IAO7B,QAAQ,CACZ,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAYjC,kBAAkB,IAAI,OAAO;IAO7B,qBAAqB,IAAI,OAAO;IAQhC,iBAAiB,IAAI,IAAI;IAQzB,OAAO,CAAC,kCAAkC;IA4D1C,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,+BAA+B;CA6BxC"}
|
package/dist/core/service.js
CHANGED
|
@@ -4,7 +4,7 @@ export class SubscriptionService {
|
|
|
4
4
|
this.offersCache = new Map();
|
|
5
5
|
this.currentSubscription = null;
|
|
6
6
|
this.loadOfferingsPromise = null;
|
|
7
|
-
this.
|
|
7
|
+
this.loadCustomerInfoPromise = null;
|
|
8
8
|
this.adapter = config.adapter;
|
|
9
9
|
this.freeTier = config.freeTier;
|
|
10
10
|
}
|
|
@@ -35,19 +35,23 @@ export class SubscriptionService {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
async loadCustomerInfo() {
|
|
38
|
-
if (this.
|
|
39
|
-
return;
|
|
40
|
-
|
|
38
|
+
if (this.loadCustomerInfoPromise) {
|
|
39
|
+
return this.loadCustomerInfoPromise;
|
|
40
|
+
}
|
|
41
|
+
this.loadCustomerInfoPromise = this.doLoadCustomerInfo();
|
|
41
42
|
try {
|
|
42
|
-
|
|
43
|
-
await this.loadOfferings();
|
|
44
|
-
}
|
|
45
|
-
const customerInfo = await this.adapter.getCustomerInfo();
|
|
46
|
-
this.updateSubscriptionFromCustomerInfo(customerInfo);
|
|
43
|
+
await this.loadCustomerInfoPromise;
|
|
47
44
|
}
|
|
48
45
|
finally {
|
|
49
|
-
this.
|
|
46
|
+
this.loadCustomerInfoPromise = null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async doLoadCustomerInfo() {
|
|
50
|
+
if (!this.hasLoadedOfferings()) {
|
|
51
|
+
await this.loadOfferings();
|
|
50
52
|
}
|
|
53
|
+
const customerInfo = await this.adapter.getCustomerInfo();
|
|
54
|
+
this.updateSubscriptionFromCustomerInfo(customerInfo);
|
|
51
55
|
}
|
|
52
56
|
async restorePurchases() {
|
|
53
57
|
if (!this.hasLoadedOfferings()) {
|
package/dist/core/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/core/service.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAehC,MAAM,OAAO,mBAAmB;IAQ9B,YAAY,MAAiC;QALrC,gBAAW,GAAmC,IAAI,GAAG,EAAE,CAAC;QACxD,wBAAmB,GAA+B,IAAI,CAAC;QACvD,yBAAoB,GAAyB,IAAI,CAAC;QAClD,
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/core/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserSubscription.d.ts","sourceRoot":"","sources":["../../src/hooks/useUserSubscription.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useUserSubscription.d.ts","sourceRoot":"","sources":["../../src/hooks/useUserSubscription.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAYjE,MAAM,WAAW,yBAAyB;IAExC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEzC,SAAS,EAAE,OAAO,CAAC;IAEnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAKD,MAAM,WAAW,0BAA0B;IAEzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,0BAA0B,GACnC,yBAAyB,CAyG3B"}
|
|
@@ -1,52 +1,51 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
-
import { getSubscriptionInstance, getSubscriptionUserId, isSubscriptionInitialized, onSubscriptionRefresh,
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { getSubscriptionInstance, getSubscriptionUserId, isSubscriptionInitialized, onSubscriptionRefresh, setSubscriptionUserId, } from '../core/singleton';
|
|
3
3
|
let refetchWarned = false;
|
|
4
4
|
export function useUserSubscription(options) {
|
|
5
5
|
const { userId, userEmail } = options ?? {};
|
|
6
6
|
const [subscription, setSubscription] = useState(null);
|
|
7
7
|
const [isLoading, setIsLoading] = useState(true);
|
|
8
8
|
const [error, setError] = useState(null);
|
|
9
|
+
const loadIdRef = useRef(0);
|
|
9
10
|
useEffect(() => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
setError(null);
|
|
29
|
-
if (!service.hasLoadedCustomerInfo()) {
|
|
11
|
+
let cancelled = false;
|
|
12
|
+
const currentLoadId = ++loadIdRef.current;
|
|
13
|
+
async function initAndLoad() {
|
|
14
|
+
if (!isSubscriptionInitialized()) {
|
|
15
|
+
setError(new Error('Subscription not initialized'));
|
|
16
|
+
setIsLoading(false);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
setIsLoading(true);
|
|
21
|
+
setError(null);
|
|
22
|
+
const currentLibUserId = getSubscriptionUserId();
|
|
23
|
+
if (userId !== undefined && userId !== currentLibUserId) {
|
|
24
|
+
await setSubscriptionUserId(userId, userEmail);
|
|
25
|
+
}
|
|
26
|
+
if (cancelled || currentLoadId !== loadIdRef.current)
|
|
27
|
+
return;
|
|
28
|
+
const service = getSubscriptionInstance();
|
|
30
29
|
await service.loadCustomerInfo();
|
|
30
|
+
if (cancelled || currentLoadId !== loadIdRef.current)
|
|
31
|
+
return;
|
|
32
|
+
setSubscription(service.getCurrentSubscription());
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (!cancelled && currentLoadId === loadIdRef.current) {
|
|
36
|
+
setError(err instanceof Error
|
|
37
|
+
? err
|
|
38
|
+
: new Error('Failed to load subscription'));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
if (!cancelled && currentLoadId === loadIdRef.current) {
|
|
43
|
+
setIsLoading(false);
|
|
44
|
+
}
|
|
31
45
|
}
|
|
32
|
-
const currentSub = service.getCurrentSubscription();
|
|
33
|
-
setSubscription(currentSub);
|
|
34
|
-
}
|
|
35
|
-
catch (err) {
|
|
36
|
-
setError(err instanceof Error ? err : new Error('Failed to load subscription'));
|
|
37
|
-
}
|
|
38
|
-
finally {
|
|
39
|
-
setIsLoading(false);
|
|
40
46
|
}
|
|
41
|
-
|
|
42
|
-
useEffect(() => {
|
|
43
|
-
loadData();
|
|
44
|
-
const unsubscribeUserId = onSubscriptionUserIdChange(() => {
|
|
45
|
-
console.log('[useUserSubscription] User ID changed, reloading...');
|
|
46
|
-
loadData();
|
|
47
|
-
});
|
|
47
|
+
initAndLoad();
|
|
48
48
|
const unsubscribeRefresh = onSubscriptionRefresh(() => {
|
|
49
|
-
console.log('[useUserSubscription] Subscription refreshed, updating...');
|
|
50
49
|
if (isSubscriptionInitialized()) {
|
|
51
50
|
const service = getSubscriptionInstance();
|
|
52
51
|
const currentSub = service.getCurrentSubscription();
|
|
@@ -54,10 +53,10 @@ export function useUserSubscription(options) {
|
|
|
54
53
|
}
|
|
55
54
|
});
|
|
56
55
|
return () => {
|
|
57
|
-
|
|
56
|
+
cancelled = true;
|
|
58
57
|
unsubscribeRefresh();
|
|
59
58
|
};
|
|
60
|
-
}, [
|
|
59
|
+
}, [userId, userEmail]);
|
|
61
60
|
const update = useCallback(async () => {
|
|
62
61
|
if (!isSubscriptionInitialized())
|
|
63
62
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserSubscription.js","sourceRoot":"","sources":["../../src/hooks/useUserSubscription.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useUserSubscription.js","sourceRoot":"","sources":["../../src/hooks/useUserSubscription.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/subscription_lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.30",
|
|
4
4
|
"description": "Cross-platform subscription management with RevenueCat adapter pattern",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"prepublishOnly": "bun run verify"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@sudobility/types": "^1.9.
|
|
33
|
+
"@sudobility/types": "^1.9.59",
|
|
34
34
|
"react": "^18.0.0 || ^19.0.0",
|
|
35
35
|
"@revenuecat/purchases-js": "^1.0.0",
|
|
36
36
|
"react-native-purchases": ">=7.0.0"
|