@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
258 lines (255 loc) • 5.41 kB
JavaScript
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