react-native-nami-sdk 3.3.0-beta.22 → 3.3.0-beta.7

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 (106) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +52 -0
  3. package/.github/workflows/CI.yaml +341 -0
  4. package/.github/workflows/app_prod.yaml +387 -0
  5. package/.github/workflows/app_stg.yaml +398 -0
  6. package/.github/workflows/build.yml +70 -0
  7. package/.pre-commit-config.yaml +24 -0
  8. package/.prettierrc.js +7 -0
  9. package/README.md +9 -9
  10. package/android/README.md +2 -3
  11. package/android/build.gradle +19 -27
  12. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  13. package/android/gradlew +0 -0
  14. package/android/src/main/AndroidManifest.xml +1 -1
  15. package/android/src/main/java/com/nami/reactlibrary/Constants.kt +3 -0
  16. package/android/src/main/java/com/nami/reactlibrary/NamiBridgeModule.kt +141 -0
  17. package/android/src/main/java/com/nami/reactlibrary/NamiBridgePackage.java +51 -0
  18. package/android/src/main/java/com/{namiml/reactnative → nami/reactlibrary}/NamiCampaignManagerBridge.kt +33 -25
  19. package/android/src/main/java/com/{namiml/reactnative → nami/reactlibrary}/NamiCustomerManagerBridge.kt +6 -14
  20. package/android/src/main/java/com/{namiml/reactnative/NamiEntitlementManagerBridge.kt → nami/reactlibrary/NamiEntitlementManagerBridgeModule.kt} +8 -18
  21. package/android/src/main/java/com/nami/reactlibrary/NamiFlowManagerBridge.kt +58 -0
  22. package/android/src/main/java/com/nami/reactlibrary/NamiMLManagerBridgeModule.kt +58 -0
  23. package/android/src/main/java/com/nami/reactlibrary/NamiManagerBridge.kt +26 -0
  24. package/android/src/main/java/com/nami/reactlibrary/NamiPaywallManagerBridgeModule.kt +258 -0
  25. package/android/src/main/java/com/nami/reactlibrary/NamiPurchaseManagerBridge.kt +108 -0
  26. package/android/src/main/java/com/{namiml/reactnative → nami/reactlibrary}/NamiUtil.kt +23 -26
  27. package/build-utils/get_version_code.py +140 -0
  28. package/build-utils/preflight.py +46 -0
  29. package/{dist/index.d.ts → index.d.ts} +2 -0
  30. package/index.ts +2 -0
  31. package/ios/Nami.m +88 -8
  32. package/ios/NamiCampaignManagerBridge.m +3 -3
  33. package/ios/NamiCampaignManagerBridge.swift +61 -49
  34. package/ios/NamiCustomerManager.m +2 -2
  35. package/ios/NamiCustomerManager.swift +3 -13
  36. package/ios/NamiEntitlementManagerBridge.m +3 -2
  37. package/ios/NamiEntitlementManagerBridge.swift +39 -48
  38. package/ios/NamiFlowManagerBridge.m +2 -2
  39. package/ios/NamiFlowManagerBridge.swift +6 -10
  40. package/ios/NamiMLManagerBridge.m +93 -0
  41. package/ios/NamiManager.m +18 -0
  42. package/ios/NamiManager.swift +30 -0
  43. package/ios/NamiPaywallManagerBridge.m +3 -3
  44. package/ios/NamiPaywallManagerBridge.swift +6 -16
  45. package/ios/NamiPurchaseManagerBridge.m +2 -3
  46. package/ios/NamiPurchaseManagerBridge.swift +10 -15
  47. package/ios/RNNami-Bridging-Header.h +3 -1
  48. package/ios/RNNami.h +10 -0
  49. package/ios/RNNami.m +13 -0
  50. package/package.json +8 -20
  51. package/react-native-nami-sdk.podspec +2 -10
  52. package/src/Nami.d.ts +8 -0
  53. package/src/Nami.ts +18 -28
  54. package/src/NamiCampaignManager.d.ts +18 -0
  55. package/src/NamiCampaignManager.ts +53 -57
  56. package/{dist/src → src}/NamiCustomerManager.d.ts +13 -11
  57. package/src/NamiCustomerManager.ts +81 -55
  58. package/src/NamiEntitlementManager.d.ts +15 -0
  59. package/src/NamiEntitlementManager.ts +36 -49
  60. package/src/NamiFlowManager.d.ts +32 -0
  61. package/src/NamiFlowManager.ts +45 -35
  62. package/src/NamiMLManager.d.ts +7 -0
  63. package/src/NamiMLManager.ts +13 -0
  64. package/src/NamiManager.d.ts +5 -0
  65. package/src/NamiManager.ts +14 -0
  66. package/src/NamiPaywallManager.d.ts +34 -0
  67. package/src/NamiPaywallManager.ts +139 -84
  68. package/src/NamiPurchaseManager.d.ts +20 -0
  69. package/src/NamiPurchaseManager.ts +70 -69
  70. package/{dist/src → src}/types.d.ts +6 -35
  71. package/src/types.ts +7 -39
  72. package/tsconfig.json +22 -24
  73. package/.prettierrc +0 -4
  74. package/android/src/main/java/com/namiml/reactnative/Constants.kt +0 -3
  75. package/android/src/main/java/com/namiml/reactnative/NamiBridgeModule.kt +0 -91
  76. package/android/src/main/java/com/namiml/reactnative/NamiBridgePackage.java +0 -140
  77. package/android/src/main/java/com/namiml/reactnative/NamiFlowManagerBridge.kt +0 -67
  78. package/android/src/main/java/com/namiml/reactnative/NamiPaywallManagerBridgeModule.kt +0 -196
  79. package/android/src/main/java/com/namiml/reactnative/NamiPurchaseManagerBridge.kt +0 -114
  80. package/dist/specs/NativeNami.d.ts +0 -15
  81. package/dist/specs/NativeNamiCampaignManager.d.ts +0 -82
  82. package/dist/specs/NativeNamiCustomerManager.d.ts +0 -29
  83. package/dist/specs/NativeNamiEntitlementManager.d.ts +0 -45
  84. package/dist/specs/NativeNamiFlowManager.d.ts +0 -8
  85. package/dist/specs/NativeNamiPaywallManager.d.ts +0 -71
  86. package/dist/specs/NativeNamiPurchaseManager.d.ts +0 -28
  87. package/dist/src/Nami.d.ts +0 -5
  88. package/dist/src/NamiCampaignManager.d.ts +0 -29
  89. package/dist/src/NamiEntitlementManager.d.ts +0 -13
  90. package/dist/src/NamiFlowManager.d.ts +0 -11
  91. package/dist/src/NamiPaywallManager.d.ts +0 -30
  92. package/dist/src/NamiPurchaseManager.d.ts +0 -17
  93. package/dist/src/transformers.d.ts +0 -3
  94. package/dist/src/version.d.ts +0 -5
  95. package/ios/Nami.swift +0 -85
  96. package/react-native-config.js +0 -9
  97. package/scripts/generate-version.ts +0 -18
  98. package/specs/NativeNami.ts +0 -16
  99. package/specs/NativeNamiCampaignManager.ts +0 -94
  100. package/specs/NativeNamiCustomerManager.ts +0 -37
  101. package/specs/NativeNamiEntitlementManager.ts +0 -54
  102. package/specs/NativeNamiFlowManager.ts +0 -12
  103. package/specs/NativeNamiPaywallManager.ts +0 -85
  104. package/specs/NativeNamiPurchaseManager.ts +0 -33
  105. package/src/transformers.ts +0 -21
  106. package/src/version.ts +0 -5
