@subscrypts/subscrypts-sdk-react 1.6.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 (186) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2140 -0
  3. package/dist/components/buttons/SubscryptsButton.d.ts +19 -0
  4. package/dist/components/buttons/SubscryptsButton.d.ts.map +1 -0
  5. package/dist/components/buttons/index.d.ts +5 -0
  6. package/dist/components/buttons/index.d.ts.map +1 -0
  7. package/dist/components/checkout/CheckoutWizard.d.ts +22 -0
  8. package/dist/components/checkout/CheckoutWizard.d.ts.map +1 -0
  9. package/dist/components/checkout/ConfigurationStep.d.ts +15 -0
  10. package/dist/components/checkout/ConfigurationStep.d.ts.map +1 -0
  11. package/dist/components/checkout/TransactionStep.d.ts +15 -0
  12. package/dist/components/checkout/TransactionStep.d.ts.map +1 -0
  13. package/dist/components/checkout/index.d.ts +7 -0
  14. package/dist/components/checkout/index.d.ts.map +1 -0
  15. package/dist/components/guards/SubscriptionGuard.d.ts +25 -0
  16. package/dist/components/guards/SubscriptionGuard.d.ts.map +1 -0
  17. package/dist/components/guards/index.d.ts +5 -0
  18. package/dist/components/guards/index.d.ts.map +1 -0
  19. package/dist/components/index.d.ts +20 -0
  20. package/dist/components/index.d.ts.map +1 -0
  21. package/dist/components/merchant/MerchantDashboard.d.ts +24 -0
  22. package/dist/components/merchant/MerchantDashboard.d.ts.map +1 -0
  23. package/dist/components/merchant/index.d.ts +6 -0
  24. package/dist/components/merchant/index.d.ts.map +1 -0
  25. package/dist/components/pricing/PlanCard.d.ts +45 -0
  26. package/dist/components/pricing/PlanCard.d.ts.map +1 -0
  27. package/dist/components/pricing/PricingTable.d.ts +68 -0
  28. package/dist/components/pricing/PricingTable.d.ts.map +1 -0
  29. package/dist/components/pricing/index.d.ts +10 -0
  30. package/dist/components/pricing/index.d.ts.map +1 -0
  31. package/dist/components/shared/ErrorDisplay.d.ts +34 -0
  32. package/dist/components/shared/ErrorDisplay.d.ts.map +1 -0
  33. package/dist/components/shared/LoadingSpinner.d.ts +5 -0
  34. package/dist/components/shared/LoadingSpinner.d.ts.map +1 -0
  35. package/dist/components/shared/Modal.d.ts +12 -0
  36. package/dist/components/shared/Modal.d.ts.map +1 -0
  37. package/dist/components/shared/NetworkSwitchPrompt.d.ts +33 -0
  38. package/dist/components/shared/NetworkSwitchPrompt.d.ts.map +1 -0
  39. package/dist/components/shared/SubscryptsErrorBoundary.d.ts +41 -0
  40. package/dist/components/shared/SubscryptsErrorBoundary.d.ts.map +1 -0
  41. package/dist/components/subscription/ConfirmDialog.d.ts +44 -0
  42. package/dist/components/subscription/ConfirmDialog.d.ts.map +1 -0
  43. package/dist/components/subscription/ManageSubscriptionModal.d.ts +35 -0
  44. package/dist/components/subscription/ManageSubscriptionModal.d.ts.map +1 -0
  45. package/dist/components/subscription/SubscriptionCard.d.ts +35 -0
  46. package/dist/components/subscription/SubscriptionCard.d.ts.map +1 -0
  47. package/dist/components/subscription/SubscriptionDashboard.d.ts +40 -0
  48. package/dist/components/subscription/SubscriptionDashboard.d.ts.map +1 -0
  49. package/dist/components/subscription/index.d.ts +12 -0
  50. package/dist/components/subscription/index.d.ts.map +1 -0
  51. package/dist/components/wallet/ConnectWalletModal.d.ts +29 -0
  52. package/dist/components/wallet/ConnectWalletModal.d.ts.map +1 -0
  53. package/dist/components/wallet/index.d.ts +6 -0
  54. package/dist/components/wallet/index.d.ts.map +1 -0
  55. package/dist/constants/index.d.ts +16 -0
  56. package/dist/constants/index.d.ts.map +1 -0
  57. package/dist/context/SubscryptsContext.d.ts +36 -0
  58. package/dist/context/SubscryptsContext.d.ts.map +1 -0
  59. package/dist/context/SubscryptsProvider.d.ts +28 -0
  60. package/dist/context/SubscryptsProvider.d.ts.map +1 -0
  61. package/dist/context/index.d.ts +7 -0
  62. package/dist/context/index.d.ts.map +1 -0
  63. package/dist/contract/abis/Subscrypts.d.ts +2917 -0
  64. package/dist/contract/abis/Subscrypts.d.ts.map +1 -0
  65. package/dist/contract/abis/dexFactoryABI.d.ts +184 -0
  66. package/dist/contract/abis/dexFactoryABI.d.ts.map +1 -0
  67. package/dist/contract/abis/dexPairABI.d.ts +775 -0
  68. package/dist/contract/abis/dexPairABI.d.ts.map +1 -0
  69. package/dist/contract/abis/dexPositionManagerABI.d.ts +948 -0
  70. package/dist/contract/abis/dexPositionManagerABI.d.ts.map +1 -0
  71. package/dist/contract/abis/dexQuoterABI.d.ts +206 -0
  72. package/dist/contract/abis/dexQuoterABI.d.ts.map +1 -0
  73. package/dist/contract/abis/dexRouterABI.d.ts +439 -0
  74. package/dist/contract/abis/dexRouterABI.d.ts.map +1 -0
  75. package/dist/contract/abis/dexUSDCABI.d.ts +132 -0
  76. package/dist/contract/abis/dexUSDCABI.d.ts.map +1 -0
  77. package/dist/contract/abis/index.d.ts +15 -0
  78. package/dist/contract/abis/index.d.ts.map +1 -0
  79. package/dist/contract/config.d.ts +40 -0
  80. package/dist/contract/config.d.ts.map +1 -0
  81. package/dist/contract/index.d.ts +12 -0
  82. package/dist/contract/index.d.ts.map +1 -0
  83. package/dist/contract/methods.d.ts +305 -0
  84. package/dist/contract/methods.d.ts.map +1 -0
  85. package/dist/hooks/events/index.d.ts +6 -0
  86. package/dist/hooks/events/index.d.ts.map +1 -0
  87. package/dist/hooks/events/useSubscryptsEvents.d.ts +63 -0
  88. package/dist/hooks/events/useSubscryptsEvents.d.ts.map +1 -0
  89. package/dist/hooks/index.d.ts +12 -0
  90. package/dist/hooks/index.d.ts.map +1 -0
  91. package/dist/hooks/merchant/index.d.ts +10 -0
  92. package/dist/hooks/merchant/index.d.ts.map +1 -0
  93. package/dist/hooks/merchant/useMerchantPlans.d.ts +30 -0
  94. package/dist/hooks/merchant/useMerchantPlans.d.ts.map +1 -0
  95. package/dist/hooks/merchant/useMerchantRevenue.d.ts +59 -0
  96. package/dist/hooks/merchant/useMerchantRevenue.d.ts.map +1 -0
  97. package/dist/hooks/merchant/useMerchantSubscribers.d.ts +54 -0
  98. package/dist/hooks/merchant/useMerchantSubscribers.d.ts.map +1 -0
  99. package/dist/hooks/plans/index.d.ts +12 -0
  100. package/dist/hooks/plans/index.d.ts.map +1 -0
  101. package/dist/hooks/plans/usePlan.d.ts +33 -0
  102. package/dist/hooks/plans/usePlan.d.ts.map +1 -0
  103. package/dist/hooks/plans/usePlans.d.ts +36 -0
  104. package/dist/hooks/plans/usePlans.d.ts.map +1 -0
  105. package/dist/hooks/plans/usePlansByMerchant.d.ts +35 -0
  106. package/dist/hooks/plans/usePlansByMerchant.d.ts.map +1 -0
  107. package/dist/hooks/pricing/index.d.ts +10 -0
  108. package/dist/hooks/pricing/index.d.ts.map +1 -0
  109. package/dist/hooks/pricing/usePlanPrice.d.ts +59 -0
  110. package/dist/hooks/pricing/usePlanPrice.d.ts.map +1 -0
  111. package/dist/hooks/pricing/useSUBSPrice.d.ts +39 -0
  112. package/dist/hooks/pricing/useSUBSPrice.d.ts.map +1 -0
  113. package/dist/hooks/subscriptions/index.d.ts +12 -0
  114. package/dist/hooks/subscriptions/index.d.ts.map +1 -0
  115. package/dist/hooks/subscriptions/useManageSubscription.d.ts +39 -0
  116. package/dist/hooks/subscriptions/useManageSubscription.d.ts.map +1 -0
  117. package/dist/hooks/subscriptions/useMySubscriptions.d.ts +53 -0
  118. package/dist/hooks/subscriptions/useMySubscriptions.d.ts.map +1 -0
  119. package/dist/hooks/subscriptions/useSubscribe.d.ts +58 -0
  120. package/dist/hooks/subscriptions/useSubscribe.d.ts.map +1 -0
  121. package/dist/hooks/subscriptions/useSubscriptionStatus.d.ts +34 -0
  122. package/dist/hooks/subscriptions/useSubscriptionStatus.d.ts.map +1 -0
  123. package/dist/hooks/tokens/index.d.ts +6 -0
  124. package/dist/hooks/tokens/index.d.ts.map +1 -0
  125. package/dist/hooks/tokens/useTokenBalance.d.ts +36 -0
  126. package/dist/hooks/tokens/useTokenBalance.d.ts.map +1 -0
  127. package/dist/hooks/wallet/index.d.ts +6 -0
  128. package/dist/hooks/wallet/index.d.ts.map +1 -0
  129. package/dist/hooks/wallet/useWallet.d.ts +40 -0
  130. package/dist/hooks/wallet/useWallet.d.ts.map +1 -0
  131. package/dist/index.cjs +2 -0
  132. package/dist/index.cjs.map +1 -0
  133. package/dist/index.d.ts +42 -0
  134. package/dist/index.d.ts.map +1 -0
  135. package/dist/index.js +7850 -0
  136. package/dist/index.js.map +1 -0
  137. package/dist/services/cache.service.d.ts +89 -0
  138. package/dist/services/cache.service.d.ts.map +1 -0
  139. package/dist/services/index.d.ts +7 -0
  140. package/dist/services/index.d.ts.map +1 -0
  141. package/dist/services/token.service.d.ts +43 -0
  142. package/dist/services/token.service.d.ts.map +1 -0
  143. package/dist/services/wallet.service.d.ts +46 -0
  144. package/dist/services/wallet.service.d.ts.map +1 -0
  145. package/dist/style.css +3 -0
  146. package/dist/styles.d.ts +2 -0
  147. package/dist/styles.d.ts.map +1 -0
  148. package/dist/types/component.types.d.ts +192 -0
  149. package/dist/types/component.types.d.ts.map +1 -0
  150. package/dist/types/contract.types.d.ts +81 -0
  151. package/dist/types/contract.types.d.ts.map +1 -0
  152. package/dist/types/index.d.ts +8 -0
  153. package/dist/types/index.d.ts.map +1 -0
  154. package/dist/types/subscription.types.d.ts +65 -0
  155. package/dist/types/subscription.types.d.ts.map +1 -0
  156. package/dist/types/wallet.types.d.ts +53 -0
  157. package/dist/types/wallet.types.d.ts.map +1 -0
  158. package/dist/utils/errorMessages.d.ts +44 -0
  159. package/dist/utils/errorMessages.d.ts.map +1 -0
  160. package/dist/utils/errors.d.ts +60 -0
  161. package/dist/utils/errors.d.ts.map +1 -0
  162. package/dist/utils/formatters.d.ts +44 -0
  163. package/dist/utils/formatters.d.ts.map +1 -0
  164. package/dist/utils/index.d.ts +10 -0
  165. package/dist/utils/index.d.ts.map +1 -0
  166. package/dist/utils/logger.d.ts +80 -0
  167. package/dist/utils/logger.d.ts.map +1 -0
  168. package/dist/utils/permit.utils.d.ts +52 -0
  169. package/dist/utils/permit.utils.d.ts.map +1 -0
  170. package/dist/utils/subscriptionHelpers.d.ts +67 -0
  171. package/dist/utils/subscriptionHelpers.d.ts.map +1 -0
  172. package/dist/utils/subscriptionStatus.d.ts +48 -0
  173. package/dist/utils/subscriptionStatus.d.ts.map +1 -0
  174. package/dist/utils/validators.d.ts +76 -0
  175. package/dist/utils/validators.d.ts.map +1 -0
  176. package/dist/wallet/ExternalConnector.d.ts +32 -0
  177. package/dist/wallet/ExternalConnector.d.ts.map +1 -0
  178. package/dist/wallet/InjectedConnector.d.ts +55 -0
  179. package/dist/wallet/InjectedConnector.d.ts.map +1 -0
  180. package/dist/wallet/index.d.ts +9 -0
  181. package/dist/wallet/index.d.ts.map +1 -0
  182. package/dist/wallet/sessionStore.d.ts +28 -0
  183. package/dist/wallet/sessionStore.d.ts.map +1 -0
  184. package/dist/wallet/types.d.ts +66 -0
  185. package/dist/wallet/types.d.ts.map +1 -0
  186. package/package.json +99 -0
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Intelligent Caching Service
3
+ *
4
+ * Provides TTL-based caching with:
5
+ * - Chain ID namespacing (prevents testnet/mainnet collisions)
6
+ * - In-flight request deduplication
7
+ * - LRU eviction
8
+ * - Pattern-based invalidation
9
+ * - Performance statistics tracking
10
+ */
11
+ export interface CacheEntry<T> {
12
+ data: T;
13
+ timestamp: number;
14
+ ttl: number;
15
+ }
16
+ export interface CacheConfig {
17
+ enabled: boolean;
18
+ defaultTTL: number;
19
+ maxEntries: number;
20
+ }
21
+ export interface CacheStats {
22
+ hits: number;
23
+ misses: number;
24
+ entries: number;
25
+ hitRate: number;
26
+ }
27
+ /**
28
+ * Cache Manager with chain ID namespacing and statistics
29
+ */
30
+ export declare class CacheManager {
31
+ private cache;
32
+ private config;
33
+ private inFlightRequests;
34
+ private stats;
35
+ private chainId;
36
+ constructor(chainId: number, config?: Partial<CacheConfig>);
37
+ /**
38
+ * Get cached data or execute fetcher
39
+ *
40
+ * @param key - Cache key (will be prefixed with chain ID)
41
+ * @param fetcher - Async function to fetch data if not cached
42
+ * @param ttl - Time-to-live in milliseconds (-1 for infinite)
43
+ */
44
+ get<T>(key: string, fetcher: () => Promise<T>, ttl?: number): Promise<T>;
45
+ /**
46
+ * Manually set cache entry (used for smart TTL updates)
47
+ */
48
+ set(key: string, data: unknown, ttl: number): void;
49
+ /**
50
+ * Check if cache entry has expired
51
+ */
52
+ private isExpired;
53
+ /**
54
+ * Invalidate cache entries by pattern
55
+ *
56
+ * @param keyPattern - Regex pattern to match keys (omit for clear all)
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Invalidate all subscription status for a specific plan
61
+ * cacheManager.invalidate('subscription-status:1:');
62
+ *
63
+ * // Invalidate all user subscriptions
64
+ * cacheManager.invalidate('my-subscriptions:');
65
+ *
66
+ * // Clear all cache
67
+ * cacheManager.invalidate();
68
+ * ```
69
+ */
70
+ invalidate(keyPattern?: string): void;
71
+ /**
72
+ * Clear all cache entries and reset statistics
73
+ */
74
+ clear(): void;
75
+ /**
76
+ * Get cache performance statistics
77
+ *
78
+ * @returns Cache stats including hit rate
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const stats = cacheManager.getStats();
83
+ * console.log(`Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`);
84
+ * console.log(`RPC savings: ${stats.hits} calls avoided`);
85
+ * ```
86
+ */
87
+ getStats(): CacheStats;
88
+ }
89
+ //# sourceMappingURL=cache.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.service.d.ts","sourceRoot":"","sources":["../../src/services/cache.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAa1D;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC;IAmCb;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAmBlD;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;;;;;;;;;;OAWG;IACH,QAAQ,IAAI,UAAU;CASvB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Service layer exports
3
+ */
4
+ export { WalletService } from './wallet.service';
5
+ export { TokenService } from './token.service';
6
+ export { CacheManager, type CacheConfig, type CacheStats } from './cache.service';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { Contract, Signer } from 'ethers';
2
+
3
+ /**
4
+ * Service class for ERC20 token operations
5
+ */
6
+ export declare class TokenService {
7
+ private contract;
8
+ private decimals;
9
+ private symbol;
10
+ constructor(tokenAddress: string, signer: Signer, decimals: number, symbol: string);
11
+ /**
12
+ * Get token balance for an address
13
+ */
14
+ getBalance(address: string): Promise<bigint>;
15
+ /**
16
+ * Get current allowance for a spender
17
+ */
18
+ getAllowance(owner: string, spender: string): Promise<bigint>;
19
+ /**
20
+ * Approve spender to use tokens
21
+ */
22
+ approve(spender: string, amount: bigint): Promise<string>;
23
+ /**
24
+ * Check if balance is sufficient and approve if needed
25
+ */
26
+ ensureAllowance(owner: string, spender: string, requiredAmount: bigint): Promise<{
27
+ needsApproval: boolean;
28
+ txHash?: string;
29
+ }>;
30
+ /**
31
+ * Get token contract instance
32
+ */
33
+ getContract(): Contract;
34
+ /**
35
+ * Get token decimals
36
+ */
37
+ getDecimals(): number;
38
+ /**
39
+ * Get token symbol
40
+ */
41
+ getSymbol(): string;
42
+ }
43
+ //# sourceMappingURL=token.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.service.d.ts","sourceRoot":"","sources":["../../src/services/token.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAI1C;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMlF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYnE;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB/D;;OAEG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAyBvD;;OAEG;IACH,WAAW,IAAI,QAAQ;IAIvB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB"}
@@ -0,0 +1,46 @@
1
+ import { BrowserProvider } from 'ethers';
2
+ import { NetworkConfig } from '../types';
3
+
4
+ /**
5
+ * Service class for wallet connection and management
6
+ */
7
+ export declare class WalletService {
8
+ private provider;
9
+ /**
10
+ * Connect to browser wallet (MetaMask, etc.)
11
+ */
12
+ connect(): Promise<{
13
+ provider: BrowserProvider;
14
+ address: string;
15
+ chainId: number;
16
+ }>;
17
+ /**
18
+ * Switch to a specific network
19
+ */
20
+ switchNetwork(targetNetwork: NetworkConfig): Promise<void>;
21
+ /**
22
+ * Add a network to the wallet
23
+ */
24
+ addNetwork(network: NetworkConfig): Promise<void>;
25
+ /**
26
+ * Get current provider
27
+ */
28
+ getProvider(): BrowserProvider | null;
29
+ /**
30
+ * Listen to account changes
31
+ */
32
+ onAccountsChanged(callback: (...args: unknown[]) => void): void;
33
+ /**
34
+ * Listen to network changes
35
+ */
36
+ onChainChanged(callback: (...args: unknown[]) => void): void;
37
+ /**
38
+ * Remove account change listener
39
+ */
40
+ removeAccountsChangedListener(callback: (...args: unknown[]) => void): void;
41
+ /**
42
+ * Remove network change listener
43
+ */
44
+ removeChainChangedListener(callback: (...args: unknown[]) => void): void;
45
+ }
46
+ //# sourceMappingURL=wallet.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.service.d.ts","sourceRoot":"","sources":["../../src/services/wallet.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAgC;IAEhD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC;QACvB,QAAQ,EAAE,eAAe,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAkCF;;OAEG;IACG,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvD;;OAEG;IACH,WAAW,IAAI,eAAe,GAAG,IAAI;IAIrC;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAM/D;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAM5D;;OAEG;IACH,6BAA6B,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAM3E;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;CAKzE"}
package/dist/style.css ADDED
@@ -0,0 +1,3 @@
1
+ :root{--subscrypts-color-primary:#3b82f6;--subscrypts-color-secondary:#10b981;--subscrypts-color-error:#ef4444;--subscrypts-color-success:#10b981;--subscrypts-color-warning:#f59e0b;--subscrypts-color-text-primary:#1f2937;--subscrypts-color-text-secondary:#6b7280;--subscrypts-color-background:#fff;--subscrypts-color-background-secondary:#f9fafb;--subscrypts-color-border:#e5e7eb;--subscrypts-spacing-unit:0.25rem;--subscrypts-spacing-xs:calc(var(--subscrypts-spacing-unit)*1);--subscrypts-spacing-sm:calc(var(--subscrypts-spacing-unit)*2);--subscrypts-spacing-md:calc(var(--subscrypts-spacing-unit)*4);--subscrypts-spacing-lg:calc(var(--subscrypts-spacing-unit)*6);--subscrypts-spacing-xl:calc(var(--subscrypts-spacing-unit)*8);--subscrypts-border-radius-sm:0.25rem;--subscrypts-border-radius:0.5rem;--subscrypts-border-radius-lg:0.75rem;--subscrypts-border-radius-xl:1rem;--subscrypts-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--subscrypts-font-size-xs:0.75rem;--subscrypts-font-size-sm:0.875rem;--subscrypts-font-size-base:1rem;--subscrypts-font-size-lg:1.125rem;--subscrypts-font-size-xl:1.25rem;--subscrypts-font-size-2xl:1.5rem;--subscrypts-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--subscrypts-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);--subscrypts-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--subscrypts-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--subscrypts-transition-base:150ms cubic-bezier(0.4,0,0.2,1);--subscrypts-transition-slow:300ms cubic-bezier(0.4,0,0.2,1)}@media (prefers-color-scheme:dark){:root{--subscrypts-color-text-primary:#f9fafb;--subscrypts-color-text-secondary:#d1d5db;--subscrypts-color-background:#111827;--subscrypts-color-background-secondary:#1f2937;--subscrypts-color-border:#374151}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
2
+
3
+ /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.subscrypts-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.subscrypts-ml-2{margin-left:.5rem}.subscrypts-mt-2{margin-top:.5rem}.subscrypts-flex{display:flex}.subscrypts-h-8{height:2rem}.subscrypts-w-8{width:2rem}.subscrypts-w-full{width:100%}.subscrypts-max-w-2xl{max-width:42rem}.subscrypts-max-w-lg{max-width:32rem}.subscrypts-max-w-md{max-width:28rem}.subscrypts-animate-spin{animation:subscrypts-spin 1s linear infinite}.subscrypts-items-center{align-items:center}.subscrypts-justify-center{justify-content:center}.subscrypts-rounded-full{border-radius:9999px}.subscrypts-border-b-2{border-bottom-width:2px}.subscrypts-border-brand-primary{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.subscrypts-p-4{padding:1rem}.subscrypts-text-center{text-align:center}.subscrypts-text-sm{font-size:.875rem;line-height:1.25rem}.subscrypts-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes subscrypts-spin{to{transform:rotate(1turn)}}.subscrypts-animate-spin{animation:subscrypts-spin 1s linear infinite}.subscrypts-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--subscrypts-font-family);font-weight:500;border-radius:var(--subscrypts-border-radius);transition:all var(--subscrypts-transition-base);cursor:pointer;outline:none;border:none}.subscrypts-btn:disabled{opacity:.5;cursor:not-allowed}.subscrypts-btn-sm{padding:var(--subscrypts-spacing-xs) var(--subscrypts-spacing-sm);font-size:var(--subscrypts-font-size-sm)}.subscrypts-btn-md{padding:var(--subscrypts-spacing-sm) var(--subscrypts-spacing-md);font-size:var(--subscrypts-font-size-base)}.subscrypts-btn-lg{padding:var(--subscrypts-spacing-md) var(--subscrypts-spacing-lg);font-size:var(--subscrypts-font-size-lg)}.subscrypts-btn-primary{background-color:var(--subscrypts-color-primary);color:#fff}.subscrypts-btn-primary:hover:not(:disabled){opacity:.9;box-shadow:var(--subscrypts-shadow-md)}.subscrypts-btn-secondary{background-color:var(--subscrypts-color-secondary);color:#fff}.subscrypts-btn-secondary:hover:not(:disabled){opacity:.9;box-shadow:var(--subscrypts-shadow-md)}.subscrypts-btn-outline{background-color:transparent;color:var(--subscrypts-color-primary);border:1px solid var(--subscrypts-color-primary)}.subscrypts-btn-outline:hover:not(:disabled){background-color:var(--subscrypts-color-primary);color:#fff}.subscrypts-flex{display:flex}.subscrypts-items-center{align-items:center}.subscrypts-justify-center{justify-content:center}.subscrypts-p-4{padding:var(--subscrypts-spacing-md)}.subscrypts-rounded-full{border-radius:9999px}.subscrypts-h-8{height:2rem}.subscrypts-w-8{width:2rem}.subscrypts-border-b-2{border-bottom-width:2px}.subscrypts-border-brand-primary{border-color:var(--subscrypts-color-primary)}.subscrypts-modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--subscrypts-spacing-md)}.subscrypts-modal-content{background-color:var(--subscrypts-color-background);border-radius:var(--subscrypts-border-radius-lg);box-shadow:var(--subscrypts-shadow-lg);width:100%;max-height:90vh;overflow-y:auto}.subscrypts-max-w-md{max-width:28rem}.subscrypts-max-w-lg{max-width:32rem}.subscrypts-max-w-2xl{max-width:42rem}.subscrypts-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--subscrypts-spacing-lg);border-bottom:1px solid var(--subscrypts-color-border)}.subscrypts-modal-title{font-size:var(--subscrypts-font-size-xl);font-weight:600;color:var(--subscrypts-color-text-primary);margin:0}.subscrypts-modal-close{background:none;border:none;font-size:2rem;line-height:1;color:var(--subscrypts-color-text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.subscrypts-modal-close:hover{color:var(--subscrypts-color-text-primary)}.subscrypts-modal-body{padding:var(--subscrypts-spacing-lg)}.subscrypts-form-group{margin-bottom:var(--subscrypts-spacing-lg)}.subscrypts-label{display:block;font-size:var(--subscrypts-font-size-sm);font-weight:500;margin-bottom:var(--subscrypts-spacing-sm)}.subscrypts-input,.subscrypts-label{color:var(--subscrypts-color-text-primary)}.subscrypts-input{width:100%;padding:var(--subscrypts-spacing-sm);border:1px solid var(--subscrypts-color-border);border-radius:var(--subscrypts-border-radius);font-size:var(--subscrypts-font-size-base);background-color:var(--subscrypts-color-background);transition:border-color var(--subscrypts-transition-base)}.subscrypts-input:focus{outline:none;border-color:var(--subscrypts-color-primary)}.subscrypts-checkbox{width:1.25rem;height:1.25rem;cursor:pointer}.subscrypts-text-sm{font-size:var(--subscrypts-font-size-sm)}.subscrypts-text-secondary{color:var(--subscrypts-color-text-secondary)}.subscrypts-ml-2{margin-left:var(--subscrypts-spacing-sm)}.subscrypts-mt-2{margin-top:var(--subscrypts-spacing-sm)}.subscrypts-w-full{width:100%}.subscrypts-text-center{text-align:center}.subscrypts-cycle-options{display:flex;gap:var(--subscrypts-spacing-sm);flex-wrap:wrap}.subscrypts-cycle-option{flex:1;min-width:5rem;padding:var(--subscrypts-spacing-sm);border:1px solid var(--subscrypts-color-border);border-radius:var(--subscrypts-border-radius);background-color:var(--subscrypts-color-background);color:var(--subscrypts-color-text-primary);cursor:pointer;transition:all var(--subscrypts-transition-base)}.subscrypts-cycle-option-active,.subscrypts-cycle-option:hover{border-color:var(--subscrypts-color-primary)}.subscrypts-cycle-option-active{background-color:var(--subscrypts-color-primary);color:#fff}.subscrypts-payment-methods{display:flex;gap:var(--subscrypts-spacing-md);flex-wrap:wrap}.subscrypts-payment-card{flex:1;min-width:12rem;padding:var(--subscrypts-spacing-md);border:2px solid var(--subscrypts-color-border);border-radius:var(--subscrypts-border-radius-lg);background-color:var(--subscrypts-color-background);cursor:pointer;transition:all var(--subscrypts-transition-base);text-align:left}.subscrypts-payment-card:hover{border-color:var(--subscrypts-color-primary);box-shadow:var(--subscrypts-shadow)}.subscrypts-payment-card-active{border-color:var(--subscrypts-color-primary);background-color:var(--subscrypts-color-background-secondary)}.subscrypts-payment-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--subscrypts-spacing-sm)}.subscrypts-payment-card-title{font-weight:600;color:var(--subscrypts-color-text-primary)}.subscrypts-payment-card-balance{font-size:var(--subscrypts-font-size-sm);color:var(--subscrypts-color-text-secondary)}.subscrypts-badge{display:inline-block;padding:.125rem .5rem;background-color:var(--subscrypts-color-secondary);color:#fff;font-size:var(--subscrypts-font-size-xs);border-radius:var(--subscrypts-border-radius-sm);font-weight:500}.subscrypts-form-actions{display:flex;gap:var(--subscrypts-spacing-sm);justify-content:flex-end;margin-top:var(--subscrypts-spacing-lg)}.subscrypts-transaction-status{text-align:center;padding:var(--subscrypts-spacing-xl) var(--subscrypts-spacing-md)}.subscrypts-transaction-message{font-size:var(--subscrypts-font-size-lg);font-weight:500;color:var(--subscrypts-color-text-primary);margin-top:var(--subscrypts-spacing-md)}.subscrypts-error-icon,.subscrypts-success-icon{width:4rem;height:4rem;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:3rem;border-radius:50%}.subscrypts-success-icon{background-color:var(--subscrypts-color-success);color:#fff}.subscrypts-error-icon{background-color:var(--subscrypts-color-error);color:#fff}.subscrypts-error-box,.subscrypts-info-box{padding:var(--subscrypts-spacing-md);border-radius:var(--subscrypts-border-radius);margin-top:var(--subscrypts-spacing-md)}.subscrypts-error-box{background-color:#fee2e2;border:1px solid var(--subscrypts-color-error)}.subscrypts-info-box{background-color:var(--subscrypts-color-background-secondary);border:1px solid var(--subscrypts-color-border)}.subscrypts-error-title,.subscrypts-info-label{font-weight:600;font-size:var(--subscrypts-font-size-sm);margin-bottom:var(--subscrypts-spacing-xs)}.subscrypts-error-title{color:var(--subscrypts-color-error)}.subscrypts-info-label{color:var(--subscrypts-color-text-secondary)}.subscrypts-error-message,.subscrypts-info-value{font-size:var(--subscrypts-font-size-sm);margin:0}.subscrypts-error-message{color:#991b1b}.subscrypts-info-value{color:var(--subscrypts-color-text-primary);font-family:monospace}.subscrypts-checkout-success{text-align:center;padding:var(--subscrypts-spacing-xl)}.subscrypts-success-title{font-size:var(--subscrypts-font-size-2xl);font-weight:600;color:var(--subscrypts-color-text-primary);margin:var(--subscrypts-spacing-md) 0 var(--subscrypts-spacing-sm)}.subscrypts-success-message{color:var(--subscrypts-color-text-secondary);margin-bottom:var(--subscrypts-spacing-md)}.subscrypts-success-id{font-family:monospace;font-size:var(--subscrypts-font-size-sm);color:var(--subscrypts-color-text-secondary);margin-bottom:var(--subscrypts-spacing-lg)}.subscrypts-error-display{text-align:center;padding:var(--subscrypts-spacing-lg);border-radius:var(--subscrypts-border-radius-lg);background-color:#fef2f2;border:1px solid #fecaca}.subscrypts-error-display-compact{text-align:left;padding:var(--subscrypts-spacing-sm) var(--subscrypts-spacing-md);border-radius:var(--subscrypts-border-radius);background-color:#fef2f2;border:1px solid #fecaca}.subscrypts-error-display-compact .subscrypts-error-display-content{display:flex;align-items:center;justify-content:space-between;gap:var(--subscrypts-spacing-sm)}.subscrypts-error-display-icon{width:3rem;height:3rem;margin:0 auto var(--subscrypts-spacing-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;border-radius:50%;background-color:var(--subscrypts-color-error);color:#fff;font-weight:700}.subscrypts-error-display-title{font-size:var(--subscrypts-font-size-lg);font-weight:600;color:#991b1b;margin:0 0 var(--subscrypts-spacing-xs)}.subscrypts-error-display-message{font-size:var(--subscrypts-font-size-sm);color:#991b1b;margin:0 0 var(--subscrypts-spacing-xs)}.subscrypts-error-display-suggestion{font-size:var(--subscrypts-font-size-sm);color:var(--subscrypts-color-text-secondary);margin:0 0 var(--subscrypts-spacing-md)}.subscrypts-error-display-actions{display:flex;gap:var(--subscrypts-spacing-sm);justify-content:center;margin-top:var(--subscrypts-spacing-md)}.subscrypts-network-prompt{display:flex;align-items:center;gap:var(--subscrypts-spacing-md);padding:var(--subscrypts-spacing-md);border-radius:var(--subscrypts-border-radius-lg);background-color:#fffbeb;border:1px solid #fde68a}.subscrypts-network-prompt-icon{font-size:1.5rem;flex-shrink:0}.subscrypts-network-prompt-content{flex:1}.subscrypts-network-prompt-title{font-size:var(--subscrypts-font-size-base);font-weight:600;color:#92400e;margin:0 0 var(--subscrypts-spacing-xs)}.subscrypts-network-prompt-message{font-size:var(--subscrypts-font-size-sm);color:#92400e;margin:0}.subscrypts-network-prompt-actions{display:flex;gap:var(--subscrypts-spacing-sm);flex-shrink:0}.subscrypts-error-boundary-fallback{text-align:center;padding:var(--subscrypts-spacing-xl);border-radius:var(--subscrypts-border-radius-lg);background-color:#fef2f2;border:1px solid #fecaca}.subscrypts-error-boundary-icon{font-size:2.5rem;margin-bottom:var(--subscrypts-spacing-md)}.subscrypts-error-boundary-title{font-size:var(--subscrypts-font-size-xl);font-weight:600;color:#991b1b;margin:0 0 var(--subscrypts-spacing-sm)}.subscrypts-error-boundary-message{font-size:var(--subscrypts-font-size-sm);color:#991b1b;margin:0 0 var(--subscrypts-spacing-lg)}.subscrypts-connect-wallet{min-width:0}.subscrypts-connect-wallet-empty{text-align:center;padding:var(--subscrypts-spacing-lg);color:var(--subscrypts-color-text-secondary)}.subscrypts-connect-wallet-empty p{margin:0 0 var(--subscrypts-spacing-sm)}.subscrypts-connect-wallet-list{display:flex;flex-direction:column;gap:var(--subscrypts-spacing-sm)}.subscrypts-connect-wallet-option{display:flex;align-items:center;gap:var(--subscrypts-spacing-md);width:100%;padding:var(--subscrypts-spacing-md);border:1px solid var(--subscrypts-color-border);border-radius:var(--subscrypts-border-radius-lg);background-color:var(--subscrypts-color-background);color:var(--subscrypts-color-text-primary);cursor:pointer;transition:all var(--subscrypts-transition-base);font-size:var(--subscrypts-font-size-base);font-weight:500;text-align:left}.subscrypts-connect-wallet-option:hover:not(:disabled){border-color:var(--subscrypts-color-primary);background-color:var(--subscrypts-color-background-secondary)}.subscrypts-connect-wallet-option:disabled{opacity:.5;cursor:not-allowed}.subscrypts-connect-wallet-option-loading{border-color:var(--subscrypts-color-primary)}.subscrypts-connect-wallet-icon{width:2rem;height:2rem;border-radius:var(--subscrypts-border-radius);-o-object-fit:contain;object-fit:contain;flex-shrink:0}.subscrypts-connect-wallet-name{flex:1}.subscrypts-connect-wallet-spinner{width:1.25rem;height:1.25rem;border:2px solid var(--subscrypts-color-border);border-top-color:var(--subscrypts-color-primary);border-radius:50%;animation:subscrypts-spin .6s linear infinite;flex-shrink:0}.subscrypts-confirm-dialog{padding:.5rem 0}.subscrypts-confirm-dialog__message{color:var(--subscrypts-text-secondary);font-size:.9375rem;line-height:1.5;margin-bottom:1.5rem}.subscrypts-confirm-dialog__actions{display:flex;gap:.75rem;justify-content:flex-end}.subscrypts-btn-danger{background-color:var(--subscrypts-color-error);color:var(--subscrypts-text-inverse);border:none;padding:.625rem 1.25rem;border-radius:var(--subscrypts-border-radius);font-weight:500;cursor:pointer;transition:background-color .15s ease}.subscrypts-btn-danger:hover{background-color:#dc2626}.subscrypts-btn-danger:disabled{opacity:.5;cursor:not-allowed}.subscrypts-manage-modal{padding:.5rem 0}.subscrypts-manage-modal__info{background-color:var(--subscrypts-bg-secondary);border-radius:var(--subscrypts-border-radius);padding:1rem;margin-bottom:1.25rem}.subscrypts-manage-modal__row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.subscrypts-manage-modal__row+.subscrypts-manage-modal__row{border-top:1px solid var(--subscrypts-color-border)}.subscrypts-manage-modal__label{color:var(--subscrypts-text-secondary);font-size:.875rem}.subscrypts-manage-modal__value{color:var(--subscrypts-text-primary);font-weight:500;font-size:.875rem}.subscrypts-manage-modal__processing{display:flex;align-items:center;gap:.75rem;background-color:var(--subscrypts-bg-secondary);color:var(--subscrypts-text-secondary)}.subscrypts-manage-modal__processing,.subscrypts-manage-modal__success{padding:.75rem 1rem;border-radius:var(--subscrypts-border-radius);margin-bottom:1rem;font-size:.875rem}.subscrypts-manage-modal__success{background-color:#ecfdf5;color:#065f46;font-weight:500}.subscrypts-manage-modal__actions{display:flex;flex-direction:column;gap:.625rem}.subscrypts-manage-modal__actions .subscrypts-btn{width:100%;text-align:center}.subscrypts-subscription-card{background-color:var(--subscrypts-bg-primary);border:1px solid var(--subscrypts-color-border);border-radius:var(--subscrypts-border-radius);padding:1.25rem;transition:box-shadow .2s ease}.subscrypts-subscription-card:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.subscrypts-subscription-card__header{display:flex;justify-content:flex-end;margin-bottom:1rem}.subscrypts-subscription-card__badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.subscrypts-subscription-card__badge--active{background-color:#d1fae5;color:#065f46}.subscrypts-subscription-card__badge--expiring{background-color:#fed7aa;color:#92400e}.subscrypts-subscription-card__badge--expired{background-color:#fee2e2;color:#991b1b}.subscrypts-subscription-card__badge--cancelled{background-color:#e5e7eb;color:#4b5563}.subscrypts-subscription-card__content{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--subscrypts-color-border)}.subscrypts-subscription-card__amount{font-size:1.5rem;font-weight:700;color:var(--subscrypts-text-primary);margin-bottom:.25rem}.subscrypts-subscription-card__frequency{font-size:.875rem;color:var(--subscrypts-text-secondary)}.subscrypts-subscription-card__details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.subscrypts-subscription-card__detail-row{display:flex;justify-content:space-between;align-items:center}.subscrypts-subscription-card__detail-label{font-size:.875rem;color:var(--subscrypts-text-secondary)}.subscrypts-subscription-card__detail-value{font-size:.875rem;font-weight:500;color:var(--subscrypts-text-primary)}.subscrypts-subscription-card__actions{display:flex;gap:.75rem}.subscrypts-subscription-card__actions .subscrypts-btn{flex:1}.subscrypts-subscription-dashboard{width:100%}.subscrypts-subscription-dashboard__header{margin-bottom:1.5rem}.subscrypts-subscription-dashboard__title{font-size:1.5rem;font-weight:700;color:var(--subscrypts-text-primary);margin:0 0 .5rem}.subscrypts-subscription-dashboard__subtitle{font-size:.875rem;color:var(--subscrypts-text-secondary);margin:0}.subscrypts-subscription-dashboard__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.subscrypts-subscription-dashboard__pagination{display:flex;justify-content:center;align-items:center;gap:1.5rem;padding:1.5rem 0}.subscrypts-subscription-dashboard__pagination-btn{min-width:100px}.subscrypts-subscription-dashboard__pagination-info{font-size:.875rem;color:var(--subscrypts-text-secondary);font-weight:500}.subscrypts-subscription-dashboard__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.subscrypts-subscription-dashboard__loading p{margin-top:1rem;color:var(--subscrypts-text-secondary)}.subscrypts-subscription-dashboard__error{padding:1.5rem}.subscrypts-subscription-dashboard__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background-color:var(--subscrypts-bg-secondary);border-radius:var(--subscrypts-border-radius)}.subscrypts-subscription-dashboard__empty-text{font-size:1.125rem;font-weight:600;color:var(--subscrypts-text-primary);margin:0 0 .5rem}.subscrypts-subscription-dashboard__empty-subtext{font-size:.875rem;color:var(--subscrypts-text-secondary);margin:0}.subscrypts-merchant-dashboard{width:100%}.subscrypts-merchant-dashboard__header{margin-bottom:2rem}.subscrypts-merchant-dashboard__title{font-size:2rem;font-weight:700;color:var(--subscrypts-text-primary);margin:0}.subscrypts-merchant-dashboard__error,.subscrypts-merchant-dashboard__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.subscrypts-merchant-dashboard__loading p{margin-top:1rem;color:var(--subscrypts-text-secondary)}.subscrypts-merchant-dashboard__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background-color:var(--subscrypts-bg-secondary);border-radius:var(--subscrypts-border-radius)}.subscrypts-merchant-dashboard__empty-title{font-size:1.5rem;font-weight:600;color:var(--subscrypts-text-primary);margin:0 0 .75rem}.subscrypts-merchant-dashboard__empty-text{font-size:1rem;color:var(--subscrypts-text-secondary);margin:0}.subscrypts-merchant-dashboard__revenue-card{background-color:var(--subscrypts-bg-secondary);border-radius:var(--subscrypts-border-radius);padding:2rem;margin-bottom:2rem}.subscrypts-merchant-dashboard__section-title{font-size:1.25rem;font-weight:600;color:var(--subscrypts-text-primary);margin:0 0 1.5rem}.subscrypts-merchant-dashboard__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}.subscrypts-merchant-dashboard__metric{display:flex;flex-direction:column}.subscrypts-merchant-dashboard__metric-label{font-size:.875rem;color:var(--subscrypts-text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.subscrypts-merchant-dashboard__metric-value{font-size:1.875rem;font-weight:700;color:var(--subscrypts-text-primary);margin-bottom:.25rem}.subscrypts-merchant-dashboard__metric-value--primary{color:var(--subscrypts-color-primary)}.subscrypts-merchant-dashboard__metric-subvalue{font-size:.875rem;color:var(--subscrypts-text-secondary)}.subscrypts-merchant-dashboard__section{margin-bottom:2rem}.subscrypts-merchant-dashboard__plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.subscrypts-merchant-dashboard__plan-card{background-color:var(--subscrypts-bg-primary);border:2px solid var(--subscrypts-color-border);border-radius:var(--subscrypts-border-radius);padding:1.5rem;cursor:pointer;transition:all .2s ease}.subscrypts-merchant-dashboard__plan-card:hover{box-shadow:0 4px 6px rgba(0,0,0,.1);border-color:var(--subscrypts-color-primary)}.subscrypts-merchant-dashboard__plan-card--selected{border-color:var(--subscrypts-color-primary);background-color:rgba(59,130,246,.05)}.subscrypts-merchant-dashboard__plan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.subscrypts-merchant-dashboard__plan-name{font-size:1.125rem;font-weight:600;color:var(--subscrypts-text-primary);margin:0}.subscrypts-merchant-dashboard__plan-badge{display:inline-block;padding:.25rem .625rem;background-color:#d1fae5;color:#065f46;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.subscrypts-merchant-dashboard__plan-description{font-size:.875rem;color:var(--subscrypts-text-secondary);margin-bottom:1rem;line-height:1.5}.subscrypts-merchant-dashboard__plan-stats{display:flex;flex-direction:column;gap:.5rem}.subscrypts-merchant-dashboard__plan-stat{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.subscrypts-merchant-dashboard__plan-stat-label{color:var(--subscrypts-text-secondary)}.subscrypts-merchant-dashboard__plan-stat-value{color:var(--subscrypts-text-primary);font-weight:500}.subscrypts-merchant-dashboard__subscribers-loading{display:flex;flex-direction:column;align-items:center;padding:2rem}.subscrypts-merchant-dashboard__subscribers-loading p{margin-top:1rem;color:var(--subscrypts-text-secondary)}.subscrypts-merchant-dashboard__subscribers-empty{padding:2rem;text-align:center;background-color:var(--subscrypts-bg-secondary);border-radius:var(--subscrypts-border-radius)}.subscrypts-merchant-dashboard__subscribers-empty p{color:var(--subscrypts-text-secondary);margin:0}.subscrypts-merchant-dashboard__subscribers-summary{margin-bottom:1rem;padding:1rem;background-color:var(--subscrypts-bg-secondary);border-radius:var(--subscrypts-border-radius)}.subscrypts-merchant-dashboard__subscribers-summary p{color:var(--subscrypts-text-primary);margin:0;font-weight:500}.subscrypts-merchant-dashboard__subscribers-list{display:flex;flex-direction:column;gap:.75rem}.subscrypts-merchant-dashboard__subscriber-item{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:1rem;background-color:var(--subscrypts-bg-primary);border:1px solid var(--subscrypts-color-border);border-radius:var(--subscrypts-border-radius)}.subscrypts-merchant-dashboard__subscriber-address{font-family:monospace;font-size:.875rem;color:var(--subscrypts-text-primary);font-weight:500}.subscrypts-merchant-dashboard__subscriber-cycles,.subscrypts-merchant-dashboard__subscriber-status{font-size:.875rem;color:var(--subscrypts-text-secondary)}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC"}
@@ -0,0 +1,192 @@
1
+ import { ReactNode } from 'react';
2
+ import { ExternalWalletConfig } from './wallet.types';
3
+ import { Plan } from './subscription.types';
4
+ import { WalletConnector } from '../wallet/types';
5
+
6
+ /**
7
+ * SubscryptsProvider props
8
+ */
9
+ export interface SubscryptsProviderProps {
10
+ children: ReactNode;
11
+ /** Enable internal wallet management (default: true) */
12
+ enableWalletManagement?: boolean;
13
+ /** External wallet configuration (required if enableWalletManagement is false) */
14
+ externalProvider?: ExternalWalletConfig;
15
+ /** Network to use: 'arbitrum' (default: 'arbitrum') */
16
+ network?: 'arbitrum';
17
+ /** Custom RPC URL (optional) */
18
+ rpcUrl?: string;
19
+ /** Balance refresh interval in milliseconds (default: 30000) */
20
+ balanceRefreshInterval?: number;
21
+ /**
22
+ * Debug mode for SDK logging
23
+ * - 'silent': No console output
24
+ * - 'info': User-friendly transaction status and errors (default)
25
+ * - 'debug': Full developer debugging with all data
26
+ * @default 'info'
27
+ */
28
+ debug?: 'silent' | 'info' | 'debug';
29
+ /**
30
+ * Callback when wallet account changes
31
+ * Useful for refreshing page state when user switches accounts
32
+ * @param newAddress - The new wallet address
33
+ * @param oldAddress - The previous wallet address
34
+ */
35
+ onAccountChange?: (newAddress: string, oldAddress: string) => void;
36
+ /**
37
+ * Callback when network/chain changes
38
+ * @param newChainId - The new chain ID
39
+ * @param oldChainId - The previous chain ID
40
+ */
41
+ onChainChange?: (newChainId: number, oldChainId: number) => void;
42
+ /**
43
+ * Custom wallet connectors.
44
+ * When provided, the SDK uses the connector architecture instead of
45
+ * the internal WalletService. Overrides enableWalletManagement.
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * <SubscryptsProvider connectors={[new InjectedConnector(), myPrivyConnector]}>
50
+ * ```
51
+ */
52
+ connectors?: WalletConnector[];
53
+ /**
54
+ * Persist wallet session across page reloads using localStorage.
55
+ * When true, auto-reconnects silently on page load.
56
+ * @default true
57
+ */
58
+ persistSession?: boolean;
59
+ /**
60
+ * Cache configuration for query results.
61
+ * Reduces RPC calls by caching plan data, subscription status, etc.
62
+ *
63
+ * **Zero-config defaults work for 90% of users.**
64
+ *
65
+ * @default { enabled: true, defaultTTL: 60000, maxEntries: 500 }
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * // Default (recommended)
70
+ * <SubscryptsProvider>
71
+ *
72
+ * // Custom configuration
73
+ * <SubscryptsProvider caching={{ enabled: true, defaultTTL: 30000, maxEntries: 1000 }}>
74
+ *
75
+ * // Disable caching
76
+ * <SubscryptsProvider caching={{ enabled: false }}>
77
+ * ```
78
+ */
79
+ caching?: {
80
+ /** Enable caching (default: true) */
81
+ enabled?: boolean;
82
+ /** Default time-to-live in milliseconds (default: 60000 = 60 seconds) */
83
+ defaultTTL?: number;
84
+ /** Maximum cache entries before LRU eviction (default: 500) */
85
+ maxEntries?: number;
86
+ };
87
+ }
88
+ /**
89
+ * SubscriptionGuard props
90
+ *
91
+ * Supports single-plan gating (planId) and multi-plan gating (planIds).
92
+ * When using planIds, set requireAll to control any-of vs all-of behavior.
93
+ */
94
+ export interface SubscriptionGuardProps {
95
+ /** Single plan ID to check (backward compatible) */
96
+ planId?: string;
97
+ /** Multiple plan IDs to check */
98
+ planIds?: string[];
99
+ /**
100
+ * When true, user must be subscribed to ALL plans in planIds.
101
+ * When false (default), user needs ANY one of the plans.
102
+ * Only applies when planIds is provided.
103
+ * @default false
104
+ */
105
+ requireAll?: boolean;
106
+ /** URL to redirect to if subscription is inactive */
107
+ fallbackUrl?: string;
108
+ /** Custom loading component */
109
+ loadingComponent?: ReactNode;
110
+ /** Protected content */
111
+ children: ReactNode;
112
+ /** Callback when access is denied */
113
+ onAccessDenied?: () => void;
114
+ }
115
+ /**
116
+ * SubscriptionCatalog props
117
+ */
118
+ export interface SubscriptionCatalogProps {
119
+ /** Optional custom plans array (fetched from contract if not provided) */
120
+ plans?: Plan[];
121
+ /** Show referral input field (default: false) */
122
+ showReferralInput?: boolean;
123
+ /** Callback when subscribe button is clicked */
124
+ onSubscribeClick?: (planId: string) => void;
125
+ /** Custom CSS class */
126
+ className?: string;
127
+ }
128
+ /**
129
+ * CheckoutWizard props
130
+ */
131
+ export interface CheckoutWizardProps {
132
+ planId: string;
133
+ /** Modal open state */
134
+ isOpen: boolean;
135
+ /** Close handler */
136
+ onClose: () => void;
137
+ /** Referrer wallet address (optional) */
138
+ referralAddress?: string;
139
+ /** Success callback with subscription ID */
140
+ onSuccess?: (subscriptionId: string) => void;
141
+ /** Error callback */
142
+ onError?: (error: Error) => void;
143
+ }
144
+ /**
145
+ * SubscryptsButton props
146
+ */
147
+ export interface SubscryptsButtonProps {
148
+ planId: string;
149
+ /** Button style variant */
150
+ variant?: 'primary' | 'secondary' | 'outline';
151
+ /** Button size */
152
+ size?: 'sm' | 'md' | 'lg';
153
+ /** Button text content */
154
+ children?: ReactNode;
155
+ /** Referrer wallet address (optional) */
156
+ referralAddress?: string;
157
+ /** Success callback with subscription ID */
158
+ onSuccess?: (subscriptionId: string) => void;
159
+ }
160
+ /**
161
+ * PlanCard props
162
+ */
163
+ export interface PlanCardProps {
164
+ plan: Plan;
165
+ /** Selected currency for display */
166
+ currency: 'SUBS' | 'USDC';
167
+ /** Conversion rate (SUBS/USDC) */
168
+ conversionRate: number;
169
+ /** Click handler */
170
+ onSubscribe: () => void;
171
+ }
172
+ /**
173
+ * CurrencyToggle props
174
+ */
175
+ export interface CurrencyToggleProps {
176
+ /** Currently selected currency */
177
+ selected: 'SUBS' | 'USDC';
178
+ /** Change handler */
179
+ onChange: (currency: 'SUBS' | 'USDC') => void;
180
+ }
181
+ /**
182
+ * ReferralInput props
183
+ */
184
+ export interface ReferralInputProps {
185
+ /** Current referral address */
186
+ value: string;
187
+ /** Change handler */
188
+ onChange: (address: string) => void;
189
+ /** Validation error message */
190
+ error?: string;
191
+ }
192
+ //# sourceMappingURL=component.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.types.d.ts","sourceRoot":"","sources":["../../src/types/component.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Smart contract types based on Subscrypts ABI
3
+ */
4
+ /**
5
+ * Parameters for creating a subscription with SUBS tokens
6
+ */
7
+ export interface SubscriptionCreateParams {
8
+ planId: bigint;
9
+ subscriber: string;
10
+ recurring: boolean;
11
+ remainingCycles: bigint;
12
+ referral: string;
13
+ onlyCreate: boolean;
14
+ deductFrom: string;
15
+ }
16
+ /**
17
+ * Parameters for creating a subscription with USDC (includes Uniswap swap)
18
+ */
19
+ export interface PayWithUsdcParams {
20
+ planId: bigint;
21
+ recurring: boolean;
22
+ remainingCycles: bigint;
23
+ referral: string;
24
+ feeTier: number;
25
+ deadline: bigint;
26
+ nonce: bigint;
27
+ permitDeadline: bigint;
28
+ signature: string;
29
+ maxUsdcIn6Cap: bigint;
30
+ }
31
+ /**
32
+ * Result from subscription creation
33
+ */
34
+ export interface SubscriptionCreateResult {
35
+ subscriptionId: bigint;
36
+ alreadyExist: boolean;
37
+ }
38
+ /**
39
+ * Result from USDC subscription payment
40
+ */
41
+ export interface PayWithUsdcResult {
42
+ subId: bigint;
43
+ subExist: boolean;
44
+ subsPaid18: bigint;
45
+ usdcSpent6: bigint;
46
+ }
47
+ /**
48
+ * Subscription data structure from contract
49
+ */
50
+ export interface ContractSubscription {
51
+ id: bigint;
52
+ merchantAddress: string;
53
+ planId: bigint;
54
+ subscriberAddress: string;
55
+ currencyCode: bigint;
56
+ subscriptionAmount: bigint;
57
+ paymentFrequency: bigint;
58
+ isRecurring: boolean;
59
+ remainingCycles: bigint;
60
+ customAttributes: string;
61
+ lastPaymentDate: bigint;
62
+ nextPaymentDate: bigint;
63
+ }
64
+ /**
65
+ * Plan data structure from contract
66
+ */
67
+ export interface ContractPlan {
68
+ id: bigint;
69
+ merchantAddress: string;
70
+ currencyCode: bigint;
71
+ subscriptionAmount: bigint;
72
+ paymentFrequency: bigint;
73
+ referralBonus: bigint;
74
+ commission: bigint;
75
+ description: string;
76
+ defaultAttributes: string;
77
+ verificationExpiryDate: bigint;
78
+ subscriberCount: bigint;
79
+ isActive: boolean;
80
+ }
81
+ //# sourceMappingURL=contract.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.types.d.ts","sourceRoot":"","sources":["../../src/types/contract.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Type definitions for @subscrypts/subscrypts-sdk-react
3
+ */
4
+ export type { SubscriptionCreateParams, PayWithUsdcParams, SubscriptionCreateResult, PayWithUsdcResult, ContractSubscription, ContractPlan } from './contract.types';
5
+ export type { SubscriptionStatus, Subscription, Plan, PaymentMethod, TransactionState, CheckoutStep } from './subscription.types';
6
+ export type { NetworkConfig, WalletState, ExternalWalletConfig, EthereumProvider } from './wallet.types';
7
+ export type { SubscryptsProviderProps, SubscriptionGuardProps, SubscriptionCatalogProps, CheckoutWizardProps, SubscryptsButtonProps, PlanCardProps, CurrencyToggleProps, ReferralInputProps } from './component.types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACb,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Domain types for subscriptions
3
+ */
4
+ /**
5
+ * Subscription status information
6
+ */
7
+ export interface SubscriptionStatus {
8
+ /** Whether the subscription is currently active */
9
+ isActive: boolean;
10
+ /** Expiration date (null if no subscription) */
11
+ expirationDate: Date | null;
12
+ /** Whether auto-renewal is enabled */
13
+ isAutoRenewing: boolean;
14
+ /** Number of remaining payment cycles */
15
+ remainingCycles: number;
16
+ /** Subscription ID (null if no subscription exists) */
17
+ subscriptionId: string | null;
18
+ }
19
+ /**
20
+ * Full subscription details
21
+ */
22
+ export interface Subscription {
23
+ id: string;
24
+ merchantAddress: string;
25
+ planId: string;
26
+ subscriber: string;
27
+ currencyCode: bigint;
28
+ subscriptionAmount: bigint;
29
+ paymentFrequency: bigint;
30
+ isAutoRenewing: boolean;
31
+ remainingCycles: number;
32
+ customAttributes: string;
33
+ lastPaymentDate: Date;
34
+ nextPaymentDate: Date;
35
+ }
36
+ /**
37
+ * Subscription plan information
38
+ */
39
+ export interface Plan {
40
+ id: bigint;
41
+ merchantAddress: string;
42
+ currencyCode: bigint;
43
+ subscriptionAmount: bigint;
44
+ paymentFrequency: bigint;
45
+ referralBonus: bigint;
46
+ commission: bigint;
47
+ description: string;
48
+ defaultAttributes: string;
49
+ verificationExpiryDate: bigint;
50
+ subscriberCount: bigint;
51
+ isActive: boolean;
52
+ }
53
+ /**
54
+ * Payment method types
55
+ */
56
+ export type PaymentMethod = 'SUBS' | 'USDC';
57
+ /**
58
+ * Transaction states during subscription flow
59
+ */
60
+ export type TransactionState = 'idle' | 'approving' | 'waiting_approval' | 'subscribing' | 'waiting_subscribe' | 'success' | 'error';
61
+ /**
62
+ * Checkout step in wizard
63
+ */
64
+ export type CheckoutStep = 'configuration' | 'transaction' | 'success';
65
+ //# sourceMappingURL=subscription.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../src/types/subscription.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,sCAAsC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,mBAAmB,GACnB,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,CAAC"}