@whop/elements 1.7.0 → 1.9.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/ads.d.cts +85 -1
- package/ads.d.ts +85 -1
- package/checkout.d.cts +11 -7
- package/checkout.d.ts +11 -7
- package/dashboard.d.cts +1 -1
- package/dashboard.d.ts +1 -1
- package/index.cjs +1 -1
- package/index.d.cts +11 -3
- package/index.d.ts +11 -3
- package/index.js +1 -1
- package/package.json +2 -2
- package/payments.d.cts +283 -43
- package/payments.d.ts +283 -43
- package/verifications.d.cts +40 -0
- package/verifications.d.ts +40 -0
- package/wallet.d.cts +8 -7
- package/wallet.d.ts +8 -7
package/ads.d.cts
CHANGED
|
@@ -226,6 +226,82 @@ export interface CampaignCreatorElementOverlayHandle {
|
|
|
226
226
|
update(options: Partial<CampaignCreatorElementProps>): void;
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
+
/**
|
|
230
|
+
* Consumer props for the "ads-agreement" element. Set at create (or as `<AdsAgreementElement />` JSX props), and updatable live via `update()`.
|
|
231
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
232
|
+
*/
|
|
233
|
+
export interface AdsAgreementElementProps {}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* The live handle for a mounted "ads-agreement" element. Returned by `create("ads-agreement")`; in React, the component's `ref`.
|
|
237
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
238
|
+
*/
|
|
239
|
+
export interface AdsAgreementElementHandle {
|
|
240
|
+
/**
|
|
241
|
+
* Mounts the element in `target` and starts loading. React components mount themselves.
|
|
242
|
+
*/
|
|
243
|
+
mount: (target: string | HTMLElement) => void;
|
|
244
|
+
/**
|
|
245
|
+
* Removes the element and releases its frame and subscriptions. You can call it more than once. React removes the element automatically.
|
|
246
|
+
*/
|
|
247
|
+
destroy: () => void;
|
|
248
|
+
/**
|
|
249
|
+
* Merges new props into the mounted element. In React, change the component props instead.
|
|
250
|
+
*/
|
|
251
|
+
update: (options: Partial<AdsAgreementElementProps>) => void;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Options for `create("ads-agreement")`: the consumer props plus event callbacks and lifecycle hooks.
|
|
256
|
+
* @example
|
|
257
|
+
* ```ts
|
|
258
|
+
* const ads_agreement = ads.create("ads-agreement", {}); // this interface: props + on<Event> callbacks
|
|
259
|
+
* ads_agreement.mount("#ads-ads-agreement");
|
|
260
|
+
* ```
|
|
261
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
262
|
+
*/
|
|
263
|
+
export interface AdsAgreementElementCreateOptions {
|
|
264
|
+
/**
|
|
265
|
+
* The agreement was signed and recorded. `agreementVersion` is the version that was signed; `acceptedAt` is when, as an ISO 8601 timestamp. A modal closes on this event.
|
|
266
|
+
*/
|
|
267
|
+
onSigned?: ((payload: { agreementVersion: string | null; acceptedAt: string | null; }) => void);
|
|
268
|
+
/**
|
|
269
|
+
* Runs after the loading skeleton first paints and before `onReady`.
|
|
270
|
+
*/
|
|
271
|
+
onLoaderStart?: (() => void);
|
|
272
|
+
/**
|
|
273
|
+
* Runs after the element's first complete paint.
|
|
274
|
+
*/
|
|
275
|
+
onReady?: (() => void);
|
|
276
|
+
/**
|
|
277
|
+
* Runs when the element fails to load or crashes. The fallback remains visible. Use `code` for programmatic handling. `sourceKey` identifies a failed host-state source.
|
|
278
|
+
*/
|
|
279
|
+
onError?: ((e: { message: string; code?: string | undefined; sourceKey?: string | undefined; }) => void);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* The overlay handle for "ads-agreement". Returned by `createOverlay("ads-agreement")`; drives the modal presentation imperatively.
|
|
284
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
285
|
+
*/
|
|
286
|
+
export interface AdsAgreementElementOverlayHandle {
|
|
287
|
+
/**
|
|
288
|
+
* Open the overlay. The first call mounts the element. Later calls reuse it.
|
|
289
|
+
*/
|
|
290
|
+
open(): void;
|
|
291
|
+
/**
|
|
292
|
+
* Close the overlay without destroying it. Keep the handle and `open()` again.
|
|
293
|
+
*/
|
|
294
|
+
close(): void;
|
|
295
|
+
/**
|
|
296
|
+
* Removes the element and releases its frame and subscriptions. You can call it more than once. React removes the element automatically.
|
|
297
|
+
*/
|
|
298
|
+
destroy(): void;
|
|
299
|
+
/**
|
|
300
|
+
* Merges new props into the mounted element. In React, change the component props instead.
|
|
301
|
+
*/
|
|
302
|
+
update(options: Partial<AdsAgreementElementProps>): void;
|
|
303
|
+
}
|
|
304
|
+
|
|
229
305
|
/**
|
|
230
306
|
* Consumer props for the "reporting" sub-controller: the `create("reporting")` options and the minted sub handle's `update()` payload (React: `<Reporting>` props). Parent-injected props never appear here.
|
|
231
307
|
* @see https://docs.whop.com/elements/latest/ads/overview
|
|
@@ -560,9 +636,17 @@ export interface AdsHandle {
|
|
|
560
636
|
*/
|
|
561
637
|
create(name: "billing-setup", options?: BillingSetupElementCreateOptions): BillingSetupElementHandle;
|
|
562
638
|
/**
|
|
563
|
-
* The advertising campaign builder: objective and budget, ad groups with their targeting and schedule, and the ads themselves with their creative — the whole flow through to launch. Opens empty to build a new campaign, or on an existing one when you pass `campaignId`. It runs the pixel checker too: a launch is gated on the ad group’s conversion event being live on the destination URL, and the `pixel-setup` wizard opens inside this element to fix an install that is missing. Budgets are entered and shown in the account’s `ads_reporting_currency` — the currency its reports already use — and converted to and billed in USD at the current exchange rate. The one token you set on the `ads` handle must carry the pixel scopes alongside the campaign scopes — `ad_campaign:create` and `company:basic:read` — rather than using a separate token per element.
|
|
639
|
+
* The advertising campaign builder: objective and budget, ad groups with their targeting and schedule, and the ads themselves with their creative — the whole flow through to launch. Opens empty to build a new campaign, or on an existing one when you pass `campaignId`. It runs the pixel checker too: a launch is gated on the ad group’s conversion event being live on the destination URL, and the `pixel-setup` wizard opens inside this element to fix an install that is missing. A launch is also gated on the account having signed the Whop Ads agreement: when it has not, the handle opens `ads-agreement` over the builder and the launch carries on once it is signed. Budgets are entered and shown in the account’s `ads_reporting_currency` — the currency its reports already use — and converted to and billed in USD at the current exchange rate. The one token you set on the `ads` handle must carry the pixel scopes alongside the campaign scopes — `ad_campaign:create` and `company:basic:read` — rather than using a separate token per element.
|
|
564
640
|
*/
|
|
565
641
|
createOverlay(name: "campaign-creator", options?: CampaignCreatorElementCreateOptions): CampaignCreatorElementOverlayHandle;
|
|
642
|
+
/**
|
|
643
|
+
* Signs the Whop Ads Services and Payment Authorization Agreement for an account. Saving the account's ad-spend billing opens the agreement; until an authorized representative signs it, no campaign can launch. The signer types their full legal name and, optionally, their title, accepts the terms, and the typed signature is filed with the agreement. Once it is signed this shows who signed it and when; before billing is set up there is nothing to sign and it says so. `campaign-creator` opens this over the builder by itself when a launch needs a signature, so mount it yourself only to offer signing ahead of time — on a settings or onboarding page, say.
|
|
644
|
+
*/
|
|
645
|
+
create(name: "ads-agreement", options?: AdsAgreementElementCreateOptions): AdsAgreementElementHandle;
|
|
646
|
+
/**
|
|
647
|
+
* Signs the Whop Ads Services and Payment Authorization Agreement for an account. Saving the account's ad-spend billing opens the agreement; until an authorized representative signs it, no campaign can launch. The signer types their full legal name and, optionally, their title, accepts the terms, and the typed signature is filed with the agreement. Once it is signed this shows who signed it and when; before billing is set up there is nothing to sign and it says so. `campaign-creator` opens this over the builder by itself when a launch needs a signature, so mount it yourself only to offer signing ahead of time — on a settings or onboarding page, say.
|
|
648
|
+
*/
|
|
649
|
+
createOverlay(name: "ads-agreement", options?: AdsAgreementElementCreateOptions): AdsAgreementElementOverlayHandle;
|
|
566
650
|
/**
|
|
567
651
|
* An advertising account's reporting: what it spent and what came back, over a window, at whatever level you narrow to. Mount `chart`, `table`, or both — they read the same window, the same credit rule, and the same selection, so two surfaces side by side can never disagree about what they are showing. The `ads` handle's `links` configuration wires the table's click and result counts to your own pages — the ones where you mounted the `tracking` namespace's `people` and `events`.
|
|
568
652
|
*/
|
package/ads.d.ts
CHANGED
|
@@ -226,6 +226,82 @@ export interface CampaignCreatorElementOverlayHandle {
|
|
|
226
226
|
update(options: Partial<CampaignCreatorElementProps>): void;
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
+
/**
|
|
230
|
+
* Consumer props for the "ads-agreement" element. Set at create (or as `<AdsAgreementElement />` JSX props), and updatable live via `update()`.
|
|
231
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
232
|
+
*/
|
|
233
|
+
export interface AdsAgreementElementProps {}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* The live handle for a mounted "ads-agreement" element. Returned by `create("ads-agreement")`; in React, the component's `ref`.
|
|
237
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
238
|
+
*/
|
|
239
|
+
export interface AdsAgreementElementHandle {
|
|
240
|
+
/**
|
|
241
|
+
* Mounts the element in `target` and starts loading. React components mount themselves.
|
|
242
|
+
*/
|
|
243
|
+
mount: (target: string | HTMLElement) => void;
|
|
244
|
+
/**
|
|
245
|
+
* Removes the element and releases its frame and subscriptions. You can call it more than once. React removes the element automatically.
|
|
246
|
+
*/
|
|
247
|
+
destroy: () => void;
|
|
248
|
+
/**
|
|
249
|
+
* Merges new props into the mounted element. In React, change the component props instead.
|
|
250
|
+
*/
|
|
251
|
+
update: (options: Partial<AdsAgreementElementProps>) => void;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Options for `create("ads-agreement")`: the consumer props plus event callbacks and lifecycle hooks.
|
|
256
|
+
* @example
|
|
257
|
+
* ```ts
|
|
258
|
+
* const ads_agreement = ads.create("ads-agreement", {}); // this interface: props + on<Event> callbacks
|
|
259
|
+
* ads_agreement.mount("#ads-ads-agreement");
|
|
260
|
+
* ```
|
|
261
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
262
|
+
*/
|
|
263
|
+
export interface AdsAgreementElementCreateOptions {
|
|
264
|
+
/**
|
|
265
|
+
* The agreement was signed and recorded. `agreementVersion` is the version that was signed; `acceptedAt` is when, as an ISO 8601 timestamp. A modal closes on this event.
|
|
266
|
+
*/
|
|
267
|
+
onSigned?: ((payload: { agreementVersion: string | null; acceptedAt: string | null; }) => void);
|
|
268
|
+
/**
|
|
269
|
+
* Runs after the loading skeleton first paints and before `onReady`.
|
|
270
|
+
*/
|
|
271
|
+
onLoaderStart?: (() => void);
|
|
272
|
+
/**
|
|
273
|
+
* Runs after the element's first complete paint.
|
|
274
|
+
*/
|
|
275
|
+
onReady?: (() => void);
|
|
276
|
+
/**
|
|
277
|
+
* Runs when the element fails to load or crashes. The fallback remains visible. Use `code` for programmatic handling. `sourceKey` identifies a failed host-state source.
|
|
278
|
+
*/
|
|
279
|
+
onError?: ((e: { message: string; code?: string | undefined; sourceKey?: string | undefined; }) => void);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* The overlay handle for "ads-agreement". Returned by `createOverlay("ads-agreement")`; drives the modal presentation imperatively.
|
|
284
|
+
* @see https://docs.whop.com/elements/latest/ads/ads-agreement
|
|
285
|
+
*/
|
|
286
|
+
export interface AdsAgreementElementOverlayHandle {
|
|
287
|
+
/**
|
|
288
|
+
* Open the overlay. The first call mounts the element. Later calls reuse it.
|
|
289
|
+
*/
|
|
290
|
+
open(): void;
|
|
291
|
+
/**
|
|
292
|
+
* Close the overlay without destroying it. Keep the handle and `open()` again.
|
|
293
|
+
*/
|
|
294
|
+
close(): void;
|
|
295
|
+
/**
|
|
296
|
+
* Removes the element and releases its frame and subscriptions. You can call it more than once. React removes the element automatically.
|
|
297
|
+
*/
|
|
298
|
+
destroy(): void;
|
|
299
|
+
/**
|
|
300
|
+
* Merges new props into the mounted element. In React, change the component props instead.
|
|
301
|
+
*/
|
|
302
|
+
update(options: Partial<AdsAgreementElementProps>): void;
|
|
303
|
+
}
|
|
304
|
+
|
|
229
305
|
/**
|
|
230
306
|
* Consumer props for the "reporting" sub-controller: the `create("reporting")` options and the minted sub handle's `update()` payload (React: `<Reporting>` props). Parent-injected props never appear here.
|
|
231
307
|
* @see https://docs.whop.com/elements/latest/ads/overview
|
|
@@ -560,9 +636,17 @@ export interface AdsHandle {
|
|
|
560
636
|
*/
|
|
561
637
|
create(name: "billing-setup", options?: BillingSetupElementCreateOptions): BillingSetupElementHandle;
|
|
562
638
|
/**
|
|
563
|
-
* The advertising campaign builder: objective and budget, ad groups with their targeting and schedule, and the ads themselves with their creative — the whole flow through to launch. Opens empty to build a new campaign, or on an existing one when you pass `campaignId`. It runs the pixel checker too: a launch is gated on the ad group’s conversion event being live on the destination URL, and the `pixel-setup` wizard opens inside this element to fix an install that is missing. Budgets are entered and shown in the account’s `ads_reporting_currency` — the currency its reports already use — and converted to and billed in USD at the current exchange rate. The one token you set on the `ads` handle must carry the pixel scopes alongside the campaign scopes — `ad_campaign:create` and `company:basic:read` — rather than using a separate token per element.
|
|
639
|
+
* The advertising campaign builder: objective and budget, ad groups with their targeting and schedule, and the ads themselves with their creative — the whole flow through to launch. Opens empty to build a new campaign, or on an existing one when you pass `campaignId`. It runs the pixel checker too: a launch is gated on the ad group’s conversion event being live on the destination URL, and the `pixel-setup` wizard opens inside this element to fix an install that is missing. A launch is also gated on the account having signed the Whop Ads agreement: when it has not, the handle opens `ads-agreement` over the builder and the launch carries on once it is signed. Budgets are entered and shown in the account’s `ads_reporting_currency` — the currency its reports already use — and converted to and billed in USD at the current exchange rate. The one token you set on the `ads` handle must carry the pixel scopes alongside the campaign scopes — `ad_campaign:create` and `company:basic:read` — rather than using a separate token per element.
|
|
564
640
|
*/
|
|
565
641
|
createOverlay(name: "campaign-creator", options?: CampaignCreatorElementCreateOptions): CampaignCreatorElementOverlayHandle;
|
|
642
|
+
/**
|
|
643
|
+
* Signs the Whop Ads Services and Payment Authorization Agreement for an account. Saving the account's ad-spend billing opens the agreement; until an authorized representative signs it, no campaign can launch. The signer types their full legal name and, optionally, their title, accepts the terms, and the typed signature is filed with the agreement. Once it is signed this shows who signed it and when; before billing is set up there is nothing to sign and it says so. `campaign-creator` opens this over the builder by itself when a launch needs a signature, so mount it yourself only to offer signing ahead of time — on a settings or onboarding page, say.
|
|
644
|
+
*/
|
|
645
|
+
create(name: "ads-agreement", options?: AdsAgreementElementCreateOptions): AdsAgreementElementHandle;
|
|
646
|
+
/**
|
|
647
|
+
* Signs the Whop Ads Services and Payment Authorization Agreement for an account. Saving the account's ad-spend billing opens the agreement; until an authorized representative signs it, no campaign can launch. The signer types their full legal name and, optionally, their title, accepts the terms, and the typed signature is filed with the agreement. Once it is signed this shows who signed it and when; before billing is set up there is nothing to sign and it says so. `campaign-creator` opens this over the builder by itself when a launch needs a signature, so mount it yourself only to offer signing ahead of time — on a settings or onboarding page, say.
|
|
648
|
+
*/
|
|
649
|
+
createOverlay(name: "ads-agreement", options?: AdsAgreementElementCreateOptions): AdsAgreementElementOverlayHandle;
|
|
566
650
|
/**
|
|
567
651
|
* An advertising account's reporting: what it spent and what came back, over a window, at whatever level you narrow to. Mount `chart`, `table`, or both — they read the same window, the same credit rule, and the same selection, so two surfaces side by side can never disagree about what they are showing. The `ads` handle's `links` configuration wires the table's click and result counts to your own pages — the ones where you mounted the `tracking` namespace's `people` and `events`.
|
|
568
652
|
*/
|
package/checkout.d.cts
CHANGED
|
@@ -152,10 +152,12 @@ export interface CheckoutElementCreateOptions {
|
|
|
152
152
|
*/
|
|
153
153
|
export interface ExpressCheckoutElementProps {
|
|
154
154
|
/**
|
|
155
|
-
* Which wallets may render
|
|
156
|
-
*
|
|
155
|
+
* Which wallets may render. Set `applePay`, `googlePay`, or `payPal` to `'never'` to leave that button out; each key defaults to `'auto'`, a filter over what the buyer’s device and the seller actually offer. The element never shows a wallet the device, the served matrix, or the checkout’s payment method configuration cannot back, and the render order stays best-native-first, with PayPal last. A list of wallet types (`['apple_pay', 'google_pay']`) is still accepted as an allowlist but is deprecated and will be removed in the next major version; an empty list renders nothing (warned in dev builds). Every wallet needs the page’s domain verified as a [payment method domain](/api-reference/beta/payment-method-domains/payment-method-domain) — first-party whop.com pages are pre-approved; on any other site, register and verify the domain or the buttons stay hidden. Offering Google Pay on your own site is subject to the [Google Pay API Terms of Service](https://payments.developers.google.com/terms/sellertos).
|
|
156
|
+
*
|
|
157
|
+
* `wallets` as an array is deprecated and will be removed in the next major version. Pass `{ applePay, googlePay, payPal }` with `"auto"` or `"never"` instead.
|
|
158
|
+
* @default {}
|
|
157
159
|
*/
|
|
158
|
-
wallets?: ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
160
|
+
wallets?: { applePay?: "auto" | "never" | undefined; googlePay?: "auto" | "never" | undefined; payPal?: "auto" | "never" | undefined; } | ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
159
161
|
/**
|
|
160
162
|
* How the buttons stack. `auto` follows the element’s own container — stacked in narrow containers, side by side in wide ones; `horizontal` and `vertical` force one arrangement.
|
|
161
163
|
* @default "auto"
|
|
@@ -193,10 +195,12 @@ export interface ExpressCheckoutElementHandle {
|
|
|
193
195
|
*/
|
|
194
196
|
export interface ExpressCheckoutElementCreateOptions {
|
|
195
197
|
/**
|
|
196
|
-
* Which wallets may render
|
|
197
|
-
*
|
|
198
|
+
* Which wallets may render. Set `applePay`, `googlePay`, or `payPal` to `'never'` to leave that button out; each key defaults to `'auto'`, a filter over what the buyer’s device and the seller actually offer. The element never shows a wallet the device, the served matrix, or the checkout’s payment method configuration cannot back, and the render order stays best-native-first, with PayPal last. A list of wallet types (`['apple_pay', 'google_pay']`) is still accepted as an allowlist but is deprecated and will be removed in the next major version; an empty list renders nothing (warned in dev builds). Every wallet needs the page’s domain verified as a [payment method domain](/api-reference/beta/payment-method-domains/payment-method-domain) — first-party whop.com pages are pre-approved; on any other site, register and verify the domain or the buttons stay hidden. Offering Google Pay on your own site is subject to the [Google Pay API Terms of Service](https://payments.developers.google.com/terms/sellertos).
|
|
199
|
+
*
|
|
200
|
+
* `wallets` as an array is deprecated and will be removed in the next major version. Pass `{ applePay, googlePay, payPal }` with `"auto"` or `"never"` instead.
|
|
201
|
+
* @default {}
|
|
198
202
|
*/
|
|
199
|
-
wallets?: ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
203
|
+
wallets?: { applePay?: "auto" | "never" | undefined; googlePay?: "auto" | "never" | undefined; payPal?: "auto" | "never" | undefined; } | ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
200
204
|
/**
|
|
201
205
|
* How the buttons stack. `auto` follows the element’s own container — stacked in narrow containers, side by side in wide ones; `horizontal` and `vertical` force one arrangement.
|
|
202
206
|
* @default "auto"
|
|
@@ -227,7 +231,7 @@ export interface CheckoutHandle {
|
|
|
227
231
|
*/
|
|
228
232
|
create(name: "checkout", options?: CheckoutElementCreateOptions): CheckoutElementHandle;
|
|
229
233
|
/**
|
|
230
|
-
* One-press Apple Pay, Google Pay and PayPal buttons for a checkout — the wallet collects whatever the session still needs (the buyer's email, a shipping address for physical goods, a phone number where the seller collects one in Apple Pay and Google Pay, and in Apple Pay a promo code where the seller offers entry) and one press finishes the purchase. It shares the checkout's entry slot with the full checkout element, so a handle mounts exactly one of the two: this button alone where the purchase is simple enough for a sheet to finish, or the full checkout surface for everything else. Renders only the wallets the buyer's device can actually pay with — and the checkout's own payment method configuration allows — using the served button art, and renders nothing where no wallet is available. PayPal appears
|
|
234
|
+
* One-press Apple Pay, Google Pay and PayPal buttons for a checkout — the wallet collects whatever the session still needs (the buyer's email, a shipping address for physical goods, a phone number where the seller collects one in Apple Pay and Google Pay, and in Apple Pay a promo code where the seller offers entry) and one press finishes the purchase. It shares the checkout's entry slot with the full checkout element, so a handle mounts exactly one of the two: this button alone where the purchase is simple enough for a sheet to finish, or the full checkout surface for everything else. Renders only the wallets the buyer's device can actually pay with — and the checkout's own payment method configuration allows — using the served button art, and renders nothing where no wallet is available. PayPal appears where the seller accepts it, opens in its own window, and saves the buyer's PayPal account with the purchase, so a renewal, a free trial and later charges the seller makes work like a saved card. All three wallets require the page's domain to be a verified payment method domain: first-party whop.com pages are pre-approved, and any other site must register its domain through the Payment Method Domains API before any of these buttons renders there. Offering Google Pay on your own site is subject to the Google Pay API Terms of Service. A checkout the sheet cannot honestly finish — a waitlist join, a transfer, a form question only a page can ask — refuses loudly instead of rendering a doomed button.
|
|
231
235
|
* Exclusive slot `entry`. Mount exactly one of: checkout | expressCheckout.
|
|
232
236
|
*/
|
|
233
237
|
create(name: "expressCheckout", options?: ExpressCheckoutElementCreateOptions): ExpressCheckoutElementHandle;
|
package/checkout.d.ts
CHANGED
|
@@ -152,10 +152,12 @@ export interface CheckoutElementCreateOptions {
|
|
|
152
152
|
*/
|
|
153
153
|
export interface ExpressCheckoutElementProps {
|
|
154
154
|
/**
|
|
155
|
-
* Which wallets may render
|
|
156
|
-
*
|
|
155
|
+
* Which wallets may render. Set `applePay`, `googlePay`, or `payPal` to `'never'` to leave that button out; each key defaults to `'auto'`, a filter over what the buyer’s device and the seller actually offer. The element never shows a wallet the device, the served matrix, or the checkout’s payment method configuration cannot back, and the render order stays best-native-first, with PayPal last. A list of wallet types (`['apple_pay', 'google_pay']`) is still accepted as an allowlist but is deprecated and will be removed in the next major version; an empty list renders nothing (warned in dev builds). Every wallet needs the page’s domain verified as a [payment method domain](/api-reference/beta/payment-method-domains/payment-method-domain) — first-party whop.com pages are pre-approved; on any other site, register and verify the domain or the buttons stay hidden. Offering Google Pay on your own site is subject to the [Google Pay API Terms of Service](https://payments.developers.google.com/terms/sellertos).
|
|
156
|
+
*
|
|
157
|
+
* `wallets` as an array is deprecated and will be removed in the next major version. Pass `{ applePay, googlePay, payPal }` with `"auto"` or `"never"` instead.
|
|
158
|
+
* @default {}
|
|
157
159
|
*/
|
|
158
|
-
wallets?: ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
160
|
+
wallets?: { applePay?: "auto" | "never" | undefined; googlePay?: "auto" | "never" | undefined; payPal?: "auto" | "never" | undefined; } | ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
159
161
|
/**
|
|
160
162
|
* How the buttons stack. `auto` follows the element’s own container — stacked in narrow containers, side by side in wide ones; `horizontal` and `vertical` force one arrangement.
|
|
161
163
|
* @default "auto"
|
|
@@ -193,10 +195,12 @@ export interface ExpressCheckoutElementHandle {
|
|
|
193
195
|
*/
|
|
194
196
|
export interface ExpressCheckoutElementCreateOptions {
|
|
195
197
|
/**
|
|
196
|
-
* Which wallets may render
|
|
197
|
-
*
|
|
198
|
+
* Which wallets may render. Set `applePay`, `googlePay`, or `payPal` to `'never'` to leave that button out; each key defaults to `'auto'`, a filter over what the buyer’s device and the seller actually offer. The element never shows a wallet the device, the served matrix, or the checkout’s payment method configuration cannot back, and the render order stays best-native-first, with PayPal last. A list of wallet types (`['apple_pay', 'google_pay']`) is still accepted as an allowlist but is deprecated and will be removed in the next major version; an empty list renders nothing (warned in dev builds). Every wallet needs the page’s domain verified as a [payment method domain](/api-reference/beta/payment-method-domains/payment-method-domain) — first-party whop.com pages are pre-approved; on any other site, register and verify the domain or the buttons stay hidden. Offering Google Pay on your own site is subject to the [Google Pay API Terms of Service](https://payments.developers.google.com/terms/sellertos).
|
|
199
|
+
*
|
|
200
|
+
* `wallets` as an array is deprecated and will be removed in the next major version. Pass `{ applePay, googlePay, payPal }` with `"auto"` or `"never"` instead.
|
|
201
|
+
* @default {}
|
|
198
202
|
*/
|
|
199
|
-
wallets?: ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
203
|
+
wallets?: { applePay?: "auto" | "never" | undefined; googlePay?: "auto" | "never" | undefined; payPal?: "auto" | "never" | undefined; } | ("apple_pay" | "google_pay" | "paypal_express")[];
|
|
200
204
|
/**
|
|
201
205
|
* How the buttons stack. `auto` follows the element’s own container — stacked in narrow containers, side by side in wide ones; `horizontal` and `vertical` force one arrangement.
|
|
202
206
|
* @default "auto"
|
|
@@ -227,7 +231,7 @@ export interface CheckoutHandle {
|
|
|
227
231
|
*/
|
|
228
232
|
create(name: "checkout", options?: CheckoutElementCreateOptions): CheckoutElementHandle;
|
|
229
233
|
/**
|
|
230
|
-
* One-press Apple Pay, Google Pay and PayPal buttons for a checkout — the wallet collects whatever the session still needs (the buyer's email, a shipping address for physical goods, a phone number where the seller collects one in Apple Pay and Google Pay, and in Apple Pay a promo code where the seller offers entry) and one press finishes the purchase. It shares the checkout's entry slot with the full checkout element, so a handle mounts exactly one of the two: this button alone where the purchase is simple enough for a sheet to finish, or the full checkout surface for everything else. Renders only the wallets the buyer's device can actually pay with — and the checkout's own payment method configuration allows — using the served button art, and renders nothing where no wallet is available. PayPal appears
|
|
234
|
+
* One-press Apple Pay, Google Pay and PayPal buttons for a checkout — the wallet collects whatever the session still needs (the buyer's email, a shipping address for physical goods, a phone number where the seller collects one in Apple Pay and Google Pay, and in Apple Pay a promo code where the seller offers entry) and one press finishes the purchase. It shares the checkout's entry slot with the full checkout element, so a handle mounts exactly one of the two: this button alone where the purchase is simple enough for a sheet to finish, or the full checkout surface for everything else. Renders only the wallets the buyer's device can actually pay with — and the checkout's own payment method configuration allows — using the served button art, and renders nothing where no wallet is available. PayPal appears where the seller accepts it, opens in its own window, and saves the buyer's PayPal account with the purchase, so a renewal, a free trial and later charges the seller makes work like a saved card. All three wallets require the page's domain to be a verified payment method domain: first-party whop.com pages are pre-approved, and any other site must register its domain through the Payment Method Domains API before any of these buttons renders there. Offering Google Pay on your own site is subject to the Google Pay API Terms of Service. A checkout the sheet cannot honestly finish — a waitlist join, a transfer, a form question only a page can ask — refuses loudly instead of rendering a doomed button.
|
|
231
235
|
* Exclusive slot `entry`. Mount exactly one of: checkout | expressCheckout.
|
|
232
236
|
*/
|
|
233
237
|
create(name: "expressCheckout", options?: ExpressCheckoutElementCreateOptions): ExpressCheckoutElementHandle;
|
package/dashboard.d.cts
CHANGED
|
@@ -89,7 +89,7 @@ export interface RequiredActionsElementCreateOptions {
|
|
|
89
89
|
/**
|
|
90
90
|
* The viewer pressed a banner button. Fires for every action, including ones the element also handles itself.
|
|
91
91
|
*/
|
|
92
|
-
onActionRequested?: ((payload: { action: "deposit_funds" | "review_held_payments" | "submit_information_request" | "update_automatic_withdrawal_method" | "reauthorize_payout_methods" | "update_payout_profile" | "card_usage_review" | "verify_identity" | "scale_account_setup" | "sign_formation_documents" | "
|
|
92
|
+
onActionRequested?: ((payload: { action: "deposit_funds" | "review_held_payments" | "submit_information_request" | "update_automatic_withdrawal_method" | "reauthorize_payout_methods" | "update_payout_profile" | "card_usage_review" | "verify_identity" | "scale_account_setup" | "sign_formation_documents" | "setup_apple_pay_domains" | "configure_tax_remitter" | "add_vat_registration" | "accept_payout_terms" | "enable_two_factor_authentication"; accountId: string; }) => void);
|
|
93
93
|
/**
|
|
94
94
|
* The viewer pressed Verify on a `verify_identity` action the element can start. The element opens identity verification itself — this fires alongside, so a host can record the trip.
|
|
95
95
|
*/
|
package/dashboard.d.ts
CHANGED
|
@@ -89,7 +89,7 @@ export interface RequiredActionsElementCreateOptions {
|
|
|
89
89
|
/**
|
|
90
90
|
* The viewer pressed a banner button. Fires for every action, including ones the element also handles itself.
|
|
91
91
|
*/
|
|
92
|
-
onActionRequested?: ((payload: { action: "deposit_funds" | "review_held_payments" | "submit_information_request" | "update_automatic_withdrawal_method" | "reauthorize_payout_methods" | "update_payout_profile" | "card_usage_review" | "verify_identity" | "scale_account_setup" | "sign_formation_documents" | "
|
|
92
|
+
onActionRequested?: ((payload: { action: "deposit_funds" | "review_held_payments" | "submit_information_request" | "update_automatic_withdrawal_method" | "reauthorize_payout_methods" | "update_payout_profile" | "card_usage_review" | "verify_identity" | "scale_account_setup" | "sign_formation_documents" | "setup_apple_pay_domains" | "configure_tax_remitter" | "add_vat_registration" | "accept_payout_terms" | "enable_two_factor_authentication"; accountId: string; }) => void);
|
|
93
93
|
/**
|
|
94
94
|
* The viewer pressed Verify on a `verify_identity` action the element can start. The element opens identity verification itself — this fires alongside, so a host can record the trip.
|
|
95
95
|
*/
|
package/index.cjs
CHANGED
|
@@ -35,7 +35,7 @@ var define_WHOP_ELEMENTS_API_ORIGINS_default = { production: "https://api.whop.c
|
|
|
35
35
|
var define_WHOP_ELEMENTS_LOCALES_default = ["en", "es", "zh", "nl", "pt", "de", "hu", "it", "fr", "ja", "pl", "tr"];
|
|
36
36
|
|
|
37
37
|
// <define:__WHOP_ELEMENTS_PAGE_REQUIREMENTS__>
|
|
38
|
-
var define_WHOP_ELEMENTS_PAGE_REQUIREMENTS_default = { wallets: { production: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.braintree-api.com", "https://api.braintreegateway.com", "https://api-m.paypal.com", "https://www.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.paypal.com", crossOrigin: "anonymous" }] }, sandbox: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.sandbox.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.sandbox.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.sandbox.braintree-api.com", "https://api.sandbox.braintreegateway.com", "https://api-m.sandbox.paypal.com", "https://www.sandbox.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.sandbox.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.sandbox.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.sandbox.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.sandbox.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.sandbox.paypal.com", crossOrigin: "anonymous" }] } } };
|
|
38
|
+
var define_WHOP_ELEMENTS_PAGE_REQUIREMENTS_default = { wallets: { production: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.braintree-api.com", "https://api.braintreegateway.com", "https://api-m.paypal.com", "https://www.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.paypal.com", crossOrigin: "anonymous" }] }, sandbox: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.sandbox.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.sandbox.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.sandbox.braintree-api.com", "https://api.sandbox.braintreegateway.com", "https://api-m.sandbox.paypal.com", "https://www.sandbox.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.sandbox.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.sandbox.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.sandbox.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.sandbox.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.sandbox.paypal.com", crossOrigin: "anonymous" }] } }, bankConnections: { production: { sources: { "frame-src": ["https://cdn.plaid.com"], "script-src": ["https://cdn.plaid.com"], "connect-src": ["https://production.plaid.com"], "img-src": [] }, hints: [] }, sandbox: { sources: { "frame-src": ["https://cdn.plaid.com"], "script-src": ["https://cdn.plaid.com"], "connect-src": ["https://sandbox.plaid.com"], "img-src": [] }, hints: [] } } };
|
|
39
39
|
|
|
40
40
|
// ../../packages/elements-codegen/src/cli/build/npm-loader.ts
|
|
41
41
|
var ORIGIN = "https://cdn.whop.com";
|
package/index.d.cts
CHANGED
|
@@ -14,7 +14,7 @@ export interface WhopGlobalConfig extends FrameworkGlobals {}
|
|
|
14
14
|
/** The configured instance: one accessor per namespace, each carrying `create()` plus that namespace's static actions. */
|
|
15
15
|
export interface Whop {
|
|
16
16
|
/**
|
|
17
|
-
* Collect a payment from a `plan_` ID or inline currency and amount, or save a payment method without charging with `mode: "setup"`. Mount PaymentElement, CardElement, or CardFields, then call `payments.createConfirmationToken` with billing details. Wallet selections open their sheet automatically. Confirm the token server-side, then pass the payment's or setup intent's `client_secret` to `handleNextAction` for any pending step.
|
|
17
|
+
* Collect a payment from a `plan_` ID or inline currency and amount, or save a payment method without charging with `mode: "setup"`. Mount PaymentElement, CardElement, or CardFields, then call `payments.createConfirmationToken` with billing details. Wallet selections open their sheet automatically. When the account offers in-page bank linking (`bank_debit.bank_connection` on its bank account payment method type), a bank account selection opens Plaid Link on the page too. A buyer who closes either one rejects the call with `payment_request_cancelled`, which your pay handler should treat as a cancel. Confirm the token server-side, then pass the payment's or setup intent's `client_secret` to `handleNextAction` for any pending step.
|
|
18
18
|
*/
|
|
19
19
|
payments: { create(options: PaymentsOptions): PaymentsHandle } & PaymentsStatics;
|
|
20
20
|
/**
|
|
@@ -26,7 +26,7 @@ export interface Whop {
|
|
|
26
26
|
*/
|
|
27
27
|
checkout: { create(options: CheckoutOptions): CheckoutHandle } & CheckoutStatics;
|
|
28
28
|
/**
|
|
29
|
-
* An advertising account. Scope it to a Whop account with `accountId` — the ad account underneath is assigned server-side and never surfaces here — then mount `reporting` for what the account spent and what came back,
|
|
29
|
+
* An advertising account. Scope it to a Whop account with `accountId` — the ad account underneath is assigned server-side and never surfaces here — then mount `reporting` for what the account spent and what came back, `campaign-creator` to build a campaign, or `ads-agreement` to sign the Whop Ads agreement a launch requires.
|
|
30
30
|
*/
|
|
31
31
|
ads: { create(options: AdsOptions): AdsHandle } & AdsStatics;
|
|
32
32
|
/**
|
|
@@ -77,6 +77,10 @@ export interface PreloadHintsOptions {
|
|
|
77
77
|
* Apple Pay, Google Pay, and PayPal: preloads its scripts and warms the connections it opens from your page. Pass false on pages that don't show it.
|
|
78
78
|
*/
|
|
79
79
|
wallets?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Plaid bank account linking: preloads its scripts and warms the connections it opens from your page. Pass false on pages that don't show it.
|
|
82
|
+
*/
|
|
83
|
+
bankConnections?: boolean;
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
/** The hints `preloadHints()` returns: an array of {@link PreloadHint}, plus ways to apply it. `filter`, `slice`, `concat`, `toSorted` and `toReversed` keep these methods; `map` returns a plain array. */
|
|
@@ -106,6 +110,10 @@ export interface ContentSecurityPolicyOptions {
|
|
|
106
110
|
* Apple Pay, Google Pay, and PayPal: allows the origins it reaches from your page. Pass false on pages that don't show it.
|
|
107
111
|
*/
|
|
108
112
|
wallets?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Plaid bank account linking: allows the origins it reaches from your page. Pass false on pages that don't show it.
|
|
115
|
+
*/
|
|
116
|
+
bankConnections?: boolean;
|
|
109
117
|
}
|
|
110
118
|
|
|
111
119
|
/** The Content Security Policy sources elements need on your page. Merge them into your own policy; on their own they block everything else your page loads. */
|
|
@@ -124,7 +132,7 @@ export interface WhopContentSecurityPolicy {
|
|
|
124
132
|
toHtml(policy: string): string;
|
|
125
133
|
}
|
|
126
134
|
|
|
127
|
-
/** The Content Security Policy sources elements need on your page: the hosted frames and SDK, the Whop API, and the origins elements reach from your page. The scripts elements load for Apple Pay, Google Pay, and PayPal come from other companies and can load resources beyond these: check each provider's Content Security Policy guidance. A modal element dims the page behind it with an inline style, which a `style-src` without inline styles leaves out; the modal still works. */
|
|
135
|
+
/** The Content Security Policy sources elements need on your page: the hosted frames and SDK, the Whop API, and the origins elements reach from your page. The scripts elements load for Apple Pay, Google Pay, and PayPal and Plaid bank account linking come from other companies and can load resources beyond these: check each provider's Content Security Policy guidance. A modal element dims the page behind it with an inline style, which a `style-src` without inline styles leaves out; the modal still works. */
|
|
128
136
|
export declare function contentSecurityPolicy(options?: ContentSecurityPolicyOptions): WhopContentSecurityPolicy;
|
|
129
137
|
|
|
130
138
|
/** The locales this app's elements are built with, the default locale first: exactly the values `locale` accepts. `includes()` accepts any string and narrows it to `WhopElementsLocale`, so use it to validate dynamic values; anything unlisted falls back to the default locale. */
|
package/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export interface WhopGlobalConfig extends FrameworkGlobals {}
|
|
|
14
14
|
/** The configured instance: one accessor per namespace, each carrying `create()` plus that namespace's static actions. */
|
|
15
15
|
export interface Whop {
|
|
16
16
|
/**
|
|
17
|
-
* Collect a payment from a `plan_` ID or inline currency and amount, or save a payment method without charging with `mode: "setup"`. Mount PaymentElement, CardElement, or CardFields, then call `payments.createConfirmationToken` with billing details. Wallet selections open their sheet automatically. Confirm the token server-side, then pass the payment's or setup intent's `client_secret` to `handleNextAction` for any pending step.
|
|
17
|
+
* Collect a payment from a `plan_` ID or inline currency and amount, or save a payment method without charging with `mode: "setup"`. Mount PaymentElement, CardElement, or CardFields, then call `payments.createConfirmationToken` with billing details. Wallet selections open their sheet automatically. When the account offers in-page bank linking (`bank_debit.bank_connection` on its bank account payment method type), a bank account selection opens Plaid Link on the page too. A buyer who closes either one rejects the call with `payment_request_cancelled`, which your pay handler should treat as a cancel. Confirm the token server-side, then pass the payment's or setup intent's `client_secret` to `handleNextAction` for any pending step.
|
|
18
18
|
*/
|
|
19
19
|
payments: { create(options: PaymentsOptions): PaymentsHandle } & PaymentsStatics;
|
|
20
20
|
/**
|
|
@@ -26,7 +26,7 @@ export interface Whop {
|
|
|
26
26
|
*/
|
|
27
27
|
checkout: { create(options: CheckoutOptions): CheckoutHandle } & CheckoutStatics;
|
|
28
28
|
/**
|
|
29
|
-
* An advertising account. Scope it to a Whop account with `accountId` — the ad account underneath is assigned server-side and never surfaces here — then mount `reporting` for what the account spent and what came back,
|
|
29
|
+
* An advertising account. Scope it to a Whop account with `accountId` — the ad account underneath is assigned server-side and never surfaces here — then mount `reporting` for what the account spent and what came back, `campaign-creator` to build a campaign, or `ads-agreement` to sign the Whop Ads agreement a launch requires.
|
|
30
30
|
*/
|
|
31
31
|
ads: { create(options: AdsOptions): AdsHandle } & AdsStatics;
|
|
32
32
|
/**
|
|
@@ -77,6 +77,10 @@ export interface PreloadHintsOptions {
|
|
|
77
77
|
* Apple Pay, Google Pay, and PayPal: preloads its scripts and warms the connections it opens from your page. Pass false on pages that don't show it.
|
|
78
78
|
*/
|
|
79
79
|
wallets?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Plaid bank account linking: preloads its scripts and warms the connections it opens from your page. Pass false on pages that don't show it.
|
|
82
|
+
*/
|
|
83
|
+
bankConnections?: boolean;
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
/** The hints `preloadHints()` returns: an array of {@link PreloadHint}, plus ways to apply it. `filter`, `slice`, `concat`, `toSorted` and `toReversed` keep these methods; `map` returns a plain array. */
|
|
@@ -106,6 +110,10 @@ export interface ContentSecurityPolicyOptions {
|
|
|
106
110
|
* Apple Pay, Google Pay, and PayPal: allows the origins it reaches from your page. Pass false on pages that don't show it.
|
|
107
111
|
*/
|
|
108
112
|
wallets?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Plaid bank account linking: allows the origins it reaches from your page. Pass false on pages that don't show it.
|
|
115
|
+
*/
|
|
116
|
+
bankConnections?: boolean;
|
|
109
117
|
}
|
|
110
118
|
|
|
111
119
|
/** The Content Security Policy sources elements need on your page. Merge them into your own policy; on their own they block everything else your page loads. */
|
|
@@ -124,7 +132,7 @@ export interface WhopContentSecurityPolicy {
|
|
|
124
132
|
toHtml(policy: string): string;
|
|
125
133
|
}
|
|
126
134
|
|
|
127
|
-
/** The Content Security Policy sources elements need on your page: the hosted frames and SDK, the Whop API, and the origins elements reach from your page. The scripts elements load for Apple Pay, Google Pay, and PayPal come from other companies and can load resources beyond these: check each provider's Content Security Policy guidance. A modal element dims the page behind it with an inline style, which a `style-src` without inline styles leaves out; the modal still works. */
|
|
135
|
+
/** The Content Security Policy sources elements need on your page: the hosted frames and SDK, the Whop API, and the origins elements reach from your page. The scripts elements load for Apple Pay, Google Pay, and PayPal and Plaid bank account linking come from other companies and can load resources beyond these: check each provider's Content Security Policy guidance. A modal element dims the page behind it with an inline style, which a `style-src` without inline styles leaves out; the modal still works. */
|
|
128
136
|
export declare function contentSecurityPolicy(options?: ContentSecurityPolicyOptions): WhopContentSecurityPolicy;
|
|
129
137
|
|
|
130
138
|
/** The locales this app's elements are built with, the default locale first: exactly the values `locale` accepts. `includes()` accepts any string and narrows it to `WhopElementsLocale`, so use it to validate dynamic values; anything unlisted falls back to the default locale. */
|
package/index.js
CHANGED
|
@@ -5,7 +5,7 @@ var define_WHOP_ELEMENTS_API_ORIGINS_default = { production: "https://api.whop.c
|
|
|
5
5
|
var define_WHOP_ELEMENTS_LOCALES_default = ["en", "es", "zh", "nl", "pt", "de", "hu", "it", "fr", "ja", "pl", "tr"];
|
|
6
6
|
|
|
7
7
|
// <define:__WHOP_ELEMENTS_PAGE_REQUIREMENTS__>
|
|
8
|
-
var define_WHOP_ELEMENTS_PAGE_REQUIREMENTS_default = { wallets: { production: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.braintree-api.com", "https://api.braintreegateway.com", "https://api-m.paypal.com", "https://www.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.paypal.com", crossOrigin: "anonymous" }] }, sandbox: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.sandbox.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.sandbox.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.sandbox.braintree-api.com", "https://api.sandbox.braintreegateway.com", "https://api-m.sandbox.paypal.com", "https://www.sandbox.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.sandbox.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.sandbox.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.sandbox.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.sandbox.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.sandbox.paypal.com", crossOrigin: "anonymous" }] } } };
|
|
8
|
+
var define_WHOP_ELEMENTS_PAGE_REQUIREMENTS_default = { wallets: { production: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.braintree-api.com", "https://api.braintreegateway.com", "https://api-m.paypal.com", "https://www.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.paypal.com", crossOrigin: "anonymous" }] }, sandbox: { sources: { "frame-src": ["https://checkout.paypal.com", "https://assets.braintreegateway.com", "https://www.sandbox.paypal.com"], "script-src": ["https://pay.google.com", "https://applepay.cdn-apple.com", "https://js.braintreegateway.com", "https://www.sandbox.paypal.com", "https://c.paypal.com"], "connect-src": ["https://pay.google.com", "https://google.com", "https://account.google.com", "https://www.google.com", "https://api.basistheory.com", "https://payments.sandbox.braintree-api.com", "https://api.sandbox.braintreegateway.com", "https://api-m.sandbox.paypal.com", "https://www.sandbox.paypal.com"], "img-src": ["https://www.paypalobjects.com"] }, hints: [{ rel: "preload", href: "https://pay.google.com/gp/p/js/pay.js", as: "script" }, { rel: "preload", href: "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js", as: "script", crossOrigin: "anonymous" }, { rel: "preload", href: "https://js.braintreegateway.com/web/3.146.0/js/paypal-checkout-v6.min.js", as: "script" }, { rel: "preload", href: "https://www.sandbox.paypal.com/web-sdk/v6/core", as: "script" }, { rel: "preconnect", href: "https://api.basistheory.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://payments.sandbox.braintree-api.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://api.sandbox.braintreegateway.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://checkout.paypal.com" }, { rel: "preconnect", href: "https://assets.braintreegateway.com" }, { rel: "preconnect", href: "https://c.paypal.com" }, { rel: "preconnect", href: "https://api-m.sandbox.paypal.com", crossOrigin: "anonymous" }, { rel: "preconnect", href: "https://www.sandbox.paypal.com", crossOrigin: "anonymous" }] } }, bankConnections: { production: { sources: { "frame-src": ["https://cdn.plaid.com"], "script-src": ["https://cdn.plaid.com"], "connect-src": ["https://production.plaid.com"], "img-src": [] }, hints: [] }, sandbox: { sources: { "frame-src": ["https://cdn.plaid.com"], "script-src": ["https://cdn.plaid.com"], "connect-src": ["https://sandbox.plaid.com"], "img-src": [] }, hints: [] } } };
|
|
9
9
|
|
|
10
10
|
// ../../packages/elements-codegen/src/cli/build/npm-loader.ts
|
|
11
11
|
var ORIGIN = "https://cdn.whop.com";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@whop/elements",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Whop Elements — vanilla-js loader + types. Loads the hosted SDK and exposes the typed WhopElements factory.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"checkout",
|
|
@@ -97,5 +97,5 @@
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
|
-
"whopElementsApiHash": "
|
|
100
|
+
"whopElementsApiHash": "85321768f65257bb3ec3407a5c82be67550fbb14143f6b7c3289e1d4bef45504"
|
|
101
101
|
}
|