@openreceive/browser 0.2.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JFJBHGR4.js → chunk-NVEGYGZ5.js} +631 -98
- package/dist/headless.d.ts +296 -95
- package/dist/headless.js +31 -216
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/{status-B1vDOhvh.d.ts → status-C-zvqBau.d.ts} +185 -4
- package/dist/styles.css +1 -1
- package/package.json +3 -3
|
@@ -174,6 +174,8 @@ declare const OPENRECEIVE_CHECKOUT_DATA_ATTRIBUTES: {
|
|
|
174
174
|
readonly meta: "data-openreceive-meta";
|
|
175
175
|
readonly state: "data-openreceive-state";
|
|
176
176
|
readonly actions: "data-openreceive-actions";
|
|
177
|
+
/** What the payer is buying, when the host's amount hook named it. */
|
|
178
|
+
readonly orderDescription: "data-openreceive-order-description";
|
|
177
179
|
readonly theme: "data-openreceive-theme";
|
|
178
180
|
readonly themeToggle: "data-openreceive-theme-toggle";
|
|
179
181
|
};
|
|
@@ -183,6 +185,7 @@ declare const OPENRECEIVE_CHECKOUT_DATA_SELECTORS: {
|
|
|
183
185
|
readonly meta: "[data-openreceive-meta]";
|
|
184
186
|
readonly state: "[data-openreceive-state]";
|
|
185
187
|
readonly actions: "[data-openreceive-actions]";
|
|
188
|
+
readonly orderDescription: "[data-openreceive-order-description]";
|
|
186
189
|
readonly theme: "[data-openreceive-theme]";
|
|
187
190
|
readonly themeToggle: "[data-openreceive-theme-toggle]";
|
|
188
191
|
};
|
|
@@ -190,6 +193,17 @@ declare const OPENRECEIVE_CHECKOUT_ELEMENT_PARTS: {
|
|
|
190
193
|
readonly copy: "copy";
|
|
191
194
|
readonly startOver: "start-over";
|
|
192
195
|
};
|
|
196
|
+
/**
|
|
197
|
+
* Named slots the checkout element projects host light-DOM children into.
|
|
198
|
+
*
|
|
199
|
+
* `order` is the element's answer to React's render-prop `children`: a line-item
|
|
200
|
+
* strip, a thumbnail, a "you are buying" summary, drawn from the order
|
|
201
|
+
* OpenReceive does not own. It is projected through a `<slot>` in the shadow
|
|
202
|
+
* root, so it survives every re-render of the shell's `innerHTML` untouched.
|
|
203
|
+
*/
|
|
204
|
+
declare const OPENRECEIVE_CHECKOUT_ELEMENT_SLOTS: {
|
|
205
|
+
readonly order: "order";
|
|
206
|
+
};
|
|
193
207
|
declare const OPENRECEIVE_CHECKOUT_ELEMENT_PART_SELECTORS: {
|
|
194
208
|
readonly copy: "[part=\"copy\"]";
|
|
195
209
|
readonly startOver: "[part=\"start-over\"]";
|
|
@@ -259,6 +273,17 @@ declare const OPENRECEIVE_CHECKOUT_ELEMENT_ATTRIBUTES: {
|
|
|
259
273
|
* default), no decode link is rendered and the invoice never leaves the page.
|
|
260
274
|
*/
|
|
261
275
|
readonly decodeLinkUrl: "decode-link-url";
|
|
276
|
+
/**
|
|
277
|
+
* Where this app serves the packages' `dist/assets` trees, as one base URL —
|
|
278
|
+
* the string form of the `resolveAssetUrl` seam, so plain markup and the
|
|
279
|
+
* Vue/Svelte/Angular wrappers can reach it (a function cannot cross an HTML
|
|
280
|
+
* attribute). Every packaged key is a relative path under one `assets/` root,
|
|
281
|
+
* so the value is joined to it directly: `asset-base-url="/openreceive-assets"`
|
|
282
|
+
* makes `assets/icons/btc.svg` load from
|
|
283
|
+
* `/openreceive-assets/assets/icons/btc.svg`. A `resolveAssetUrl` passed to
|
|
284
|
+
* `defineElements` wins over it.
|
|
285
|
+
*/
|
|
286
|
+
readonly assetBaseUrl: "asset-base-url";
|
|
262
287
|
/** `polling="false"` renders the snapshot without status polling (no POST /payments/check). */
|
|
263
288
|
readonly polling: "polling";
|
|
264
289
|
/** Status poll cadence in milliseconds; defaults to OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS. */
|
|
@@ -312,6 +337,11 @@ interface CopyInvoiceOptions {
|
|
|
312
337
|
}
|
|
313
338
|
interface OpenWalletOptions {
|
|
314
339
|
invoice: string;
|
|
340
|
+
/**
|
|
341
|
+
* Where to send the `lightning:` URI. Omitted, {@link openWallet} calls
|
|
342
|
+
* `location.assign` on the CURRENT window, which navigates the payer off a
|
|
343
|
+
* still-polling checkout on any device that has a handler registered.
|
|
344
|
+
*/
|
|
315
345
|
open?: (uri: string) => void;
|
|
316
346
|
logger?: BrowserLoggerOption;
|
|
317
347
|
logContext?: BrowserLogContext;
|
|
@@ -385,21 +415,89 @@ interface SwapFeeBreakdown {
|
|
|
385
415
|
/** The fee as a percentage of the cart total, e.g. "5.9%", when computable. */
|
|
386
416
|
readonly feePercent?: string;
|
|
387
417
|
}
|
|
418
|
+
/** One value the payer has to reproduce, with the affordance that lets them. */
|
|
419
|
+
interface SwapCopyRow {
|
|
420
|
+
readonly label: string;
|
|
421
|
+
readonly value: string;
|
|
422
|
+
/** The untruncated string a copy button writes, when it differs from `value`. */
|
|
423
|
+
readonly copyValue?: string;
|
|
424
|
+
/** Render the value in a selectable field rather than a code block. */
|
|
425
|
+
readonly selectable: boolean;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* How a deposit on this rail can actually go missing, which is what decides how
|
|
429
|
+
* loud the deposit panel should be.
|
|
430
|
+
*
|
|
431
|
+
* The exposure comes from the deposit ADDRESS failing to pin the chain or the
|
|
432
|
+
* asset, never from whether the coin is native:
|
|
433
|
+
*
|
|
434
|
+
* - `chain_ambiguous` — the address is byte-identical on other chains, so a
|
|
435
|
+
* withdrawal can land somewhere unreachable. Every EVM rail (`ETH_ETH`,
|
|
436
|
+
* `USDT_ETH`, `USDC_ETH`): a `0x…` address is the same string on Ethereum,
|
|
437
|
+
* Arbitrum, Optimism, Base, BSC and Polygon and carries nothing that says
|
|
438
|
+
* which. A rail whose network OpenReceive cannot classify is reported here
|
|
439
|
+
* too — an unrecognized format has no rule proving it is safe.
|
|
440
|
+
* - `asset_only` — the address format pins the chain, but the asset is a token
|
|
441
|
+
* on it, and every exchange's withdrawal dropdown offers that ticker on a
|
|
442
|
+
* dozen networks (`USDT_TRON`).
|
|
443
|
+
* - `pinned` — the address format pins the chain AND the asset is that chain's
|
|
444
|
+
* native coin, so neither mistake is reachable (`SOL_SOL`). Sending an SPL
|
|
445
|
+
* token to a Solana address still will not credit the order, so the panel
|
|
446
|
+
* still states the exact amount — it just does not shout about lost funds.
|
|
447
|
+
*
|
|
448
|
+
* `chain_ambiguous` and `asset_only` both warrant the full alarm; they are kept
|
|
449
|
+
* apart because they are different mistakes and a custom UI may want to say so.
|
|
450
|
+
* Note the counter-intuitive half: `ETH_ETH` is a NATIVE coin and needs the
|
|
451
|
+
* alarm most of anything on the list.
|
|
452
|
+
*/
|
|
453
|
+
type SwapDepositRisk = "chain_ambiguous" | "asset_only" | "pinned";
|
|
388
454
|
interface SwapDisplayModel {
|
|
389
455
|
readonly provider: string;
|
|
390
456
|
readonly attemptId: string;
|
|
391
457
|
readonly payInAsset: string;
|
|
392
458
|
readonly assetLabel: string;
|
|
393
459
|
readonly networkLabel: string;
|
|
394
|
-
/**
|
|
460
|
+
/**
|
|
461
|
+
* Which of the two ways a deposit is lost is reachable on this rail. Drives
|
|
462
|
+
* `networkWarningTitle`/`networkWarning` below, and is exposed so a custom UI
|
|
463
|
+
* can pick its own chrome without re-deriving the asset table. See
|
|
464
|
+
* {@link SwapDepositRisk}.
|
|
465
|
+
*/
|
|
466
|
+
readonly depositRisk: SwapDepositRisk;
|
|
467
|
+
/**
|
|
468
|
+
* Deposit-panel heading. A strong alert ("Wrong currency or network = lost
|
|
469
|
+
* funds") when `depositRisk` is anything but `pinned`, and a quiet
|
|
470
|
+
* "Send the exact amount" when it is. A banner shown on every rail is read on
|
|
471
|
+
* none, and the rails where it is load-bearing are the ones that pay for it.
|
|
472
|
+
*/
|
|
395
473
|
readonly networkWarningTitle: string;
|
|
396
474
|
/** Exact amount + asset + network to emphasize, e.g. "15.01 USDT on the Solana network". */
|
|
397
475
|
readonly networkWarningEmphasis: string;
|
|
398
|
-
/**
|
|
476
|
+
/**
|
|
477
|
+
* Full plain-text network warning (accessible / non-HTML consumers). The
|
|
478
|
+
* lost-funds sentence is present only when `depositRisk` is not `pinned`; the
|
|
479
|
+
* "pay with one method only" sentence is on every rail, because double-paying
|
|
480
|
+
* is reachable on all of them.
|
|
481
|
+
*/
|
|
399
482
|
readonly networkWarning: string;
|
|
400
483
|
readonly depositAddress: string;
|
|
401
484
|
readonly depositMemo?: string;
|
|
485
|
+
/**
|
|
486
|
+
* BARE, with no asset symbol appended: it pastes into a wallet's amount field,
|
|
487
|
+
* where "0.032664 SOL" is not a number. Join the symbol at the point of
|
|
488
|
+
* display if a sentence needs it.
|
|
489
|
+
*/
|
|
402
490
|
readonly depositAmount: string;
|
|
491
|
+
/**
|
|
492
|
+
* Every value the payer must reproduce, as labelled rows: the deposit address,
|
|
493
|
+
* the memo where the rail has one, and the amount. The amount is the one that
|
|
494
|
+
* gets left out and the one that costs money — on token rails (USDT_TRON,
|
|
495
|
+
* USDT_ETH, USDC_ETH) the QR encodes the bare address and carries NO amount,
|
|
496
|
+
* so the payer types it off the screen, and a short send against a fixed-rate
|
|
497
|
+
* swap order is an underpayment: `refund_required`, a refund form, and a payer
|
|
498
|
+
* who has to come back.
|
|
499
|
+
*/
|
|
500
|
+
readonly copyRows: readonly SwapCopyRow[];
|
|
403
501
|
readonly providerStateLabel: string;
|
|
404
502
|
readonly providerStateDetail: string;
|
|
405
503
|
readonly state: "creating" | "deposit" | "progress" | "settled" | "expired" | "refund_required" | "refund_pending" | "refunded" | "attention" | "failed";
|
|
@@ -441,6 +539,11 @@ interface CheckoutInvoiceSnapshot {
|
|
|
441
539
|
readonly expires_at?: number;
|
|
442
540
|
readonly settled_at?: number;
|
|
443
541
|
readonly swap?: CheckoutInvoiceSwapSnapshot;
|
|
542
|
+
/**
|
|
543
|
+
* What the payer is buying, carried through from the snapshot. Data, not a
|
|
544
|
+
* derived label, so it survives `normalizeCheckoutState`.
|
|
545
|
+
*/
|
|
546
|
+
readonly description?: string;
|
|
444
547
|
}
|
|
445
548
|
interface CheckoutPaymentMethod {
|
|
446
549
|
readonly pay_in_asset: string;
|
|
@@ -475,6 +578,13 @@ interface CheckoutSnapshot {
|
|
|
475
578
|
readonly active?: CheckoutInvoiceSnapshot;
|
|
476
579
|
readonly invoices: readonly CheckoutInvoiceSnapshot[];
|
|
477
580
|
readonly payment_methods?: readonly CheckoutPaymentMethod[];
|
|
581
|
+
/**
|
|
582
|
+
* What the payer is buying, in the host's own words — one display string the
|
|
583
|
+
* host returned from `amountFor` / `amount_for`. OpenReceive owns no line
|
|
584
|
+
* items, so this is the whole of what it carries; a richer summary is the
|
|
585
|
+
* host's own markup (React `children`, the element's `order` slot).
|
|
586
|
+
*/
|
|
587
|
+
readonly description?: string;
|
|
478
588
|
}
|
|
479
589
|
interface CheckoutElementAttributeOptions {
|
|
480
590
|
/**
|
|
@@ -514,6 +624,14 @@ interface CheckoutElementAttributeOptions {
|
|
|
514
624
|
* renders no "Decode" link and the invoice is never sent to a third party.
|
|
515
625
|
*/
|
|
516
626
|
readonly decodeLinkUrl?: string;
|
|
627
|
+
/**
|
|
628
|
+
* Where this app serves the packages' `dist/assets` trees, as one base URL.
|
|
629
|
+
* The string form of the `resolveAssetUrl` seam: every packaged asset key is a
|
|
630
|
+
* relative path under one `assets/` root, so the value is joined to it
|
|
631
|
+
* directly. Emitted as the element's `asset-base-url` attribute, which is how
|
|
632
|
+
* the Vue/Svelte/Angular wrappers reach a seam a function cannot cross.
|
|
633
|
+
*/
|
|
634
|
+
readonly assetBaseUrl?: string;
|
|
517
635
|
/** False renders the snapshot without status polling (no POST /payments/check). */
|
|
518
636
|
readonly polling?: boolean;
|
|
519
637
|
/** Status poll cadence in milliseconds; defaults to OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS. */
|
|
@@ -688,12 +806,49 @@ interface CheckoutControllerOptions extends Omit<CheckoutWatcherOptions, "onStat
|
|
|
688
806
|
* to render a snapshot without polling.
|
|
689
807
|
*/
|
|
690
808
|
readonly prefix?: string;
|
|
809
|
+
/**
|
|
810
|
+
* False renders the snapshot without a status fetcher of its own. `prefix`
|
|
811
|
+
* still names the mount, so the swap-refund calls keep working — polling and
|
|
812
|
+
* "where the routes live" are two questions.
|
|
813
|
+
*/
|
|
814
|
+
readonly polling?: boolean;
|
|
691
815
|
readonly fetch?: typeof globalThis.fetch;
|
|
692
816
|
readonly statusHeaders?: Readonly<Record<string, string>>;
|
|
693
817
|
readonly clipboard?: Pick<Clipboard, "writeText">;
|
|
694
818
|
readonly open?: (uri: string) => void;
|
|
695
819
|
}
|
|
696
|
-
|
|
820
|
+
/**
|
|
821
|
+
* The two-step swap refund, and the staging that makes it survive polling. The
|
|
822
|
+
* controller implements it; a renderer that is handed one (React's
|
|
823
|
+
* `PaymentWizard`) takes exactly this much of it.
|
|
824
|
+
*/
|
|
825
|
+
interface SwapRefundStaging {
|
|
826
|
+
/**
|
|
827
|
+
* Step one: post `/swaps/status` and hold the address the payer typed so the
|
|
828
|
+
* panel can show it back for confirmation. It touches no refund route —
|
|
829
|
+
* nothing is submitted until {@link confirmSwapRefund}.
|
|
830
|
+
*
|
|
831
|
+
* The staged address is folded into every later snapshot, so polling cannot
|
|
832
|
+
* wipe what the payer is reviewing. `attemptId` is
|
|
833
|
+
* `SwapDisplayModel.attemptId`; the payment hash is resolved from the
|
|
834
|
+
* snapshot already in hand.
|
|
835
|
+
*/
|
|
836
|
+
stageSwapRefund(options: {
|
|
837
|
+
readonly attemptId: string;
|
|
838
|
+
readonly refundAddress: string;
|
|
839
|
+
}): Promise<CheckoutInvoiceSnapshot>;
|
|
840
|
+
/** Step two: the only call that posts `/swaps/refunds`. */
|
|
841
|
+
confirmSwapRefund(options: {
|
|
842
|
+
readonly attemptId: string;
|
|
843
|
+
readonly refundAddress: string;
|
|
844
|
+
}): Promise<CheckoutInvoiceSnapshot>;
|
|
845
|
+
/**
|
|
846
|
+
* Drop the staged address. The payer leaving the swap for Lightning is the one
|
|
847
|
+
* exit that is not a submitted refund.
|
|
848
|
+
*/
|
|
849
|
+
clearSwapRefundStaging(): void;
|
|
850
|
+
}
|
|
851
|
+
interface CheckoutController extends SwapRefundStaging {
|
|
697
852
|
start(): CheckoutState;
|
|
698
853
|
stop(): void;
|
|
699
854
|
getState(): CheckoutState | undefined;
|
|
@@ -814,6 +969,8 @@ interface WizardRouteAssetDisplay {
|
|
|
814
969
|
readonly label: string;
|
|
815
970
|
readonly subtitle: string;
|
|
816
971
|
readonly icon: string;
|
|
972
|
+
/** The packaged key behind `icon`, for a host serving the files itself. */
|
|
973
|
+
readonly iconPath: string;
|
|
817
974
|
readonly selected: boolean;
|
|
818
975
|
}
|
|
819
976
|
interface WizardProviderTutorialDisplay {
|
|
@@ -828,6 +985,13 @@ interface WizardProviderDisplay {
|
|
|
828
985
|
readonly kind: string;
|
|
829
986
|
readonly url: string;
|
|
830
987
|
readonly icon: string;
|
|
988
|
+
/**
|
|
989
|
+
* The packaged path the icon came from (`assets/provider-icons/strike.png`).
|
|
990
|
+
* `icon` is only loadable when the host's bundler resolved it; this is the
|
|
991
|
+
* key a host that serves the files itself maps, without going back to
|
|
992
|
+
* `providerRegistry` for `icon_path`.
|
|
993
|
+
*/
|
|
994
|
+
readonly iconPath: string;
|
|
831
995
|
readonly tutorials: readonly WizardProviderTutorialDisplay[];
|
|
832
996
|
readonly copyLabel: string;
|
|
833
997
|
readonly copiedLabel: string;
|
|
@@ -901,6 +1065,23 @@ declare function createQrSvg(invoice: string, options?: QrOptions): Promise<stri
|
|
|
901
1065
|
declare function createQrPayloadSvg(payload: string, options?: QrOptions): Promise<string>;
|
|
902
1066
|
declare function createQrPngDataUrl(invoice: string, options?: QrOptions): Promise<string>;
|
|
903
1067
|
declare function copyInvoice(options: CopyInvoiceOptions): Promise<void>;
|
|
1068
|
+
/**
|
|
1069
|
+
* Hand the invoice to the payer's wallet as a `lightning:` URI, and return the
|
|
1070
|
+
* URI. **Touch devices.**
|
|
1071
|
+
*
|
|
1072
|
+
* The default path is `location.assign` on the CURRENT window — the right
|
|
1073
|
+
* primitive for a custom-scheme deep link on a phone, and the wrong thing
|
|
1074
|
+
* anywhere else. With no registered `lightning:` handler the call does nothing
|
|
1075
|
+
* visible; with one, it navigates the payer off a checkout that is still
|
|
1076
|
+
* polling `/payments/check`. Pass `open` to route the URI somewhere that is not
|
|
1077
|
+
* the checkout window.
|
|
1078
|
+
*
|
|
1079
|
+
* This is why the shipped `<Checkout>` renders no wallet button of its own and
|
|
1080
|
+
* exposes `components.OpenWalletButton` as an opt-in slot instead: a desktop
|
|
1081
|
+
* payer is never sent to a handler that does not exist, next to the QR code
|
|
1082
|
+
* that IS the desktop payment path. A custom UI drawing its own button owns
|
|
1083
|
+
* that decision — see docs/guides/headless-checkout.md.
|
|
1084
|
+
*/
|
|
904
1085
|
declare function openWallet(options: OpenWalletOptions): string;
|
|
905
1086
|
|
|
906
1087
|
declare function createCheckoutController(options: CheckoutControllerOptions): CheckoutController;
|
|
@@ -998,4 +1179,4 @@ declare function deriveStatus(invoice: StatusInvoiceLike, options?: {
|
|
|
998
1179
|
readonly now?: UnixSeconds;
|
|
999
1180
|
}): Status;
|
|
1000
1181
|
|
|
1001
|
-
export { type CheckoutStatusRefresh as $, type ThemeToggleElementAttributes as A, type BrowserLoggerOption as B, type CheckoutInvoiceSnapshot as C, type StoredThemeModelOptions as D, type ThemeModel as E, type ThemeModelOptions as F, type ReadThemePreferenceOptions as G, type ThemeControlTargets as H, type ThemeStorageOptions as I, type PaymentWizardControllerOptions as J, type PaymentWizardController as K, type PaymentWizardSelection as L, type PaymentWizardModel as M, type WizardRouteDisplay as N, type PaymentWizardSelectionAction as O, type ParseOpenReceiveOptionalIntegerOptions as P, type BrowserLogContext as Q, type ResolvedTheme as R, type SwapDisplayModel as S, type ThemePreference as T, type UnixSeconds as U, type BrowserLogger as V, type WizardRouteAssetDisplay as W, BrowserRequestError as X, type CheckoutController as Y, type CheckoutControllerOptions as Z, type CheckoutPhase as _, type PaymentMethod as a, OPENRECEIVE_CHECKOUT_DATA_ATTRIBUTES as a0, OPENRECEIVE_CHECKOUT_DATA_SELECTORS as a1, OPENRECEIVE_CHECKOUT_ELEMENT_ATTRIBUTES as a2, OPENRECEIVE_CHECKOUT_ELEMENT_EVENTS as a3, OPENRECEIVE_CHECKOUT_ELEMENT_PARTS as a4, OPENRECEIVE_CHECKOUT_ELEMENT_PART_SELECTORS as a5,
|
|
1182
|
+
export { type CheckoutStatusRefresh as $, type ThemeToggleElementAttributes as A, type BrowserLoggerOption as B, type CheckoutInvoiceSnapshot as C, type StoredThemeModelOptions as D, type ThemeModel as E, type ThemeModelOptions as F, type ReadThemePreferenceOptions as G, type ThemeControlTargets as H, type ThemeStorageOptions as I, type PaymentWizardControllerOptions as J, type PaymentWizardController as K, type PaymentWizardSelection as L, type PaymentWizardModel as M, type WizardRouteDisplay as N, type PaymentWizardSelectionAction as O, type ParseOpenReceiveOptionalIntegerOptions as P, type BrowserLogContext as Q, type ResolvedTheme as R, type SwapDisplayModel as S, type ThemePreference as T, type UnixSeconds as U, type BrowserLogger as V, type WizardRouteAssetDisplay as W, BrowserRequestError as X, type CheckoutController as Y, type CheckoutControllerOptions as Z, type CheckoutPhase as _, type PaymentMethod as a, OPENRECEIVE_CHECKOUT_DATA_ATTRIBUTES as a0, OPENRECEIVE_CHECKOUT_DATA_SELECTORS as a1, OPENRECEIVE_CHECKOUT_ELEMENT_ATTRIBUTES as a2, OPENRECEIVE_CHECKOUT_ELEMENT_EVENTS as a3, OPENRECEIVE_CHECKOUT_ELEMENT_PARTS as a4, OPENRECEIVE_CHECKOUT_ELEMENT_PART_SELECTORS as a5, OPENRECEIVE_CHECKOUT_ELEMENT_SLOTS as a6, OPENRECEIVE_CHECKOUT_ELEMENT_TAG_NAME as a7, OPENRECEIVE_COPY_FEEDBACK_MS as a8, OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS as a9, deriveStatus as aA, enterCheckoutResumePath as aB, escapeHtml as aC, formatAmountCaption as aD, formatDepositAmount as aE, formatFiatAmount as aF, formatMsats as aG, formatSwapLimit as aH, formatUnixTime as aI, openWallet as aJ, prepareCheckout as aK, requestCheckout as aL, type BrowserLogLevel as aM, type BrowserLogEntry as aN, type CopyInvoiceOptions as aO, type GuestCheckoutResumeController as aP, type GuestCheckoutResumeOptions as aQ, type OpenWalletOptions as aR, type PrepareCheckoutOptions as aS, type QrOptions as aT, type RequestCheckoutOptions as aU, type StatusInvoiceLike as aV, createGuestCheckoutResume as aW, createGuestOrderFetcher as aX, createLightningUri as aY, createQrPngDataUrl as aZ, OPENRECEIVE_DEFAULT_PREFIX as aa, OPENRECEIVE_PAYMENT_WIZARD_ATTRIBUTES as ab, OPENRECEIVE_PAYMENT_WIZARD_SELECTORS as ac, OPENRECEIVE_THEME_STORAGE_KEY as ad, OPENRECEIVE_THEME_TOGGLE_ELEMENT_ATTRIBUTES as ae, OPENRECEIVE_THEME_TOGGLE_ELEMENT_EVENTS as af, OPENRECEIVE_THEME_TOGGLE_ELEMENT_PARTS as ag, OPENRECEIVE_THEME_TOGGLE_ELEMENT_PART_SELECTORS as ah, OPENRECEIVE_THEME_TOGGLE_ELEMENT_TAG_NAME as ai, type QrEncoder as aj, type Status as ak, type SwapCopyRow as al, type SwapRefundStaging as am, type WizardProviderDisplay as an, assertDisplayInvoice as ao, copyInvoice as ap, createCheckoutActionEvent as aq, createCheckoutController as ar, createCheckoutErrorEvent as as, createCheckoutProviderCopyEvent as at, createCheckoutStateEvent as au, createQrPayloadSvg as av, createQrSvg as aw, createStatusFetcher as ax, createThemeChangeEvent as ay, deriveCheckoutStateLabels as az, type PaymentMethodOption as b, type TickingValueOptions as c, type TickingValueController as d, type TransientFeedbackOptions as e, type TransientFeedbackController as f, type CheckoutSnapshot as g, type SwapDepositRisk as h, type CheckoutState as i, type TransactionDetailsInput as j, type TransactionDetailRow as k, type CreateCheckoutStateOptions as l, type CheckoutStatusModelInput as m, type CheckoutStatusModel as n, type CheckoutPaymentMethod as o, type ThemeAttributeTarget as p, type CheckoutElementAttributes as q, type CheckoutElementAttributeOptions as r, type CheckoutElementEventHandlers as s, type CheckoutElementListeners as t, type CreateCheckoutShellOptions as u, type CheckoutShellElements as v, type CheckoutShellOptions as w, type CheckoutShellModel as x, type CreateOpenReceiveThemeToggleElementOptions as y, type ThemeToggleElementAttributeOptions as z };
|