Files
dashcaddy-license-server/node_modules/stripe/cjs/Webhooks.d.ts
T

79 lines
4.4 KiB
TypeScript

import { CryptoProvider } from './crypto/CryptoProvider.js';
import { PlatformFunctions } from './platform/PlatformFunctions.js';
import { Event } from './resources/Events.js';
/**
* Value of the `stripe-signature` header from Stripe.
* Typically a string.
*
* Note that this is typed to accept an array of strings
* so that it works seamlessly with express's types,
* but will throw if an array is passed in practice
* since express should never return this header as an array,
* only a string.
*/
type WebhookHeader = string | string[] | Uint8Array;
export type WebhookTestHeaderOptions = {
timestamp?: number;
payload: string;
secret: string;
scheme?: string;
signature?: string;
cryptoProvider?: CryptoProvider;
};
type WebhookPayload = string | Uint8Array;
export type WebhookSignatureObject = {
/**
* Verifies the authenticity (and recency) of a webhook, throwing a `SignatureVerificationError`
* if there's a mismatch. Useful for quickly validating incoming webhooks before storing them for
* later processing (at which time you can use the `*WithoutVerification` methods for parsing).
*/
verifyHeader: (encodedPayload: WebhookPayload, encodedHeader: WebhookHeader, secret: string, tolerance?: number, cryptoProvider?: CryptoProvider, receivedAt?: number) => boolean;
/**
* Verifies the authenticity (and recency) of a webhook (async version), throwing a
* `SignatureVerificationError` if there's a mismatch.
*/
verifyHeaderAsync: (encodedPayload: WebhookPayload, encodedHeader: WebhookHeader, secret: string, tolerance?: number, cryptoProvider?: CryptoProvider, receivedAt?: number) => Promise<boolean>;
};
export type WebhookObject = {
DEFAULT_TOLERANCE: number;
signature: WebhookSignatureObject | null;
/**
* Constructs a [snapshot event](https://docs.stripe.com/event-destinations#snapshot-payload) from an
* incoming webhook after verifying its authenticity. To work with a webhook that has already been
* verified (i.e. one from a cloud provider, an asynchronous queue, or during testing), see
* `constructEventWithoutVerification`.
*/
constructEvent: (payload: WebhookPayload, header: WebhookHeader, secret: string, tolerance?: number, cryptoProvider?: CryptoProvider, receivedAt?: number) => Event;
/**
* Constructs a [snapshot event](https://docs.stripe.com/event-destinations#snapshot-payload) from an
* incoming webhook after verifying its authenticity (async version). To work with a webhook that
* has already been verified (i.e. one from a cloud provider, an asynchronous queue, or during
* testing), see `constructEventWithoutVerification`.
*/
constructEventAsync: (payload: WebhookPayload, header: WebhookHeader, secret: string, tolerance?: number, cryptoProvider?: CryptoProvider, receivedAt?: number) => Promise<Event>;
/**
* Constructs a [snapshot event](https://docs.stripe.com/event-destinations#snapshot-payload) from an
* incoming webhook without first verifying its authenticity. Should be used after calling
* `webhooks.verifySignatureHeader(...)` or with input from a trusted source (such as
* [AWS EventBridge](https://docs.stripe.com/event-destinations/eventbridge), or
* [Azure Event Grid](https://docs.stripe.com/event-destinations/eventgrid) payload). Or, to verify &
* construct in a single call, use `webhooks.constructEvent(...)` instead.
*/
constructEventWithoutVerification: (payload: string) => Event;
/**
* Compute the `Stripe-Signature` header for a given webhook body & secret. Useful for signing
* payloads in unit tests.
*
* @property {number} timestamp - Timestamp of the header. Defaults to Date.now()
* @property {string} payload - JSON stringified payload object, containing the 'id' and 'object' parameters
* @property {string} secret - Stripe webhook secret 'whsec_...'
* @property {string} scheme - Version of API to hit. Defaults to 'v1'.
* @property {string} signature - Computed webhook signature
* @property {CryptoProvider} cryptoProvider - Crypto provider to use for computing the signature if none was provided. Defaults to NodeCryptoProvider.
*/
generateTestHeaderString: (opts: WebhookTestHeaderOptions) => string;
generateTestHeaderStringAsync: (opts: WebhookTestHeaderOptions) => Promise<string>;
};
export declare function createWebhooks(platformFunctions: PlatformFunctions): WebhookObject;
export {};