@cedros/pay-react 0.1.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 (190) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1731 -0
  3. package/dist/CedrosContext-B3iCqN6e.js +11 -0
  4. package/dist/CedrosContext-vX9uqZKp.mjs +1796 -0
  5. package/dist/ar-LVoQZTFI.js +1 -0
  6. package/dist/ar-w27mU-4x.mjs +19 -0
  7. package/dist/bn-BR5Cv1T4.js +1 -0
  8. package/dist/bn-Ba_k3Kex.mjs +19 -0
  9. package/dist/components/CedrosPay.d.ts +54 -0
  10. package/dist/components/CedrosPay.d.ts.map +1 -0
  11. package/dist/components/CryptoButton.d.ts +26 -0
  12. package/dist/components/CryptoButton.d.ts.map +1 -0
  13. package/dist/components/PaymentModal.d.ts +28 -0
  14. package/dist/components/PaymentModal.d.ts.map +1 -0
  15. package/dist/components/ProductPrice.d.ts +56 -0
  16. package/dist/components/ProductPrice.d.ts.map +1 -0
  17. package/dist/components/PurchaseButton.d.ts +52 -0
  18. package/dist/components/PurchaseButton.d.ts.map +1 -0
  19. package/dist/components/StripeButton.d.ts +27 -0
  20. package/dist/components/StripeButton.d.ts.map +1 -0
  21. package/dist/context/CedrosContext.d.ts +46 -0
  22. package/dist/context/CedrosContext.d.ts.map +1 -0
  23. package/dist/context/ThemeContext.d.ts +30 -0
  24. package/dist/context/ThemeContext.d.ts.map +1 -0
  25. package/dist/context/index.d.ts +3 -0
  26. package/dist/context/index.d.ts.map +1 -0
  27. package/dist/crypto-only.d.ts +33 -0
  28. package/dist/crypto-only.d.ts.map +1 -0
  29. package/dist/crypto-only.js +1 -0
  30. package/dist/crypto-only.mjs +35 -0
  31. package/dist/de-CoZiPFN7.mjs +19 -0
  32. package/dist/de-pQxy-oD1.js +1 -0
  33. package/dist/en-CSsJl3nf.mjs +19 -0
  34. package/dist/en-D-uY3ltT.js +1 -0
  35. package/dist/es-BWGIBp2f.mjs +19 -0
  36. package/dist/es-D24cg8dD.js +1 -0
  37. package/dist/fil-BOBft9G-.js +1 -0
  38. package/dist/fil-Czo27xmj.mjs +19 -0
  39. package/dist/fr-Ct9ub8Fa.js +1 -0
  40. package/dist/fr-DQ-2ThBv.mjs +19 -0
  41. package/dist/he-DpV1WnBQ.mjs +19 -0
  42. package/dist/he-DtQqRKRq.js +1 -0
  43. package/dist/hooks/usePaymentMode.d.ts +39 -0
  44. package/dist/hooks/usePaymentMode.d.ts.map +1 -0
  45. package/dist/hooks/useRefundVerification.d.ts +30 -0
  46. package/dist/hooks/useRefundVerification.d.ts.map +1 -0
  47. package/dist/hooks/useStripeCheckout.d.ts +20 -0
  48. package/dist/hooks/useStripeCheckout.d.ts.map +1 -0
  49. package/dist/hooks/useX402Payment.d.ts +24 -0
  50. package/dist/hooks/useX402Payment.d.ts.map +1 -0
  51. package/dist/i18n/index.d.ts +107 -0
  52. package/dist/i18n/index.d.ts.map +1 -0
  53. package/dist/i18n/useTranslation.d.ts +55 -0
  54. package/dist/i18n/useTranslation.d.ts.map +1 -0
  55. package/dist/id-BJMqsu19.mjs +19 -0
  56. package/dist/id-CiM2mL7C.js +1 -0
  57. package/dist/in-BxgxKLQH.mjs +19 -0
  58. package/dist/in-Bzcjmxcc.js +1 -0
  59. package/dist/index.d.ts +33 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +1 -0
  62. package/dist/index.mjs +626 -0
  63. package/dist/it-Blb_pIJl.js +1 -0
  64. package/dist/it-DZFFPALf.mjs +19 -0
  65. package/dist/jp-9NHyIuwY.js +1 -0
  66. package/dist/jp-ZExTrlHK.mjs +19 -0
  67. package/dist/kr-DHX3i4Ht.mjs +19 -0
  68. package/dist/kr-DvzJ-0yX.js +1 -0
  69. package/dist/managers/ManagerCache.d.ts +49 -0
  70. package/dist/managers/ManagerCache.d.ts.map +1 -0
  71. package/dist/managers/RouteDiscoveryManager.d.ts +72 -0
  72. package/dist/managers/RouteDiscoveryManager.d.ts.map +1 -0
  73. package/dist/managers/StripeManager.d.ts +110 -0
  74. package/dist/managers/StripeManager.d.ts.map +1 -0
  75. package/dist/managers/WalletManager.d.ts +150 -0
  76. package/dist/managers/WalletManager.d.ts.map +1 -0
  77. package/dist/managers/X402Manager.d.ts +176 -0
  78. package/dist/managers/X402Manager.d.ts.map +1 -0
  79. package/dist/ms-BOAu5pUB.js +1 -0
  80. package/dist/ms-Cv1fdIi2.mjs +19 -0
  81. package/dist/nl-BmGonsKb.mjs +19 -0
  82. package/dist/nl-WHh_DfO8.js +1 -0
  83. package/dist/pa-B7kIhZCF.js +1 -0
  84. package/dist/pa-BfwcJIar.mjs +19 -0
  85. package/dist/pay-react.css +1 -0
  86. package/dist/pl-DE5IB9xv.mjs +19 -0
  87. package/dist/pl-H0hBKdvF.js +1 -0
  88. package/dist/pt-CLzkqDzf.mjs +19 -0
  89. package/dist/pt-DwGrViQ3.js +1 -0
  90. package/dist/ru-CB2m0UDT.js +1 -0
  91. package/dist/ru-DM6-oUR0.mjs +19 -0
  92. package/dist/stripe-only.d.ts +31 -0
  93. package/dist/stripe-only.d.ts.map +1 -0
  94. package/dist/stripe-only.js +1 -0
  95. package/dist/stripe-only.mjs +33 -0
  96. package/dist/styles-D3XGpsqb.js +1 -0
  97. package/dist/styles-zgmHs6Hs.mjs +1601 -0
  98. package/dist/ta-A5HnrGb5.mjs +19 -0
  99. package/dist/ta-CAS197uN.js +1 -0
  100. package/dist/telemetry.d.ts +27 -0
  101. package/dist/telemetry.d.ts.map +1 -0
  102. package/dist/telemetry.js +1 -0
  103. package/dist/telemetry.mjs +127 -0
  104. package/dist/testing/__tests__/providers.test.d.ts +10 -0
  105. package/dist/testing/__tests__/providers.test.d.ts.map +1 -0
  106. package/dist/testing/helpers.d.ts +242 -0
  107. package/dist/testing/helpers.d.ts.map +1 -0
  108. package/dist/testing/index.d.ts +12 -0
  109. package/dist/testing/index.d.ts.map +1 -0
  110. package/dist/testing/index.js +1 -0
  111. package/dist/testing/index.mjs +374 -0
  112. package/dist/testing/mocks.d.ts +225 -0
  113. package/dist/testing/mocks.d.ts.map +1 -0
  114. package/dist/testing/providers.d.ts +89 -0
  115. package/dist/testing/providers.d.ts.map +1 -0
  116. package/dist/th-3fbB3Ytp.mjs +19 -0
  117. package/dist/th-Cpz2cFcg.js +1 -0
  118. package/dist/tr-BrgfFFdq.mjs +19 -0
  119. package/dist/tr-hQrEFk86.js +1 -0
  120. package/dist/types/componentOptions.d.ts +138 -0
  121. package/dist/types/componentOptions.d.ts.map +1 -0
  122. package/dist/types/errors.d.ts +213 -0
  123. package/dist/types/errors.d.ts.map +1 -0
  124. package/dist/types/index.d.ts +248 -0
  125. package/dist/types/index.d.ts.map +1 -0
  126. package/dist/uk-0hFun_g_.mjs +19 -0
  127. package/dist/uk-DrK2Sv8C.js +1 -0
  128. package/dist/ur-CaOjJXai.mjs +19 -0
  129. package/dist/ur-D5-7mN9a.js +1 -0
  130. package/dist/utils/__tests__/cspHelper.test.d.ts +9 -0
  131. package/dist/utils/__tests__/cspHelper.test.d.ts.map +1 -0
  132. package/dist/utils/__tests__/fetchWithTimeout.test.d.ts +11 -0
  133. package/dist/utils/__tests__/fetchWithTimeout.test.d.ts.map +1 -0
  134. package/dist/utils/cartHelpers.d.ts +105 -0
  135. package/dist/utils/cartHelpers.d.ts.map +1 -0
  136. package/dist/utils/circuitBreaker.d.ts +112 -0
  137. package/dist/utils/circuitBreaker.d.ts.map +1 -0
  138. package/dist/utils/couponHelpers.d.ts +50 -0
  139. package/dist/utils/couponHelpers.d.ts.map +1 -0
  140. package/dist/utils/cspHelper.d.ts +162 -0
  141. package/dist/utils/cspHelper.d.ts.map +1 -0
  142. package/dist/utils/deprecation.d.ts +128 -0
  143. package/dist/utils/deprecation.d.ts.map +1 -0
  144. package/dist/utils/errorHandling.d.ts +30 -0
  145. package/dist/utils/errorHandling.d.ts.map +1 -0
  146. package/dist/utils/errorMessages.d.ts +47 -0
  147. package/dist/utils/errorMessages.d.ts.map +1 -0
  148. package/dist/utils/errorParser.d.ts +37 -0
  149. package/dist/utils/errorParser.d.ts.map +1 -0
  150. package/dist/utils/eventEmitter.d.ts +119 -0
  151. package/dist/utils/eventEmitter.d.ts.map +1 -0
  152. package/dist/utils/exponentialBackoff.d.ts +104 -0
  153. package/dist/utils/exponentialBackoff.d.ts.map +1 -0
  154. package/dist/utils/fetchWithTimeout.d.ts +13 -0
  155. package/dist/utils/fetchWithTimeout.d.ts.map +1 -0
  156. package/dist/utils/index.d.ts +15 -0
  157. package/dist/utils/index.d.ts.map +1 -0
  158. package/dist/utils/logger.d.ts +76 -0
  159. package/dist/utils/logger.d.ts.map +1 -0
  160. package/dist/utils/modalStyles.d.ts +13 -0
  161. package/dist/utils/modalStyles.d.ts.map +1 -0
  162. package/dist/utils/rateLimiter.d.ts +88 -0
  163. package/dist/utils/rateLimiter.d.ts.map +1 -0
  164. package/dist/utils/requestDeduplication.d.ts +124 -0
  165. package/dist/utils/requestDeduplication.d.ts.map +1 -0
  166. package/dist/utils/securityValidation.d.ts +75 -0
  167. package/dist/utils/securityValidation.d.ts.map +1 -0
  168. package/dist/utils/solanaCheck.d.ts +10 -0
  169. package/dist/utils/solanaCheck.d.ts.map +1 -0
  170. package/dist/utils/telemetry.d.ts +277 -0
  171. package/dist/utils/telemetry.d.ts.map +1 -0
  172. package/dist/utils/tokenMintValidator.d.ts +77 -0
  173. package/dist/utils/tokenMintValidator.d.ts.map +1 -0
  174. package/dist/utils/uuid.d.ts +13 -0
  175. package/dist/utils/uuid.d.ts.map +1 -0
  176. package/dist/utils/validateConfig.d.ts +13 -0
  177. package/dist/utils/validateConfig.d.ts.map +1 -0
  178. package/dist/utils/walletDetection.d.ts +6 -0
  179. package/dist/utils/walletDetection.d.ts.map +1 -0
  180. package/dist/utils/walletPool.d.ts +57 -0
  181. package/dist/utils/walletPool.d.ts.map +1 -0
  182. package/dist/uuid-C0iMjdcc.js +1 -0
  183. package/dist/uuid-UlzrVY8Y.mjs +17 -0
  184. package/dist/vn-0nlIZFLP.mjs +19 -0
  185. package/dist/vn-B_iut9YL.js +1 -0
  186. package/dist/walletDetection-JZR3UCOa.mjs +27 -0
  187. package/dist/walletDetection-bNmV5ItZ.js +1 -0
  188. package/dist/zh-B4Endr1F.mjs +19 -0
  189. package/dist/zh-PR82dCHr.js +1 -0
  190. package/package.json +139 -0
