@umituz/react-native-subscription 1.1.1 → 1.3.0

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 (89) hide show
  1. package/package.json +7 -23
  2. package/src/index.ts +50 -19
  3. package/src/presentation/hooks/__tests__/useUserTier.authenticated.test.ts +79 -0
  4. package/src/presentation/hooks/__tests__/useUserTier.guest.test.ts +70 -0
  5. package/src/presentation/hooks/__tests__/useUserTier.states.test.ts +167 -0
  6. package/src/presentation/hooks/usePremiumGate.ts +116 -0
  7. package/src/presentation/hooks/useUserTier.ts +78 -0
  8. package/src/presentation/hooks/useUserTierWithRepository.ts +171 -0
  9. package/src/utils/__tests__/authUtils.test.ts +52 -0
  10. package/src/utils/__tests__/edgeCases.test.ts +84 -0
  11. package/src/utils/__tests__/premiumUtils.test.ts +178 -0
  12. package/src/utils/__tests__/tierUtils.test.ts +148 -0
  13. package/src/utils/__tests__/validation.test.ts +108 -0
  14. package/src/utils/authUtils.ts +65 -0
  15. package/src/utils/premiumAsyncUtils.ts +60 -0
  16. package/src/utils/premiumStatusUtils.ts +79 -0
  17. package/src/utils/premiumUtils.ts +9 -0
  18. package/src/utils/tierUtils.ts +97 -0
  19. package/src/utils/types.ts +37 -0
  20. package/src/utils/userTierUtils.ts +81 -0
  21. package/src/utils/validation.ts +119 -0
  22. package/lib/application/ports/ISubscriptionRepository.d.ts +0 -25
  23. package/lib/application/ports/ISubscriptionRepository.d.ts.map +0 -1
  24. package/lib/application/ports/ISubscriptionRepository.js +0 -9
  25. package/lib/application/ports/ISubscriptionRepository.js.map +0 -1
  26. package/lib/application/ports/ISubscriptionService.d.ts +0 -28
  27. package/lib/application/ports/ISubscriptionService.d.ts.map +0 -1
  28. package/lib/application/ports/ISubscriptionService.js +0 -6
  29. package/lib/application/ports/ISubscriptionService.js.map +0 -1
  30. package/lib/domain/entities/SubscriptionStatus.d.ts +0 -31
  31. package/lib/domain/entities/SubscriptionStatus.d.ts.map +0 -1
  32. package/lib/domain/entities/SubscriptionStatus.js +0 -39
  33. package/lib/domain/entities/SubscriptionStatus.js.map +0 -1
  34. package/lib/domain/errors/SubscriptionError.d.ts +0 -18
  35. package/lib/domain/errors/SubscriptionError.d.ts.map +0 -1
  36. package/lib/domain/errors/SubscriptionError.js +0 -30
  37. package/lib/domain/errors/SubscriptionError.js.map +0 -1
  38. package/lib/domain/value-objects/SubscriptionConfig.d.ts +0 -15
  39. package/lib/domain/value-objects/SubscriptionConfig.d.ts.map +0 -1
  40. package/lib/domain/value-objects/SubscriptionConfig.js +0 -6
  41. package/lib/domain/value-objects/SubscriptionConfig.js.map +0 -1
  42. package/lib/index.d.ts +0 -33
  43. package/lib/index.d.ts.map +0 -1
  44. package/lib/index.js +0 -43
  45. package/lib/index.js.map +0 -1
  46. package/lib/infrastructure/services/ActivationHandler.d.ts +0 -20
  47. package/lib/infrastructure/services/ActivationHandler.d.ts.map +0 -1
  48. package/lib/infrastructure/services/ActivationHandler.js +0 -71
  49. package/lib/infrastructure/services/ActivationHandler.js.map +0 -1
  50. package/lib/infrastructure/services/SubscriptionService.d.ts +0 -22
  51. package/lib/infrastructure/services/SubscriptionService.d.ts.map +0 -1
  52. package/lib/infrastructure/services/SubscriptionService.js +0 -110
  53. package/lib/infrastructure/services/SubscriptionService.js.map +0 -1
  54. package/lib/presentation/hooks/useSubscription.d.ts +0 -33
  55. package/lib/presentation/hooks/useSubscription.d.ts.map +0 -1
  56. package/lib/presentation/hooks/useSubscription.js +0 -129
  57. package/lib/presentation/hooks/useSubscription.js.map +0 -1
  58. package/lib/utils/dateUtils.d.ts +0 -39
  59. package/lib/utils/dateUtils.d.ts.map +0 -1
  60. package/lib/utils/dateUtils.js +0 -117
  61. package/lib/utils/dateUtils.js.map +0 -1
  62. package/lib/utils/dateValidationUtils.d.ts +0 -20
  63. package/lib/utils/dateValidationUtils.d.ts.map +0 -1
  64. package/lib/utils/dateValidationUtils.js +0 -39
  65. package/lib/utils/dateValidationUtils.js.map +0 -1
  66. package/lib/utils/periodUtils.d.ts +0 -38
  67. package/lib/utils/periodUtils.d.ts.map +0 -1
  68. package/lib/utils/periodUtils.js +0 -70
  69. package/lib/utils/periodUtils.js.map +0 -1
  70. package/lib/utils/planDetectionUtils.d.ts +0 -17
  71. package/lib/utils/planDetectionUtils.d.ts.map +0 -1
  72. package/lib/utils/planDetectionUtils.js +0 -31
  73. package/lib/utils/planDetectionUtils.js.map +0 -1
  74. package/lib/utils/priceUtils.d.ts +0 -23
  75. package/lib/utils/priceUtils.d.ts.map +0 -1
  76. package/lib/utils/priceUtils.js +0 -29
  77. package/lib/utils/priceUtils.js.map +0 -1
  78. package/lib/utils/subscriptionConstants.d.ts +0 -62
  79. package/lib/utils/subscriptionConstants.d.ts.map +0 -1
  80. package/lib/utils/subscriptionConstants.js +0 -61
  81. package/lib/utils/subscriptionConstants.js.map +0 -1
  82. package/src/utils/dateUtils.test.ts +0 -116
  83. package/src/utils/dateUtils.ts +0 -147
  84. package/src/utils/periodUtils.ts +0 -104
  85. package/src/utils/planDetectionUtils.test.ts +0 -47
  86. package/src/utils/planDetectionUtils.ts +0 -40
  87. package/src/utils/priceUtils.test.ts +0 -35
  88. package/src/utils/priceUtils.ts +0 -31
  89. package/src/utils/subscriptionConstants.ts +0 -70
