Rocky_Mountain_Vending/.pnpm-store/v10/files/a9/756fde0de490aef9e689044715e880cb257d7e572da20b7d639f0f7af0ee366aaf4d6b03e8ea485b75bdf03ff31c0440a44aaf6b40281dc3ed04b8bcf4cfe2
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

133 lines
3.8 KiB
Text

import type { SdkError } from "./shapes";
/**
* @public
*/
export type RetryErrorType =
/**
* This is a connection level error such as a socket timeout, socket connect
* error, tls negotiation timeout etc...
* Typically these should never be applied for non-idempotent request types
* since in this scenario, it's impossible to know whether the operation had
* a side effect on the server.
*/
"TRANSIENT"
/**
* This is an error where the server explicitly told the client to back off,
* such as a 429 or 503 Http error.
*/
| "THROTTLING"
/**
* This is a server error that isn't explicitly throttling but is considered
* by the client to be something that should be retried.
*/
| "SERVER_ERROR"
/**
* Doesn't count against any budgets. This could be something like a 401
* challenge in Http.
*/
| "CLIENT_ERROR";
/**
* @public
*/
export interface RetryErrorInfo {
/**
* The error thrown during the initial request, if available.
*/
error?: SdkError;
errorType: RetryErrorType;
/**
* Protocol hint. This could come from Http's 'retry-after' header or
* something from MQTT or any other protocol that has the ability to convey
* retry info from a peer.
*
* The Date after which a retry should be attempted.
*/
retryAfterHint?: Date;
}
/**
* @public
*/
export interface RetryBackoffStrategy {
/**
* @returns the number of milliseconds to wait before retrying an action.
*/
computeNextBackoffDelay(retryAttempt: number): number;
}
/**
* @public
*/
export interface StandardRetryBackoffStrategy extends RetryBackoffStrategy {
/**
* Sets the delayBase used to compute backoff delays.
* @param delayBase -
*/
setDelayBase(delayBase: number): void;
}
/**
* @public
*/
export interface RetryStrategyOptions {
backoffStrategy: RetryBackoffStrategy;
maxRetriesBase: number;
}
/**
* @public
*/
export interface RetryToken {
/**
* @returns the current count of retry.
*/
getRetryCount(): number;
/**
* @returns the number of milliseconds to wait before retrying an action.
*/
getRetryDelay(): number;
}
/**
* @public
*/
export interface StandardRetryToken extends RetryToken {
/**
* @returns the cost of the last retry attempt.
*/
getRetryCost(): number | undefined;
}
/**
* @public
*/
export interface RetryStrategyV2 {
/**
* Called before any retries (for the first call to the operation). It either
* returns a retry token or an error upon the failure to acquire a token prior.
*
* tokenScope is arbitrary and out of scope for this component. However,
* adding it here offers us a lot of future flexibility for outage detection.
* For example, it could be "us-east-1" on a shared retry strategy, or
* "us-west-2-c:dynamodb".
*/
acquireInitialRetryToken(retryTokenScope: string): Promise<RetryToken>;
/**
* After a failed operation call, this function is invoked to refresh the
* retryToken returned by acquireInitialRetryToken(). This function can
* either choose to allow another retry and send a new or updated token,
* or reject the retry attempt and report the error either in an exception
* or returning an error.
*/
refreshRetryTokenForRetry(tokenToRenew: RetryToken, errorInfo: RetryErrorInfo): Promise<RetryToken>;
/**
* Upon successful completion of the operation, this function is called
* to record that the operation was successful.
*/
recordSuccess(token: RetryToken): void;
}
/**
* @public
*/
export type ExponentialBackoffJitterType = "DEFAULT" | "NONE" | "FULL" | "DECORRELATED";
/**
* @public
*/
export interface ExponentialBackoffStrategyOptions {
jitterType: ExponentialBackoffJitterType;
backoffScaleValue?: number;
}