@@ -0,0 +1,248 @@
1
+ /**
2
+ * Core types for Cedros Pay
3
+ *
4
+ * VERSIONING POLICY:
5
+ * - Types are exported in versioned namespaces (v1, v2, etc.)
6
+ * - Current version is always re-exported at top level for convenience
7
+ * - Breaking changes require a new namespace version
8
+ * - Older versions remain available for backward compatibility
9
+ *
10
+ * Example:
11
+ * import { X402Requirement } from '@cedros/pay-react'; // Current version (v1)
12
+ * import { v1 } from '@cedros/pay-react'; // Explicit v1
13
+ * import { v2 } from '@cedros/pay-react'; // Future version
14
+ */
15
+ /**
16
+ * Version 1 Types (Current)
17
+ * Stable API - changes here require bumping to v2
18
+ */
19
+ export declare namespace v1 {
20
+ type SolanaCluster = 'mainnet-beta' | 'devnet' | 'testnet';
21
+ type PaymentStatus = 'idle' | 'loading' | 'success' | 'error';
22
+ type Currency = 'USD' | 'EUR' | 'GBP';
23
+ /**
24
+ * Cart item for multi-item purchases
25
+ * Used across multiple components for cart and checkout flows
26
+ */
27
+ interface CartItem {
28
+ resource: string;
29
+ quantity?: number;
30
+ metadata?: Record<string, string>;
31
+ }
32
+ /**
33
+ * Configuration for the Cedros Pay provider
34
+ */
35
+ interface CedrosConfig {
36
+ stripePublicKey: string;
37
+ serverUrl?: string;
38
+ solanaCluster: SolanaCluster;
39
+ tokenMint?: string;
40
+ solanaEndpoint?: string;
41
+ theme?: CedrosThemeMode;
42
+ themeOverrides?: Partial<CedrosThemeTokens>;
43
+ unstyled?: boolean;
44
+ logLevel?: number;
45
+ /**
46
+ * SAFETY: Allow unknown token mints (NOT RECOMMENDED)
47
+ *
48
+ * By default, CedrosPay validates token mints against known stablecoins (USDC, USDT, PYUSD, CASH).
49
+ * Using an unrecognized token mint will throw an error to prevent sending funds to the wrong token.
50
+ *
51
+ * Set this to `true` ONLY if you are intentionally using a custom token, testnet token, or new stablecoin.
52
+ *
53
+ * ⚠️ WARNING: Typos in token mint addresses cause PERMANENT loss of funds.
54
+ *
55
+ * @default false
56
+ */
57
+ dangerouslyAllowUnknownMint?: boolean;
58
+ }
59
+ /**
60
+ * x402 payment requirement (official spec)
61
+ * From the accepts array in 402 response
62
+ */
63
+ interface X402Requirement {
64
+ scheme: string;
65
+ network: string;
66
+ maxAmountRequired: string;
67
+ resource: string;
68
+ description: string;
69
+ mimeType: string;
70
+ payTo: string;
71
+ maxTimeoutSeconds: number;
72
+ asset: string;
73
+ extra?: {
74
+ recipientTokenAccount?: string;
75
+ decimals?: number;
76
+ tokenSymbol?: string;
77
+ memo?: string;
78
+ feePayer?: string;
79
+ };
80
+ }
81
+ type CedrosThemeMode = 'light' | 'dark';
82
+ interface CedrosThemeTokens {
83
+ surfaceBackground: string;
84
+ surfaceText: string;
85
+ surfaceBorder: string;
86
+ stripeBackground: string;
87
+ stripeText: string;
88
+ stripeShadow: string;
89
+ cryptoBackground: string;
90
+ cryptoText: string;
91
+ cryptoShadow: string;
92
+ errorBackground: string;
93
+ errorBorder: string;
94
+ errorText: string;
95
+ successBackground: string;
96
+ successBorder: string;
97
+ successText: string;
98
+ modalOverlay: string;
99
+ modalBackground: string;
100
+ modalBorder: string;
101
+ buttonBorderRadius: string;
102
+ buttonPadding: string;
103
+ buttonFontSize: string;
104
+ buttonFontWeight: string;
105
+ }
106
+ /**
107
+ * Verification error details
108
+ */
109
+ interface VerificationError {
110
+ code: string;
111
+ message: string;
112
+ }
113
+ /**
114
+ * x402 HTTP 402 response structure (official spec)
115
+ */
116
+ interface X402Response {
117
+ x402Version: number;
118
+ error: string;
119
+ accepts: X402Requirement[];
120
+ verificationError?: VerificationError;
121
+ }
122
+ /**
123
+ * x402 payment payload (official spec)
124
+ * Sent in X-Payment header
125
+ */
126
+ interface PaymentPayload {
127
+ x402Version: number;
128
+ scheme: string;
129
+ network: string;
130
+ payload: {
131
+ signature: string;
132
+ transaction: string;
133
+ payer?: string;
134
+ memo?: string;
135
+ recipientTokenAccount?: string;
136
+ metadata?: Record<string, unknown>;
137
+ };
138
+ }
139
+ /**
140
+ * x402 settlement response (official spec)
141
+ * Received in X-PAYMENT-RESPONSE header
142
+ */
143
+ interface SettlementResponse {
144
+ success: boolean;
145
+ error: string | null;
146
+ txHash: string | null;
147
+ networkId: string | null;
148
+ metadata?: {
149
+ coupon_codes?: string;
150
+ original_amount?: string;
151
+ discounted_amount?: string;
152
+ [key: string]: string | undefined;
153
+ };
154
+ }
155
+ /**
156
+ * Stripe session creation request
157
+ * Matches backend createSessionRequest struct JSON tags (server.go:130-136)
158
+ * Note: Backend uses camelCase JSON tags for HTTP API layer
159
+ * The resource corresponds to a resource in the backend paywall config which
160
+ * contains both Stripe (price_id, fiat_amount) and x402 (crypto_amount, token) info
161
+ */
162
+ interface StripeSessionRequest {
163
+ resource: string;
164
+ customerEmail?: string;
165
+ metadata?: Record<string, string>;
166
+ successUrl?: string;
167
+ cancelUrl?: string;
168
+ couponCode?: string;
169
+ }
170
+ /**
171
+ * Stripe session response from backend
172
+ */
173
+ interface StripeSessionResponse {
174
+ sessionId: string;
175
+ url: string;
176
+ }
177
+ /**
178
+ * Payment result for both flows
179
+ */
180
+ interface PaymentResult {
181
+ success: boolean;
182
+ transactionId?: string;
183
+ error?: string;
184
+ settlement?: SettlementResponse;
185
+ }
186
+ /**
187
+ * Payment metadata
188
+ */
189
+ interface PaymentMetadata {
190
+ resource: string;
191
+ amount: number;
192
+ currency?: Currency;
193
+ metadata?: Record<string, unknown>;
194
+ }
195
+ /**
196
+ * Payment state
197
+ */
198
+ interface PaymentState {
199
+ status: PaymentStatus;
200
+ error: string | null;
201
+ transactionId: string | null;
202
+ }
203
+ /**
204
+ * Product from /paywall/v1/products endpoint
205
+ * Includes payment-method-specific pricing and coupons
206
+ */
207
+ interface Product {
208
+ id: string;
209
+ description: string;
210
+ fiatAmount: number;
211
+ fiatCurrency: string;
212
+ cryptoAmount: number;
213
+ cryptoToken: string;
214
+ effectiveFiatAmount: number;
215
+ effectiveCryptoAmount: number;
216
+ hasStripeCoupon: boolean;
217
+ hasCryptoCoupon: boolean;
218
+ stripeCouponCode: string;
219
+ cryptoCouponCode: string;
220
+ stripeDiscountPercent: number;
221
+ cryptoDiscountPercent: number;
222
+ }
223
+ }
224
+ /**
225
+ * Current stable version (v1)
226
+ * Re-exported at top level for convenience
227
+ */
228
+ export type SolanaCluster = v1.SolanaCluster;
229
+ export type PaymentStatus = v1.PaymentStatus;
230
+ export type Currency = v1.Currency;
231
+ export type CedrosThemeMode = v1.CedrosThemeMode;
232
+ export type CartItem = v1.CartItem;
233
+ export type CedrosConfig = v1.CedrosConfig;
234
+ export type X402Requirement = v1.X402Requirement;
235
+ export type CedrosThemeTokens = v1.CedrosThemeTokens;
236
+ export type VerificationError = v1.VerificationError;
237
+ export type X402Response = v1.X402Response;
238
+ export type PaymentPayload = v1.PaymentPayload;
239
+ export type SettlementResponse = v1.SettlementResponse;
240
+ export type StripeSessionRequest = v1.StripeSessionRequest;
241
+ export type StripeSessionResponse = v1.StripeSessionResponse;
242
+ export type PaymentResult = v1.PaymentResult;
243
+ export type PaymentMetadata = v1.PaymentMetadata;
244
+ export type PaymentState = v1.PaymentState;
245
+ export type Product = v1.Product;
246
+ export { PaymentErrorCode, PaymentError, ERROR_CATEGORIES, type ErrorResponse } from './errors';
247
+ export type { PaymentMethod, FuturePaymentMethod, PaymentSuccessResult, PaymentErrorDetail, CheckoutOptions, DisplayOptions, ModalRenderProps, CallbackOptions, AdvancedOptions, } from './componentOptions';
248
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ const e = "CEDROS PAY - Початковий файл перекладу (українська)", a = "1.0.0", i = "uk", n = { pay_with_card: "Оплатити карткою", pay_with_crypto: "Оплатити USDC", pay_with_usdc: "Оплатити USDC", purchase: "Купівля", card: "Картка", usdc_solana: "USDC (Solana)", crypto: "Криптовалюта", connect_wallet: "Під’єднати гаманець", connecting: "Під’єднання...", processing: "Обробка...", loading: "Завантаження...", close: "Закрити", cancel: "Скасувати", confirm: "Підтвердити", retry: "Спробувати ще раз", go_back: "Назад", contact_support: "Зв’язатися з підтримкою" }, o = { invalid_payment_proof: { message: "Не вдалося підтвердити оплату", action: "Повторіть спробу оплати. Якщо проблема не зникає, зверніться до служби підтримки." }, invalid_signature: { message: "Підпис транзакції недійсний", action: "Підтвердьте транзакцію у вашому гаманці та спробуйте ще раз." }, invalid_transaction: { message: "Неправильний формат транзакції", action: "Повторіть спробу оплати. Якщо проблема триває, оновіть застосунок гаманця." }, transaction_not_found: { message: "Транзакцію не знайдено в блокчейні", action: "Ваша транзакція може ще оброблятися. Зачекайте трохи та перевірте гаманець або спробуйте ще раз." }, transaction_not_confirmed: { message: "Транзакція ще обробляється", action: "Зачекайте підтвердження в блокчейні, потім спробуйте ще раз." }, transaction_failed: { message: "Помилка транзакції в блокчейні", action: "Перевірте деталі у гаманці. Можливо, потрібно змінити параметри транзакції або додати SOL для комісій." }, transaction_expired: { message: "Час обробки транзакції вичерпано", action: "Повторіть спробу оплати. За можливості підвищте пріоритет транзакції у вашому гаманці." }, invalid_recipient: { message: "Платіж надіслано на неправильну адресу", action: "Спробуйте ще раз і переконайтеся, що ви схвалюєте правильну транзакцію у гаманці." }, invalid_sender: { message: "Гаманець відправника недійсний", action: "Під’єднайте гаманець повторно та спробуйте ще раз." }, unauthorized_refund_issuer: { message: "У вас немає прав оформлювати повернення", action: "Повернення можуть обробляти лише авторизовані облікові записи. Зверніться до підтримки, якщо це помилка." }, amount_below_minimum: { message: "Сума платежу надто мала", action: "Перевірте потрібну суму та спробуйте ще раз." }, amount_mismatch: { message: "Сума платежу не відповідає розрахунковій сумі", action: "Ціна могла змінитися. Оновіть сторінку та повторіть оплату." }, insufficient_funds_sol: { message: "Недостатньо SOL для мережевих комісій", action: "Додайте щонайменше 0.001 SOL на гаманець для оплати комісій і спробуйте ще раз." }, insufficient_funds_token: { message: "Недостатній баланс у гаманці", action: "Поповніть гаманець і спробуйте ще раз." }, invalid_token_mint: { message: "Неправильний токен оплати", action: "Оплатіть правильним токеном, вказаним у деталях платежу." }, not_spl_transfer: { message: "Транзакція не є коректним переказом токенів", action: "Переконайтеся, що надсилаєте токен потрібного типу зі свого гаманця." }, missing_token_account: { message: "Токен-рахунок не знайдено", action: "Вашому гаманцю може знадобитися спершу створити токен-рахунок. Спробуйте ще раз або використайте інший гаманець." }, invalid_token_program: { message: "Недійсна програма токена", action: "Повторіть спробу оплати. Якщо проблема триває, спробуйте інший гаманець." }, missing_memo: { message: "Потрібна примітка (memo) до платежу, але її не додано", action: "Повторіть оплату та переконайтеся, що у гаманці схвалені всі деталі транзакції." }, invalid_memo: { message: "Неправильний формат примітки (memo)", action: "Повторіть спробу оплати." }, payment_already_used: { message: "Цей платіж уже оброблено", action: "Перевірте історію транзакцій. Якщо потрібен новий платіж, створіть нову транзакцію." }, signature_reused: { message: "Підпис транзакції вже використано", action: "Створіть нову платіжну транзакцію." }, quote_expired: { message: "Строк дії цінової пропозиції закінчився", action: "Ціни часто оновлюються. Оновіть сторінку та повторіть оплату." }, missing_field: { message: "Відсутня обов’язкова інформація", action: "Перевірте всі обов’язкові поля й спробуйте ще раз." }, invalid_field: { message: "Деякі дані вказано некоректно", action: "Перевірте введені дані та спробуйте ще раз." }, invalid_amount: { message: "Некоректна сума платежу", action: "Перевірте суму та спробуйте ще раз." }, invalid_wallet: { message: "Недійсна адреса гаманця", action: "Під’єднайте гаманець повторно та спробуйте ще раз." }, invalid_resource: { message: "Некоректний вибір товару", action: "Оновіть сторінку та спробуйте ще раз." }, invalid_coupon: { message: "Недійсний промокод", action: "Перевірте промокод і спробуйте ще раз." }, invalid_cart_item: { message: "Один або кілька товарів у кошику некоректні", action: "Перегляньте кошик і спробуйте ще раз." }, empty_cart: { message: "Ваш кошик порожній", action: "Додайте товари до кошика перед оформленням." }, resource_not_found: { message: "Товар не знайдено", action: "Можливо, товар більше недоступний. Оновіть сторінку та спробуйте ще раз." }, cart_not_found: { message: "Кошик не знайдено", action: "Строк дії кошика міг закінчитися. Почніть нове замовлення." }, refund_not_found: { message: "Повернення коштів не знайдено", action: "Перевірте номер повернення або зверніться до підтримки." }, product_not_found: { message: "Товар недоступний", action: "Можливо, товар більше недоступний. Перегляньте актуальний асортимент." }, coupon_not_found: { message: "Промокод не знайдено", action: "Перевірте код або видаліть його, щоб продовжити." }, session_not_found: { message: "Сеанс оплати закінчився", action: "Почніть новий платіж." }, cart_already_paid: { message: "Це замовлення вже оплачено", action: "Перевірте історію замовлень. Якщо потрібна нова покупка, почніть нове замовлення." }, refund_already_processed: { message: "Це повернення вже оброблено", action: "Перевірте історію транзакцій або зверніться до підтримки для деталей." }, coupon_expired: { message: "Строк дії промокоду минув", action: "Видаліть промокод або використайте інший." }, coupon_usage_limit_reached: { message: "Досягнуто ліміт використання промокоду", action: "Цей промокод уже вичерпано. Спробуйте інший код." }, coupon_not_applicable: { message: "Промокод не застосовується до цієї покупки", action: "Перевірте умови промокоду або видаліть його, щоб продовжити." }, coupon_wrong_payment_method: { message: "Промокод недійсний для цього способу оплати", action: "Виберіть інший спосіб оплати або видаліть промокод." }, stripe_error: { message: "Сервіс оплати карткою тимчасово недоступний", action: "Спробуйте трохи пізніше або скористайтеся оплатою криптовалютою." }, rpc_error: { message: "Мережа блокчейну тимчасово недоступна", action: "Спробуйте трохи пізніше або оплатіть карткою." }, network_error: { message: "Проблеми з мережевим підключенням", action: "Перевірте підключення до інтернету та спробуйте ще раз." }, internal_error: { message: "Сталася помилка на нашому боці", action: "Спробуйте ще раз. Якщо проблема не зникає, зверніться до підтримки." }, database_error: { message: "Сервіс тимчасово недоступний", action: "Спробуйте трохи пізніше." }, config_error: { message: "Помилка конфігурації сервісу", action: "Зверніться до підтримки за допомогою." }, unknown_error: { message: "Сталася непередбачена помилка", action: "Спробуйте ще раз або зверніться до підтримки, якщо проблема повторюється." } }, s = { unknown_token_mint: "Попередження: Невідома адреса mint токена. Ретельно перевірте, що це правильний токен, щоб уникнути втрати коштів.", token_typo_warning: "Адреса токена не відповідає відомим стейблкоїнам (USDC, USDT, PYUSD, CASH). Перевіряйте уважно, щоб запобігти безповоротній втраті коштів." }, t = { no_wallet_detected: "Гаманець Solana не виявлено", install_wallet: "Встановіть гаманець Solana, наприклад Phantom, Solflare або Backpack.", wallet_not_connected: "Гаманець не під’єднаний", connect_your_wallet: "Під’єднайте гаманець, щоб продовжити.", wallet_connection_failed: "Не вдалося під’єднати гаманець", try_again: "Спробуйте під’єднатися ще раз.", transaction_rejected: "Транзакцію відхилено", approve_in_wallet: "Підтвердіть транзакцію у своєму гаманці, щоб продовжити." }, c = {
2
+ comment: e,
3
+ version: a,
4
+ locale: "uk",
5
+ ui: n,
6
+ errors: o,
7
+ validation: s,
8
+ wallet: t
9
+ };
10
+ export {
11
+ e as comment,
12
+ c as default,
13
+ o as errors,
14
+ i as locale,
15
+ n as ui,
16
+ s as validation,
17
+ a as version,
18
+ t as wallet
19
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="CEDROS PAY - Початковий файл перекладу (українська)",a="1.0.0",n="uk",o={pay_with_card:"Оплатити карткою",pay_with_crypto:"Оплатити USDC",pay_with_usdc:"Оплатити USDC",purchase:"Купівля",card:"Картка",usdc_solana:"USDC (Solana)",crypto:"Криптовалюта",connect_wallet:"Під’єднати гаманець",connecting:"Під’єднання...",processing:"Обробка...",loading:"Завантаження...",close:"Закрити",cancel:"Скасувати",confirm:"Підтвердити",retry:"Спробувати ще раз",go_back:"Назад",contact_support:"Зв’язатися з підтримкою"},t={invalid_payment_proof:{message:"Не вдалося підтвердити оплату",action:"Повторіть спробу оплати. Якщо проблема не зникає, зверніться до служби підтримки."},invalid_signature:{message:"Підпис транзакції недійсний",action:"Підтвердьте транзакцію у вашому гаманці та спробуйте ще раз."},invalid_transaction:{message:"Неправильний формат транзакції",action:"Повторіть спробу оплати. Якщо проблема триває, оновіть застосунок гаманця."},transaction_not_found:{message:"Транзакцію не знайдено в блокчейні",action:"Ваша транзакція може ще оброблятися. Зачекайте трохи та перевірте гаманець або спробуйте ще раз."},transaction_not_confirmed:{message:"Транзакція ще обробляється",action:"Зачекайте підтвердження в блокчейні, потім спробуйте ще раз."},transaction_failed:{message:"Помилка транзакції в блокчейні",action:"Перевірте деталі у гаманці. Можливо, потрібно змінити параметри транзакції або додати SOL для комісій."},transaction_expired:{message:"Час обробки транзакції вичерпано",action:"Повторіть спробу оплати. За можливості підвищте пріоритет транзакції у вашому гаманці."},invalid_recipient:{message:"Платіж надіслано на неправильну адресу",action:"Спробуйте ще раз і переконайтеся, що ви схвалюєте правильну транзакцію у гаманці."},invalid_sender:{message:"Гаманець відправника недійсний",action:"Під’єднайте гаманець повторно та спробуйте ще раз."},unauthorized_refund_issuer:{message:"У вас немає прав оформлювати повернення",action:"Повернення можуть обробляти лише авторизовані облікові записи. Зверніться до підтримки, якщо це помилка."},amount_below_minimum:{message:"Сума платежу надто мала",action:"Перевірте потрібну суму та спробуйте ще раз."},amount_mismatch:{message:"Сума платежу не відповідає розрахунковій сумі",action:"Ціна могла змінитися. Оновіть сторінку та повторіть оплату."},insufficient_funds_sol:{message:"Недостатньо SOL для мережевих комісій",action:"Додайте щонайменше 0.001 SOL на гаманець для оплати комісій і спробуйте ще раз."},insufficient_funds_token:{message:"Недостатній баланс у гаманці",action:"Поповніть гаманець і спробуйте ще раз."},invalid_token_mint:{message:"Неправильний токен оплати",action:"Оплатіть правильним токеном, вказаним у деталях платежу."},not_spl_transfer:{message:"Транзакція не є коректним переказом токенів",action:"Переконайтеся, що надсилаєте токен потрібного типу зі свого гаманця."},missing_token_account:{message:"Токен-рахунок не знайдено",action:"Вашому гаманцю може знадобитися спершу створити токен-рахунок. Спробуйте ще раз або використайте інший гаманець."},invalid_token_program:{message:"Недійсна програма токена",action:"Повторіть спробу оплати. Якщо проблема триває, спробуйте інший гаманець."},missing_memo:{message:"Потрібна примітка (memo) до платежу, але її не додано",action:"Повторіть оплату та переконайтеся, що у гаманці схвалені всі деталі транзакції."},invalid_memo:{message:"Неправильний формат примітки (memo)",action:"Повторіть спробу оплати."},payment_already_used:{message:"Цей платіж уже оброблено",action:"Перевірте історію транзакцій. Якщо потрібен новий платіж, створіть нову транзакцію."},signature_reused:{message:"Підпис транзакції вже використано",action:"Створіть нову платіжну транзакцію."},quote_expired:{message:"Строк дії цінової пропозиції закінчився",action:"Ціни часто оновлюються. Оновіть сторінку та повторіть оплату."},missing_field:{message:"Відсутня обов’язкова інформація",action:"Перевірте всі обов’язкові поля й спробуйте ще раз."},invalid_field:{message:"Деякі дані вказано некоректно",action:"Перевірте введені дані та спробуйте ще раз."},invalid_amount:{message:"Некоректна сума платежу",action:"Перевірте суму та спробуйте ще раз."},invalid_wallet:{message:"Недійсна адреса гаманця",action:"Під’єднайте гаманець повторно та спробуйте ще раз."},invalid_resource:{message:"Некоректний вибір товару",action:"Оновіть сторінку та спробуйте ще раз."},invalid_coupon:{message:"Недійсний промокод",action:"Перевірте промокод і спробуйте ще раз."},invalid_cart_item:{message:"Один або кілька товарів у кошику некоректні",action:"Перегляньте кошик і спробуйте ще раз."},empty_cart:{message:"Ваш кошик порожній",action:"Додайте товари до кошика перед оформленням."},resource_not_found:{message:"Товар не знайдено",action:"Можливо, товар більше недоступний. Оновіть сторінку та спробуйте ще раз."},cart_not_found:{message:"Кошик не знайдено",action:"Строк дії кошика міг закінчитися. Почніть нове замовлення."},refund_not_found:{message:"Повернення коштів не знайдено",action:"Перевірте номер повернення або зверніться до підтримки."},product_not_found:{message:"Товар недоступний",action:"Можливо, товар більше недоступний. Перегляньте актуальний асортимент."},coupon_not_found:{message:"Промокод не знайдено",action:"Перевірте код або видаліть його, щоб продовжити."},session_not_found:{message:"Сеанс оплати закінчився",action:"Почніть новий платіж."},cart_already_paid:{message:"Це замовлення вже оплачено",action:"Перевірте історію замовлень. Якщо потрібна нова покупка, почніть нове замовлення."},refund_already_processed:{message:"Це повернення вже оброблено",action:"Перевірте історію транзакцій або зверніться до підтримки для деталей."},coupon_expired:{message:"Строк дії промокоду минув",action:"Видаліть промокод або використайте інший."},coupon_usage_limit_reached:{message:"Досягнуто ліміт використання промокоду",action:"Цей промокод уже вичерпано. Спробуйте інший код."},coupon_not_applicable:{message:"Промокод не застосовується до цієї покупки",action:"Перевірте умови промокоду або видаліть його, щоб продовжити."},coupon_wrong_payment_method:{message:"Промокод недійсний для цього способу оплати",action:"Виберіть інший спосіб оплати або видаліть промокод."},stripe_error:{message:"Сервіс оплати карткою тимчасово недоступний",action:"Спробуйте трохи пізніше або скористайтеся оплатою криптовалютою."},rpc_error:{message:"Мережа блокчейну тимчасово недоступна",action:"Спробуйте трохи пізніше або оплатіть карткою."},network_error:{message:"Проблеми з мережевим підключенням",action:"Перевірте підключення до інтернету та спробуйте ще раз."},internal_error:{message:"Сталася помилка на нашому боці",action:"Спробуйте ще раз. Якщо проблема не зникає, зверніться до підтримки."},database_error:{message:"Сервіс тимчасово недоступний",action:"Спробуйте трохи пізніше."},config_error:{message:"Помилка конфігурації сервісу",action:"Зверніться до підтримки за допомогою."},unknown_error:{message:"Сталася непередбачена помилка",action:"Спробуйте ще раз або зверніться до підтримки, якщо проблема повторюється."}},s={unknown_token_mint:"Попередження: Невідома адреса mint токена. Ретельно перевірте, що це правильний токен, щоб уникнути втрати коштів.",token_typo_warning:"Адреса токена не відповідає відомим стейблкоїнам (USDC, USDT, PYUSD, CASH). Перевіряйте уважно, щоб запобігти безповоротній втраті коштів."},i={no_wallet_detected:"Гаманець Solana не виявлено",install_wallet:"Встановіть гаманець Solana, наприклад Phantom, Solflare або Backpack.",wallet_not_connected:"Гаманець не під’єднаний",connect_your_wallet:"Під’єднайте гаманець, щоб продовжити.",wallet_connection_failed:"Не вдалося під’єднати гаманець",try_again:"Спробуйте під’єднатися ще раз.",transaction_rejected:"Транзакцію відхилено",approve_in_wallet:"Підтвердіть транзакцію у своєму гаманці, щоб продовжити."},c={comment:e,version:a,locale:n,ui:o,errors:t,validation:s,wallet:i};exports.comment=e;exports.default=c;exports.errors=t;exports.locale=n;exports.ui=o;exports.validation=s;exports.version=a;exports.wallet=i;
@@ -0,0 +1,19 @@
1
+ const e = "CEDROS PAY - ترجمہ ماخذ فائل (اردو)", a = "1.0.0", i = "ur", n = { pay_with_card: "کارڈ کے ذریعے ادائیگی", pay_with_crypto: "USDC کے ذریعے ادائیگی", pay_with_usdc: "USDC کے ذریعے ادائیگی", purchase: "خریداری", card: "کارڈ", usdc_solana: "USDC (Solana)", crypto: "کرپٹو", connect_wallet: "والیٹ منسلک کریں", connecting: "منسلک کیا جا رہا ہے...", processing: "کارروائی جاری ہے...", loading: "لوڈ ہو رہا ہے...", close: "بند کریں", cancel: "منسوخ کریں", confirm: "تصدیق کریں", retry: "دوبارہ کوشش کریں", go_back: "واپس جائیں", contact_support: "سپورٹ سے رابطہ کریں" }, o = { invalid_payment_proof: { message: "ادائیگی کی تصدیق ناکام رہی", action: "براہِ کرم ادائیگی دوبارہ کریں۔ مسئلہ برقرار رہے تو سپورٹ سے رابطہ کریں۔" }, invalid_signature: { message: "ٹرانزیکشن کا دستخط غیر معتبر ہے", action: "براہِ کرم اپنے والیٹ میں ٹرانزیکشن منظور کریں اور دوبارہ کوشش کریں۔" }, invalid_transaction: { message: "ٹرانزیکشن فارمیٹ غیر معتبر ہے", action: "براہِ کرم ادائیگی دوبارہ کریں۔ مسئلہ برقرار رہے تو اپنے والیٹ ایپ کو اپڈیٹ کرنے کی کوشش کریں۔" }, transaction_not_found: { message: "ٹرانزیکشن بلاک چین پر نہیں ملی", action: "آپ کی ٹرانزیکشن ابھی پروسیسنگ میں ہو سکتی ہے۔ براہِ کرم کچھ لمحہ انتظار کریں اور اپنے والیٹ کو چیک کریں، یا دوبارہ کوشش کریں۔" }, transaction_not_confirmed: { message: "ٹرانزیکشن ابھی پروسیسنگ میں ہے", action: "براہِ کرم بلاک چین سے تصدیق کا انتظار کریں، پھر دوبارہ کوشش کریں۔" }, transaction_failed: { message: "ٹرانزیکشن بلاک چین پر ناکام ہو گئی", action: "تفصیلات کے لیے اپنا والیٹ چیک کریں۔ ہو سکتا ہے آپ کو ٹرانزیکشن سیٹنگز ایڈجسٹ کرنی ہوں یا فیس کے لیے مزید SOL شامل کرنا ہو۔" }, transaction_expired: { message: "ٹرانزیکشن میں زیادہ وقت لگ گیا", action: "براہِ کرم ادائیگی دوبارہ کریں۔ اگر آپ کے والیٹ میں دستیاب ہو تو ٹرانزیکشن کی ترجیح بڑھانے پر غور کریں۔" }, invalid_recipient: { message: "ادائیگی غلط پتے پر بھیجی گئی", action: "براہِ کرم دوبارہ کوشش کریں اور یقینی بنائیں کہ آپ اپنے والیٹ میں درست ٹرانزیکشن منظور کر رہے ہیں۔" }, invalid_sender: { message: "ادائیگی بھیجنے والا والیٹ غیر معتبر ہے", action: "براہِ کرم اپنا والیٹ دوبارہ منسلک کریں اور دوبارہ کوشش کریں۔" }, unauthorized_refund_issuer: { message: "آپ ریفنڈ جاری کرنے کے مجاز نہیں", action: "ریفنڈ صرف مجاز اکاؤنٹس پروسیس کر سکتے ہیں۔ اگر آپ اسے غلطی سمجھتے ہیں تو سپورٹ سے رابطہ کریں۔" }, amount_below_minimum: { message: "ادائیگی کی رقم بہت کم ہے", action: "براہِ کرم مطلوبہ رقم چیک کریں اور دوبارہ کوشش کریں۔" }, amount_mismatch: { message: "ادائیگی کی رقم کوٹ سے مطابقت نہیں رکھتی", action: "قیمت تبدیل ہو سکتی ہے۔ براہِ کرم ریفریش کریں اور ادائیگی دوبارہ کریں۔" }, insufficient_funds_sol: { message: "ٹرانزیکشن فیس کے لیے SOL ناکافی", action: "نیٹ ورک فیس کے لیے اپنے والیٹ میں کم از کم 0.001 SOL شامل کریں، پھر دوبارہ کوشش کریں۔" }, insufficient_funds_token: { message: "آپ کے والیٹ میں بیلنس ناکافی ہے", action: "براہِ کرم مزید رقوم شامل کریں اور دوبارہ کوشش کریں۔" }, invalid_token_mint: { message: "غلط ادائیگی ٹوکن", action: "براہِ کرم ادائیگی کی تفصیلات کے مطابق درست ٹوکن سے ادائیگی کریں۔" }, not_spl_transfer: { message: "یہ ٹرانزیکشن درست ٹوکن ٹرانسفر نہیں", action: "براہِ کرم یقینی بنائیں کہ آپ اپنے والیٹ سے درست ٹوکن قسم بھیج رہے ہیں۔" }, missing_token_account: { message: "ٹوکن اکاؤنٹ نہیں ملا", action: "آپ کے والیٹ کو پہلے ٹوکن اکاؤنٹ بنانے کی ضرورت ہو سکتی ہے۔ دوبارہ کوشش کریں یا دوسرا والیٹ استعمال کریں۔" }, invalid_token_program: { message: "غلط ٹوکن پروگرام", action: "براہِ کرم ادائیگی دوبارہ کریں۔ مسئلہ برقرار رہے تو دوسرا والیٹ استعمال کرنے کی کوشش کریں۔" }, missing_memo: { message: "ادائیگی میمو درکار ہے مگر شامل نہیں کیا گیا", action: "براہِ کرم ادائیگی دوبارہ کریں اور یقینی بنائیں کہ آپ نے والیٹ میں ٹرانزیکشن کی تفصیلات منظور کی ہیں۔" }, invalid_memo: { message: "ادائیگی میمو کا فارمیٹ غلط ہے", action: "براہِ کرم ادائیگی دوبارہ کریں۔" }, payment_already_used: { message: "یہ ادائیگی پہلے ہی پروسیس کی جا چکی ہے", action: "اپنی ٹرانزیکشن ہسٹری چیک کریں۔ اگر دوبارہ ادائیگی درکار ہو تو نئی ٹرانزیکشن شروع کریں۔" }, signature_reused: { message: "ٹرانزیکشن دستخط پہلے ہی استعمال ہو چکا ہے", action: "براہِ کرم نئی ادائیگی کی ٹرانزیکشن بنائیں۔" }, quote_expired: { message: "ادائیگی کا کوٹ ختم ہو گیا ہے", action: "قیمتیں کثرت سے اپڈیٹ ہوتی ہیں۔ براہِ کرم ریفریش کریں اور ادائیگی دوبارہ کریں۔" }, missing_field: { message: "ضروری معلومات موجود نہیں", action: "براہِ کرم تمام مطلوبہ فیلڈز چیک کریں اور دوبارہ کوشش کریں۔" }, invalid_field: { message: "کچھ معلومات غلط ہیں", action: "براہِ کرم اپنی ان پٹ چیک کریں اور دوبارہ کوشش کریں۔" }, invalid_amount: { message: "ادائیگی کی رقم غلط ہے", action: "براہِ کرم رقم چیک کریں اور دوبارہ کوشش کریں۔" }, invalid_wallet: { message: "والیٹ ایڈریس غلط ہے", action: "براہِ کرم اپنا والیٹ دوبارہ منسلک کریں اور دوبارہ کوشش کریں۔" }, invalid_resource: { message: "غلط آئٹم کا انتخاب", action: "براہِ کرم صفحہ ریفریش کریں اور دوبارہ کوشش کریں۔" }, invalid_coupon: { message: "غلط کوپن کوڈ", action: "براہِ کرم کوپن کوڈ چیک کریں اور دوبارہ کوشش کریں۔" }, invalid_cart_item: { message: "کارٹ میں ایک یا زائد آئٹمز غلط ہیں", action: "براہِ کرم اپنا کارٹ دیکھیں اور دوبارہ کوشش کریں۔" }, empty_cart: { message: "آپ کا کارٹ خالی ہے", action: "براہِ کرم چیک آؤٹ سے پہلے آئٹمز شامل کریں۔" }, resource_not_found: { message: "آئٹم نہیں ملا", action: "ممکن ہے یہ آئٹم دستیاب نہ ہو۔ براہِ کرم ریفریش کریں اور دوبارہ کوشش کریں۔" }, cart_not_found: { message: "شاپنگ کارٹ نہیں ملا", action: "آپ کا کارٹ میعاد ختم ہو سکتا ہے۔ براہِ کرم نیا آرڈر شروع کریں۔" }, refund_not_found: { message: "ریفنڈ نہیں ملا", action: "براہِ کرم ریفنڈ ریفرنس نمبر چیک کریں یا سپورٹ سے رابطہ کریں۔" }, product_not_found: { message: "پروڈکٹ دستیاب نہیں", action: "ممکن ہے یہ پروڈکٹ اب دستیاب نہ ہو۔ براہِ کرم موجودہ انتخاب دیکھیں۔" }, coupon_not_found: { message: "کوپن کوڈ نہیں ملا", action: "براہِ کرم کوپن کوڈ چیک کریں یا اسے ہٹا کر آگے بڑھیں۔" }, session_not_found: { message: "ادائیگی سیشن کی میعاد ختم ہو گئی", action: "براہِ کرم نئی ادائیگی شروع کریں۔" }, cart_already_paid: { message: "یہ آرڈر پہلے ہی ادا کیا جا چکا ہے", action: "اپنی آرڈر ہسٹری چیک کریں۔ اگر مزید خریداری درکار ہو تو نیا آرڈر شروع کریں۔" }, refund_already_processed: { message: "یہ ریفنڈ پہلے ہی پروسیس ہو چکا ہے", action: "اپنی ٹرانزیکشن ہسٹری چیک کریں یا تفصیلات کے لیے سپورٹ سے رابطہ کریں۔" }, coupon_expired: { message: "کوپن کی میعاد ختم ہو گئی ہے", action: "براہِ کرم کوپن ہٹا دیں یا دوسرا کوڈ استعمال کریں۔" }, coupon_usage_limit_reached: { message: "کوپن کے استعمال کی حد پوری ہو گئی ہے", action: "یہ کوپن مکمل طور پر ری ڈیم ہو چکا ہے۔ براہِ کرم دوسرا کوڈ آزمائیں۔" }, coupon_not_applicable: { message: "یہ کوپن اس خریداری پر لاگو نہیں ہوتا", action: "براہِ کرم کوپن کی شرائط چیک کریں یا اسے ہٹا کر آگے بڑھیں۔" }, coupon_wrong_payment_method: { message: "یہ کوپن اس ادائیگی کے طریقے کے لیے درست نہیں", action: "کوئی اور ادائیگی طریقہ آزمائیں یا کوپن کوڈ ہٹا دیں۔" }, stripe_error: { message: "کارڈ ادائیگی کی سروس عارضی طور پر دستیاب نہیں", action: "براہِ کرم کچھ دیر بعد کوشش کریں، یا اس کے بجائے کرپٹو ادائیگی استعمال کریں۔" }, rpc_error: { message: "بلاک چین نیٹ ورک عارضی طور پر دستیاب نہیں", action: "براہِ کرم کچھ دیر بعد کوشش کریں، یا کارڈ ادائیگی استعمال کریں۔" }, network_error: { message: "نیٹ ورک کنکشن کا مسئلہ", action: "براہِ کرم اپنی انٹرنیٹ کنکشن چیک کریں اور دوبارہ کوشش کریں۔" }, internal_error: { message: "ہماری جانب سے کوئی مسئلہ پیش آ گیا", action: "براہِ کرم دوبارہ کوشش کریں۔ مسئلہ برقرار رہے تو سپورٹ سے رابطہ کریں۔" }, database_error: { message: "سروس عارضی طور پر دستیاب نہیں", action: "براہِ کرم کچھ دیر بعد دوبارہ کوشش کریں۔" }, config_error: { message: "سروس کنفیگریشن میں خرابی", action: "براہِ کرم مدد کے لیے سپورٹ سے رابطہ کریں۔" }, unknown_error: { message: "غیر متوقع خرابی پیش آ گئی", action: "براہِ کرم دوبارہ کوشش کریں یا مسئلہ برقرار رہے تو سپورٹ سے رابطہ کریں۔" } }, s = { unknown_token_mint: "انتباہ: غیر معروف ٹوکن منٹ ایڈریس۔ فنڈز کے نقصان سے بچنے کے لیے تصدیق کریں کہ یہ درست ٹوکن ہے۔", token_typo_warning: "ٹوکن ایڈریس معروف اسٹیبل کوائنز (USDC، USDT، PYUSD، CASH) سے مطابقت نہیں رکھتا۔ مستقل نقصان سے بچنے کے لیے احتیاط سے تصدیق کریں۔" }, t = { no_wallet_detected: "کوئی سولانا والیٹ نہیں ملا", install_wallet: "براہِ کرم Phantom، Solflare یا Backpack جیسے سولانا والیٹ انسٹال کریں۔", wallet_not_connected: "والیٹ منسلک نہیں", connect_your_wallet: "جاری رکھنے کے لیے اپنا والیٹ منسلک کریں۔", wallet_connection_failed: "والیٹ منسلک نہیں ہو سکا", try_again: "براہِ کرم دوبارہ منسلک کرنے کی کوشش کریں۔", transaction_rejected: "ٹرانزیکشن مسترد کر دی گئی", approve_in_wallet: "جاری رکھنے کے لیے اپنے والیٹ میں ٹرانزیکشن کی منظوری دیں۔" }, c = {
2
+ comment: e,
3
+ version: a,
4
+ locale: "ur",
5
+ ui: n,
6
+ errors: o,
7
+ validation: s,
8
+ wallet: t
9
+ };
10
+ export {
11
+ e as comment,
12
+ c as default,
13
+ o as errors,
14
+ i as locale,
15
+ n as ui,
16
+ s as validation,
17
+ a as version,
18
+ t as wallet
19
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="CEDROS PAY - ترجمہ ماخذ فائل (اردو)",a="1.0.0",n="ur",o={pay_with_card:"کارڈ کے ذریعے ادائیگی",pay_with_crypto:"USDC کے ذریعے ادائیگی",pay_with_usdc:"USDC کے ذریعے ادائیگی",purchase:"خریداری",card:"کارڈ",usdc_solana:"USDC (Solana)",crypto:"کرپٹو",connect_wallet:"والیٹ منسلک کریں",connecting:"منسلک کیا جا رہا ہے...",processing:"کارروائی جاری ہے...",loading:"لوڈ ہو رہا ہے...",close:"بند کریں",cancel:"منسوخ کریں",confirm:"تصدیق کریں",retry:"دوبارہ کوشش کریں",go_back:"واپس جائیں",contact_support:"سپورٹ سے رابطہ کریں"},s={invalid_payment_proof:{message:"ادائیگی کی تصدیق ناکام رہی",action:"براہِ کرم ادائیگی دوبارہ کریں۔ مسئلہ برقرار رہے تو سپورٹ سے رابطہ کریں۔"},invalid_signature:{message:"ٹرانزیکشن کا دستخط غیر معتبر ہے",action:"براہِ کرم اپنے والیٹ میں ٹرانزیکشن منظور کریں اور دوبارہ کوشش کریں۔"},invalid_transaction:{message:"ٹرانزیکشن فارمیٹ غیر معتبر ہے",action:"براہِ کرم ادائیگی دوبارہ کریں۔ مسئلہ برقرار رہے تو اپنے والیٹ ایپ کو اپڈیٹ کرنے کی کوشش کریں۔"},transaction_not_found:{message:"ٹرانزیکشن بلاک چین پر نہیں ملی",action:"آپ کی ٹرانزیکشن ابھی پروسیسنگ میں ہو سکتی ہے۔ براہِ کرم کچھ لمحہ انتظار کریں اور اپنے والیٹ کو چیک کریں، یا دوبارہ کوشش کریں۔"},transaction_not_confirmed:{message:"ٹرانزیکشن ابھی پروسیسنگ میں ہے",action:"براہِ کرم بلاک چین سے تصدیق کا انتظار کریں، پھر دوبارہ کوشش کریں۔"},transaction_failed:{message:"ٹرانزیکشن بلاک چین پر ناکام ہو گئی",action:"تفصیلات کے لیے اپنا والیٹ چیک کریں۔ ہو سکتا ہے آپ کو ٹرانزیکشن سیٹنگز ایڈجسٹ کرنی ہوں یا فیس کے لیے مزید SOL شامل کرنا ہو۔"},transaction_expired:{message:"ٹرانزیکشن میں زیادہ وقت لگ گیا",action:"براہِ کرم ادائیگی دوبارہ کریں۔ اگر آپ کے والیٹ میں دستیاب ہو تو ٹرانزیکشن کی ترجیح بڑھانے پر غور کریں۔"},invalid_recipient:{message:"ادائیگی غلط پتے پر بھیجی گئی",action:"براہِ کرم دوبارہ کوشش کریں اور یقینی بنائیں کہ آپ اپنے والیٹ میں درست ٹرانزیکشن منظور کر رہے ہیں۔"},invalid_sender:{message:"ادائیگی بھیجنے والا والیٹ غیر معتبر ہے",action:"براہِ کرم اپنا والیٹ دوبارہ منسلک کریں اور دوبارہ کوشش کریں۔"},unauthorized_refund_issuer:{message:"آپ ریفنڈ جاری کرنے کے مجاز نہیں",action:"ریفنڈ صرف مجاز اکاؤنٹس پروسیس کر سکتے ہیں۔ اگر آپ اسے غلطی سمجھتے ہیں تو سپورٹ سے رابطہ کریں۔"},amount_below_minimum:{message:"ادائیگی کی رقم بہت کم ہے",action:"براہِ کرم مطلوبہ رقم چیک کریں اور دوبارہ کوشش کریں۔"},amount_mismatch:{message:"ادائیگی کی رقم کوٹ سے مطابقت نہیں رکھتی",action:"قیمت تبدیل ہو سکتی ہے۔ براہِ کرم ریفریش کریں اور ادائیگی دوبارہ کریں۔"},insufficient_funds_sol:{message:"ٹرانزیکشن فیس کے لیے SOL ناکافی",action:"نیٹ ورک فیس کے لیے اپنے والیٹ میں کم از کم 0.001 SOL شامل کریں، پھر دوبارہ کوشش کریں۔"},insufficient_funds_token:{message:"آپ کے والیٹ میں بیلنس ناکافی ہے",action:"براہِ کرم مزید رقوم شامل کریں اور دوبارہ کوشش کریں۔"},invalid_token_mint:{message:"غلط ادائیگی ٹوکن",action:"براہِ کرم ادائیگی کی تفصیلات کے مطابق درست ٹوکن سے ادائیگی کریں۔"},not_spl_transfer:{message:"یہ ٹرانزیکشن درست ٹوکن ٹرانسفر نہیں",action:"براہِ کرم یقینی بنائیں کہ آپ اپنے والیٹ سے درست ٹوکن قسم بھیج رہے ہیں۔"},missing_token_account:{message:"ٹوکن اکاؤنٹ نہیں ملا",action:"آپ کے والیٹ کو پہلے ٹوکن اکاؤنٹ بنانے کی ضرورت ہو سکتی ہے۔ دوبارہ کوشش کریں یا دوسرا والیٹ استعمال کریں۔"},invalid_token_program:{message:"غلط ٹوکن پروگرام",action:"براہِ کرم ادائیگی دوبارہ کریں۔ مسئلہ برقرار رہے تو دوسرا والیٹ استعمال کرنے کی کوشش کریں۔"},missing_memo:{message:"ادائیگی میمو درکار ہے مگر شامل نہیں کیا گیا",action:"براہِ کرم ادائیگی دوبارہ کریں اور یقینی بنائیں کہ آپ نے والیٹ میں ٹرانزیکشن کی تفصیلات منظور کی ہیں۔"},invalid_memo:{message:"ادائیگی میمو کا فارمیٹ غلط ہے",action:"براہِ کرم ادائیگی دوبارہ کریں۔"},payment_already_used:{message:"یہ ادائیگی پہلے ہی پروسیس کی جا چکی ہے",action:"اپنی ٹرانزیکشن ہسٹری چیک کریں۔ اگر دوبارہ ادائیگی درکار ہو تو نئی ٹرانزیکشن شروع کریں۔"},signature_reused:{message:"ٹرانزیکشن دستخط پہلے ہی استعمال ہو چکا ہے",action:"براہِ کرم نئی ادائیگی کی ٹرانزیکشن بنائیں۔"},quote_expired:{message:"ادائیگی کا کوٹ ختم ہو گیا ہے",action:"قیمتیں کثرت سے اپڈیٹ ہوتی ہیں۔ براہِ کرم ریفریش کریں اور ادائیگی دوبارہ کریں۔"},missing_field:{message:"ضروری معلومات موجود نہیں",action:"براہِ کرم تمام مطلوبہ فیلڈز چیک کریں اور دوبارہ کوشش کریں۔"},invalid_field:{message:"کچھ معلومات غلط ہیں",action:"براہِ کرم اپنی ان پٹ چیک کریں اور دوبارہ کوشش کریں۔"},invalid_amount:{message:"ادائیگی کی رقم غلط ہے",action:"براہِ کرم رقم چیک کریں اور دوبارہ کوشش کریں۔"},invalid_wallet:{message:"والیٹ ایڈریس غلط ہے",action:"براہِ کرم اپنا والیٹ دوبارہ منسلک کریں اور دوبارہ کوشش کریں۔"},invalid_resource:{message:"غلط آئٹم کا انتخاب",action:"براہِ کرم صفحہ ریفریش کریں اور دوبارہ کوشش کریں۔"},invalid_coupon:{message:"غلط کوپن کوڈ",action:"براہِ کرم کوپن کوڈ چیک کریں اور دوبارہ کوشش کریں۔"},invalid_cart_item:{message:"کارٹ میں ایک یا زائد آئٹمز غلط ہیں",action:"براہِ کرم اپنا کارٹ دیکھیں اور دوبارہ کوشش کریں۔"},empty_cart:{message:"آپ کا کارٹ خالی ہے",action:"براہِ کرم چیک آؤٹ سے پہلے آئٹمز شامل کریں۔"},resource_not_found:{message:"آئٹم نہیں ملا",action:"ممکن ہے یہ آئٹم دستیاب نہ ہو۔ براہِ کرم ریفریش کریں اور دوبارہ کوشش کریں۔"},cart_not_found:{message:"شاپنگ کارٹ نہیں ملا",action:"آپ کا کارٹ میعاد ختم ہو سکتا ہے۔ براہِ کرم نیا آرڈر شروع کریں۔"},refund_not_found:{message:"ریفنڈ نہیں ملا",action:"براہِ کرم ریفنڈ ریفرنس نمبر چیک کریں یا سپورٹ سے رابطہ کریں۔"},product_not_found:{message:"پروڈکٹ دستیاب نہیں",action:"ممکن ہے یہ پروڈکٹ اب دستیاب نہ ہو۔ براہِ کرم موجودہ انتخاب دیکھیں۔"},coupon_not_found:{message:"کوپن کوڈ نہیں ملا",action:"براہِ کرم کوپن کوڈ چیک کریں یا اسے ہٹا کر آگے بڑھیں۔"},session_not_found:{message:"ادائیگی سیشن کی میعاد ختم ہو گئی",action:"براہِ کرم نئی ادائیگی شروع کریں۔"},cart_already_paid:{message:"یہ آرڈر پہلے ہی ادا کیا جا چکا ہے",action:"اپنی آرڈر ہسٹری چیک کریں۔ اگر مزید خریداری درکار ہو تو نیا آرڈر شروع کریں۔"},refund_already_processed:{message:"یہ ریفنڈ پہلے ہی پروسیس ہو چکا ہے",action:"اپنی ٹرانزیکشن ہسٹری چیک کریں یا تفصیلات کے لیے سپورٹ سے رابطہ کریں۔"},coupon_expired:{message:"کوپن کی میعاد ختم ہو گئی ہے",action:"براہِ کرم کوپن ہٹا دیں یا دوسرا کوڈ استعمال کریں۔"},coupon_usage_limit_reached:{message:"کوپن کے استعمال کی حد پوری ہو گئی ہے",action:"یہ کوپن مکمل طور پر ری ڈیم ہو چکا ہے۔ براہِ کرم دوسرا کوڈ آزمائیں۔"},coupon_not_applicable:{message:"یہ کوپن اس خریداری پر لاگو نہیں ہوتا",action:"براہِ کرم کوپن کی شرائط چیک کریں یا اسے ہٹا کر آگے بڑھیں۔"},coupon_wrong_payment_method:{message:"یہ کوپن اس ادائیگی کے طریقے کے لیے درست نہیں",action:"کوئی اور ادائیگی طریقہ آزمائیں یا کوپن کوڈ ہٹا دیں۔"},stripe_error:{message:"کارڈ ادائیگی کی سروس عارضی طور پر دستیاب نہیں",action:"براہِ کرم کچھ دیر بعد کوشش کریں، یا اس کے بجائے کرپٹو ادائیگی استعمال کریں۔"},rpc_error:{message:"بلاک چین نیٹ ورک عارضی طور پر دستیاب نہیں",action:"براہِ کرم کچھ دیر بعد کوشش کریں، یا کارڈ ادائیگی استعمال کریں۔"},network_error:{message:"نیٹ ورک کنکشن کا مسئلہ",action:"براہِ کرم اپنی انٹرنیٹ کنکشن چیک کریں اور دوبارہ کوشش کریں۔"},internal_error:{message:"ہماری جانب سے کوئی مسئلہ پیش آ گیا",action:"براہِ کرم دوبارہ کوشش کریں۔ مسئلہ برقرار رہے تو سپورٹ سے رابطہ کریں۔"},database_error:{message:"سروس عارضی طور پر دستیاب نہیں",action:"براہِ کرم کچھ دیر بعد دوبارہ کوشش کریں۔"},config_error:{message:"سروس کنفیگریشن میں خرابی",action:"براہِ کرم مدد کے لیے سپورٹ سے رابطہ کریں۔"},unknown_error:{message:"غیر متوقع خرابی پیش آ گئی",action:"براہِ کرم دوبارہ کوشش کریں یا مسئلہ برقرار رہے تو سپورٹ سے رابطہ کریں۔"}},t={unknown_token_mint:"انتباہ: غیر معروف ٹوکن منٹ ایڈریس۔ فنڈز کے نقصان سے بچنے کے لیے تصدیق کریں کہ یہ درست ٹوکن ہے۔",token_typo_warning:"ٹوکن ایڈریس معروف اسٹیبل کوائنز (USDC، USDT، PYUSD، CASH) سے مطابقت نہیں رکھتا۔ مستقل نقصان سے بچنے کے لیے احتیاط سے تصدیق کریں۔"},i={no_wallet_detected:"کوئی سولانا والیٹ نہیں ملا",install_wallet:"براہِ کرم Phantom، Solflare یا Backpack جیسے سولانا والیٹ انسٹال کریں۔",wallet_not_connected:"والیٹ منسلک نہیں",connect_your_wallet:"جاری رکھنے کے لیے اپنا والیٹ منسلک کریں۔",wallet_connection_failed:"والیٹ منسلک نہیں ہو سکا",try_again:"براہِ کرم دوبارہ منسلک کرنے کی کوشش کریں۔",transaction_rejected:"ٹرانزیکشن مسترد کر دی گئی",approve_in_wallet:"جاری رکھنے کے لیے اپنے والیٹ میں ٹرانزیکشن کی منظوری دیں۔"},c={comment:e,version:a,locale:n,ui:o,errors:s,validation:t,wallet:i};exports.comment=e;exports.default=c;exports.errors=s;exports.locale=n;exports.ui=o;exports.validation=t;exports.version=a;exports.wallet=i;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tests for CSP helper utility
3
+ *
4
+ * Regression test for SEC-002:
5
+ * - Verify 'self' appears in frame-src across all presets
6
+ * - Verify crypto-only mode excludes Stripe but includes 'self'
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=cspHelper.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cspHelper.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/cspHelper.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tests for fetchWithTimeout utility
3
+ *
4
+ * Regression tests for STAB-001 and STAB-003:
5
+ * - Timeout abort scenario
6
+ * - Caller abort before timeout
7
+ * - Already-aborted signal
8
+ * - Cleanup of event listeners
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=fetchWithTimeout.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchWithTimeout.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/fetchWithTimeout.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Cart utility functions
3
+ */
4
+ /**
5
+ * Normalized cart item for backend API
6
+ */
7
+ export interface NormalizedCartItem {
8
+ resource: string;
9
+ quantity: number;
10
+ metadata?: Record<string, string>;
11
+ }
12
+ /**
13
+ * Normalize cart items for backend API consumption
14
+ *
15
+ * Ensures all items have a quantity (defaults to 1) and preserves metadata
16
+ * Sanitizes negative, zero, and fractional quantities to prevent undercharging
17
+ *
18
+ * @param items - Array of cart items with optional quantity and metadata
19
+ * @returns Array of normalized cart items ready for API submission
20
+ *
21
+ * @example
22
+ * normalizeCartItems([
23
+ * {resource: 'item1', metadata: {sku: 'ABC123'}},
24
+ * {resource: 'item2', quantity: 3, metadata: {sku: 'XYZ789'}}
25
+ * ])
26
+ * // Returns: [
27
+ * // {resource: 'item1', quantity: 1, metadata: {sku: 'ABC123'}},
28
+ * // {resource: 'item2', quantity: 3, metadata: {sku: 'XYZ789'}}
29
+ * // ]
30
+ *
31
+ * @example
32
+ * // Sanitizes invalid quantities
33
+ * normalizeCartItems([
34
+ * {resource: 'item1', quantity: -3}, // becomes 1
35
+ * {resource: 'item2', quantity: 0}, // becomes 1
36
+ * {resource: 'item3', quantity: 2.7} // becomes 2
37
+ * ])
38
+ */
39
+ export declare function normalizeCartItems(items: Array<{
40
+ resource: string;
41
+ quantity?: number;
42
+ metadata?: Record<string, string>;
43
+ }>): NormalizedCartItem[];
44
+ /**
45
+ * Get total number of items in cart (sum of all quantities)
46
+ *
47
+ * @param items - Array of cart items with optional quantity
48
+ * @returns Total item count (sanitized to positive integers)
49
+ *
50
+ * @example
51
+ * getCartItemCount([
52
+ * {resource: 'item1', quantity: 2},
53
+ * {resource: 'item2', quantity: 3}
54
+ * ])
55
+ * // Returns: 5
56
+ *
57
+ * @example
58
+ * getCartItemCount([{resource: 'item1'}])
59
+ * // Returns: 1 (defaults to quantity 1)
60
+ *
61
+ * @example
62
+ * getCartItemCount([
63
+ * {quantity: -2}, // treated as 1
64
+ * {quantity: 0}, // treated as 1
65
+ * {quantity: 2.7} // treated as 2
66
+ * ])
67
+ * // Returns: 4
68
+ */
69
+ export declare function getCartItemCount(items: Array<{
70
+ quantity?: number;
71
+ }>): number;
72
+ /**
73
+ * Determine if the current payment flow is a cart checkout
74
+ *
75
+ * A cart checkout is defined as:
76
+ * - Multiple items in the cart, OR
77
+ * - A single item with quantity > 1
78
+ *
79
+ * @param items - Array of cart items with optional quantity
80
+ * @returns true if this is a cart checkout, false otherwise
81
+ *
82
+ * @example
83
+ * // Multiple items
84
+ * isCartCheckout([{resource: 'item1', quantity: 1}, {resource: 'item2', quantity: 1}])
85
+ * // Returns: true
86
+ *
87
+ * @example
88
+ * // Single item with quantity > 1
89
+ * isCartCheckout([{resource: 'item1', quantity: 2}])
90
+ * // Returns: true
91
+ *
92
+ * @example
93
+ * // Single item with quantity 1
94
+ * isCartCheckout([{resource: 'item1', quantity: 1}])
95
+ * // Returns: false
96
+ *
97
+ * @example
98
+ * // No items
99
+ * isCartCheckout([])
100
+ * // Returns: false
101
+ */
102
+ export declare function isCartCheckout(items?: Array<{
103
+ quantity?: number;
104
+ }>): boolean;
105
+ //# sourceMappingURL=cartHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cartHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/cartHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,GACvF,kBAAkB,EAAE,CAMtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAE5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAO5E"}