@@ -1,94 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- launch(
6
- label: string | null,
7
- withUrl: string | null,
8
- context: {
9
- productGroups?: string[];
10
- customAttributes?: { [key: string]: string };
11
- customObject?: { [key: string]: unknown };
12
- } | null,
13
- completion: (successAction: boolean, error: number | null) => void,
14
- paywallCompletion: (event: {
15
- campaignId?: string;
16
- campaignName?: string;
17
- campaignType?: string;
18
- campaignLabel?: string;
19
- campaignUrl?: string;
20
- paywallId?: string;
21
- paywallName?: string;
22
- segmentId?: string;
23
- externalSegmentId?: string;
24
- action: string;
25
- sku?: {
26
- id?: string;
27
- name?: string;
28
- skuId?: string;
29
- type?: string;
30
- promoId?: string;
31
- promoToken?: string;
32
- };
33
- purchaseError?: string;
34
- purchases?: Array<{
35
- sku?: {
36
- id: string;
37
- skuId: string;
38
- name: string;
39
- type: string;
40
- };
41
- skuId: string;
42
- transactionIdentifier?: string;
43
- purchaseToken?: string;
44
- expires?: number; // timestamp (ms)
45
- purchaseInitiatedTimestamp: number; // timestamp (ms)
46
- purchaseSource?: 'CAMPAIGN' | 'MARKETPLACE' | 'UNKNOWN';
47
- }>;
48
- deeplinkUrl?: string;
49
- componentChange?: {
50
- id?: string;
51
- name?: string;
52
- };
53
- videoMetadata?: {
54
- id?: string;
55
- name?: string;
56
- url?: string;
57
- loopVideo?: boolean;
58
- muteByDefault?: boolean;
59
- autoplayVideo?: boolean;
60
- contentTimecode?: string;
61
- contentDuration?: string;
62
- };
63
- timeSpentOnPaywall?: number;
64
- }) => void,
65
- ): void;
66
-
67
- allCampaigns(): Promise<
68
- {
69
- id?: string;
70
- rule?: string;
71
- segment?: string;
72
- paywall?: string;
73
- type: string;
74
- value?: string;
75
- }[]
76
- >;
77
-
78
- isCampaignAvailable(source?: string): Promise<boolean>;
79
-
80
- refresh(): Promise<
81
- {
82
- id?: string;
83
- rule?: string;
84
- segment?: string;
85
- paywall?: string;
86
- type: string;
87
- value?: string;
88
- }[]
89
- >;
90
-
91
- registerAvailableCampaignsHandler(): void;
92
- }
93
-
94
- export default TurboModuleRegistry.getEnforcing<Spec>('RNNamiCampaignManager');
@@ -1,37 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- setCustomerAttribute(key: string, value: string): void;
6
- getCustomerAttribute(key: string): Promise<string | null>;
7
- clearCustomerAttribute(key: string): void;
8
- clearAllCustomerAttributes(): void;
9
-
10
- setCustomerDataPlatformId(platformId: string): void;
11
- clearCustomerDataPlatformId(): void;
12
-
13
- setAnonymousMode(anonymousMode: boolean): void;
14
- inAnonymousMode(): Promise<boolean>;
15
-
16
- journeyState(): Promise<{
17
- formerSubscriber: boolean;
18
- inGracePeriod: boolean;
19
- inTrialPeriod: boolean;
20
- inIntroOfferPeriod: boolean;
21
- isCancelled: boolean;
22
- inPause: boolean;
23
- inAccountHold: boolean;
24
- }>;
25
-
26
- isLoggedIn(): Promise<boolean>;
27
- loggedInId(): Promise<string | null>;
28
- deviceId(): Promise<string>;
29
-
30
- login(customerId: string): void;
31
- logout(): void;
32
-
33
- registerJourneyStateHandler(): void;
34
- registerAccountStateHandler(): void;
35
- }
36
-
37
- export default TurboModuleRegistry.getEnforcing<Spec>('RNNamiCustomerManager');
@@ -1,54 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- isEntitlementActive(referenceId?: string): Promise<boolean>;
6
- active(): Promise<
7
- Array<{
8
- referenceId: string;
9
- desc?: string;
10
- name?: string;
11
- purchasedSkus: Array<{
12
- id: string;
13
- skuId: string;
14
- name?: string;
15
- type: string;
16
- promoId?: string;
17
- promoToken?: string;
18
- }>;
19
- relatedSkus: Array<{
20
- id: string;
21
- skuId: string;
22
- name?: string;
23
- type: string;
24
- promoId?: string;
25
- promoToken?: string;
26
- }>;
27
- activePurchases: Array<{
28
- skuId: string;
29
- transactionIdentifier?: string;
30
- expires?: string;
31
- purchaseInitiatedTimestamp: string;
32
- purchaseSource?: string;
33
- sku?: {
34
- id: string;
35
- skuId: string;
36
- name?: string;
37
- type: string;
38
- promoId?: string;
39
- promoToken?: string;
40
- };
41
- }>;
42
- }>
43
- >;
44
-
45
- refresh(): void;
46
-
47
- registerActiveEntitlementsHandler(): void;
48
-
49
- clearProvisionalEntitlementGrants(): void;
50
- }
51
-
52
- export default TurboModuleRegistry.getEnforcing<Spec>(
53
- 'RNNamiEntitlementManager',
54
- );
@@ -1,12 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- registerStepHandoff(): void;
6
-
7
- resume(): void;
8
-
9
- registerEventHandler(): void;
10
- }
11
-
12
- export default TurboModuleRegistry.getEnforcing<Spec>('RNNamiFlowManager');
@@ -1,85 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- // Unified purchase success handler
6
- buySkuComplete(purchase: {
7
- product: {
8
- id: string;
9
- skuId: string;
10
- name?: string;
11
- type: string;
12
- };
13
- transactionID?: string;
14
- originalTransactionID?: string;
15
- orderId?: string;
16
- purchaseToken?: string;
17
- receiptId?: string;
18
- localizedPrice?: string;
19
- userId?: string;
20
- marketplace?: string;
21
- price?: string;
22
- currencyCode?: string;
23
- }): void;
24
-
25
- // Backward compatibility methods
26
- buySkuCompleteApple(purchase: {
27
- product: {
28
- id: string;
29
- skuId: string;
30
- name?: string;
31
- type: string;
32
- };
33
- transactionID: string;
34
- originalTransactionID: string;
35
- price: string;
36
- currencyCode: string;
37
- }): void;
38
-
39
- buySkuCompleteAmazon(purchase: {
40
- product: {
41
- id: string;
42
- skuId: string;
43
- name?: string;
44
- type: string;
45
- };
46
- receiptId: string;
47
- localizedPrice: string;
48
- userId: string;
49
- marketplace: string;
50
- }): void;
51
-
52
- buySkuCompleteGooglePlay(purchase: {
53
- product: {
54
- id: string;
55
- skuId: string;
56
- name?: string;
57
- type: string;
58
- };
59
- orderId: string;
60
- purchaseToken: string;
61
- }): void;
62
-
63
- registerBuySkuHandler(): void;
64
- registerCloseHandler(): void;
65
- registerSignInHandler(): void;
66
- registerRestoreHandler(): void;
67
- registerDeeplinkActionHandler(): void;
68
-
69
- dismiss(): Promise<void>;
70
- show(): void;
71
- hide(): void;
72
-
73
- isHidden(): Promise<boolean>;
74
- isPaywallOpen(): Promise<boolean>;
75
-
76
- buySkuCancel(): void;
77
-
78
- setProductDetails(productDetails: string, allowOffers?: boolean): void;
79
-
80
- setAppSuppliedVideoDetails(url: string, name?: string): void;
81
-
82
- allowUserInteraction(allowed: boolean): void;
83
- }
84
-
85
- export default TurboModuleRegistry.getEnforcing<Spec>('RNNamiPaywallManager');
@@ -1,33 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- allPurchases(): Promise<
6
- Array<{
7
- skuId: string;
8
- sku?: {
9
- id: string;
10
- skuId: string;
11
- name?: string;
12
- type: string;
13
- promoId?: string;
14
- promoToken?: string;
15
- };
16
- transactionIdentifier?: string;
17
- purchaseToken?: string;
18
- expires?: number; // timestamp in milliseconds
19
- purchaseInitiatedTimestamp: number; // timestamp in milliseconds
20
- purchaseSource?: 'CAMPAIGN' | 'MARKETPLACE' | 'UNKNOWN';
21
- }>
22
- >;
23
-
24
- skuPurchased(skuId: string): Promise<boolean>;
25
- anySkuPurchased(skuIds: string[]): Promise<boolean>;
26
- consumePurchasedSku(skuId: string): void;
27
- presentCodeRedemptionSheet(): void;
28
- restorePurchases(): void;
29
- registerPurchasesChangedHandler(): void;
30
- registerRestorePurchasesHandler(): void;
31
- }
32
-
33
- export default TurboModuleRegistry.getEnforcing<Spec>('RNNamiPurchaseManager');
@@ -1,21 +0,0 @@
1
- import type { NamiPurchase, NamiSKUType } from './types';
2
-
3
- export function parsePurchaseDates(purchase: any): NamiPurchase {
4
- return {
5
- ...purchase,
6
- purchaseInitiatedTimestamp: new Date(purchase.purchaseInitiatedTimestamp),
7
- expires: purchase.expires ? new Date(purchase.expires) : undefined,
8
- };
9
- }
10
-
11
- const validSkuTypes: NamiSKUType[] = [
12
- 'unknown',
13
- 'one_time_purchase',
14
- 'subscription',
15
- ];
16
-
17
- export function coerceSkuType(raw: string): NamiSKUType {
18
- return validSkuTypes.includes(raw as NamiSKUType)
19
- ? (raw as NamiSKUType)
20
- : 'unknown';
21
- }
package/src/version.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Auto-generated file. Do not edit manually.
3
- * React Native Nami SDK version.
4
- */
5
- export const NAMI_REACT_NATIVE_VERSION = '3.3.0-beta.22';