UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

258 lines (255 loc) • 5.41 kB
import { getRequestUrl, isHttpOrHttps, isProxyUrlRelative, isValidProxyUrl, proxyUrlToAbsoluteURL } from "./chunk-GVKVD773.mjs"; import { camelToSnake, deepCamelToSnake, deepSnakeToCamel, isIPV4Address, snakeToCamel, titleize, toSentence } from "./chunk-5QXIOV6T.mjs"; import { addClerkPrefix, getClerkJsMajorVersionOrTag, getScriptUrl, isStaging, parseSearchParams, stripScheme } from "./chunk-RUQRCEI6.mjs"; import { handleValueOrFn } from "./chunk-TRWMHODU.mjs"; import { buildPublishableKey, createDevOrStagingUrlCache, isDevelopmentFromApiKey, isLegacyFrontendApiKey, isProductionFromApiKey, isPublishableKey, parsePublishableKey } from "./chunk-IAZRYRAH.mjs"; import { isomorphicAtob } from "./chunk-TETGTEI2.mjs"; import { loadScript } from "./chunk-JUQXCWMV.mjs"; import { LocalStorageBroadcastChannel } from "./chunk-RSOCGYTF.mjs"; import { Poller, createWorkerTimers, noop } from "./chunk-XRHDC7IT.mjs"; import { inBrowser, isBrowserOnline, isValidBrowser, isValidBrowserOnline, userAgentIsRobot } from "./chunk-XKTTPTOL.mjs"; import { callWithRetry } from "./chunk-4PW5MDZA.mjs"; import { colorToSameTypeString, hasAlpha, hexStringToRgbaColor, isHSLColor, isRGBColor, isTransparent, isValidHexString, isValidHslaString, isValidRgbaString, stringToHslaColor, stringToSameTypeColor } from "./chunk-WUG2DC4W.mjs"; import { addYears, dateTo12HourTime, differenceInCalendarDays, formatRelative, normalizeDate } from "./chunk-FSKKI4LG.mjs"; import { ClerkAPIResponseError, ClerkRuntimeError, EmailLinkError, EmailLinkErrorCode, MagicLinkError, MagicLinkErrorCode, buildErrorThrower, is4xxError, isClerkAPIResponseError, isClerkRuntimeError, isEmailLinkError, isKnownError, isMagicLinkError, isMetamaskError, isNetworkError, isUnauthorizedError, parseError, parseErrors } from "./chunk-2O574DKN.mjs"; import { deprecated, deprecatedObjectProperty, deprecatedProperty, isDevelopmentEnvironment, isProductionEnvironment, isTestEnvironment } from "./chunk-KJVJ4CFF.mjs"; import { extension, readJSONFile } from "./chunk-5JU2E5TY.mjs"; import "./chunk-NDCDZYN6.mjs"; // src/utils/createDeferredPromise.ts var createDeferredPromise = () => { let resolve = noop; let reject = noop; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return { promise, resolve, reject }; }; // src/utils/runWithExponentialBackOff.ts var defaultOptions = { firstDelay: 125, maxDelay: 0, timeMultiple: 2, shouldRetry: () => true }; var sleep = async (ms) => new Promise((s) => setTimeout(s, ms)); var createExponentialDelayAsyncFn = (opts) => { let timesCalled = 0; const calculateDelayInMs = () => { const constant = opts.firstDelay; const base = opts.timeMultiple; const delay = constant * Math.pow(base, timesCalled); return Math.min(opts.maxDelay || delay, delay); }; return async () => { await sleep(calculateDelayInMs()); timesCalled++; }; }; var runWithExponentialBackOff = async (callback, options = {}) => { let iterationsCount = 0; const { shouldRetry, firstDelay, maxDelay, timeMultiple } = { ...defaultOptions, ...options }; const delay = createExponentialDelayAsyncFn({ firstDelay, maxDelay, timeMultiple }); while (true) { try { return await callback(); } catch (e) { iterationsCount++; if (!shouldRetry(e, iterationsCount)) { throw e; } await delay(); } } }; // src/utils/logErrorInDevMode.ts var logErrorInDevMode = (message) => { if (isDevelopmentEnvironment()) { console.error(message); } }; export { ClerkAPIResponseError, ClerkRuntimeError, EmailLinkError, EmailLinkErrorCode, LocalStorageBroadcastChannel, MagicLinkError, MagicLinkErrorCode, Poller, addClerkPrefix, addYears, buildErrorThrower, buildPublishableKey, callWithRetry, camelToSnake, colorToSameTypeString, createDeferredPromise, createDevOrStagingUrlCache, createWorkerTimers, dateTo12HourTime, deepCamelToSnake, deepSnakeToCamel, deprecated, deprecatedObjectProperty, deprecatedProperty, differenceInCalendarDays, extension, formatRelative, getClerkJsMajorVersionOrTag, getRequestUrl, getScriptUrl, handleValueOrFn, hasAlpha, hexStringToRgbaColor, inBrowser, is4xxError, isBrowserOnline, isClerkAPIResponseError, isClerkRuntimeError, isDevelopmentEnvironment, isDevelopmentFromApiKey, isEmailLinkError, isHSLColor, isHttpOrHttps, isIPV4Address, isKnownError, isLegacyFrontendApiKey, isMagicLinkError, isMetamaskError, isNetworkError, isProductionEnvironment, isProductionFromApiKey, isProxyUrlRelative, isPublishableKey, isRGBColor, isStaging, isTestEnvironment, isTransparent, isUnauthorizedError, isValidBrowser, isValidBrowserOnline, isValidHexString, isValidHslaString, isValidProxyUrl, isValidRgbaString, isomorphicAtob, loadScript, logErrorInDevMode, noop, normalizeDate, parseError, parseErrors, parsePublishableKey, parseSearchParams, proxyUrlToAbsoluteURL, readJSONFile, runWithExponentialBackOff, snakeToCamel, stringToHslaColor, stringToSameTypeColor, stripScheme, titleize, toSentence, userAgentIsRobot }; //# sourceMappingURL=index.mjs.map