@@ -1,70 +0,0 @@
1
- /**
2
- * Subscription Constants
3
- * Centralized constants for subscription operations
4
- *
5
- * Following SOLID, DRY, KISS principles:
6
- * - Single Responsibility: Only constants, no logic
7
- * - DRY: All constants in one place
8
- * - KISS: Simple, clear constant definitions
9
- */
10
-
11
- /**
12
- * Subscription plan types
13
- */
14
- export const SUBSCRIPTION_PLAN_TYPES = {
15
- WEEKLY: 'weekly',
16
- MONTHLY: 'monthly',
17
- YEARLY: 'yearly',
18
- UNKNOWN: 'unknown',
19
- } as const;
20
-
21
- export type SubscriptionPlanType =
22
- (typeof SUBSCRIPTION_PLAN_TYPES)[keyof typeof SUBSCRIPTION_PLAN_TYPES];
23
-
24
- /**
25
- * Minimum expected subscription durations in days
26
- * Used to detect sandbox accelerated timers
27
- * Includes 1 day tolerance for clock skew
28
- */
29
- export const MIN_SUBSCRIPTION_DURATIONS_DAYS = {
30
- WEEKLY: 6,
31
- MONTHLY: 28,
32
- YEARLY: 360,
33
- UNKNOWN: 28,
34
- } as const;
35
-
36
- /**
37
- * Subscription period multipliers
38
- * Days to add for each subscription type
39
- */
40
- export const SUBSCRIPTION_PERIOD_DAYS = {
41
- WEEKLY: 7,
42
- } as const;
43
-
44
- /**
45
- * Date calculation constants
46
- */
47
- export const DATE_CONSTANTS = {
48
- MILLISECONDS_PER_DAY: 1000 * 60 * 60 * 24,
49
- DEFAULT_LOCALE: 'en-US',
50
- } as const;
51
-
52
- /**
53
- * Subscription period unit mappings
54
- * Maps RevenueCat period units to our internal types
55
- */
56
- export const SUBSCRIPTION_PERIOD_UNITS = {
57
- WEEK: 'WEEK',
58
- MONTH: 'MONTH',
59
- YEAR: 'YEAR',
60
- } as const;
61
-
62
- /**
63
- * Product ID keywords for plan detection
64
- */
65
- export const PRODUCT_ID_KEYWORDS = {
66
- WEEKLY: ['weekly', 'week'],
67
- MONTHLY: ['monthly', 'month'],
68
- YEARLY: ['yearly', 'year', 'annual'],
69
- } as const;
70
-