/** * @file Shared Utilities Index * @description Barrel export for all shared utilities. Import from this module * for convenient access to all standardized utilities. * * @module shared * * @example * ```ts * // Import specific utilities * import { sleep, withRetry, debounce } from '@/lib/shared'; * * // Import from specific module * import { isString, isObject } from '@/lib/shared/type-utils'; * ``` */ export { sleep, withRetry, RetryPolicy, retryPolicies, type RetryConfig, withTimeout, TimeoutError, debounce, type DebounceOptions, type DebouncedFn, throttle, type ThrottleOptions, type ThrottledFn, Mutex, Semaphore, CancellationToken, pMap, pSeries, withCleanup, safeAsync, safeSync, } from './async-utils'; export { isDefined, isNullish, isString, isNonEmptyString, isNumber, isFiniteNumber, isPositiveNumber, isNonNegativeNumber, isInteger, isBoolean, isSymbol, isBigInt, isFunction, isObject, isPlainObject, isArray, isNonEmptyArray, isArrayOf, isDate, isDateString, isPromise, isError, isRegExp, isMap, isSet, isWeakMap, isWeakSet, isEmail, isUrl, isUuid, isJsonString, isIsoDateString, hasKey, hasKeys, hasTypedKey, assert, isOneOf, narrow, narrowOr, createShapeGuard, createPartialShapeGuard, createUnionGuard, safeJsonParse, safeJsonParseResult, type KeysOfType, type RequireKeys, type OptionalKeys, type DeepPartial, type DeepReadonly, type NonNullableArray, type Awaited, type ReturnTypeOf, type ParametersOf, } from './type-utils'; export { type ErrorCategory, type ErrorSeverity, AppError, NetworkError, ValidationError, AuthenticationError, AuthorizationError, NotFoundError, RateLimitError, ConflictError, normalizeError, isRetryableError, isErrorCategory, isNetworkError, isValidationError, isAuthenticationError, isTimeoutError, fromHttpResponse, type Result, success, failure, tryCatch, tryCatchSync, unwrap, unwrapOr, mapResult, flatMapResult, } from './error-utils'; export { type EventHandler, type SyncEventHandler, type AsyncEventHandler, type EventListenerOptions, type Unsubscribe, type AppEvents, type IEventEmitter, SimpleEventEmitter, dedupeHandler, batchHandler, filterHandler, mapHandler, combineHandlers, addEventListener, addDisposableEventListener, dispatchCustomEvent, onCustomEvent, } from './event-utils'; export { type StorageItem, type StorageSetOptions, type StorageConfig, StorageWrapper, MemoryStorage, isLocalStorageAvailable, isSessionStorageAvailable, getLocalStorage, getSessionStorage, createLocalStorage, createSessionStorage, createMemoryStorage, setLocal, getLocal, removeLocal, setSession, getSession, removeSession, getJsonFromStorage, setJsonToStorage, onStorageChange, watchStorageKey, } from './storage-utils'; export { type ConnectionType, type EffectiveType, type NetworkQuality, type NetworkInfo, type NetworkChangeCallback, getNetworkInfo, isOnline, meetsMinimumQuality, isSlowConnection, getQualityLabel, onNetworkChange, onOnlineChange, shouldAllowPrefetch, getLoadingStrategy, getRecommendedImageQuality, pingEndpoint, measureRtt, } from './network-utils'; export { type ValidationResult, type FieldValidationResult, type SchemaValidationResult, type Validator, type AsyncValidator, type FieldSchema, validResult, invalidResult, combineResults, validateRequired, validateMinLength, validateMaxLength, validateLength, validatePattern, validateEmail, validateUrl, validatePhone, validateUuid, validateSlug, validateAlphanumeric, validateNumberRange, validateMin, validateMax, validatePositive, validateNonNegative, validateInteger, validateArrayNotEmpty, validateArrayLength, validateArrayItems, validateUnique, validateFutureDate, validatePastDate, validateDateRange, validateAge, createValidator, validateSchema, sanitizeString, stripHtml, escapeHtml, normalizeEmail, normalizePhone, createSlug, } from './validation-utils';