@cedros/pay-react 1.1.16 → 1.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AISettingsSection--jn-BNmd.mjs +539 -0
- package/dist/AISettingsSection-BrXUD4l_.js +51 -0
- package/dist/AutosaveIndicator-B3T328jH.mjs +35 -0
- package/dist/AutosaveIndicator-BQkm3cn8.js +1 -0
- package/dist/{CedrosContext-D7nh5-Zh.mjs → CedrosContext-BnJ2Cf7R.mjs} +1179 -642
- package/dist/CedrosContext-C26DlvLF.js +6 -0
- package/dist/CryptoButton-B4-oJ8lF.js +1 -0
- package/dist/CryptoButton-Dhxnk9d7.mjs +542 -0
- package/dist/FAQSection-BB1wJRsR.mjs +366 -0
- package/dist/FAQSection-aoAz35MV.js +1 -0
- package/dist/MessagingSection-BG9O62ko.mjs +347 -0
- package/dist/MessagingSection-DId-WJdU.js +1 -0
- package/dist/PaymentSettingsSection-D92IO4xJ.js +1 -0
- package/dist/PaymentSettingsSection-c13RAUxn.mjs +94 -0
- package/dist/SettingsSection-DUxjXl2G.js +1 -0
- package/dist/SettingsSection-htem-WL3.mjs +57 -0
- package/dist/SingleCategorySettings-BIEs6s6Z.mjs +1421 -0
- package/dist/SingleCategorySettings-CQ-osdzb.js +3 -0
- package/dist/StorefrontSection-CKTQt255.mjs +765 -0
- package/dist/StorefrontSection-DcSoDx-k.js +1 -0
- package/dist/SubscriptionsSection-C0hYf7Hr.js +1 -0
- package/dist/SubscriptionsSection-CONwHhT4.mjs +616 -0
- package/dist/Toggle-CsPSF8Dr.js +1 -0
- package/dist/Toggle-DAxIdpY4.mjs +48 -0
- package/dist/WalletManager-D6BYTwXn.js +1 -0
- package/dist/{WalletManager-oEjZhaFk.mjs → WalletManager-HXXyARQ7.mjs} +36 -32
- package/dist/components/CedrosPay.d.ts.map +1 -1
- package/dist/components/CryptoSubscribeButton.d.ts.map +1 -1
- package/dist/components/PaymentModal.d.ts.map +1 -1
- package/dist/components/SubscriptionManagementPanel.d.ts.map +1 -1
- package/dist/components/admin/AISettingsSection.d.ts.map +1 -1
- package/dist/components/admin/AdminAuthManager.d.ts +2 -1
- package/dist/components/admin/AdminAuthManager.d.ts.map +1 -1
- package/dist/components/admin/AutosaveIndicator.d.ts +7 -0
- package/dist/components/admin/AutosaveIndicator.d.ts.map +1 -0
- package/dist/components/admin/CedrosPayAdminDashboard.d.ts.map +1 -1
- package/dist/components/admin/ConfigEditor.d.ts +0 -2
- package/dist/components/admin/ConfigEditor.d.ts.map +1 -1
- package/dist/components/admin/MessagingSection.d.ts.map +1 -1
- package/dist/components/admin/ProductsSection.d.ts.map +1 -1
- package/dist/components/admin/RefundsSection.d.ts.map +1 -1
- package/dist/components/admin/SecretArrayEditor.d.ts +16 -0
- package/dist/components/admin/SecretArrayEditor.d.ts.map +1 -0
- package/dist/components/admin/SingleCategorySettings.d.ts.map +1 -1
- package/dist/components/admin/StorefrontSection.d.ts.map +1 -1
- package/dist/components/admin/Toggle.d.ts +14 -0
- package/dist/components/admin/Toggle.d.ts.map +1 -0
- package/dist/components/admin/TokenMintSelector.d.ts +27 -0
- package/dist/components/admin/TokenMintSelector.d.ts.map +1 -0
- package/dist/components/admin/configApi.d.ts +5 -3
- package/dist/components/admin/configApi.d.ts.map +1 -1
- package/dist/components/admin/index.d.ts +8 -9
- package/dist/components/admin/index.d.ts.map +1 -1
- package/dist/components/admin/sections-more.d.ts +2 -9
- package/dist/components/admin/sections-more.d.ts.map +1 -1
- package/dist/context/CedrosContext.d.ts +1 -1
- package/dist/context/CedrosContext.d.ts.map +1 -1
- package/dist/crypto-only.js +1 -1
- package/dist/crypto-only.mjs +391 -380
- package/dist/ecommerce/__tests__/inventoryHooks.test.d.ts +2 -0
- package/dist/ecommerce/__tests__/inventoryHooks.test.d.ts.map +1 -0
- package/dist/ecommerce/__tests__/storage.test.d.ts +2 -0
- package/dist/ecommerce/__tests__/storage.test.d.ts.map +1 -0
- package/dist/ecommerce/adapters/CommerceAdapter.d.ts +5 -0
- package/dist/ecommerce/adapters/CommerceAdapter.d.ts.map +1 -1
- package/dist/ecommerce/adapters/mock/mockAdapter.d.ts.map +1 -1
- package/dist/ecommerce/adapters/paywall/paywallAdapter.d.ts.map +1 -1
- package/dist/ecommerce/adapters/paywall/paywallAdapter.test.d.ts +2 -0
- package/dist/ecommerce/adapters/paywall/paywallAdapter.test.d.ts.map +1 -0
- package/dist/ecommerce/components/catalog/ProductCard.d.ts.map +1 -1
- package/dist/ecommerce/components/catalog/QuickViewDialog.d.ts.map +1 -1
- package/dist/ecommerce/components/chat/ShopChatPanel.d.ts +4 -0
- package/dist/ecommerce/components/chat/ShopChatPanel.d.ts.map +1 -1
- package/dist/ecommerce/components/checkout/PaymentStep.d.ts.map +1 -1
- package/dist/ecommerce/components/faq/FAQItem.d.ts.map +1 -1
- package/dist/ecommerce/config/context.d.ts.map +1 -1
- package/dist/ecommerce/hooks/useAIRelatedProducts.d.ts.map +1 -1
- package/dist/ecommerce/hooks/useCartInventory.d.ts.map +1 -1
- package/dist/ecommerce/hooks/useHoldExpiry.d.ts.map +1 -1
- package/dist/ecommerce/hooks/useInventoryVerification.d.ts.map +1 -1
- package/dist/ecommerce/hooks/useProducts.d.ts.map +1 -1
- package/dist/ecommerce/index.d.ts +2 -0
- package/dist/ecommerce/index.d.ts.map +1 -1
- package/dist/ecommerce/integrations/cedros-pay/useCedrosPayCheckoutAdapter.d.ts.map +1 -1
- package/dist/ecommerce/state/cart/CartProvider.d.ts.map +1 -1
- package/dist/ecommerce/state/checkout/checkoutSchema.d.ts +1 -1
- package/dist/ecommerce/state/checkout/useCheckout.d.ts.map +1 -1
- package/dist/ecommerce/templates/ProductTemplate.d.ts.map +1 -1
- package/dist/ecommerce/utils/storage.d.ts +1 -1
- package/dist/ecommerce/utils/storage.d.ts.map +1 -1
- package/dist/hooks/useCreditsPayment.d.ts.map +1 -1
- package/dist/hooks/useCreditsSubscription.d.ts.map +1 -1
- package/dist/hooks/useCryptoSubscription.d.ts.map +1 -1
- package/dist/hooks/useRefundVerification.d.ts.map +1 -1
- package/dist/hooks/useStripeCheckout.d.ts +1 -1
- package/dist/hooks/useStripeCheckout.d.ts.map +1 -1
- package/dist/hooks/useSubscription.d.ts.map +1 -1
- package/dist/hooks/useSubscriptionManagement.d.ts.map +1 -1
- package/dist/hooks/useX402Payment.d.ts.map +1 -1
- package/dist/index-2N_CMVAv.js +84 -0
- package/dist/index-C1hbnxn0.mjs +22915 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +67 -72
- package/dist/managers/CreditsManager.d.ts +6 -0
- package/dist/managers/CreditsManager.d.ts.map +1 -1
- package/dist/managers/ManagerCache.d.ts.map +1 -1
- package/dist/managers/RouteDiscoveryManager.d.ts +3 -0
- package/dist/managers/RouteDiscoveryManager.d.ts.map +1 -1
- package/dist/managers/StripeManager.d.ts +15 -0
- package/dist/managers/StripeManager.d.ts.map +1 -1
- package/dist/managers/SubscriptionChangeManager.d.ts.map +1 -1
- package/dist/managers/SubscriptionManager.d.ts +7 -14
- package/dist/managers/SubscriptionManager.d.ts.map +1 -1
- package/dist/managers/WalletManager.d.ts +2 -1
- package/dist/managers/WalletManager.d.ts.map +1 -1
- package/dist/managers/X402Manager.d.ts.map +1 -1
- package/dist/{sections-CL3lbNui.js → sections-D2GMJuKq.js} +1 -1
- package/dist/{sections-DnmB0qdx.mjs → sections-DICaHGhz.mjs} +1 -1
- package/dist/stripe-only.js +1 -1
- package/dist/stripe-only.mjs +67 -72
- package/dist/telemetry.js +1 -1
- package/dist/telemetry.mjs +23 -25
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.mjs +1 -1
- package/dist/types/index.d.ts +13 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/useAutosave-B2p6iwh8.js +1 -0
- package/dist/useAutosave-YwMqRzqy.mjs +44 -0
- package/dist/utils/circuitBreaker.d.ts +3 -1
- package/dist/utils/circuitBreaker.d.ts.map +1 -1
- package/dist/utils/cspHelper.d.ts +6 -0
- package/dist/utils/cspHelper.d.ts.map +1 -1
- package/dist/utils/csvHelpers.d.ts +0 -41
- package/dist/utils/csvHelpers.d.ts.map +1 -1
- package/dist/utils/errorHandling.d.ts.map +1 -1
- package/dist/utils/exponentialBackoff.d.ts.map +1 -1
- package/dist/utils/requestDeduplication.d.ts.map +1 -1
- package/dist/utils/telemetry.d.ts.map +1 -1
- package/dist/utils/validateConfig.d.ts +1 -1
- package/dist/utils/validateConfig.d.ts.map +1 -1
- package/dist/walletDetection-JZR3UCOa.mjs +27 -0
- package/dist/walletDetection-bNmV5ItZ.js +1 -0
- package/dist/{walletPool-BR6etEiq.mjs → walletPool-BV_z1lEA.mjs} +1 -1
- package/dist/{walletPool-BZyAG4YS.js → walletPool-DjA7J3a9.js} +1 -1
- package/package.json +8 -7
- package/dist/CedrosContext-C2v_s8cc.js +0 -6
- package/dist/WalletManager-B5KLZK2D.js +0 -1
- package/dist/index-BU0vgA-7.js +0 -136
- package/dist/index-DWXEBUbu.mjs +0 -27912
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@solana/web3.js"),w=require("@solana/spl-token"),t=require("./CedrosContext-C26DlvLF.js"),h=require("./index-WcOlBYZJ.js");class p{connection;cluster;endpoint;allowUnknownMint;rpcRateLimiter=t.createRateLimiter({maxRequests:50,windowMs:6e4});rpcCircuitBreaker=t.createCircuitBreaker({failureThreshold:5,timeout:1e4,name:"solana-rpc"});constructor(r="mainnet-beta",e,n=!1){this.cluster=r,this.endpoint=e,this.allowUnknownMint=n,this.connection=this.createConnection()}createConnection(){const r=this.endpoint??o.clusterApiUrl(this.cluster);return new o.Connection(r,"confirmed")}transformRpcError(r){const e=r instanceof Error?r.message:typeof r=="string"?r:String(r);return e.includes("403")||e.includes("Access forbidden")?new Error("Public Solana RPC access denied. Please configure a custom RPC endpoint (e.g., from Helius, QuickNode, or Alchemy) in your CedrosProvider config using the solanaEndpoint option."):e.includes("429")||e.includes("Too Many Requests")?new Error("Solana RPC rate limit exceeded. Please configure a custom RPC endpoint with higher limits in your CedrosProvider config using the solanaEndpoint option."):r instanceof Error?r:new Error(e)}async buildTransaction(r){const{requirement:e,payerPublicKey:n,blockhash:a}=r;if(!e||!e.payTo)throw new Error("Invalid requirement: missing payTo");t.getLogger().debug("[WalletManager] Building transaction for resource:",e.resource);const i=new o.Transaction,u=this.resolveAmountInMinorUnits(e),c=e.asset;if(!c)throw new Error("asset is required in x402 requirement");const l=t.validateX402Asset(c,e.resource,this.allowUnknownMint);if(!l.isValid&&l.error)throw new Error(l.error);l.warning&&t.getLogger().warn(l.warning);const y=new o.PublicKey(c),m=await w.getAssociatedTokenAddress(y,n);if(!this.rpcRateLimiter.tryConsume())throw new Error("RPC rate limit exceeded. Please try again in a moment.");let d;try{d=await this.rpcCircuitBreaker.execute(async()=>await t.retryWithBackoff(async()=>await this.connection.getAccountInfo(m),{...t.RETRY_PRESETS.QUICK,name:"rpc-get-account-info"}))}catch(s){throw s instanceof t.CircuitBreakerOpenError?new Error("Solana RPC service is temporarily unavailable. Please try again in a few moments."):this.transformRpcError(s)}if(!d)throw new Error("Payer is missing an associated token account for this mint");let f;try{f=e.extra?.recipientTokenAccount?new o.PublicKey(e.extra.recipientTokenAccount):new o.PublicKey(e.payTo)}catch(s){throw t.getLogger().warn("[WalletManager] Failed to resolve recipient address:",s),new Error("We are currently unable to process payment, please try again later")}if(i.add(w.createTransferInstruction(m,f,n,u)),e.extra?.memo){const s=new o.TransactionInstruction({keys:[],programId:new o.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:Buffer.from(e.extra.memo,"utf8")});i.add(s)}let g;if(a)g=a;else{if(!this.rpcRateLimiter.tryConsume())throw new Error("RPC rate limit exceeded. Please try again in a moment.");try{g=(await this.rpcCircuitBreaker.execute(async()=>await t.retryWithBackoff(async()=>await this.connection.getLatestBlockhash(),{...t.RETRY_PRESETS.QUICK,name:"rpc-get-blockhash"}))).blockhash}catch(s){throw s instanceof t.CircuitBreakerOpenError?new Error("Solana RPC service is temporarily unavailable. Please try again in a few moments."):this.transformRpcError(s)}}return i.recentBlockhash=g,e.extra?.feePayer?i.feePayer=new o.PublicKey(e.extra.feePayer):i.feePayer=n,i}resolveAmountInMinorUnits(r){const e=r.maxAmountRequired;if(!/^\d+$/.test(e))throw new Error("Invalid maxAmountRequired in requirement: must be a non-negative integer string");const n=BigInt(e);if(n<=0n)throw new Error("Invalid maxAmountRequired in requirement");return n}buildPaymentPayload(r){const{requirement:e,signedTx:n,payerPublicKey:a}=r;return{x402Version:0,scheme:e.scheme,network:e.network,payload:{signature:n.signature,transaction:n.serialized,payer:a.toString(),memo:e.extra?.memo,recipientTokenAccount:e.extra?.recipientTokenAccount}}}async signTransaction(r){const{transaction:e,signTransaction:n}=r;t.getLogger().debug("[WalletManager] Requesting wallet to sign transaction");const a=await n(e),i=a.serialize(),u=a.signatures[0]?.signature;if(!u)throw new Error("Signed transaction missing signature");const c=h.bs58.encode(u);return t.getLogger().debug("[WalletManager] Transaction signed with signature:",c.substring(0,20)+"..."),{serialized:t.gBase64.fromUint8Array(i),signature:c}}deserializeTransaction(r){try{const e=t.gBase64.toUint8Array(r);return o.Transaction.from(e)}catch(e){throw new Error(`Failed to deserialize transaction: ${t.formatError(e,"Unknown error")}`)}}async partiallySignTransaction(r){const{transaction:e,signTransaction:n,blockhash:a}=r;a&&e.recentBlockhash!==a&&(e.recentBlockhash=a);const i=await n(e),u=i.signatures[0]?.signature;if(u){const l=h.bs58.encode(u);t.getLogger().debug("[WalletManager] Partially signed with signature:",l.substring(0,20)+"...")}const c=i.serialize({requireAllSignatures:!1,verifySignatures:!1});return t.gBase64.fromUint8Array(c)}async getBalance(r){if(!this.rpcRateLimiter.tryConsume())throw new Error("RPC rate limit exceeded. Please try again in a moment.");try{return await this.rpcCircuitBreaker.execute(async()=>await t.retryWithBackoff(async()=>await this.connection.getBalance(r),{...t.RETRY_PRESETS.QUICK,name:"rpc-get-balance"}))/o.LAMPORTS_PER_SOL}catch(e){throw e instanceof t.CircuitBreakerOpenError?new Error("Solana RPC service is temporarily unavailable. Please try again in a few moments."):this.transformRpcError(e)}}async verifyTransaction(r){if(!this.rpcRateLimiter.tryConsume())throw new Error("RPC rate limit exceeded for transaction verification");try{return!!(await this.rpcCircuitBreaker.execute(async()=>await t.retryWithBackoff(async()=>await this.connection.getSignatureStatus(r),{...t.RETRY_PRESETS.QUICK,name:"rpc-verify-tx"}))).value?.confirmationStatus}catch(e){return e instanceof t.CircuitBreakerOpenError&&t.getLogger().warn("[WalletManager] Circuit breaker OPEN - cannot verify transaction"),!1}}}exports.WalletManager=p;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { clusterApiUrl as
|
|
2
|
-
import { getAssociatedTokenAddress as
|
|
3
|
-
import { c as
|
|
1
|
+
import { clusterApiUrl as C, Connection as b, Transaction as P, PublicKey as l, TransactionInstruction as R, LAMPORTS_PER_SOL as x } from "@solana/web3.js";
|
|
2
|
+
import { getAssociatedTokenAddress as T, createTransferInstruction as A } from "@solana/spl-token";
|
|
3
|
+
import { c as v, b as B, i as u, k as S, r as m, g, e as w, l as f, m as M } from "./CedrosContext-BnJ2Cf7R.mjs";
|
|
4
4
|
import { b as k } from "./index-BFt38o8Q.mjs";
|
|
5
5
|
class z {
|
|
6
6
|
connection;
|
|
7
7
|
cluster;
|
|
8
8
|
endpoint;
|
|
9
9
|
allowUnknownMint;
|
|
10
|
-
rpcRateLimiter =
|
|
10
|
+
rpcRateLimiter = v({
|
|
11
11
|
maxRequests: 50,
|
|
12
12
|
windowMs: 6e4
|
|
13
13
|
// 50 requests per minute for RPC calls
|
|
@@ -25,8 +25,8 @@ class z {
|
|
|
25
25
|
* Create Solana RPC connection
|
|
26
26
|
*/
|
|
27
27
|
createConnection() {
|
|
28
|
-
const r = this.endpoint ??
|
|
29
|
-
return new
|
|
28
|
+
const r = this.endpoint ?? C(this.cluster);
|
|
29
|
+
return new b(r, "confirmed");
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Transform RPC errors into user-friendly messages
|
|
@@ -50,12 +50,12 @@ class z {
|
|
|
50
50
|
const a = new P(), s = this.resolveAmountInMinorUnits(e), o = e.asset;
|
|
51
51
|
if (!o)
|
|
52
52
|
throw new Error("asset is required in x402 requirement");
|
|
53
|
-
const c =
|
|
53
|
+
const c = S(o, e.resource, this.allowUnknownMint);
|
|
54
54
|
if (!c.isValid && c.error)
|
|
55
55
|
throw new Error(c.error);
|
|
56
56
|
c.warning && u().warn(c.warning);
|
|
57
|
-
const
|
|
58
|
-
|
|
57
|
+
const E = new l(o), h = await T(
|
|
58
|
+
E,
|
|
59
59
|
t
|
|
60
60
|
);
|
|
61
61
|
if (!this.rpcRateLimiter.tryConsume())
|
|
@@ -63,60 +63,64 @@ class z {
|
|
|
63
63
|
let y;
|
|
64
64
|
try {
|
|
65
65
|
y = await this.rpcCircuitBreaker.execute(async () => await m(
|
|
66
|
-
async () => await this.connection.getAccountInfo(
|
|
66
|
+
async () => await this.connection.getAccountInfo(h),
|
|
67
67
|
{ ...g.QUICK, name: "rpc-get-account-info" }
|
|
68
68
|
));
|
|
69
69
|
} catch (i) {
|
|
70
|
-
throw i instanceof
|
|
70
|
+
throw i instanceof w ? new Error("Solana RPC service is temporarily unavailable. Please try again in a few moments.") : this.transformRpcError(i);
|
|
71
71
|
}
|
|
72
72
|
if (!y)
|
|
73
73
|
throw new Error("Payer is missing an associated token account for this mint");
|
|
74
74
|
let p;
|
|
75
75
|
try {
|
|
76
76
|
p = e.extra?.recipientTokenAccount ? new l(e.extra.recipientTokenAccount) : new l(e.payTo);
|
|
77
|
-
} catch {
|
|
78
|
-
throw new Error("We are currently unable to process payment, please try again later");
|
|
77
|
+
} catch (i) {
|
|
78
|
+
throw u().warn("[WalletManager] Failed to resolve recipient address:", i), new Error("We are currently unable to process payment, please try again later");
|
|
79
79
|
}
|
|
80
80
|
if (a.add(
|
|
81
81
|
A(
|
|
82
|
-
|
|
82
|
+
h,
|
|
83
83
|
p,
|
|
84
84
|
t,
|
|
85
85
|
s
|
|
86
86
|
)
|
|
87
87
|
), e.extra?.memo) {
|
|
88
|
-
const
|
|
88
|
+
const i = new R({
|
|
89
89
|
keys: [],
|
|
90
90
|
programId: new l("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),
|
|
91
91
|
data: Buffer.from(e.extra.memo, "utf8")
|
|
92
92
|
});
|
|
93
|
-
a.add(
|
|
93
|
+
a.add(i);
|
|
94
94
|
}
|
|
95
|
-
let
|
|
95
|
+
let d;
|
|
96
96
|
if (n)
|
|
97
|
-
|
|
97
|
+
d = n;
|
|
98
98
|
else {
|
|
99
99
|
if (!this.rpcRateLimiter.tryConsume())
|
|
100
100
|
throw new Error("RPC rate limit exceeded. Please try again in a moment.");
|
|
101
101
|
try {
|
|
102
|
-
|
|
102
|
+
d = (await this.rpcCircuitBreaker.execute(async () => await m(
|
|
103
103
|
async () => await this.connection.getLatestBlockhash(),
|
|
104
104
|
{ ...g.QUICK, name: "rpc-get-blockhash" }
|
|
105
105
|
))).blockhash;
|
|
106
106
|
} catch (i) {
|
|
107
|
-
throw i instanceof
|
|
107
|
+
throw i instanceof w ? new Error("Solana RPC service is temporarily unavailable. Please try again in a few moments.") : this.transformRpcError(i);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
return a.recentBlockhash =
|
|
110
|
+
return a.recentBlockhash = d, e.extra?.feePayer ? a.feePayer = new l(e.extra.feePayer) : a.feePayer = t, a;
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
113
|
-
* Parse amount from x402 requirement (already in atomic units as string)
|
|
113
|
+
* Parse amount from x402 requirement (already in atomic units as string).
|
|
114
|
+
* Uses BigInt to avoid truncation/overflow for large atomic values.
|
|
114
115
|
*/
|
|
115
116
|
resolveAmountInMinorUnits(r) {
|
|
116
|
-
const e =
|
|
117
|
-
if (
|
|
117
|
+
const e = r.maxAmountRequired;
|
|
118
|
+
if (!/^\d+$/.test(e))
|
|
119
|
+
throw new Error("Invalid maxAmountRequired in requirement: must be a non-negative integer string");
|
|
120
|
+
const t = BigInt(e);
|
|
121
|
+
if (t <= 0n)
|
|
118
122
|
throw new Error("Invalid maxAmountRequired in requirement");
|
|
119
|
-
return
|
|
123
|
+
return t;
|
|
120
124
|
}
|
|
121
125
|
/**
|
|
122
126
|
* Build payment payload from signed transaction (x402 spec)
|
|
@@ -147,7 +151,7 @@ class z {
|
|
|
147
151
|
throw new Error("Signed transaction missing signature");
|
|
148
152
|
const o = k.encode(s);
|
|
149
153
|
return u().debug("[WalletManager] Transaction signed with signature:", o.substring(0, 20) + "..."), {
|
|
150
|
-
serialized:
|
|
154
|
+
serialized: f.fromUint8Array(a),
|
|
151
155
|
signature: o
|
|
152
156
|
};
|
|
153
157
|
}
|
|
@@ -157,7 +161,7 @@ class z {
|
|
|
157
161
|
*/
|
|
158
162
|
deserializeTransaction(r) {
|
|
159
163
|
try {
|
|
160
|
-
const e =
|
|
164
|
+
const e = f.toUint8Array(r);
|
|
161
165
|
return P.from(e);
|
|
162
166
|
} catch (e) {
|
|
163
167
|
throw new Error(
|
|
@@ -181,7 +185,7 @@ class z {
|
|
|
181
185
|
requireAllSignatures: !1,
|
|
182
186
|
verifySignatures: !1
|
|
183
187
|
});
|
|
184
|
-
return
|
|
188
|
+
return f.fromUint8Array(o);
|
|
185
189
|
}
|
|
186
190
|
/**
|
|
187
191
|
* Get wallet balance
|
|
@@ -193,9 +197,9 @@ class z {
|
|
|
193
197
|
return await this.rpcCircuitBreaker.execute(async () => await m(
|
|
194
198
|
async () => await this.connection.getBalance(r),
|
|
195
199
|
{ ...g.QUICK, name: "rpc-get-balance" }
|
|
196
|
-
)) /
|
|
200
|
+
)) / x;
|
|
197
201
|
} catch (e) {
|
|
198
|
-
throw e instanceof
|
|
202
|
+
throw e instanceof w ? new Error("Solana RPC service is temporarily unavailable. Please try again in a few moments.") : this.transformRpcError(e);
|
|
199
203
|
}
|
|
200
204
|
}
|
|
201
205
|
/**
|
|
@@ -203,14 +207,14 @@ class z {
|
|
|
203
207
|
*/
|
|
204
208
|
async verifyTransaction(r) {
|
|
205
209
|
if (!this.rpcRateLimiter.tryConsume())
|
|
206
|
-
|
|
210
|
+
throw new Error("RPC rate limit exceeded for transaction verification");
|
|
207
211
|
try {
|
|
208
212
|
return !!(await this.rpcCircuitBreaker.execute(async () => await m(
|
|
209
213
|
async () => await this.connection.getSignatureStatus(r),
|
|
210
214
|
{ ...g.QUICK, name: "rpc-verify-tx" }
|
|
211
215
|
))).value?.confirmationStatus;
|
|
212
216
|
} catch (e) {
|
|
213
|
-
return e instanceof
|
|
217
|
+
return e instanceof w && u().warn("[WalletManager] Circuit breaker OPEN - cannot verify transaction"), !1;
|
|
214
218
|
}
|
|
215
219
|
}
|
|
216
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CedrosPay.d.ts","sourceRoot":"","sources":["../../src/components/CedrosPay.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,EACf,QAAQ,EAET,MAAM,UAAU,CAAC;AAiElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,yDAAyD;IACzD,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"CedrosPay.d.ts","sourceRoot":"","sources":["../../src/components/CedrosPay.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,EACf,QAAQ,EAET,MAAM,UAAU,CAAC;AAiElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,yDAAyD;IACzD,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAgM9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoSubscribeButton.d.ts","sourceRoot":"","sources":["../../src/components/CryptoSubscribeButton.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,UAAU,0BAA0B;IAClC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAClD,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAc,EACd,WAAW,EACX,YAAoB,EACpB,eAAsB,GACvB,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"CryptoSubscribeButton.d.ts","sourceRoot":"","sources":["../../src/components/CryptoSubscribeButton.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,UAAU,0BAA0B;IAClC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAClD,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAc,EACd,WAAW,EACX,YAAoB,EACpB,eAAsB,GACvB,EAAE,0BAA0B,2CAyf5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentModal.d.ts","sourceRoot":"","sources":["../../src/components/PaymentModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PaymentModal.d.ts","sourceRoot":"","sources":["../../src/components/PaymentModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAKzC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMxD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkLpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionManagementPanel.d.ts","sourceRoot":"","sources":["../../src/components/SubscriptionManagementPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AAQvE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,yDAAyD;IACzD,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,CAAC;IACpF,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,oCAAoC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAqED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,QAAQ,EACR,MAAM,EACN,cAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAyB,EACzB,SAAS,EACT,KAAK,GACN,EAAE,gCAAgC,
|
|
1
|
+
{"version":3,"file":"SubscriptionManagementPanel.d.ts","sourceRoot":"","sources":["../../src/components/SubscriptionManagementPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AAQvE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,yDAAyD;IACzD,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,CAAC;IACpF,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,oCAAoC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAqED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,QAAQ,EACR,MAAM,EACN,cAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAyB,EACzB,SAAS,EACT,KAAK,GACN,EAAE,gCAAgC,2CAgMlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AISettingsSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/AISettingsSection.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"AISettingsSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/AISettingsSection.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EACV,YAAY,EAMb,MAAM,SAAS,CAAC;AAgHjB,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,YAAY,2CAugBjF"}
|
|
@@ -60,11 +60,12 @@ export declare class AdminAuthManager implements IAdminAuthManager {
|
|
|
60
60
|
private readonly serverUrl;
|
|
61
61
|
private walletSigner;
|
|
62
62
|
private jwtToken;
|
|
63
|
+
private isAdminUser;
|
|
63
64
|
constructor(serverUrl: string);
|
|
64
65
|
getAuthMethod(): AdminAuthMethod;
|
|
65
66
|
isAuthenticated(): boolean;
|
|
66
67
|
setWalletSigner(signer: WalletSigner | null): void;
|
|
67
|
-
setCedrosLoginAuth(token: string | null,
|
|
68
|
+
setCedrosLoginAuth(token: string | null, isAdmin?: boolean): void;
|
|
68
69
|
createAuthHeaders(purpose: string): Promise<AdminAuthHeaders | JwtAuthHeaders>;
|
|
69
70
|
private createWalletAuthHeaders;
|
|
70
71
|
private createJwtAuthHeaders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminAuthManager.d.ts","sourceRoot":"","sources":["../../../src/components/admin/AdminAuthManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,uBAAuB;AACvB,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC;AAQjE,6BAA6B;AAC7B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,OAAO,IAAI,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACxD;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,aAAa,IAAI,eAAe,CAAC;IAEjC,6BAA6B;IAC7B,eAAe,IAAI,OAAO,CAAC;IAE3B,8CAA8C;IAC9C,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IAEnD,8CAA8C;IAC9C,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAElE,4CAA4C;IAC5C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC;IAE/E,oCAAoC;IACpC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnE;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAuB;
|
|
1
|
+
{"version":3,"file":"AdminAuthManager.d.ts","sourceRoot":"","sources":["../../../src/components/admin/AdminAuthManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,uBAAuB;AACvB,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC;AAQjE,6BAA6B;AAC7B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,OAAO,IAAI,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACxD;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,aAAa,IAAI,eAAe,CAAC;IAEjC,6BAA6B;IAC7B,eAAe,IAAI,OAAO,CAAC;IAE3B,8CAA8C;IAC9C,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IAEnD,8CAA8C;IAC9C,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAElE,4CAA4C;IAC5C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC;IAE/E,oCAAoC;IACpC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnE;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAkB;gBAEzB,SAAS,EAAE,MAAM;IAI7B,aAAa,IAAI,eAAe;IAWhC,eAAe,IAAI,OAAO;IAI1B,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAKlD,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAM3D,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,cAAc,CAAC;YActE,uBAAuB;IAuBrC,OAAO,CAAC,oBAAoB;YAUd,UAAU;IAkBlB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IA2C3E,OAAO,CAAC,kBAAkB;CA4C3B;AAED,yCAAyC;AACzC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;CAiBvB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AutosaveStatus } from './useAutosave';
|
|
2
|
+
export interface AutosaveIndicatorProps {
|
|
3
|
+
status: AutosaveStatus;
|
|
4
|
+
error?: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare function AutosaveIndicator({ status, error }: AutosaveIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
//# sourceMappingURL=AutosaveIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutosaveIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/admin/AutosaveIndicator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,sBAAsB,kDAkC1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CedrosPayAdminDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/admin/CedrosPayAdminDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"CedrosPayAdminDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/admin/CedrosPayAdminDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAaH,OAAO,+BAA+B,CAAC;AAqBvC,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,eAAe,GACf,cAAc,GACd,SAAS,GACT,SAAS,GACT,YAAY,GACZ,aAAa,GACb,MAAM,GACN,kBAAkB,GAClB,WAAW,GACX,UAAU,CAAC;AAEf,mCAAmC;AACnC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,4BAA4B;IAC3C,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,6BAA6B;IAC7B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtD,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAyFD,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,MAAM,EACN,KAAoB,EACpB,QAAgK,EAChK,cAA+B,EAC/B,eAAe,EAAE,gBAAwB,EACzC,QAAa,EACb,eAAe,EACf,SAAc,EACd,gBAAgB,EAChB,OAAe,EACf,KAAgB,GACjB,EAAE,4BAA4B,2CA6N9B;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -6,8 +6,6 @@ export interface ConfigEditorProps {
|
|
|
6
6
|
isLoading?: boolean;
|
|
7
7
|
onSave: (config: Record<string, unknown>) => Promise<void>;
|
|
8
8
|
onValidate?: (config: Record<string, unknown>) => Promise<ValidateConfigResponse>;
|
|
9
|
-
/** @deprecated No longer used - autosave is always enabled */
|
|
10
|
-
onCancel?: () => void;
|
|
11
9
|
}
|
|
12
10
|
export declare function ConfigEditor({ category, config, originalConfig, isLoading, onSave, }: ConfigEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
13
11
|
//# sourceMappingURL=ConfigEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigEditor.d.ts","sourceRoot":"","sources":["../../../src/components/admin/ConfigEditor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigEditor.d.ts","sourceRoot":"","sources":["../../../src/components/admin/ConfigEditor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AASrB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACnF;AAyED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,MAAM,EACN,cAAc,EACd,SAAiB,EACjB,MAAM,GACP,EAAE,iBAAiB,2CA6WnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagingSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/MessagingSection.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"MessagingSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/MessagingSection.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAmCD,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,qBAAqB,2CAqXzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductsSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/ProductsSection.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,SAAS,CAAC;AAIrD,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAa,EAAE,WAAW,EAAE,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"ProductsSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/ProductsSection.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,SAAS,CAAC;AAIrD,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAa,EAAE,WAAW,EAAE,EAAE,YAAY,2CA4rB9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefundsSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/RefundsSection.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAA8C,MAAM,SAAS,CAAC;AAIxF,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAa,EAAE,WAAW,EAAE,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"RefundsSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/RefundsSection.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAA8C,MAAM,SAAS,CAAC;AAIxF,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAa,EAAE,WAAW,EAAE,EAAE,YAAY,2CAivB7F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret Array Editor
|
|
3
|
+
*
|
|
4
|
+
* Manages an array of secret values (e.g., wallet keypairs) with
|
|
5
|
+
* add/edit/delete per item and masked display by default.
|
|
6
|
+
*/
|
|
7
|
+
export interface SecretArrayEditorProps {
|
|
8
|
+
label: string;
|
|
9
|
+
value: string[];
|
|
10
|
+
onChange: (value: string[]) => void;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
description?: string;
|
|
13
|
+
}
|
|
14
|
+
/** Secret array editor with add/edit/delete per item */
|
|
15
|
+
export declare function SecretArrayEditor({ label, value, onChange, disabled, description, }: SecretArrayEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=SecretArrayEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecretArrayEditor.d.ts","sourceRoot":"","sources":["../../../src/components/admin/SecretArrayEditor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,WAAW,GACZ,EAAE,sBAAsB,2CA2PxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleCategorySettings.d.ts","sourceRoot":"","sources":["../../../src/components/admin/SingleCategorySettings.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,MAAM,EAAE,OAAO,EACf,WAAW,EACX,QAAQ,EACR,KAAK,EACL,WAAW,EACX,YAAwB,EACxB,iBAAyB,GAC1B,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"SingleCategorySettings.d.ts","sourceRoot":"","sources":["../../../src/components/admin/SingleCategorySettings.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,MAAM,EAAE,OAAO,EACf,WAAW,EACX,QAAQ,EACR,KAAK,EACL,WAAW,EACX,YAAwB,EACxB,iBAAyB,GAC1B,EAAE,2BAA2B,2CA2T7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorefrontSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/StorefrontSection.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"StorefrontSection.d.ts","sourceRoot":"","sources":["../../../src/components/admin/StorefrontSection.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,YAAY,EAAwO,MAAM,SAAS,CAAC;AAkIlR,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,YAAY,2CA6vBjF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Toggle switch component
|
|
3
|
+
*
|
|
4
|
+
* Props:
|
|
5
|
+
* checked - current on/off state
|
|
6
|
+
* onChange - called with the new boolean state when clicked
|
|
7
|
+
* disabled - when true, renders as non-interactive (default: false)
|
|
8
|
+
*/
|
|
9
|
+
export declare function Toggle({ checked, onChange, disabled, }: {
|
|
10
|
+
checked: boolean;
|
|
11
|
+
onChange: (checked: boolean) => void;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=Toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.d.ts","sourceRoot":"","sources":["../../../src/components/admin/Toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,QAAQ,EACR,QAAgB,GACjB,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAsCA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Mint Selector
|
|
3
|
+
*
|
|
4
|
+
* Provides a selector for known stablecoins (USDC, USDT, etc.)
|
|
5
|
+
* with a custom token option for arbitrary SPL token mints.
|
|
6
|
+
*/
|
|
7
|
+
/** Validate a Solana public key address */
|
|
8
|
+
export declare function validateSolanaAddress(address: string): {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
};
|
|
12
|
+
export interface TokenMintSelectorProps {
|
|
13
|
+
label: string;
|
|
14
|
+
value: string;
|
|
15
|
+
onChange: (value: string) => void;
|
|
16
|
+
decimals?: number;
|
|
17
|
+
onDecimalsChange?: (decimals: number) => void;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
description?: string;
|
|
20
|
+
customSymbol?: string;
|
|
21
|
+
customIcon?: string;
|
|
22
|
+
onCustomSymbolChange?: (value: string) => void;
|
|
23
|
+
onCustomIconChange?: (value: string) => void;
|
|
24
|
+
}
|
|
25
|
+
/** Token mint selector with known stablecoins */
|
|
26
|
+
export declare function TokenMintSelector({ label, value, onChange, decimals, onDecimalsChange, disabled, description, customSymbol, customIcon, onCustomSymbolChange, onCustomIconChange, }: TokenMintSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=TokenMintSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenMintSelector.d.ts","sourceRoot":"","sources":["../../../src/components/admin/TokenMintSelector.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAUzF;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,QAAgB,EAChB,WAAW,EACX,YAAiB,EACjB,UAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,EAAE,sBAAsB,2CAoRxB"}
|
|
@@ -43,17 +43,19 @@ export interface ValidateConfigResponse {
|
|
|
43
43
|
errors: string[];
|
|
44
44
|
warnings: string[];
|
|
45
45
|
}
|
|
46
|
-
/**
|
|
46
|
+
/** @deprecated Use IAdminAuthManager instead. Legacy auth used client-generated nonces vulnerable to replay. */
|
|
47
47
|
export interface AdminAuth {
|
|
48
48
|
signerPublicKey: string;
|
|
49
49
|
sign: (message: string) => Promise<string>;
|
|
50
50
|
}
|
|
51
51
|
/** Admin Config API client */
|
|
52
52
|
export declare class ConfigApiClient {
|
|
53
|
-
private
|
|
53
|
+
private _serverUrl;
|
|
54
54
|
private auth?;
|
|
55
55
|
private authManager?;
|
|
56
|
-
constructor(
|
|
56
|
+
constructor(_serverUrl: string, auth?: AdminAuth | undefined, authManager?: IAdminAuthManager | undefined);
|
|
57
|
+
/** Server URL passed at construction (retained for API compatibility). */
|
|
58
|
+
get serverUrl(): string;
|
|
57
59
|
private fetch;
|
|
58
60
|
/** List all config categories */
|
|
59
61
|
listCategories(limit?: number): Promise<ListCategoriesResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configApi.d.ts","sourceRoot":"","sources":["../../../src/components/admin/configApi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,+BAA+B;AAC/B,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,2BAA2B;AAC3B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uBAAuB;AACvB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0BAA0B;AAC1B,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,
|
|
1
|
+
{"version":3,"file":"configApi.d.ts","sourceRoot":"","sources":["../../../src/components/admin/configApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Complete admin panel for managing Cedros Pay payments, products, and refunds.
|
|
5
|
-
*/
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
|
+
import { SectionProps } from './types';
|
|
3
|
+
import { SettingsSectionProps } from './SettingsSection';
|
|
6
4
|
export { CedrosPayAdminDashboard, type CedrosPayAdminDashboardProps, type DashboardSection, } from './CedrosPayAdminDashboard';
|
|
7
5
|
export { ConfigEditor, type ConfigEditorProps } from './ConfigEditor';
|
|
8
|
-
export
|
|
9
|
-
export {
|
|
10
|
-
export
|
|
11
|
-
export
|
|
6
|
+
export declare const SettingsSection: ComponentType<SettingsSectionProps>;
|
|
7
|
+
export { type SettingsSectionProps } from './SettingsSection';
|
|
8
|
+
export declare const SubscriptionsSection: ComponentType<SectionProps>;
|
|
9
|
+
export declare const StorefrontSection: ComponentType<SectionProps>;
|
|
10
|
+
export declare const FAQSection: ComponentType<SectionProps>;
|
|
12
11
|
export type { SubscriptionPlan, SubscriptionSettings, ProductPageSettings, RelatedProductsMode } from './types';
|
|
13
12
|
export { ConfigApiClient, CONFIG_CATEGORIES, REDACTED_VALUE, isSecretField, type ConfigCategory, type CategoryMeta, type FieldMeta, type GetConfigResponse, type ValidateConfigResponse, type ConfigHistoryEntry, type AdminAuth, } from './configApi';
|
|
14
13
|
export { AdminAuthManager, ADMIN_NONCE_PURPOSES, type IAdminAuthManager, type AdminAuthMethod, type AdminCredentials, type WalletSigner, type AdminAuthHeaders, type JwtAuthHeaders, } from './AdminAuthManager';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/admin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/admin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAkB9D,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,eAAO,MAAM,eAAe,qCAE3B,CAAC;AACF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,eAAO,MAAM,oBAAoB,6BAEhC,CAAC;AACF,eAAO,MAAM,iBAAiB,6BAE7B,CAAC;AACF,eAAO,MAAM,UAAU,6BAEtB,CAAC;AAGF,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAChH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
* Admin Dashboard Section Components (Part 2)
|
|
3
|
-
*
|
|
4
|
-
* Coupons, Refunds sections + re-export Settings.
|
|
5
|
-
*
|
|
6
|
-
* @deprecated Import directly from './CouponsSection' or './RefundsSection' instead.
|
|
7
|
-
* This file is kept for backwards compatibility.
|
|
8
|
-
*/
|
|
1
|
+
import { SettingsSectionProps } from './SettingsSection';
|
|
9
2
|
export { CouponsSection } from './CouponsSection';
|
|
10
3
|
export { RefundsSection } from './RefundsSection';
|
|
11
|
-
export
|
|
4
|
+
export declare function SettingsSection(props: SettingsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
12
5
|
//# sourceMappingURL=sections-more.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections-more.d.ts","sourceRoot":"","sources":["../../../src/components/admin/sections-more.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sections-more.d.ts","sourceRoot":"","sources":["../../../src/components/admin/sections-more.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAM1D"}
|
|
@@ -47,7 +47,7 @@ interface CedrosProviderProps {
|
|
|
47
47
|
* <App />
|
|
48
48
|
* </CedrosProvider>
|
|
49
49
|
*/
|
|
50
|
-
export declare function CedrosProvider({ config, children }: CedrosProviderProps): import("react/jsx-runtime").JSX.Element
|
|
50
|
+
export declare function CedrosProvider({ config, children }: CedrosProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
51
51
|
/**
|
|
52
52
|
* Hook to access Cedros context
|
|
53
53
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CedrosContext.d.ts","sourceRoot":"","sources":["../../src/context/CedrosContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAoD,MAAM,OAAO,CAAC;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQlE,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,WAAW,IAAI,OAAO,EAAE,CAAC;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,aAAa,IAAI,OAAO,CAAC;IACzB,KAAK,IAAI,MAAM,CAAC;CACjB;AAoBD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,cAAc,CAAC;IAC9B,WAAW,EAAE,YAAY,CAAC;IAC1B,aAAa,EAAE,cAAc,CAAC;IAC9B,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,yBAAyB,EAAE,0BAA0B,CAAC;IACtD,cAAc,EAAE,eAAe,CAAC;IAChC,2EAA2E;IAC3E,UAAU,EAAE,cAAc,CAAC;IAC3B,sHAAsH;IACtH,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"CedrosContext.d.ts","sourceRoot":"","sources":["../../src/context/CedrosContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAoD,MAAM,OAAO,CAAC;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQlE,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,WAAW,IAAI,OAAO,EAAE,CAAC;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,aAAa,IAAI,OAAO,CAAC;IACzB,KAAK,IAAI,MAAM,CAAC;CACjB;AAoBD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,cAAc,CAAC;IAC9B,WAAW,EAAE,YAAY,CAAC;IAC1B,aAAa,EAAE,cAAc,CAAC;IAC9B,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,yBAAyB,EAAE,0BAA0B,CAAC;IACtD,cAAc,EAAE,eAAe,CAAC;IAChC,2EAA2E;IAC3E,UAAU,EAAE,cAAc,CAAC;IAC3B,sHAAsH;IACtH,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CA8KvE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAQrD"}
|