@superutils/fetch 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../../core/dist/index.js","../../../promise/dist/index.js","../../src/executeInterceptors.ts","../../src/getResponse.ts","../../src/mergeOptions.ts","../../src/types/constants.ts","../../src/types/FetchError.ts","../../src/fetch.ts","../../src/createClient.ts","../../src/createPostClient.ts","../../src/browser.ts"],"names":["fetch","delay","_PromisEBase","deferred","throttle","FetchAs","_a","_b","_c"],"mappings":"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","file":"index.min.js","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nexport * from './createClient'\nexport * from './createPostClient'\nexport * from './executeInterceptors'\nexport * from './fetch'\nexport * from './getResponse'\nexport * from './mergeOptions'\nexport * from './types'\nimport createClient from './createClient'\nimport createPostClient from './createPostClient'\nimport _fetch from './fetch'\nimport { FetchAs, FetchCustomOptions, FetchInterceptors } from './types'\n\nconst methods = {\n\t/** Make HTTP requests with method GET */\n\tget: createClient({ method: 'get' }),\n\n\t/** Make HTTP requests with method HEAD */\n\thead: createClient({ method: 'head' }),\n\n\t/** Make HTTP requests with method OPTIONS */\n\toptions: createClient({ method: 'options' }),\n\n\t/** Make HTTP requests with method DELETE */\n\tdelete: createPostClient({ method: 'delete' }),\n\n\t/** Make HTTP requests with method PATCH */\n\tpatch: createPostClient({ method: 'patch' }),\n\n\t/** Make HTTP requests with method POST */\n\tpost: createPostClient({ method: 'post' }),\n\n\t/** Make HTTP requests with method PUT */\n\tput: createPostClient({ method: 'put' }),\n}\n\n/**\n * A `fetch()` replacement that simplifies data fetching with automatic JSON parsing, request timeouts, retries,\n * and handy interceptors that also work as transformers. It also includes deferred and throttled request\n * capabilities for complex asynchronous control flows.\n *\n * Will reject promise if response status code is not 2xx (200 <= status < 300).\n *\n * ## Method Specific Functions\n *\n * While `fetch()` provides access to all HTTP request methods by specifying it in options (eg: `{ method: 'get' }`),\n * for ease of use you can also use the following:\n *\n * - `fetch.delete(...)`\n * - `fetch.get(...)`\n * - `fetch.head(...)`\n * - `fetch.options(...)`\n * - `fetch.patch(...)`\n * - `fetch.post(...)`\n * - `fetch.put(...)`\n *\n * **Deferred variants:** To debounce/throttle requests.\n *\n * - `fetch.delete.deferred(...)`\n * - `fetch.get.deferred(...)`\n * - `fetch.head.deferred(...)`\n * - `fetch.options.deferred(...)`\n * - `fetch.patch.deferred(...)`\n * - `fetch.post.deferred(...)`\n * - `fetch.put.deferred(...)`\n *\n * @template T The type of the value that the `fetch` resolves to.\n * @template TReturn Return value type.\n *\n * If `T` is not specified defaults to the following based on the value of `options.as`:\n * - FetchAs.arrayBuffer: `ArrayBuffer`\n * - FetchAs.blob: `Blob`\n * - FetchAs.bytes: `Uint8Array<ArrayBuffer>`\n * - FetchAs.formData: `FormData`\n * - FetchAs.json: `unknown`\n * - FetchAs.text: `string`\n * - FetchAs.response: `Response`\n *\n * @param url\n * @param options (optional) Standard `fetch` options extended with {@link FetchCustomOptions}\n * @param options.abortCtrl (optional) if not provided `AbortController` will be instantiated when `timeout` used.\n *\n * Default: `new AbortController()`\n * @param options.as (optional) (optional) specify how to parse the result.\n * For raw `Response` use {@link FetchAs.response}\n *\n * Default: {@link FetchAs.json}\n * @param options.headers (optional) request headers\n *\n * Default: `{ 'content-type': 'application/json' }`\n * @param options.interceptors (optional) request interceptor/transformer callbacks.\n * See {@link FetchInterceptors} for details.\n * @param options.method (optional) fetch method.\n *\n * Default: `'get'`\n * @param options.timeout (optional) duration in milliseconds to abort the request.\n * This duration includes the execution of all interceptors/transformers.\n *\n * Default: `30_000`\n *\n *\n *\n * ---\n *\n * @example\n * #### Drop-in replacement for built-in fetch\n *\n * ```javascript\n * import fetch from '@superutils/fetch'\n *\n * fetch('https://dummyjson.com/products/1')\n * .then(response => response.json())\n * .then(console.log, console.error)\n * ```\n *\n * @example\n * #### Method specific function with JSON parsing by default\n * ```javascript\n * import fetch from '@superutils/fetch'\n *\n * // no need for `response.json()` or `result.data.data` drilling\n * fetch.get('https://dummyjson.com/products/1')\n * .then(product => console.log(product))\n * fetch.get('https://dummyjson.com/products/1')\n * .then(product => console.log(product))\n *\n *\n * fetch.post('https://dummyjson.com/products/add', { title: 'Product title' })\n * .then(product => console.log(product))\n * ```\n *\n *\n * @example\n * #### Set default options.\n *\n * Options' default values (excluding `as` and `method`) can be configured to be EFFECTIVE GLOBALLY.\n *\n * ```typescript\n * import fetch from '@superutils/fetch'\n *\n * const { defaults, errorMsgs, interceptors } = fetch\n *\n * // set default request timeout duration in milliseconds\n * defaults.timeout = 40_000\n *\n * // default headers\n * defaults.headers = { 'content-type': 'text/plain' }\n *\n * // override error messages\n * errorMsgs.invalidUrl = 'URL is not valid'\n * errorMsgs.timedout = 'Request took longer than expected'\n *\n * // add an interceptor to log all request failures.\n * const fetchLogger = (fetchErr, url, options) => console.log('Fetch error log', fetchErr)\n * interceptors.error.push(fetchLogger)\n *\n * // add an interceptor to conditionally include header before making requests\n * interceptors.request.push((url, options) => {\n * \t\t// ignore login requests\n * if (`${url}`.includes('/login')) return\n *\n * options.headers.set('x-auth-token', 'my-auth-token')\n * })\n * ```\n */\nexport const fetch = _fetch as typeof _fetch & typeof methods\nfetch.delete = methods.delete\nfetch.get = methods.get\nfetch.head = methods.head\nfetch.options = methods.options\nfetch.patch = methods.patch\nfetch.post = methods.post\nfetch.put = methods.put\n\nexport default fetch\n","// src/curry.ts\nfunction curry(func, ...[arity = func.length]) {\n const curriedFn = (...args) => {\n const _args = args;\n if (_args.length >= arity) return func(...args);\n return (...nextArgs) => curriedFn(\n ..._args,\n ...nextArgs\n );\n };\n return curriedFn;\n}\n\n// src/is/isObj.ts\nvar isObj = (x, strict = true) => !!x && typeof x === \"object\" && (!strict || [\n Object.prototype,\n null\n // when an object is created using `Object.create(null)`\n].includes(Object.getPrototypeOf(x)));\nvar isObj_default = isObj;\n\n// src/is/isArr.ts\nvar isArr = (x) => Array.isArray(x);\nvar isArrObj = (x, strict = true) => isArr(x) && x.every((x2) => isObj(x2, strict));\nvar isArr2D = (x) => isArr(x) && x.every(isArr);\nvar isArrLike = (x) => isArr(x) || x instanceof Set || x instanceof Map;\nvar isArrLikeSafe = (x) => [\"[object Array]\", \"[object Map]\", \"[object Set]\"].includes(\n Object.prototype.toString.call(x)\n);\nvar isArrUnique = (x) => isArr(x) && new Set(x).size === x.length;\nvar isUint8Arr = (x) => x instanceof Uint8Array;\nvar isArr_default = isArr;\n\n// src/is/isDate.ts\nvar isDate = (x) => x instanceof Date;\nvar isDateValid = (date) => {\n const dateIsStr = typeof date === \"string\";\n if (!dateIsStr && !isDate(date)) return false;\n const dateObj = new Date(date);\n if (Number.isNaN(dateObj.getTime())) return false;\n if (!dateIsStr) return true;\n const [original, converted] = [date, dateObj.toISOString()].map(\n (y) => y.replace(/[TZ]/g, \"\").substring(0, 10)\n );\n return original === converted;\n};\nvar isDate_default = isDate;\n\n// src/is/isNumber.ts\nvar isInteger = (x) => Number.isInteger(x);\nvar isNegativeInteger = (x) => Number.isInteger(x) && x < 0;\nvar isNegativeNumber = (x) => isNumber(x) && x < 0;\nvar isNumber = (x) => typeof x === \"number\" && !Number.isNaN(x) && Number.isFinite(x);\nvar isPositiveInteger = (x) => isInteger(x) && x > 0;\nvar isPositiveNumber = (x) => isNumber(x) && x > 0;\n\n// src/is/isEmpty.ts\nvar isEmpty = (x, nonNumerable = false, fallback = false) => {\n if (x === null || x === void 0) return true;\n switch (typeof x) {\n case \"number\":\n return !isNumber(x);\n case \"string\":\n return !x.replaceAll(\"\t\", \"\").trim().length;\n case \"boolean\":\n case \"bigint\":\n case \"symbol\":\n case \"function\":\n return false;\n }\n if (x instanceof Date) return Number.isNaN(x.getTime());\n if (x instanceof Map || x instanceof Set) return !x.size;\n if (Array.isArray(x) || x instanceof Uint8Array) return !x.length;\n if (x instanceof Error) return !x.message.length;\n const proto = typeof x === \"object\" && Object.getPrototypeOf(x);\n if (proto === Object.prototype || proto === null) {\n return nonNumerable ? !Object.getOwnPropertyNames(x).length : !Object.keys(x).length;\n }\n return fallback;\n};\nvar isEmptySafe = (x, numberableOnly = false) => {\n const empty = isEmpty(x, numberableOnly, 0);\n if (empty !== 0) return empty;\n switch (Object.prototype.toString.call(x)) {\n case \"[object Uint8Array]\":\n return !x.length;\n case \"[object Date]\":\n return Number.isNaN(x.getTime());\n case \"[object Map]\":\n return !x.size;\n case \"[object Object]\":\n return !Object.keys(x).length;\n case \"[object Set]\":\n return !x.size;\n default:\n return false;\n }\n};\nvar isEmpty_default = isEmpty;\n\n// src/is/isEnv.ts\nvar isEnvBrowser = () => typeof window !== \"undefined\" && typeof (window == null ? void 0 : window.document) !== \"undefined\";\nvar isEnvNode = () => {\n var _a;\n return typeof process !== \"undefined\" && ((_a = process == null ? void 0 : process.versions) == null ? void 0 : _a.node) != null;\n};\nvar isEnvTouchable = () => {\n var _a, _b;\n return typeof window !== \"undefined\" && \"ontouchstart\" in ((_b = (_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement) != null ? _b : {});\n};\n\n// src/noop.ts\nfunction noop() {\n}\nasync function noopAsync() {\n}\n\n// src/is/isFn.ts\nvar isFn = (x) => typeof x === \"function\";\nvar isAsyncFn = (x) => x instanceof noopAsync.constructor && x[Symbol.toStringTag] === \"AsyncFunction\";\nvar isFn_default = isFn;\n\n// src/is/isMap.ts\nvar isMap = (x) => x instanceof Map;\nvar isMapObj = (x, strict = true) => isMap(x) && [...x.values()].every((value) => isObj_default(value, strict));\n\n// src/is/isUrl.ts\nvar isUrl = (x) => x instanceof URL;\nvar isUrlValid = (x, strict = true, tldExceptions = [\"localhost\"]) => {\n if (!x) return false;\n try {\n if (typeof x !== \"string\" && !isUrl(x)) return false;\n const url = isUrl(x) ? x : new URL(x);\n if (!strict) return true;\n const gotTld = tldExceptions.includes(url.hostname) || url.host.split(\".\").length > 1;\n if (!gotTld) return false;\n let y = `${x}`;\n if (y.endsWith(url.hostname)) y += \"/\";\n return url.href === y;\n } catch (_) {\n return false;\n }\n};\nvar isUrl_default = isUrl;\n\n// src/is/index.ts\nvar isBool = (x) => typeof x === \"boolean\" || x instanceof Boolean;\nvar isDefined = (x) => x !== void 0 && x !== null;\nvar isError = (x) => x instanceof Error;\nvar isPromise = (x) => x instanceof Promise;\nvar isRegExp = (x) => x instanceof RegExp;\nvar isSet = (x) => x instanceof Set;\nvar isStr = (x) => typeof x === \"string\";\nvar isSubjectLike = (x, withValue = false) => isObj_default(x, false) && isFn_default(x.subscribe) && isFn_default(x.next) && (!withValue || \"value\" in x);\nvar isSymbol = (x) => typeof x === \"symbol\";\nvar is = {\n arr: isArr_default,\n arr2D: isArr2D,\n arrLike: isArrLike,\n arrLikeSafe: isArrLikeSafe,\n arrObj: isArrObj,\n arrUnique: isArrUnique,\n asyncFn: isAsyncFn,\n bool: isBool,\n date: isDate_default,\n dateValid: isDateValid,\n defined: isDefined,\n empty: isEmpty_default,\n emptySafe: isEmptySafe,\n envBrowser: isEnvBrowser,\n envNode: isEnvNode,\n envTouchable: isEnvTouchable,\n error: isError,\n fn: isFn_default,\n integer: isInteger,\n map: isMap,\n mapObj: isMapObj,\n negativeInteger: isNegativeInteger,\n negativeNumber: isNegativeNumber,\n number: isNumber,\n obj: isObj_default,\n positiveInteger: isPositiveInteger,\n positiveNumber: isPositiveNumber,\n promise: isPromise,\n regExp: isRegExp,\n set: isSet,\n str: isStr,\n subjectLike: isSubjectLike,\n symbol: isSymbol,\n uint8Arr: isUint8Arr,\n url: isUrl_default,\n urlValid: isUrlValid\n};\n\n// src/fallbackIfFails.ts\nvar fallbackIfFails = (target, args, fallback) => {\n try {\n const result = !isFn(target) ? target : target(...isFn(args) ? args() : args);\n if (!isPromise(result)) return result;\n return result.catch(\n (err) => isFn(fallback) ? fallback(err) : fallback\n );\n } catch (err) {\n return isFn(fallback) ? fallback(err) : fallback;\n }\n};\nvar fallbackIfFails_default = fallbackIfFails;\n\n// src/toDatetimeLocal.ts\nvar toDatetimeLocal = (dateStr) => {\n const date = new Date(dateStr);\n if (!isDateValid(date)) return \"\";\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, \"0\");\n const day = date.getDate().toString().padStart(2, \"0\");\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n const res = `${year}-${month}-${day}T${hours}:${minutes}`;\n return res;\n};\n(/* @__PURE__ */ new Date()).getTime();\n\n// src/obj/objClean.ts\nvar objClean = (obj, keys, ignoreIfNotExist = true) => {\n const result = {};\n if (!isObj(obj) || !isArr(keys)) return result;\n const uniqKeys = arrUnique(\n keys.map((x) => String(x).split(\".\")[0])\n ).sort();\n for (const key of uniqKeys) {\n if (ignoreIfNotExist && !obj.hasOwnProperty(key)) continue;\n const value = obj[key];\n if (!isObj(value) || isSymbol(key)) {\n result[key] = value;\n continue;\n }\n const childPrefix = `${key}.`;\n const childKeys = keys.filter((k) => {\n var _a;\n return (_a = k == null ? void 0 : k.startsWith) == null ? void 0 : _a.call(k, childPrefix);\n }).map((k) => k.split(childPrefix)[1]);\n if (!childKeys.length) {\n result[key] = value;\n continue;\n }\n result[key] = objClean(\n value,\n childKeys\n );\n }\n return result;\n};\n\n// src/obj/objKeys.ts\nvar objKeys = (obj, sorted = true, includeSymbols = true) => (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n fallbackIfFails_default(\n () => [\n ...includeSymbols && Object.getOwnPropertySymbols(obj) || [],\n ...sorted ? Object.keys(obj).sort() : Object.keys(obj)\n ],\n [],\n []\n )\n);\nvar objKeys_default = objKeys;\n\n// src/obj/objCopy.ts\nvar clone = (value, fallback = \"null\") => JSON.parse(fallbackIfFails_default(JSON.stringify, [value], fallback));\nvar objCopy = (input, output, ignoreKeys, override = false, recursive = true) => {\n const _output = isObj(output, false) || isFn(output) ? output : {};\n if (!isObj(input, false) && !isFn(output)) return _output;\n const _ignoreKeys = new Set(ignoreKeys != null ? ignoreKeys : []);\n const inKeys = objKeys_default(input, true, true).filter(\n (x) => !_ignoreKeys.has(x)\n );\n for (const _key of inKeys) {\n const key = _key;\n const value = input[key];\n const skip = _output.hasOwnProperty(key) && (override === \"empty\" ? !isEmpty(_output[key]) : isFn(override) ? !override(key, _output[key], value) : true);\n if (skip) continue;\n const isPrimitive = [void 0, null, Infinity, NaN].includes(value) || !isObj(value, false);\n if (isPrimitive) {\n _output[key] = value;\n continue;\n }\n _output[key] = (() => {\n switch (Object.getPrototypeOf(value)) {\n case Array.prototype:\n return clone(value, \"[]\");\n case ArrayBuffer.prototype:\n return value.slice(0);\n case Date.prototype:\n return new Date(value.getTime());\n case Map.prototype:\n return new Map(\n clone(\n Array.from(\n value\n ),\n \"[]\"\n )\n );\n case RegExp.prototype:\n return new RegExp(value);\n case Set.prototype:\n return new Set(\n clone(Array.from(value))\n );\n case Uint8Array.prototype:\n return new Uint8Array([...value]);\n case URL.prototype:\n return new URL(value);\n default:\n break;\n }\n if (isSymbol(key) || !recursive) return clone(value);\n const ignoreChildKeys = [..._ignoreKeys].map(\n (x) => String(x).startsWith(String(key).concat(\".\")) && String(x).split(String(key).concat(\".\"))[1]\n ).filter(Boolean);\n if (!ignoreChildKeys.length) return clone(value);\n return objCopy(\n value,\n _output[key],\n ignoreChildKeys,\n override,\n recursive\n );\n })();\n }\n return _output;\n};\n\n// src/obj/objCreate.ts\nvar objCreate = (keys = [], values = [], result) => {\n if (!isObj(result)) result = {};\n for (let i = 0; i < (isArr(keys) ? keys : []).length; i++) {\n ;\n result[keys[i]] = values == null ? void 0 : values[i];\n }\n return result;\n};\n\n// src/obj/objHasKeys.ts\nfunction objHasKeys(input = {}, keys = [], requireValue = false) {\n if (!isObj(input) || !isArr(keys)) return false;\n for (const key of keys) {\n if (!input.hasOwnProperty(key)) return false;\n if (requireValue && isEmpty(input[key])) return false;\n }\n return true;\n}\n\n// src/obj/objReadOnly.ts\nvar objReadOnly = (obj, config) => {\n if (!isObj(obj, false)) obj = {};\n const { add, revocable, silent = true } = config != null ? config : {};\n const [typeTitle, keyTitle] = isArr(obj) ? [\"array\", \"index\"] : [\"object\", \"property name\"];\n function handleSetProp(obj2, key, value) {\n const isUpdate = obj2[key] !== void 0;\n if (isUpdate && silent) return true;\n const allowAddition = !isUpdate && (!isFn(add) ? add : add(obj2, key, value));\n const shouldThrow = !silent && (isUpdate || !allowAddition);\n if (shouldThrow)\n throw new TypeError(\n `Mutation not allow on read-only ${typeTitle} ${keyTitle}: ${key.toString()}`\n );\n if (!allowAddition) return true;\n obj2[key] = value;\n return true;\n }\n const proxyHandler = {\n get: (obj2, key) => obj2[key],\n set: handleSetProp,\n defineProperty: (obj2, key, { value }) => handleSetProp(obj2, key, value),\n // Prevent removal of properties\n deleteProperty: (obj2, key) => {\n if (!silent && obj2.hasOwnProperty(key)) {\n throw new Error(\n `Mutation not allow on read-only ${typeTitle} ${keyTitle}: ${key.toString()}`\n );\n }\n return true;\n }\n };\n return revocable ? Proxy.revocable(obj, proxyHandler) : new Proxy(obj, proxyHandler);\n};\n\n// src/obj/objSetProp.ts\nvar objSetProp = (obj, key, falsyValue, condition, truthyValue) => {\n var _a;\n const result = !isObj(obj, false) ? {} : obj;\n falsyValue != null ? falsyValue : falsyValue = result[key];\n condition = isFn(condition) ? condition((_a = result[key]) != null ? _a : falsyValue, key, obj) : condition;\n result[key] = !condition ? falsyValue : truthyValue;\n return result;\n};\nvar objSetPropUndefined = (...[obj, key, ...args]) => (obj == null ? void 0 : obj[key]) === void 0 && objSetProp(obj, key, ...args) || obj;\n\n// src/obj/objSort.ts\nvar objSort = (obj, recursive = true, _done = /* @__PURE__ */ new Map()) => {\n const sorted = {};\n if (!isObj(obj)) return sorted;\n for (const key of objKeys_default(obj)) {\n const value = obj[key];\n _done.set(value, true);\n sorted[key] = !recursive || !isObj(value) ? value : objSort(\n value,\n recursive,\n _done\n );\n }\n return sorted;\n};\n\n// src/obj/objWithoutKeys.ts\nvar objWithoutKeys = (input, keys, output) => {\n if (!isObj(input, false)) return {};\n if (!isArr(keys) || !keys.length) return input;\n output = {\n ...isObj(output, false) && output,\n ...input\n };\n for (const key of keys) delete output[key];\n return output;\n};\n\n// src/arr/arrReadOnly.ts\nvar arrReadOnly = (arr, config = {}) => objReadOnly(new ReadOnlyArrayHelper(config, arr), config);\nvar ReadOnlyArrayHelper = class extends Array {\n constructor(config, arr) {\n var _a;\n (_a = config.silent) != null ? _a : config.silent = true;\n super(...arr);\n this.config = config;\n this.ignoreOrThrow = (returnValue) => {\n if (this.config.silent) return returnValue;\n throw new Error(\"Mutation not allowed on read-only array\");\n };\n this.pop = () => this.ignoreOrThrow(this[this.length - 1]);\n this.push = (...items) => !this.config.add ? this.ignoreOrThrow(this.length) : super.push(...items);\n this.reverse = () => this.ignoreOrThrow(this);\n this.shift = () => this.ignoreOrThrow(this[0]);\n this.splice = (..._ignoredArgs) => this.ignoreOrThrow([]);\n this.unshift = (..._ignoredArgs) => this.ignoreOrThrow(this.length);\n }\n // fromAsync = super.fromAsync\n // reduce = super.reduce\n // reduceRight = super.reduceRight\n};\n\n// src/arr/arrReverse.ts\nvar arrReverse = (arr, reverse2 = true, newArray = false) => {\n if (!isArr(arr)) return [];\n if (newArray) arr = [...arr];\n return reverse2 ? arr.reverse() : arr;\n};\n\n// src/arr/arrToMap.ts\nfunction arrToMap(arr, key, flatDepth = 0) {\n ;\n [key, flatDepth] = isNumber(key) ? [void 0, key] : [key, flatDepth];\n const flatEntries = (!isArr(arr) ? [] : flatDepth > 0 ? arr.flat(flatDepth) : arr).map((item, i, flatArr) => {\n var _a;\n return [\n (_a = isFn(key) ? key(item, i, flatArr) : isObj(item) && isDefined(key) ? item[key] : i) != null ? _a : i,\n item\n ];\n });\n return new Map(flatEntries);\n}\n\n// src/arr/arrUnique.ts\nvar arrUnique = (arr, flatDepth = 0) => !isArr(arr) ? [] : Array.from(new Set(arr.flat(flatDepth)));\n\n// src/deferred/debounce.ts\nvar debounce = (callback, delay = 50, config = {}) => {\n const {\n leading = debounce.defaults.leading,\n onError = debounce.defaults.onError,\n thisArg\n } = config;\n let { tid } = config;\n if (thisArg !== void 0) callback = callback.bind(thisArg);\n const _callback = (...args) => fallbackIfFails_default(callback, args, onError);\n let firstArgs = null;\n const leadingGlobal = leading === \"global\";\n return (...args) => {\n clearTimeout(tid);\n tid = setTimeout(() => {\n firstArgs !== args && _callback(...args);\n firstArgs = leadingGlobal ? true : null;\n }, delay);\n if (!leading || firstArgs) return;\n firstArgs = args;\n _callback(...args);\n };\n};\ndebounce.defaults = {\n /**\n * Set the default value of argument `leading` for the `deferred` function.\n * This change is applicable application-wide and only applies to any new invocation of `deferred()`.\n */\n leading: false,\n /**\n * Set the default value of argument `onError` for the `deferred` function.\n * This change is applicable application-wide and only applies to any new invocation of `deferred()`.\n */\n onError: void 0\n};\nvar debounce_default = debounce;\n\n// src/deferred/throttle.ts\nvar throttle = (callback, delay = 50, config = {}) => {\n const { defaults: d } = throttle;\n const { onError = d.onError, trailing = d.trailing, thisArg } = config;\n let { tid } = config;\n const handleCallback = (...args) => fallbackIfFails_default(\n thisArg !== void 0 ? callback.bind(thisArg) : callback,\n args,\n !isFn(onError) ? void 0 : (err) => fallbackIfFails_default(onError, [err], void 0)\n );\n let trailArgs = null;\n return (...args) => {\n if (tid) {\n trailArgs = args;\n return;\n }\n tid = setTimeout(() => {\n tid = void 0;\n if (!trailing) return;\n const cbArgs = trailArgs;\n trailArgs = null;\n cbArgs && cbArgs !== args && handleCallback(...cbArgs);\n }, delay);\n handleCallback(...args);\n };\n};\nthrottle.defaults = {\n onError: void 0,\n trailing: false\n};\nvar throttled = throttle;\nvar throttle_default = throttle;\n\n// src/deferred/deferred.ts\nvar deferred = (callback, delay = 50, config = {}) => config.throttle ? throttle_default(callback, delay, config) : debounce_default(callback, delay, config);\n\n// src/iterable/filter.ts\nvar filter = (data, predicate, limit, asArray, result) => {\n var _a;\n if (!isMap(result)) result = /* @__PURE__ */ new Map();\n if (!isPositiveInteger(limit)) limit = Infinity;\n for (const [key, item] of ((_a = data == null ? void 0 : data.entries) == null ? void 0 : _a.call(data)) || []) {\n if (result.size >= limit) break;\n fallbackIfFails_default(predicate != null ? predicate : item, [item, key, data], false) && result.set(key, item);\n }\n return asArray ? [...result.values()] : result;\n};\nvar filter_default = filter;\n\n// src/iterable/getSize.ts\nvar getSize = (x) => {\n if (!x) return 0;\n try {\n const s = \"size\" in x ? x.size : \"length\" in x ? x.length : 0;\n return isNumber(s) ? s : 0;\n } catch (_) {\n return 0;\n }\n};\nvar getSize_default = getSize;\n\n// src/iterable/getValues.ts\nvar getValues = (data) => {\n var _a;\n return [\n ...((_a = data == null ? void 0 : data.values) == null ? void 0 : _a.call(data)) || []\n ];\n};\nvar getValues_default = getValues;\n\n// src/iterable/search.ts\nvar search = (data, options) => {\n var _a;\n const ignore = !getSize_default(data) || isEmpty(options == null ? void 0 : options.query);\n const result = isMap(options == null ? void 0 : options.result) ? options.result : /* @__PURE__ */ new Map();\n const asMap = (_a = options == null ? void 0 : options.asMap) != null ? _a : search.defaults.asMap;\n if (ignore) return asMap ? result : getValues_default(result);\n options = objCopy(\n search.defaults,\n options,\n [],\n \"empty\"\n // override `option` property with default value when \"empty\" (undefined, null, '',....)\n );\n const {\n ignoreCase,\n limit = Infinity,\n matchAll,\n matchExact,\n ranked\n } = options;\n let { query } = options;\n const qIsStr = isStr(query);\n const qIsRegExp = isRegExp(query);\n const qKeys = fallbackIfFails_default(Object.keys, [query], []);\n if (ignoreCase && !matchExact && !qIsRegExp) {\n query = qIsStr ? query.toLowerCase() : objCreate(\n qKeys,\n Object.values(query).map(\n (x) => isRegExp(x) ? x : `${x}`.toLowerCase()\n )\n );\n }\n options.query = query;\n if (!ranked) {\n for (const [dataKey, dataValue] of data.entries()) {\n if (result.size >= limit) break;\n const matched = qIsStr || qIsRegExp ? (\n // global search across all properties\n matchObjOrProp(options, dataValue, void 0) >= 0\n ) : (\n // field-specific search\n qKeys[matchAll ? \"every\" : \"some\"](\n (key) => matchObjOrProp(options, dataValue, key) >= 0\n )\n );\n if (!matched) continue;\n result.set(dataKey, dataValue);\n }\n } else {\n const preRankedResults = [];\n for (const [dataKey, dataValue] of data.entries()) {\n let matchIndex = -1;\n if (qIsStr || qIsRegExp) {\n matchIndex = matchObjOrProp(options, dataValue, void 0);\n matchIndex >= 0 && preRankedResults.push([matchIndex, dataKey, dataValue]);\n continue;\n }\n const indexes = [];\n const match = qKeys[matchAll ? \"every\" : \"some\"](\n // field-specific search\n (key) => {\n const index = matchObjOrProp(options, dataValue, key);\n indexes.push(index);\n return index >= 0;\n }\n );\n if (!match) continue;\n matchIndex = // eslint-disable-next-line @typescript-eslint/prefer-find\n indexes.sort((a, b) => a - b).filter((n) => n !== -1)[0];\n matchIndex >= 0 && preRankedResults.push([matchIndex, dataKey, dataValue]);\n }\n preRankedResults.sort((a, b) => a[0] - b[0]).slice(0, limit).forEach(([_, key, value]) => result.set(key, value));\n }\n return asMap ? result : getValues_default(result);\n};\nsearch.defaults = {\n asMap: true,\n ignoreCase: true,\n limit: Infinity,\n matchAll: false,\n ranked: false,\n transform: true\n};\nfunction matchObjOrProp({\n query,\n ignoreCase,\n matchExact,\n transform = true\n}, item, propertyName) {\n var _a, _b;\n const global = isStr(query) || isRegExp(query) || propertyName === void 0;\n const keyword = global ? query : query[propertyName];\n const propVal = global || !isObj(item) ? item : item[propertyName];\n const value = fallbackIfFails_default(\n () => isFn(transform) ? transform(\n item,\n global ? void 0 : propVal,\n propertyName\n ) : matchExact && transform === false ? propVal : isObj(propVal, false) ? JSON.stringify(\n isArrLike(propVal) ? [...propVal.values()] : Object.values(propVal)\n ) : String(propVal != null ? propVal : \"\"),\n [],\n \"\"\n );\n if (value === keyword) return 0;\n if (matchExact && !isRegExp(keyword)) return -1;\n let valueStr = String(value);\n if (!valueStr.trim()) return -1;\n if (isRegExp(keyword)) return (_b = (_a = valueStr.match(keyword)) == null ? void 0 : _a.index) != null ? _b : -1;\n if (ignoreCase) valueStr = valueStr.toLowerCase();\n return valueStr.indexOf(String(keyword));\n}\nvar search_default = search;\n\n// src/iterable/find.ts\nfunction find(data, optsOrCb) {\n const result = isFn(optsOrCb) ? filter_default(data, optsOrCb, 1) : search_default(data, { ...optsOrCb, asMap: true, limit: 1 });\n return result[\n (optsOrCb == null ? void 0 : optsOrCb.includeKey) ? \"entries\" : \"values\"\n // returns: value\n ]().next().value;\n}\n\n// src/iterable/getEntries.ts\nvar getEntries = (map) => {\n var _a;\n return [\n ...((_a = map == null ? void 0 : map.entries) == null ? void 0 : _a.call(map)) || []\n ];\n};\n\n// src/iterable/getKeys.ts\nvar getKeys = (data) => {\n var _a;\n return [\n ...((_a = data == null ? void 0 : data.keys) == null ? void 0 : _a.call(data)) || []\n ];\n};\n\n// src/iterable/reverse.ts\nvar reverse = (data, reverse2 = true, newInstance = false) => {\n var _a, _b, _c;\n const dataType = isArr(data) ? 1 : isMap(data) ? 2 : isSet(data) ? 3 : 0;\n if (!dataType) return [];\n const arr = dataType === 1 ? !newInstance ? data : [...data] : dataType === 2 ? [...data.entries()] : [...data.values()];\n if (reverse2) arr.reverse();\n switch (dataType) {\n case 1:\n return arr;\n case 2:\n case 3:\n if (newInstance || !(\"clear\" in data && isFn(data.clear)))\n return dataType === 2 ? new Map(arr) : new Set(arr);\n }\n (_a = data == null ? void 0 : data.clear) == null ? void 0 : _a.call(data);\n for (const item of arr)\n \"set\" in data ? (_b = data.set) == null ? void 0 : _b.call(data, ...item) : \"add\" in data && ((_c = data == null ? void 0 : data.add) == null ? void 0 : _c.call(data, item));\n return data;\n};\n\n// src/iterable/sliceMap.ts\nvar sliceMap = (data, options) => {\n var _a;\n const {\n asMap = false,\n end,\n start = 0,\n transform,\n ignoreEmpty = true\n } = isFn(options) ? { transform: options } : isObj(options) ? options : {};\n const result = /* @__PURE__ */ new Map();\n const subset = [...((_a = data == null ? void 0 : data.entries) == null ? void 0 : _a.call(data)) || []].slice(start, end);\n for (const [_, [key, value]] of subset.entries()) {\n if (ignoreEmpty && isEmpty(value)) continue;\n const newValue = fallbackIfFails_default(\n transform != null ? transform : value,\n [value, key, data],\n void 0\n );\n newValue !== void 0 && result.set(key, newValue);\n }\n return asMap ? result : [...result.values()];\n};\n\n// src/iterable/sort.ts\nfunction sort(data, keyOrFn, options) {\n const dataType = isArr(data) ? 1 : isMap(data) ? 2 : isSet(data) ? 3 : 0;\n if (!dataType) return data;\n const { asString, ignoreCase, newInstance, reverse: reverse2, undefinedFirst } = {\n ...sort.defaults,\n ...isObj(options) ? options : isObj(keyOrFn) ? keyOrFn : {}\n };\n if (dataType === 1 && isFn(keyOrFn)) {\n return arrReverse(\n data.sort(keyOrFn),\n // use provided comparator function\n reverse2,\n newInstance\n );\n }\n const alt = asString ? undefinedFirst ? \"\" : \"Z\".repeat(10) : undefinedFirst ? -Infinity : Infinity;\n const sorted = isFn(keyOrFn) ? arrReverse(\n // handle Set with comparator function\n [...data.entries()].sort(keyOrFn),\n reverse2,\n false\n // not required because of entries() & spread\n ) : (() => {\n let index = 1;\n const getVal = (target) => {\n const val = isObj(target) && index !== 0 ? target[keyOrFn] : target;\n if (!asString) return val;\n const value = `${val != null ? val : alt}`;\n return ignoreCase ? value.toLowerCase() : value;\n };\n const [gt, lt] = reverse2 ? [-1, 1] : [1, -1];\n if ([1, 3].includes(dataType)) {\n return (dataType === 3 || newInstance ? [...data] : data).sort((a, b) => getVal(a) > getVal(b) ? gt : lt);\n }\n index = keyOrFn === true ? 0 : 1;\n return [...data.entries()].sort(\n (a, b) => getVal(a == null ? void 0 : a[index]) > getVal(b == null ? void 0 : b[index]) ? gt : lt\n );\n })();\n if (dataType === 1) return sorted;\n if (newInstance) {\n return dataType === 2 ? new Map(sorted) : new Set(sorted);\n }\n ;\n data.clear();\n for (const entry of sorted)\n dataType === 2 ? data.set(...entry) : data.add(entry);\n return data;\n}\nsort.defaults = {\n asString: true,\n ignoreCase: true,\n newInstance: false,\n reverse: false,\n undefinedFirst: false\n};\n\n// src/map/mapJoin.ts\nvar mapJoin = (...inputs) => {\n var _a;\n return new Map(\n (_a = inputs == null ? void 0 : inputs.flatMap) == null ? void 0 : _a.call(\n inputs,\n (input) => isMap(input) ? Array.from(input.entries()) : isArr2D(input) ? input : []\n )\n );\n};\n\n// src/number/randomInt.ts\nvar randomInt = (min = 0, max = Number.MAX_SAFE_INTEGER) => parseInt(`${Math.random() * (max - min) + min}`);\n\n// src/str/clearClutter.ts\nvar clearClutter = (text, lineSeparator = \" \") => `${text}`.split(\"\\n\").map((ln) => ln.trim()).filter(Boolean).join(lineSeparator);\n\n// src/str/copyToClipboard.ts\nvar copyToClipboard = (str) => fallbackIfFails(\n // First attempt: modern clipboard API\n () => navigator.clipboard.writeText(str).then(() => 1),\n [],\n // If clipboard API is not available or fails, use the fallback method\n () => Promise.resolve(copyLegacy(str) ? 2 : 0)\n);\nvar copyLegacy = (str) => fallbackIfFails(\n () => {\n const el = document.createElement(\"textarea\");\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n el.select();\n const success = document.execCommand(\"copy\");\n document.body.removeChild(el);\n return success;\n },\n [],\n false\n // On error, return false\n);\n\n// src/str/getUrlParam.ts\nvar getUrlParam = (name, url, asArray) => {\n var _a;\n url != null ? url : url = fallbackIfFails_default(() => window.location.href, [], \"\");\n const _asArray = isArr(asArray) ? asArray : asArray === true && isStr(name) ? [name] : [];\n const prepareResult = (value = \"\", values = {}) => name ? isArr(value) || !_asArray.includes(name) ? value : [value].filter(Boolean) : values;\n if (!url) return prepareResult();\n if (typeof URLSearchParams === \"undefined\" || !URLSearchParams) {\n const r = getUrlParamRegex(name, url, _asArray);\n return prepareResult(r, r);\n }\n const search2 = isUrl(url) ? url.search : ((_a = url.split(\"?\")) == null ? void 0 : _a[1]) || \"\";\n if (search2 === \"?\" || !search2) return prepareResult();\n const params = new URLSearchParams(search2);\n const getValue = (paramName) => {\n const value = arrUnique(params.getAll(paramName));\n return value.length > 1 || _asArray.includes(paramName) ? value : value[0];\n };\n if (name) return prepareResult(getValue(name));\n const result = {};\n for (const name2 of arrUnique([...params.keys()])) {\n result[name2] = getValue(name2);\n }\n return result;\n};\nvar getUrlParamRegex = (name, url, asArray = []) => {\n url != null ? url : url = fallbackIfFails_default(() => window.location.href, [], \"\");\n if (isUrl(url)) url = url.toString();\n const params = {};\n const regex = /[?&]+([^=&]+)=([^&]*)/gi;\n url == null ? void 0 : url.replace(regex, (_, name2, value) => {\n value = decodeURIComponent(value);\n if (asArray.includes(name2) || params[name2] !== void 0) {\n params[name2] = isArr(params[name2]) ? params[name2] : [params[name2]];\n params[name2] = arrUnique([...params[name2], value]).filter(Boolean);\n } else {\n params[name2] = value;\n }\n return \"\";\n });\n return name ? params[name] : params;\n};\n\n// src/str/regex.ts\nvar EMAIL_REGEX = new RegExp(\n /^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,9}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i\n);\nvar HEX_REGEX = /^0x[0-9a-f]+$/i;\nvar HASH_REGEX = /^0x[0-9a-f]{64}$/i;\n\n// src/str/strToArr.ts\nvar strToArr = (value, seperator = \",\") => typeof value === \"string\" && value.split(seperator).filter(Boolean) || [];\nexport {\n EMAIL_REGEX,\n HASH_REGEX,\n HEX_REGEX,\n ReadOnlyArrayHelper,\n arrReadOnly,\n arrReverse,\n arrToMap,\n arrUnique,\n clearClutter,\n copyToClipboard,\n curry,\n debounce,\n deferred,\n fallbackIfFails,\n filter,\n find,\n getEntries,\n getKeys,\n getSize,\n getUrlParam,\n getValues,\n is,\n isArr,\n isArr2D,\n isArrLike,\n isArrLikeSafe,\n isArrObj,\n isArrUnique,\n isAsyncFn,\n isBool,\n isDate,\n isDateValid,\n isDefined,\n isEmpty,\n isEmptySafe,\n isEnvBrowser,\n isEnvNode,\n isEnvTouchable,\n isError,\n isFn,\n isInteger,\n isMap,\n isMapObj,\n isNegativeInteger,\n isNegativeNumber,\n isNumber,\n isObj,\n isPositiveInteger,\n isPositiveNumber,\n isPromise,\n isRegExp,\n isSet,\n isStr,\n isSubjectLike,\n isSymbol,\n isUint8Arr,\n isUrl,\n isUrlValid,\n mapJoin,\n matchObjOrProp,\n noop,\n noopAsync,\n objClean,\n objCopy,\n objCreate,\n objHasKeys,\n objKeys,\n objReadOnly,\n objSetProp,\n objSetPropUndefined,\n objSort,\n objWithoutKeys,\n randomInt,\n reverse,\n search,\n sliceMap,\n sort,\n strToArr,\n throttle,\n throttled,\n toDatetimeLocal\n};\n","// src/deferred.ts\nimport {\n deferred as deferredSync,\n fallbackIfFails as fallbackIfFails2,\n isFn as isFn2,\n isPositiveNumber,\n objCopy\n} from \"@superutils/core\";\n\n// src/PromisEBase.ts\nimport { fallbackIfFails, isFn, isPromise } from \"@superutils/core\";\nvar _PromisEBase = class _PromisEBase extends Promise {\n constructor(input) {\n let _resolve;\n let _reject;\n super((resolve, reject) => {\n _reject = (reason) => {\n reject(reason);\n this._state = 2;\n this.onFinalize.forEach(\n (fn) => fallbackIfFails(fn, [void 0, reason], void 0)\n );\n };\n _resolve = (value) => {\n resolve(value);\n this._state = 1;\n this.onFinalize.forEach(\n (fn) => fallbackIfFails(fn, [value, void 0], void 0)\n );\n };\n if (isFn(input)) {\n fallbackIfFails(input, [_resolve, _reject], _reject);\n } else if (isPromise(input)) {\n input.then(_resolve, _reject);\n } else if (input !== void 0) {\n _resolve(input);\n }\n });\n this._state = 0;\n /**\n * callbacks to be invoked whenever PromisE instance is finalized early using non-static resolve()/reject() methods */\n this.onEarlyFinalize = [];\n this.onFinalize = [];\n //\n //\n // --------------------------- Early resolve/reject ---------------------------\n //\n //\n /** Resovle pending promise early. */\n this.resolve = (value) => {\n var _a, _b;\n if (!this.pending) return;\n (_a = this._resolve) == null ? void 0 : _a.call(this, value);\n (_b = this.onEarlyFinalize) == null ? void 0 : _b.forEach((fn) => {\n fallbackIfFails(fn, [true, value], void 0);\n });\n };\n /** Reject pending promise early. */\n this.reject = (reason) => {\n var _a, _b;\n if (!this.pending) return;\n (_a = this._reject) == null ? void 0 : _a.call(this, reason);\n (_b = this.onEarlyFinalize) == null ? void 0 : _b.forEach((fn) => {\n fallbackIfFails(fn, [false, reason], void 0);\n });\n };\n this._resolve = _resolve;\n this._reject = _reject;\n }\n //\n //\n //-------------------- Status related read-only attributes --------------------\n //\n //\n /** Indicates if the promise is still pending/unfinalized */\n get pending() {\n return this.state === 0;\n }\n /** Indicates if the promise has been rejected */\n get rejected() {\n return this.state === 2;\n }\n /** Indicates if the promise has been resolved */\n get resolved() {\n return this.state === 1;\n }\n /**\n * Get promise status code:\n *\n * - `0` = pending\n * - `1` = resolved\n * - `2` = rejected\n */\n get state() {\n return this._state;\n }\n};\n//\n//\n// Extend all static `Promise` methods\n//\n//\n/** Sugar for `new PromisE(Promise.all(...))` */\n_PromisEBase.all = (values) => new _PromisEBase(globalThis.Promise.all(values));\n/** Sugar for `new PromisE(Promise.allSettled(...))` */\n_PromisEBase.allSettled = (values) => new _PromisEBase(globalThis.Promise.allSettled(values));\n/** Sugar for `new PromisE(Promise.any(...))` */\n_PromisEBase.any = (values) => new _PromisEBase(globalThis.Promise.any(values));\n/** Sugar for `new PromisE(Promise.race(..))` */\n_PromisEBase.race = (values) => new _PromisEBase(globalThis.Promise.race(values));\n/** Extends Promise.reject */\n_PromisEBase.reject = (reason) => {\n const promise = new _PromisEBase();\n queueMicrotask(() => promise.reject(reason));\n return promise;\n};\n/** Sugar for `new PromisE(Promise.resolve(...))` */\n_PromisEBase.resolve = (value) => new _PromisEBase(\n globalThis.Promise.resolve(value)\n);\n/** Sugar for `new PromisE(Promise.try(...))` */\n_PromisEBase.try = (callbackFn, ...args) => new _PromisEBase(\n (resolve) => resolve(\n // Promise.try is not supported in Node < 23.\n fallbackIfFails(\n callbackFn,\n args,\n // rethrow error to ensure the returned promise is rejected\n (err) => globalThis.Promise.reject(err)\n )\n )\n);\n/**\n * Creates a `PromisE` instance and returns it in an object, along with its `resolve` and `reject` functions.\n *\n * NB: this function is technically no longer needed because the `PromisE` class already comes with the resolvers.\n *\n * ---\n * @example\n * Using `PromisE` directly: simply provide an empty function as the executor\n *\n * ```typescript\n * import PromisE from '@superutils/promise'\n * const promisE = new PromisE<number>(() => {})\n * setTimeout(() => promisE.resolve(1), 1000)\n * promisE.then(console.log)\n * ```\n *\n * @example\n * Using `withResolvers`\n * ```typescript\n * import PromisE from '@superutils/promise'\n * const pwr = PromisE.withResolvers<number>()\n * setTimeout(() => pwr.resolve(1), 1000)\n * pwr.promise.then(console.log)\n * ```\n */\n_PromisEBase.withResolvers = () => {\n const promise = new _PromisEBase();\n return { promise, reject: promise.reject, resolve: promise.resolve };\n};\nvar PromisEBase = _PromisEBase;\nvar PromisEBase_default = PromisEBase;\n\n// src/types/deferred.ts\nvar ResolveError = /* @__PURE__ */ ((ResolveError2) => {\n ResolveError2[\"NEVER\"] = \"NEVER\";\n ResolveError2[\"REJECT\"] = \"REJECT\";\n ResolveError2[\"WITH_ERROR\"] = \"RESOLVE_ERROR\";\n ResolveError2[\"WITH_UNDEFINED\"] = \"RESOLVE_UNDEFINED\";\n return ResolveError2;\n})(ResolveError || {});\nvar ResolveIgnored = /* @__PURE__ */ ((ResolveIgnored2) => {\n ResolveIgnored2[\"NEVER\"] = \"NEVER\";\n ResolveIgnored2[\"WITH_LAST\"] = \"WITH_LAST\";\n ResolveIgnored2[\"WITH_UNDEFINED\"] = \"WITH_UNDEFINED\";\n return ResolveIgnored2;\n})(ResolveIgnored || {});\n\n// src/deferred.ts\nfunction deferred(options = {}) {\n let sequence = 0;\n options = objCopy(\n deferred.defaults,\n options,\n [],\n \"empty\"\n );\n let { onError, onIgnore, onResult } = options;\n const {\n delay: delay2 = 0,\n ignoreStale,\n resolveError,\n resolveIgnored,\n thisArg,\n throttle\n } = options;\n let lastInSeries = null;\n let lastExecuted;\n const queue = /* @__PURE__ */ new Map();\n const isSequential = !isPositiveNumber(delay2);\n if (thisArg !== void 0) {\n onError = onError == null ? void 0 : onError.bind(thisArg);\n onIgnore = onIgnore == null ? void 0 : onIgnore.bind(thisArg);\n onResult = onResult == null ? void 0 : onResult.bind(thisArg);\n }\n const handleIgnore = (items) => {\n for (const [iId, iItem] of items) {\n queue.delete(iId);\n const isStale = ignoreStale && iItem.sequence < lastExecuted.sequence;\n if (iItem.resolved || iItem.started && !isStale) continue;\n if (iItem.started) {\n iItem.getPromise = (() => iItem.result);\n }\n fallbackIfFails2(onIgnore, [iItem.getPromise], 0);\n switch (resolveIgnored) {\n case \"WITH_UNDEFINED\" /* WITH_UNDEFINED */:\n iItem.resolve(void 0);\n break;\n case \"WITH_LAST\" /* WITH_LAST */:\n lastExecuted == null ? void 0 : lastExecuted.then(iItem.resolve, iItem.reject);\n break;\n case \"NEVER\" /* NEVER */:\n break;\n }\n }\n if (!queue.size) sequence = 0;\n };\n const handleRemaining = (currentId) => {\n lastInSeries = null;\n if (isSequential) {\n queue.delete(currentId);\n const [nextId, nextItem] = [...queue.entries()][0] || [];\n return nextId && nextItem && handleItem(nextId, nextItem);\n }\n let items = [...queue.entries()];\n if (throttle === true && options.trailing) {\n const currentIndex = items.findIndex(([id]) => id === currentId);\n items = items.slice(0, currentIndex);\n } else if (!throttle) {\n items = items.slice(0, -1);\n }\n handleIgnore(items);\n queue.delete(currentId);\n };\n const executeItem = async (id, qItem) => {\n var _a;\n try {\n qItem.started = true;\n lastExecuted = qItem;\n lastInSeries = qItem;\n (_a = qItem.result) != null ? _a : qItem.result = PromisEBase_default.try(qItem.getPromise);\n const result = await qItem.result;\n const isStale = !!ignoreStale && qItem.sequence < lastExecuted.sequence;\n if (isStale) return handleIgnore([[id, qItem]]);\n qItem.resolve(result);\n onResult && fallbackIfFails2(onResult, [result], void 0);\n } catch (err) {\n onError && fallbackIfFails2(onError, [err], void 0);\n switch (resolveError) {\n case \"REJECT\" /* REJECT */:\n qItem.reject(err);\n // eslint-disable-next-line no-fallthrough\n case \"NEVER\" /* NEVER */:\n break;\n case \"RESOLVE_UNDEFINED\" /* WITH_UNDEFINED */:\n qItem.resolve(void 0);\n break;\n case \"RESOLVE_ERROR\" /* WITH_ERROR */:\n qItem.resolve(err);\n break;\n }\n }\n handleRemaining(id);\n };\n const handleItem = isSequential ? executeItem : deferredSync(\n executeItem,\n delay2,\n options\n );\n return (promise) => {\n const id = /* @__PURE__ */ Symbol(\"deferred-queue-item-id\");\n const qItem = new PromisEBase_default();\n qItem.getPromise = isFn2(promise) ? promise : () => promise;\n qItem.started = false;\n qItem.sequence = ++sequence;\n queue.set(id, qItem);\n if (!lastInSeries || !isSequential) handleItem(id, qItem);\n return qItem;\n };\n}\ndeferred.defaults = {\n /**\n * Default delay in milliseconds, used in `debounce` and `throttle` modes.\n *\n * Use `0` (or negative number) to disable debounce/throttle and execute all operations sequentially.\n */\n delay: 100,\n /** Set the default error resolution behavior. {@link ResolveError} for all options. */\n resolveError: \"REJECT\" /* REJECT */,\n /** Set the default ignored resolution behavior. See {@link ResolveIgnored} for all options. */\n resolveIgnored: \"WITH_LAST\" /* WITH_LAST */\n};\nvar deferred_default = deferred;\n\n// src/deferredCallback.ts\nfunction deferredCallback(callback, options = {}) {\n const { thisArg } = options;\n if (thisArg !== void 0) callback = callback.bind(thisArg);\n const deferPromise = deferred_default(options);\n return (...args) => deferPromise(() => callback(...args));\n}\nvar deferredCallback_default = deferredCallback;\n\n// src/delay.ts\nimport { fallbackIfFails as fallbackIfFails3, isFn as isFn3 } from \"@superutils/core\";\nfunction delay(duration = delay.defaults.duration, result, asRejected = false) {\n const promise = new PromisEBase_default();\n const finalize = (result2) => {\n const _result = fallbackIfFails3(\n async () => {\n const _result2 = await (isFn3(result2) ? result2() : result2);\n return !asRejected ? _result2 != null ? _result2 : duration : _result2 != null ? _result2 : new Error(\n `${delay.defaults.delayTimeoutMsg} ${duration}ms`\n );\n },\n [],\n // when result is a function and it fails/rejects,\n // promise will reject even if `asRejected = false`\n (err) => Promise.reject(err)\n );\n !asRejected ? promise.resolve(_result) : _result.then(promise.reject, promise.reject);\n };\n promise.timeoutId = setTimeout(() => finalize(result), duration);\n promise.pause = () => clearTimeout(promise.timeoutId);\n promise.catch(() => {\n }).finally(() => promise.pause());\n promise.onEarlyFinalize.push(() => promise.pause());\n return promise;\n}\ndelay.defaults = {\n /** Default delay duration in milliseconds */\n duration: 100,\n /** Default timed out message (if `result` is not provided) */\n delayTimeoutMsg: \"Timed out after\"\n};\nvar delay_default = delay;\n\n// src/delayReject.ts\nfunction delayReject(duration, reason) {\n return delay_default(duration, reason, true);\n}\nvar delayReject_default = delayReject;\n\n// src/retry.ts\nimport {\n fallbackIfFails as fallbackIfFails4,\n isEmpty,\n isPositiveInteger,\n objCopy as objCopy2\n} from \"@superutils/core\";\nvar retry = async (func, options) => {\n var _a, _b;\n options = objCopy2(retry.defaults, options != null ? options : {}, [], (key, value) => {\n switch (key) {\n // case 'retryDelayJitter':\n // \treturn true\n case \"retry\":\n // eslint-disable-next-line no-fallthrough\n case \"retryDelay\":\n case \"retryDelayJitterMax\":\n return value !== 0 && !isPositiveInteger(value);\n }\n return !!isEmpty(value);\n });\n const {\n retry: maxRetries,\n retryBackOff,\n retryDelay,\n retryDelayJitter,\n retryDelayJitterMax\n } = options;\n let _retryDelay = retryDelay;\n let retryCount = -1;\n let result;\n let error;\n let shouldRetry = false;\n do {\n retryCount++;\n if (retryBackOff === \"exponential\" && retryCount > 1) _retryDelay *= 2;\n if (retryDelayJitter)\n _retryDelay += Math.floor(Math.random() * retryDelayJitterMax);\n if (retryCount > 0) await delay_default(_retryDelay);\n try {\n error = void 0;\n result = await func();\n } catch (err) {\n error = err;\n }\n if (maxRetries === 0 || retryCount >= maxRetries) break;\n shouldRetry = !!((_b = await fallbackIfFails4(\n (_a = options.retryIf) != null ? _a : error,\n // if `retryIf` not provided, retry on error\n [result, retryCount, error],\n error\n // if `retryIf` throws error, default to retry on error\n )) != null ? _b : error);\n } while (shouldRetry);\n if (error !== void 0) return Promise.reject(error);\n return result;\n};\nretry.defaults = {\n retry: 1,\n retryBackOff: \"exponential\",\n retryDelay: 300,\n retryDelayJitter: true,\n retryDelayJitterMax: 100\n};\nvar retry_default = retry;\n\n// src/timeout.ts\nimport {\n arrUnique as arrUnique2,\n isFn as isFn4,\n isNumber,\n isObj as isObj2,\n isPositiveNumber as isPositiveNumber2,\n objCopy as objCopy3\n} from \"@superutils/core\";\n\n// src/TimeoutPromise.ts\nimport { arrUnique, fallbackIfFails as fallbackIfFails5, isObj } from \"@superutils/core\";\nvar TIMEOUT_FALLBACK = 1e4;\nvar TIMEOUT_MAX = 2147483647;\nvar TimeoutPromise = class extends PromisEBase_default {\n constructor(data, timeout2, options, _signals) {\n super(data);\n this.started = /* @__PURE__ */ new Date();\n this._setup = () => {\n var _a, _b, _c, _d;\n this._signals = arrUnique(\n [(_b = (_a = this.options) == null ? void 0 : _a.abortCtrl) == null ? void 0 : _b.signal, (_c = this.options) == null ? void 0 : _c.signal].filter(\n Boolean\n )\n );\n !this.onEarlyFinalize.includes(this._handleEarlyFinalize) && this.onEarlyFinalize.push(this._handleEarlyFinalize);\n !this.onFinalize.includes(this._handleFinalize) && this.onFinalize.push(this._handleFinalize);\n (_d = this._signals) == null ? void 0 : _d.forEach(\n (signal) => signal == null ? void 0 : signal.addEventListener(\n \"abort\",\n this._handleAbort\n )\n );\n };\n this._handleAbort = async () => {\n var _a, _b, _c;\n if (!((_a = this._signals) == null ? void 0 : _a.length) || !this.pending) return;\n let err = await fallbackIfFails5((_b = this.options) == null ? void 0 : _b.onAbort, [], void 0);\n err != null ? err : err = new Error(\n `Aborted after ${(/* @__PURE__ */ new Date()).getTime() - this.started.getTime()}ms`\n );\n (_c = err.name) != null ? _c : err.name = \"AbortError\";\n this.reject(err);\n };\n this._handleEarlyFinalize = () => {\n var _a, _b, _c, _d;\n ((_a = this.options) == null ? void 0 : _a.abortOnEarlyFinalize) && ((_d = (_c = (_b = this.options) == null ? void 0 : _b.abortCtrl) == null ? void 0 : _c.abort) == null ? void 0 : _d.call(_c));\n };\n // cleanup after execution\n this._handleFinalize = ((_, err) => {\n var _a, _b, _c, _d, _e;\n this.cancelAbort();\n this.clearTimeout();\n if (!this.timeout.rejected && !((_a = this._signals) == null ? void 0 : _a.find((x) => x == null ? void 0 : x.aborted)))\n return;\n ((_d = (_c = (_b = this.options) == null ? void 0 : _b.abortCtrl) == null ? void 0 : _c.signal) == null ? void 0 : _d.aborted) === false && ((_e = this.options) == null ? void 0 : _e.abortCtrl.abort(err));\n });\n this.data = data;\n this.options = isObj(options) ? options : {};\n this.timeout = timeout2;\n this._signals = _signals;\n this._setup();\n }\n get abortCtrl() {\n return this.options.abortCtrl;\n }\n get aborted() {\n var _a;\n return this.rejected && !this.timeout.rejected && !!((_a = this._signals) == null ? void 0 : _a.find((s) => s == null ? void 0 : s.aborted));\n }\n cancelAbort() {\n var _a;\n (_a = this._signals) == null ? void 0 : _a.forEach(\n (signal) => signal == null ? void 0 : signal.removeEventListener(\n \"abort\",\n this._handleAbort\n )\n );\n }\n clearTimeout() {\n clearTimeout(this.timeout.timeoutId);\n }\n get timedout() {\n return this.rejected && this.timeout.rejected;\n }\n};\nvar TimeoutPromise_default = TimeoutPromise;\n\n// src/timeout.ts\nfunction timeout(options, ...values) {\n var _a;\n const opts = objCopy3(\n timeout.defaults,\n isNumber(options) ? { timeout: options } : isObj2(options) ? options : {},\n [],\n \"empty\"\n );\n opts.timeout = Math.min(\n isPositiveNumber2(opts.timeout) ? opts.timeout : TIMEOUT_FALLBACK,\n TIMEOUT_MAX\n );\n const promises = values.map(\n (v) => isFn4(v) ? PromisEBase_default.try(v) : v\n );\n const dataPromise = promises.length <= 1 ? (\n // single promise resolves to a single result\n promises[0] instanceof PromisEBase_default ? promises[0] : new PromisEBase_default(promises[0])\n ) : (\n // multiple promises resolve to an array of results\n (isFn4(PromisEBase_default[opts.batchFunc]) ? PromisEBase_default[opts.batchFunc] : PromisEBase_default.all)(promises)\n );\n const timeoutPromise = delayReject_default(opts.timeout, opts.onTimeout);\n return new TimeoutPromise_default(\n PromisEBase_default.race([dataPromise, timeoutPromise]),\n timeoutPromise,\n opts,\n arrUnique2(\n [(_a = opts.abortCtrl) == null ? void 0 : _a.signal, opts.signal].filter(Boolean)\n )\n );\n}\ntimeout.defaults = {\n abortOnEarlyFinalize: true,\n batchFunc: \"all\",\n timeout: TIMEOUT_FALLBACK\n};\nvar timeout_default = timeout;\n\n// src/PromisE.ts\nvar PromisE = class extends PromisEBase_default {\n};\nPromisE.deferred = deferred_default;\nPromisE.deferredCallback = deferredCallback_default;\nPromisE.delay = delay_default;\nPromisE.delayReject = delayReject_default;\nPromisE.retry = retry_default;\nPromisE.timeout = timeout_default;\nvar PromisE_default = PromisE;\n\n// src/index.ts\nvar index_default = PromisE_default;\nexport {\n PromisE,\n PromisEBase,\n ResolveError,\n ResolveIgnored,\n TIMEOUT_FALLBACK,\n TIMEOUT_MAX,\n TimeoutPromise,\n index_default as default,\n deferred,\n deferredCallback,\n delay,\n delayReject,\n retry,\n timeout\n};\n","import { fallbackIfFails, isFn } from '@superutils/core'\nimport { type Interceptor } from './types'\n\n/**\n * Gracefully executes interceptors and returns the processed value.\n * If the value is not transformed (by returning a new value) by the interceptors,\n * the original value is returned.\n *\n * @param\tvalue value to be passed to the interceptors\n * @param\tsignal The AbortController used to monitor the request status. If the signal is aborted (e.g. due to\n * timeout or manual cancellation), the interceptor chain halts immediately. Note: This does not interrupt the\n * currently executing interceptor, but prevents subsequent ones from running.\n * @param\tinterceptors interceptor/transformer callbacks\n * @param\targs (optional) common arguments to be supplied to all the interceptors in addition to\n * the `value' which will always be the first argument.\n *\n * Interceptor arguments: `[value, ...args]`\n */\nexport const executeInterceptors = async <T, TArgs extends unknown[]>(\n\tvalue: T,\n\tsignal?: AbortSignal,\n\tinterceptors?: Interceptor<T, TArgs>[],\n\t...args: TArgs\n) => {\n\tfor (const interceptor of [...(interceptors ?? [])].filter(isFn)) {\n\t\tif (signal?.aborted) break\n\t\tvalue =\n\t\t\t((await fallbackIfFails(\n\t\t\t\tinterceptor,\n\t\t\t\t[value, ...args],\n\t\t\t\tundefined,\n\t\t\t)) as T) ?? value // if throws error or undefined/null is returned\n\t}\n\treturn value\n}\n\nexport default executeInterceptors\n","import { fallbackIfFails, isFn, isPositiveInteger } from '@superutils/core'\nimport { retry } from '@superutils/promise'\nimport { FetchArgs, FetchFunc } from './types'\n\n/**\n * Executes the built-in `fetch()` (or a custom `fetchFunc` if provided) with support for automatic retries.\n *\n * If `options.retry` is greater than 0, the request will be retried if it fails or if the response is not OK,\n * unless overridden by `options.retryIf`.\n *\n * @param url The request URL.\n * @param options (optional) Fetch options, including retry settings.\n *\n * @returns A promise resolving to the Response.\n */\nconst getResponse = (url: FetchArgs[0], options: FetchArgs[1] = {}) => {\n\tconst fetchFunc = isFn(options.fetchFunc)\n\t\t? options.fetchFunc\n\t\t: (globalThis.fetch as FetchFunc)\n\tif (!isPositiveInteger(options.retry)) return fetchFunc(url, options)\n\n\tlet attemptCount = 0\n\tconst response = retry(\n\t\t() => {\n\t\t\tattemptCount++\n\t\t\treturn fetchFunc(url, options)\n\t\t},\n\t\t{\n\t\t\t...options,\n\t\t\tretryIf: async (res, count, error) => {\n\t\t\t\tconst { abortCtrl, retryIf, signal } = options\n\t\t\t\tif (abortCtrl?.signal.aborted || signal?.aborted) return false\n\n\t\t\t\treturn !!(\n\t\t\t\t\t(await fallbackIfFails(\n\t\t\t\t\t\tretryIf,\n\t\t\t\t\t\t[res, count, error],\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t))\n\t\t\t\t\t?? (!!error || !res?.ok)\n\t\t\t\t)\n\t\t\t},\n\t\t},\n\t).catch(err =>\n\t\tPromise.reject(\n\t\t\tnew Error(`Request failed after attempt #${attemptCount}`, {\n\t\t\t\tcause: err,\n\t\t\t}),\n\t\t),\n\t)\n\n\treturn response\n}\nexport default getResponse\n","import { isArr, isFn, isObj, objCopy } from '@superutils/core'\nimport { FetchOptions, FetchOptionsInterceptor } from './types'\n\n/**\n * Merge one or more {@link FetchOptions}\n *\n * Notes:\n * - item properties will be prioritized in the order of sequence they were passed in\n * - the following properties will be merged\n * * `errMsgs`\n * * `headers`\n * * `interceptors`\n * - all other properties will simply override previous values\n *\n * @returns combined\n */\nexport const mergeOptions = (...allOptions: (FetchOptions | undefined)[]) =>\n\tallOptions.reduce(\n\t\t(merged: FetchOptions, options) => {\n\t\t\toptions = isObj(options) ? options : {}\n\t\t\tconst { headers, interceptors: ints1 = {} } = merged\n\t\t\tconst { interceptors: ints2 = {} } = options\n\t\t\toptions.headers\n\t\t\t\t&& new Headers(options.headers).forEach((value, key) =>\n\t\t\t\t\t(headers as Headers).set(key, value),\n\t\t\t\t)\n\n\t\t\treturn {\n\t\t\t\t...merged,\n\t\t\t\t...options,\n\t\t\t\terrMsgs: objCopy(\n\t\t\t\t\toptions.errMsgs as Record<string, string>,\n\t\t\t\t\tmerged.errMsgs,\n\t\t\t\t\t[],\n\t\t\t\t\t'empty',\n\t\t\t\t),\n\t\t\t\theaders,\n\t\t\t\tinterceptors: {\n\t\t\t\t\terror: [...toArr(ints1?.error), ...toArr(ints2?.error)],\n\t\t\t\t\trequest: [\n\t\t\t\t\t\t...toArr(ints1?.request),\n\t\t\t\t\t\t...toArr(ints2?.request),\n\t\t\t\t\t],\n\t\t\t\t\tresponse: [\n\t\t\t\t\t\t...toArr(ints1?.response),\n\t\t\t\t\t\t...toArr(ints2?.response),\n\t\t\t\t\t],\n\t\t\t\t\tresult: [...toArr(ints1?.result), ...toArr(ints2?.result)],\n\t\t\t\t},\n\t\t\t\ttimeout: options.timeout ?? merged.timeout,\n\t\t\t} as FetchOptions\n\t\t},\n\t\t{ headers: new Headers() },\n\t) as FetchOptionsInterceptor\nexport default mergeOptions\n\nconst toArr = <T = unknown>(x?: T | T[]) => (isArr(x) ? x : isFn(x) ? [x] : [])\n","/** Commonly used content types for easier access */\nexport const ContentType = {\n\tAPPLICATION_JAVASCRIPT: 'application/javascript',\n\tAPPLICATION_JSON: 'application/json',\n\tAPPLICATION_OCTET_STREAM: 'application/octet-stream',\n\tAPPLICATION_PDF: 'application/pdf',\n\tAPPLICATION_X_WWW_FORM_URLENCODED: 'application/x-www-form-urlencoded',\n\tAPPLICATION_XML: 'application/xml',\n\tAPPLICATION_ZIP: 'application/zip',\n\tAUDIO_MPEG: 'audio/mpeg',\n\tMULTIPART_FORM_DATA: 'multipart/form-data',\n\tTEXT_CSS: 'text/css',\n\tTEXT_HTML: 'text/html',\n\tTEXT_PLAIN: 'text/plain',\n\tVIDEO_MP4: 'video/mp4',\n} as const\n\nexport enum FetchAs {\n\tarrayBuffer = 'arrayBuffer',\n\tblob = 'blob',\n\tbytes = 'bytes',\n\tformData = 'formData',\n\tjson = 'json',\n\tresponse = 'response',\n\ttext = 'text',\n}\n","import { FetchOptions } from './options'\n\n\n/** Custom error message for fetch requests with more detailed info about the request URL, fetch options and response */\nexport class FetchError extends Error {\n /** Create a new `FetchError` with a new `message` while preserving all metadata */\n clone!: (newMessage: string) => FetchError\n /* FetchOptions */\n options!: FetchOptions\n /* FResponse received, if any */\n response!: Response | undefined\n /* Fetch URL */\n url!: string | URL\n\n constructor(\n message: string,\n options: {\n cause?: unknown\n options: FetchOptions\n response?: Response\n url: string | URL\n },\n ) {\n super(message, { cause: options.cause })\n\n this.name = 'FetchError'\n\n /* Prevents cluttering the console log output while also preserving ready-only member behavior */\n Object.defineProperties(this, {\n clone: {\n get() {\n return (newMessage: string) =>\n new FetchError(newMessage, {\n cause: options.cause,\n options: options.options,\n response: options.response,\n url: options.url,\n })\n },\n },\n options: {\n get() {\n return options.options\n },\n },\n response: {\n get() {\n return options.response\n },\n },\n url: {\n get() {\n return options.url\n },\n },\n })\n }\n}","import {\n\tfallbackIfFails,\n\tisError,\n\tisFn,\n\tisPromise,\n\tisUrlValid,\n} from '@superutils/core'\nimport { timeout as PromisE_timeout } from '@superutils/promise'\nimport executeInterceptors from './executeInterceptors'\nimport getResponse from './getResponse'\nimport mergeOptions from './mergeOptions'\nimport type {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tFetchCustomOptions,\n\tFetchOptions,\n\tFetchOptionsInterceptor,\n\tFetchResult,\n\tIPromise_Fetch,\n} from './types'\nimport {\n\tContentType,\n\tFetchAs,\n\tFetchErrMsgs,\n\tFetchError,\n\tFetchOptionsDefault,\n} from './types'\n\n/**\n * Extended `fetch` with timeout, retry, and other options. Automatically parses as JSON by default on success.\n *\n * @param url request URL\n * @param options (optional) Standard `fetch` options extended with {@link FetchCustomOptions}.\n * Default \"content-type\" header is 'application/json'.\n * @param options.as (optional) determines how to parse the result. Default: {@link FetchAs.json}\n * @param options.method (optional) fetch method. Default: `'get'`\n *\n * @example Make a simple HTTP requests\n * ```typescript\n * import { fetch } from '@superutils/fetch'\n *\n * // no need for `response.json()` or `result.data.data` drilling\n * fetch('https://dummyjson.com/products/1')\n * \t .then(product => console.log(product))\n * ```\n */\nconst fetch = <\n\tT = unknown,\n\tTOptions extends FetchOptions = FetchOptions,\n\tTAs extends FetchAs = TOptions['as'] extends FetchAs\n\t\t? TOptions['as']\n\t\t: FetchAs.response,\n\tTReturn = FetchResult<T>[TAs],\n>(\n\turl: string | URL,\n\toptions: FetchOptions & TOptions = {} as TOptions,\n) => {\n\tlet response: Response | undefined\n\t// merge `defaults` with `options` to make sure default values are used where appropriate\n\tconst opts = mergeOptions(fetch.defaults, options)\n\t// make sure there's always an abort controller, so that request is aborted when promise is early finalized\n\topts.abortCtrl =\n\t\topts.abortCtrl instanceof AbortController\n\t\t\t? opts.abortCtrl\n\t\t\t: new AbortController()\n\topts.as ??= FetchAs.response\n\topts.method ??= 'get'\n\topts.signal ??= opts.abortCtrl.signal\n\tconst { abortCtrl, as: parseAs, headers, onAbort, onTimeout } = opts\n\topts.onAbort = async () => {\n\t\tconst err: Error =\n\t\t\t(await fallbackIfFails(onAbort, [], undefined))\n\t\t\t?? opts.abortCtrl?.signal?.reason\n\t\t\t?? opts.signal?.reason\n\t\t\t?? opts.errMsgs.aborted\n\n\t\tif (isError(err) && err.name === 'AbortError') {\n\t\t\terr.message = ['This operation was aborted'].includes(err.message)\n\t\t\t\t? opts.errMsgs.aborted\n\t\t\t\t: err.message\n\t\t}\n\t\treturn await interceptErr(\n\t\t\tisError(err) ? err : new Error(err),\n\t\t\turl,\n\t\t\topts,\n\t\t\tresponse,\n\t\t)\n\t}\n\topts.onTimeout = async () => {\n\t\tconst err = await fallbackIfFails(onTimeout, [], undefined)\n\t\treturn await interceptErr(\n\t\t\terr ?? new Error(opts.errMsgs.timedout),\n\t\t\turl,\n\t\t\topts,\n\t\t\tresponse,\n\t\t)\n\t}\n\treturn PromisE_timeout(opts, async () => {\n\t\ttry {\n\t\t\tlet contentType = headers.get('content-type')\n\t\t\tif (!contentType) {\n\t\t\t\theaders.set('content-type', ContentType.APPLICATION_JSON)\n\t\t\t\tcontentType = ContentType.APPLICATION_JSON\n\t\t\t}\n\t\t\t// invoke global and local response interceptors to intercept and/or transform `url` and `options`\n\t\t\turl = await executeInterceptors(\n\t\t\t\turl,\n\t\t\t\tabortCtrl.signal,\n\t\t\t\topts.interceptors?.request,\n\t\t\t\topts,\n\t\t\t)\n\t\t\tconst { body, errMsgs, validateUrl = true } = opts\n\t\t\topts.signal ??= abortCtrl.signal\n\t\t\tif (validateUrl && !isUrlValid(url, false))\n\t\t\t\tthrow new Error(errMsgs.invalidUrl)\n\n\t\t\tconst shouldStringifyBody =\n\t\t\t\t[\n\t\t\t\t\tContentType.APPLICATION_JSON,\n\t\t\t\t\tContentType.APPLICATION_X_WWW_FORM_URLENCODED,\n\t\t\t\t].find(x => contentType.includes(x))\n\t\t\t\t&& !['undefined', 'string'].includes(typeof body)\n\t\t\t// stringify data/body\n\t\t\tif (shouldStringifyBody)\n\t\t\t\topts.body = JSON.stringify(\n\t\t\t\t\tisFn(body) ? fallbackIfFails(body, [], undefined) : body,\n\t\t\t\t)\n\n\t\t\t// make the fetch call\n\t\t\tresponse = await getResponse(url, opts)\n\t\t\t// invoke global and local request interceptors to intercept and/or transform `response`\n\t\t\tresponse = await executeInterceptors(\n\t\t\t\tresponse,\n\t\t\t\tabortCtrl.signal,\n\t\t\t\topts.interceptors?.response,\n\t\t\t\turl,\n\t\t\t\topts,\n\t\t\t)\n\t\t\tconst status = response?.status ?? 0\n\t\t\tconst isSuccess = status >= 200 && status < 300\n\t\t\tif (!isSuccess) {\n\t\t\t\tconst jsonError: unknown = await fallbackIfFails(\n\t\t\t\t\t// try to parse error response as json first\n\t\t\t\t\t() => response!.json(),\n\t\t\t\t\t[],\n\t\t\t\t\tundefined,\n\t\t\t\t)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t(jsonError as Error)?.message\n\t\t\t\t\t\t|| `${errMsgs.requestFailed} ${status}`,\n\t\t\t\t\t{ cause: jsonError },\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tconst parseFunc = response[parseAs as keyof typeof response]\n\t\t\tlet result: unknown = !isFn(parseFunc)\n\t\t\t\t? response\n\t\t\t\t: parseFunc.bind(response)()\n\t\t\tif (isPromise(result))\n\t\t\t\tresult = await result.catch((err: Error) =>\n\t\t\t\t\tPromise.reject(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`${errMsgs.parseFailed} ${parseAs}. ${err?.message}`,\n\t\t\t\t\t\t\t{ cause: err },\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t// invoke global and local request interceptors to intercept and/or transform parsed `result`\n\t\t\tresult = await executeInterceptors(\n\t\t\t\tresult,\n\t\t\t\tabortCtrl.signal,\n\t\t\t\topts.interceptors?.result,\n\t\t\t\turl,\n\t\t\t\topts,\n\t\t\t)\n\t\t\treturn result as TReturn\n\t\t} catch (_err: unknown) {\n\t\t\tlet err = _err as Error\n\n\t\t\terr = await interceptErr(_err as Error, url, opts, response)\n\t\t\treturn Promise.reject(err as FetchError)\n\t\t}\n\t}) as IPromise_Fetch<TReturn>\n}\n/** Default fetch options */\nfetch.defaults = {\n\tabortOnEarlyFinalize: true,\n\terrMsgs: {\n\t\taborted: 'Request aborted',\n\t\tinvalidUrl: 'Invalid URL',\n\t\tparseFailed: 'Failed to parse response as',\n\t\ttimedout: 'Request timed out',\n\t\trequestFailed: 'Request failed with status code:',\n\t} as Required<FetchErrMsgs>, // all error messages must be defined here\n\theaders: new Headers(),\n\tinterceptors: {\n\t\terror: [],\n\t\trequest: [],\n\t\tresponse: [],\n\t\tresult: [],\n\t},\n\ttimeout: 30_000,\n\tvalidateUrl: true,\n} as FetchOptionsDefault\n\nconst interceptErr = async (\n\terr: Error,\n\turl: string | URL,\n\toptions: FetchOptionsInterceptor,\n\tresponse?: Response,\n) => {\n\t// invoke global and local request interceptors to intercept and/or transform `error`\n\tconst fErr = await executeInterceptors(\n\t\tnew FetchError(err?.message ?? err, {\n\t\t\tcause: err?.cause ?? err,\n\t\t\tresponse: response,\n\t\t\toptions: options,\n\t\t\turl,\n\t\t}),\n\t\tundefined, // should execute regardless of abort status\n\t\toptions.interceptors?.error,\n\t\turl,\n\t\toptions,\n\t)\n\treturn fErr\n}\n\nexport default fetch\n","import { deferredCallback } from '@superutils/promise'\nimport fetch from './fetch'\nimport mergeOptions from './mergeOptions'\nimport type {\n\tDeferredAsyncOptions,\n\tExtractAs,\n\tExcludeOptions,\n\tFetchArgs,\n\tFetchOptions,\n\tGetFetchResult,\n\tIPromise_Fetch,\n} from './types'\nimport { FetchAs } from './types'\n\n/**\n * Defines client generic parameter T based on fixed options.\n *\n * If `fixedOptions.as` is defined and not `FetcAs.json`, then `T` will be `never`.\n */\nexport type ClientData<FixedOptions> =\n\tExtractAs<[FixedOptions]> extends FetchAs.json ? unknown : never // disallow providing T\n/**\n * Create a reusable fetch client with shared options. The returned function comes attached with a\n * `.deferred()` function for debounce and throttle behavior.\n *\n * The `createClient` utility streamlines the creation of dedicated API clients by generating pre-configured fetch\n * functions. These functions can be equipped with default options like headers, timeouts, or a specific HTTP method,\n * which minimizes code repetition across your application. If a method is not specified during creation, the client\n * will default to `GET`.\n *\n * The returned client also includes a `.deferred()` method, providing the same debounce, throttle, and sequential\n * execution capabilities found in functions like `fetch.get.deferred()`.\n *\n * @example create reusable clients\n * ```javascript\n * import { createClient } from '@superutils/fetch'\n *\n * // Create a \"GET\" client with default headers and a 5-second timeout\n * const apiClient = createClient(\n * \t{\n * \t\t// fixed options cannot be overridden\n * \t\tmethod: 'get',\n * \t},\n * \t{\n * \t\t// default options can be overridden\n * \t\theaders: {\n * \t\t\tAuthorization: 'Bearer my-secret-token',\n * \t\t\t'Content-Type': 'application/json',\n * \t\t},\n * \t\ttimeout: 5000,\n * \t},\n * \t{\n * \t\t// default defer options (can be overridden)\n * \t\tdelay: 300,\n * \t\tretry: 2, // If request fails, retry up to two more times\n * \t},\n * )\n *\n * // Use it just like the standard fetch\n * apiClient('https://dummyjson.com/products/1', {\n * \t// The 'method' property cannot be overridden as it is used in the fixed options when creating the client.\n * \t// In TypeScript, the compiler will not allow this property.\n * \t// In Javascript, it will simply be ignored.\n * \t// method: 'post',\n * \ttimeout: 3000, // The 'timeout' property can be overridden\n * }).then(console.log, console.warn)\n *\n * // create a deferred client using \"apiClient\"\n * const deferredClient = apiClient.deferred(\n * \t{ retry: 0 }, // disable retrying by overriding the `retry` defer option\n * \t'https://dummyjson.com/products/1',\n * \t{ timeout: 3000 },\n * )\n * deferredClient({ timeout: 10000 }) // timeout is overridden by individual request\n * \t.then(console.log, console.warn)\n * ```\n */\nexport const createClient = <\n\tFixedOptions extends FetchOptions | undefined,\n\tCommonOptions extends ExcludeOptions<FixedOptions> | undefined,\n\tCommonDelay extends number,\n>(\n\t/** Mandatory fetch options that cannot be overriden by individual request */\n\tfixedOptions?: FixedOptions,\n\t/** Common fetch options that can be overriden by individual request */\n\tcommonOptions?: FetchOptions & CommonOptions,\n\tcommonDeferOptions?: DeferredAsyncOptions<unknown, CommonDelay>,\n) => {\n\tfunction client<\n\t\tT extends ClientData<FixedOptions> = never,\n\t\tTOptions extends ExcludeOptions<FixedOptions> | undefined =\n\t\t\t| ExcludeOptions<FixedOptions>\n\t\t\t| undefined,\n\t\tResult = GetFetchResult<[FixedOptions, TOptions, CommonOptions], T>,\n\t>(url: FetchArgs[0], options?: TOptions): IPromise_Fetch<Result> {\n\t\tconst mergedOptions = mergeOptions(\n\t\t\tcommonOptions,\n\t\t\toptions,\n\t\t\tfixedOptions, // fixed options will always override other options\n\t\t)\n\t\tmergedOptions.as ??= FetchAs.json\n\t\treturn fetch(url, mergedOptions)\n\t}\n\n\t/** Make requests with debounce/throttle behavior */\n\tclient.deferred = <\n\t\tThisArg,\n\t\tDelay extends CommonDelay | number,\n\t\tDefaultUrl extends FetchArgs[0] | undefined = FetchArgs[0] | undefined,\n\t\tDefaultOptions extends ExcludeOptions<FixedOptions> | undefined =\n\t\t\t| ExcludeOptions<FixedOptions>\n\t\t\t| undefined,\n\t>(\n\t\tdeferOptions?: DeferredAsyncOptions<ThisArg, Delay>,\n\t\tdefaultUrl?: DefaultUrl,\n\t\tdefaultOptions?: DefaultOptions,\n\t) => {\n\t\tlet _abortCtrl: AbortController | undefined\n\t\tconst fetchCb = <\n\t\t\tT extends ClientData<FixedOptions> = never,\n\t\t\tTOptions extends ExcludeOptions<FixedOptions> | undefined =\n\t\t\t\t| ExcludeOptions<FixedOptions>\n\t\t\t\t| undefined,\n\t\t\tResult = GetFetchResult<\n\t\t\t\t[FixedOptions, TOptions, DefaultOptions, CommonOptions],\n\t\t\t\tT\n\t\t\t>,\n\t\t>(\n\t\t\t...args: DefaultUrl extends undefined\n\t\t\t\t? [url: FetchArgs[0], options?: TOptions]\n\t\t\t\t: [options?: TOptions]\n\t\t): IPromise_Fetch<Result> => {\n\t\t\tconst mergedOptions = (mergeOptions(\n\t\t\t\tcommonOptions,\n\t\t\t\tdefaultOptions,\n\t\t\t\t(defaultUrl === undefined ? args[1] : args[0]) as TOptions,\n\t\t\t\tfixedOptions, // fixed options will always override other options\n\t\t\t) ?? {}) as FetchOptions\n\t\t\tmergedOptions.as ??= FetchAs.json\n\t\t\t// make sure to abort any previously pending request\n\t\t\t_abortCtrl?.abort?.()\n\t\t\t// ensure AbortController is present in options and propagete external abort signal if provided\n\t\t\t_abortCtrl = new AbortController()\n\n\t\t\treturn fetch(\n\t\t\t\t(defaultUrl ?? args[0]) as FetchArgs[0],\n\t\t\t\tmergedOptions,\n\t\t\t) as unknown as IPromise_Fetch<Result>\n\t\t}\n\n\t\treturn deferredCallback(fetchCb, {\n\t\t\t...commonDeferOptions,\n\t\t\t...deferOptions,\n\t\t} as DeferredAsyncOptions<ThisArg, CommonDelay>) as typeof fetchCb\n\t}\n\n\treturn client\n}\nexport default createClient\n","import { deferredCallback } from '@superutils/promise'\nimport fetch from './fetch'\nimport mergeOptions from './mergeOptions'\nimport {\n\tDeferredAsyncOptions,\n\tExcludePostOptions,\n\tFetchAs,\n\tPostArgs,\n\tPostDeferredCbArgs,\n\tPostOptions,\n\tIPromise_Fetch,\n\tGetFetchResult,\n} from './types'\nimport { ClientData } from './createClient'\n\n/**\n * Create a reusable fetch client with shared options. The returned function comes attached with a\n * `.deferred()` function for debounced and throttled request.\n * While `createClient()` is versatile enough for any HTTP method, `createPostClient()` is specifically designed for\n * methods that require a request body, such as `DELETE`, `PATCH`, `POST`, and `PUT`. If a method is not provided, it\n * defaults to `POST`. The generated client accepts an additional second parameter (`data`) for the request payload.\n *\n * Similar to `createClient`, the returned function comes equipped with a `.deferred()` method, enabling debounced,\n * throttled, or sequential execution.\n *\n * @example create reusable clients\n * ```javascript\n * import { createPostClient, FetchAs } from '@superutils/fetch'\n *\n * // Create a POST client with 10-second as the default timeout\n * const postClient = createPostClient(\n * \t{\n * \t\tmethod: 'post',\n * \t\theaders: { 'content-type': 'application/json' },\n * \t},\n * \t{ timeout: 10000 },\n * )\n *\n * // Invoking `postClient()` automatically applies the pre-configured options\n * postClient(\n * \t'https://dummyjson.com/products/add',\n * \t{ title: 'New Product' }, // data/body\n * \t{}, // other options\n * ).then(console.log)\n *\n * // create a deferred client using \"postClient\"\n * const updateProduct = postClient.deferred(\n * \t{\n * \t\tdelay: 300, // debounce duration\n * \t\tonResult: console.log, // prints only successful results\n * \t},\n * \t'https://dummyjson.com/products/add',\n * \t{\n * \t\tmethod: 'patch',\n * \t\ttimeout: 3000,\n * \t},\n * )\n * updateProduct({ title: 'New title 1' }) // ignored by debounce\n * updateProduct({ title: 'New title 2' }) // executed\n * ```\n */\nexport const createPostClient = <\n\tFixedOptions extends PostOptions | undefined,\n\tCommonOptions extends ExcludePostOptions<FixedOptions> | undefined,\n\tCommonDelay extends number = number,\n>(\n\t/** Mandatory fetch options that cannot be overriden by individual request */\n\tfixedOptions?: FixedOptions,\n\t/** Common fetch options that can be overriden by individual request */\n\tcommonOptions?: PostOptions & CommonOptions,\n\tcommonDeferOptions?: DeferredAsyncOptions<unknown, CommonDelay>,\n) => {\n\t/**\n\t * Executes the HTTP request using the configured client options.\n\t *\n\t * This function is specifically designed for methods that require a request body (e.g., POST, PUT, PATCH),\n\t * allowing the payload to be passed directly as the second argument.\n\t */\n\tfunction client<\n\t\tT extends ClientData<FixedOptions> = never,\n\t\tOptions extends ExcludePostOptions<FixedOptions> | undefined =\n\t\t\t| ExcludePostOptions<FixedOptions>\n\t\t\t| undefined,\n\t\tResult = GetFetchResult<[FixedOptions, Options, CommonOptions], T>,\n\t>(\n\t\turl: PostArgs[0],\n\t\tdata?: PostArgs[1],\n\t\toptions?: Options,\n\t): IPromise_Fetch<Result> {\n\t\tconst mergedOptions = mergeOptions(\n\t\t\tcommonOptions,\n\t\t\toptions,\n\t\t\tfixedOptions, // fixed options will always override other options\n\t\t) as PostOptions\n\t\tmergedOptions.as ??= FetchAs.json\n\t\tmergedOptions.body = data\n\t\tmergedOptions.method ??= 'post'\n\t\treturn fetch(url, mergedOptions)\n\t}\n\n\t/**\n\t * Returns a version of the client configured for debounced, throttled, or sequential execution.\n\t *\n\t * This is particularly useful for optimizing high-frequency operations, such as auto-saving forms\n\t * or managing rapid state updates, by automatically handling request cancellation and execution timing.\n\t */\n\tclient.deferred = <\n\t\tThisArg,\n\t\tDefaultUrl extends PostArgs[0] | undefined,\n\t\tDefaultData extends PostArgs[1] | undefined,\n\t\tDefaultOptions extends ExcludePostOptions<FixedOptions> | undefined =\n\t\t\t| ExcludePostOptions<FixedOptions>\n\t\t\t| undefined,\n\t\tDelay extends CommonDelay | number = number,\n\t>(\n\t\tdeferOptions?: DeferredAsyncOptions<ThisArg, Delay>,\n\t\tdefaultUrl?: DefaultUrl,\n\t\tdefaultData?: DefaultData,\n\t\tdefaultOptions?: DefaultOptions,\n\t) => {\n\t\tlet _abortCtrl: AbortController | undefined\n\t\tconst postCb = <\n\t\t\tT extends ClientData<FixedOptions> = never,\n\t\t\tOptions extends ExcludePostOptions<FixedOptions> | undefined =\n\t\t\t\t| ExcludePostOptions<FixedOptions>\n\t\t\t\t| undefined,\n\t\t\tTReturn = GetFetchResult<\n\t\t\t\t[FixedOptions, Options, DefaultOptions, CommonOptions],\n\t\t\t\tT\n\t\t\t>,\n\t\t>(\n\t\t\t...args: PostDeferredCbArgs<DefaultUrl, DefaultData, Options>\n\t\t): IPromise_Fetch<TReturn> => {\n\t\t\t// add default url to the beginning of the array\n\t\t\tif (defaultUrl !== undefined) args.splice(0, 0, defaultUrl)\n\t\t\t// add default data after the url\n\t\t\tif (defaultData !== undefined) args.splice(1, 0, defaultData)\n\t\t\tconst mergedOptions = (mergeOptions(\n\t\t\t\tcommonOptions,\n\t\t\t\tdefaultOptions,\n\t\t\t\targs[2] as Options,\n\t\t\t\tfixedOptions, // fixed options will always override other options\n\t\t\t) ?? {}) as PostOptions\n\t\t\tmergedOptions.as ??= FetchAs.json\n\t\t\t// make sure to abort any previously pending request\n\t\t\t_abortCtrl?.abort?.()\n\t\t\t// ensure AbortController is present in options and propagete external abort signal if provided\n\t\t\t_abortCtrl = new AbortController()\n\n\t\t\t// attach body to options\n\t\t\tmergedOptions.body = (args[1] ?? mergedOptions.body) as PostArgs[1]\n\t\t\tmergedOptions.method ??= 'post'\n\t\t\treturn fetch(args[0] as PostArgs[0], mergedOptions)\n\t\t}\n\n\t\treturn deferredCallback(postCb, {\n\t\t\t...commonDeferOptions,\n\t\t\t...deferOptions,\n\t\t} as typeof deferOptions) as typeof postCb\n\t}\n\n\treturn client\n}\nexport default createPostClient\n","/** This is an entrypoint tailored for IIFE builds for browsers. */\nimport * as allExports from './index'\n\nconst { default: fetch } = allExports\n\nObject.keys(allExports).forEach(key => {\n\tif (['default', 'fetch'].includes(key)) return\n\t;(fetch as unknown as Record<string, unknown>)[key] ??= (\n\t\tallExports as Record<string, unknown>\n\t)[key]\n})\n\nexport default fetch\n"]}
1
+ {"version":3,"sources":["../../../promise/dist/index.js","../../../core/dist/index.js","../../src/index.ts","../../src/executeInterceptors.ts","../../src/getResponse.ts","../../src/mergeOptions.ts","../../src/types/constants.ts","../../src/types/FetchError.ts","../../src/fetch.ts","../../src/createClient.ts","../../src/createPostClient.ts","../../src/browser.ts"],"names":["dist_exports","__export","PromisE","PromisEBase","ResolveError","ResolveIgnored","TIMEOUT_FALLBACK","TIMEOUT_MAX","TimeoutPromise","index_default","deferred","deferredCallback","delay","delayReject","retry","timeout","isObj","x","strict","isArr","isInteger","isNumber","isPositiveInteger","isPositiveNumber","isEmpty","nonNumerable","fallback","proto","isFn","isUrl","isUrlValid","tldExceptions","url","y","_","isError","isPromise","isSymbol","fallbackIfFails","target","args","result","err","fallbackIfFails_default","objKeys","obj","sorted","includeSymbols","objKeys_default","clone","value","objCopy","input","output","ignoreKeys","override","recursive","_output","_ignoreKeys","inKeys","_key","key","ignoreChildKeys","arrUnique","arr","flatDepth","debounce","callback","config","leading","onError","thisArg","tid","_callback","firstArgs","leadingGlobal","debounce_default","throttle","d","trailing","handleCallback","trailArgs","cbArgs","throttle_default","_PromisEBase","_resolve","_reject","resolve","reject","reason","fn","_a","_b","values","promise","callbackFn","PromisEBase_default","ResolveError2","ResolveIgnored2","options","sequence","onIgnore","onResult","delay2","ignoreStale","resolveError","resolveIgnored","lastInSeries","lastExecuted","queue","isSequential","handleIgnore","items","iId","iItem","isStale","handleRemaining","currentId","nextId","nextItem","handleItem","currentIndex","id","executeItem","qItem","deferred_default","deferPromise","deferredCallback_default","duration","asRejected","finalize","result2","_result","_result2","delay_default","delayReject_default","func","maxRetries","retryBackOff","retryDelay","retryDelayJitter","retryDelayJitterMax","_retryDelay","retryCount","error","shouldRetry","retry_default","data","timeout2","_signals","_c","_d","signal","_e","s","TimeoutPromise_default","opts","promises","v","dataPromise","timeoutPromise","timeout_default","PromisE_default","index_exports","ContentType","FetchAs","FetchError","createClient","createPostClient","executeInterceptors","fetch","mergeOptions","interceptors","interceptor","executeInterceptors_default","getResponse","fetchFunc","attemptCount","res","count","abortCtrl","retryIf","getResponse_default","allOptions","merged","headers","ints1","ints2","toArr","mergeOptions_default","_FetchError","message","newMessage","fromPostClient","response","parseAs","onAbort","onTimeout","_f","interceptErr","body","errMsgs","validateUrl","contentType","status","jsonError","parseFunc","_err","fetch_default","fixedOptions","commonOptions","commonDeferOptions","client","mergedOptions","deferOptions","defaultUrl","defaultOptions","_abortCtrl","createClient_default","defaultData","createPostClient_default","methods","browser_default","w"],"mappings":"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","file":"index.min.js","sourcesContent":["// src/deferred.ts\nimport {\n deferred as deferredSync,\n fallbackIfFails as fallbackIfFails2,\n isFn as isFn2,\n isPositiveNumber,\n objCopy\n} from \"@superutils/core\";\n\n// src/PromisEBase.ts\nimport { fallbackIfFails, isFn, isPromise } from \"@superutils/core\";\nvar _PromisEBase = class _PromisEBase extends Promise {\n constructor(input) {\n let _resolve;\n let _reject;\n super((resolve, reject) => {\n _reject = (reason) => {\n reject(reason);\n this._state = 2;\n this.onFinalize.forEach(\n (fn) => fallbackIfFails(fn, [void 0, reason], void 0)\n );\n };\n _resolve = (value) => {\n resolve(value);\n this._state = 1;\n this.onFinalize.forEach(\n (fn) => fallbackIfFails(fn, [value, void 0], void 0)\n );\n };\n if (isFn(input)) {\n fallbackIfFails(input, [_resolve, _reject], _reject);\n } else if (isPromise(input)) {\n input.then(_resolve, _reject);\n } else if (input !== void 0) {\n _resolve(input);\n }\n });\n this._state = 0;\n /**\n * callbacks to be invoked whenever PromisE instance is finalized early using non-static resolve()/reject() methods */\n this.onEarlyFinalize = [];\n this.onFinalize = [];\n //\n //\n // --------------------------- Early resolve/reject ---------------------------\n //\n //\n /** Resovle pending promise early. */\n this.resolve = (value) => {\n var _a, _b;\n if (!this.pending) return;\n (_a = this._resolve) == null ? void 0 : _a.call(this, value);\n (_b = this.onEarlyFinalize) == null ? void 0 : _b.forEach((fn) => {\n fallbackIfFails(fn, [true, value], void 0);\n });\n };\n /** Reject pending promise early. */\n this.reject = (reason) => {\n var _a, _b;\n if (!this.pending) return;\n (_a = this._reject) == null ? void 0 : _a.call(this, reason);\n (_b = this.onEarlyFinalize) == null ? void 0 : _b.forEach((fn) => {\n fallbackIfFails(fn, [false, reason], void 0);\n });\n };\n this._resolve = _resolve;\n this._reject = _reject;\n }\n //\n //\n //-------------------- Status related read-only attributes --------------------\n //\n //\n /** Indicates if the promise is still pending/unfinalized */\n get pending() {\n return this.state === 0;\n }\n /** Indicates if the promise has been rejected */\n get rejected() {\n return this.state === 2;\n }\n /** Indicates if the promise has been resolved */\n get resolved() {\n return this.state === 1;\n }\n /**\n * Get promise status code:\n *\n * - `0` = pending\n * - `1` = resolved\n * - `2` = rejected\n */\n get state() {\n return this._state;\n }\n};\n//\n//\n// Extend all static `Promise` methods\n//\n//\n/** Sugar for `new PromisE(Promise.all(...))` */\n_PromisEBase.all = (values) => new _PromisEBase(globalThis.Promise.all(values));\n/** Sugar for `new PromisE(Promise.allSettled(...))` */\n_PromisEBase.allSettled = (values) => new _PromisEBase(globalThis.Promise.allSettled(values));\n/** Sugar for `new PromisE(Promise.any(...))` */\n_PromisEBase.any = (values) => new _PromisEBase(globalThis.Promise.any(values));\n/** Sugar for `new PromisE(Promise.race(..))` */\n_PromisEBase.race = (values) => new _PromisEBase(globalThis.Promise.race(values));\n/** Extends Promise.reject */\n_PromisEBase.reject = (reason) => {\n const promise = new _PromisEBase();\n queueMicrotask(() => promise.reject(reason));\n return promise;\n};\n/** Sugar for `new PromisE(Promise.resolve(...))` */\n_PromisEBase.resolve = (value) => new _PromisEBase(\n globalThis.Promise.resolve(value)\n);\n/** Sugar for `new PromisE(Promise.try(...))` */\n_PromisEBase.try = (callbackFn, ...args) => new _PromisEBase(\n (resolve) => resolve(\n // Promise.try is not supported in Node < 23.\n fallbackIfFails(\n callbackFn,\n args,\n // rethrow error to ensure the returned promise is rejected\n (err) => globalThis.Promise.reject(err)\n )\n )\n);\n/**\n * Creates a `PromisE` instance and returns it in an object, along with its `resolve` and `reject` functions.\n *\n * NB: this function is technically no longer needed because the `PromisE` class already comes with the resolvers.\n *\n * ---\n * @example\n * Using `PromisE` directly: simply provide an empty function as the executor\n *\n * ```typescript\n * import PromisE from '@superutils/promise'\n * const promisE = new PromisE<number>(() => {})\n * setTimeout(() => promisE.resolve(1), 1000)\n * promisE.then(console.log)\n * ```\n *\n * @example\n * Using `withResolvers`\n * ```typescript\n * import PromisE from '@superutils/promise'\n * const pwr = PromisE.withResolvers<number>()\n * setTimeout(() => pwr.resolve(1), 1000)\n * pwr.promise.then(console.log)\n * ```\n */\n_PromisEBase.withResolvers = () => {\n const promise = new _PromisEBase();\n return { promise, reject: promise.reject, resolve: promise.resolve };\n};\nvar PromisEBase = _PromisEBase;\nvar PromisEBase_default = PromisEBase;\n\n// src/types/deferred.ts\nvar ResolveError = /* @__PURE__ */ ((ResolveError2) => {\n ResolveError2[\"NEVER\"] = \"NEVER\";\n ResolveError2[\"REJECT\"] = \"REJECT\";\n ResolveError2[\"WITH_ERROR\"] = \"RESOLVE_ERROR\";\n ResolveError2[\"WITH_UNDEFINED\"] = \"RESOLVE_UNDEFINED\";\n return ResolveError2;\n})(ResolveError || {});\nvar ResolveIgnored = /* @__PURE__ */ ((ResolveIgnored2) => {\n ResolveIgnored2[\"NEVER\"] = \"NEVER\";\n ResolveIgnored2[\"WITH_LAST\"] = \"WITH_LAST\";\n ResolveIgnored2[\"WITH_UNDEFINED\"] = \"WITH_UNDEFINED\";\n return ResolveIgnored2;\n})(ResolveIgnored || {});\n\n// src/deferred.ts\nfunction deferred(options = {}) {\n let sequence = 0;\n options = objCopy(\n deferred.defaults,\n options,\n [],\n \"empty\"\n );\n let { onError, onIgnore, onResult } = options;\n const {\n delay: delay2 = 0,\n ignoreStale,\n resolveError,\n resolveIgnored,\n thisArg,\n throttle\n } = options;\n let lastInSeries = null;\n let lastExecuted;\n const queue = /* @__PURE__ */ new Map();\n const isSequential = !isPositiveNumber(delay2);\n if (thisArg !== void 0) {\n onError = onError == null ? void 0 : onError.bind(thisArg);\n onIgnore = onIgnore == null ? void 0 : onIgnore.bind(thisArg);\n onResult = onResult == null ? void 0 : onResult.bind(thisArg);\n }\n const handleIgnore = (items) => {\n for (const [iId, iItem] of items) {\n queue.delete(iId);\n const isStale = ignoreStale && iItem.sequence < lastExecuted.sequence;\n if (iItem.resolved || iItem.started && !isStale) continue;\n if (iItem.started) {\n iItem.getPromise = (() => iItem.result);\n }\n fallbackIfFails2(onIgnore, [iItem.getPromise], 0);\n switch (resolveIgnored) {\n case \"WITH_UNDEFINED\" /* WITH_UNDEFINED */:\n iItem.resolve(void 0);\n break;\n case \"WITH_LAST\" /* WITH_LAST */:\n lastExecuted == null ? void 0 : lastExecuted.then(iItem.resolve, iItem.reject);\n break;\n case \"NEVER\" /* NEVER */:\n break;\n }\n }\n if (!queue.size) sequence = 0;\n };\n const handleRemaining = (currentId) => {\n lastInSeries = null;\n if (isSequential) {\n queue.delete(currentId);\n const [nextId, nextItem] = [...queue.entries()][0] || [];\n return nextId && nextItem && handleItem(nextId, nextItem);\n }\n let items = [...queue.entries()];\n if (throttle === true && options.trailing) {\n const currentIndex = items.findIndex(([id]) => id === currentId);\n items = items.slice(0, currentIndex);\n } else if (!throttle) {\n items = items.slice(0, -1);\n }\n handleIgnore(items);\n queue.delete(currentId);\n };\n const executeItem = async (id, qItem) => {\n var _a;\n try {\n qItem.started = true;\n lastExecuted = qItem;\n lastInSeries = qItem;\n (_a = qItem.result) != null ? _a : qItem.result = PromisEBase_default.try(qItem.getPromise);\n const result = await qItem.result;\n const isStale = !!ignoreStale && qItem.sequence < lastExecuted.sequence;\n if (isStale) return handleIgnore([[id, qItem]]);\n qItem.resolve(result);\n onResult && fallbackIfFails2(onResult, [result], void 0);\n } catch (err) {\n onError && fallbackIfFails2(onError, [err], void 0);\n switch (resolveError) {\n case \"REJECT\" /* REJECT */:\n qItem.reject(err);\n // eslint-disable-next-line no-fallthrough\n case \"NEVER\" /* NEVER */:\n break;\n case \"RESOLVE_UNDEFINED\" /* WITH_UNDEFINED */:\n qItem.resolve(void 0);\n break;\n case \"RESOLVE_ERROR\" /* WITH_ERROR */:\n qItem.resolve(err);\n break;\n }\n }\n handleRemaining(id);\n };\n const handleItem = isSequential ? executeItem : deferredSync(\n executeItem,\n delay2,\n options\n );\n return (promise) => {\n const id = /* @__PURE__ */ Symbol(\"deferred-queue-item-id\");\n const qItem = new PromisEBase_default();\n qItem.getPromise = isFn2(promise) ? promise : () => promise;\n qItem.started = false;\n qItem.sequence = ++sequence;\n queue.set(id, qItem);\n if (!lastInSeries || !isSequential) handleItem(id, qItem);\n return qItem;\n };\n}\ndeferred.defaults = {\n /**\n * Default delay in milliseconds, used in `debounce` and `throttle` modes.\n *\n * Use `0` (or negative number) to disable debounce/throttle and execute all operations sequentially.\n */\n delay: 100,\n /** Set the default error resolution behavior. {@link ResolveError} for all options. */\n resolveError: \"REJECT\" /* REJECT */,\n /** Set the default ignored resolution behavior. See {@link ResolveIgnored} for all options. */\n resolveIgnored: \"WITH_LAST\" /* WITH_LAST */\n};\nvar deferred_default = deferred;\n\n// src/deferredCallback.ts\nfunction deferredCallback(callback, options = {}) {\n const { thisArg } = options;\n if (thisArg !== void 0) callback = callback.bind(thisArg);\n const deferPromise = deferred_default(options);\n return (...args) => deferPromise(() => callback(...args));\n}\nvar deferredCallback_default = deferredCallback;\n\n// src/delay.ts\nimport { fallbackIfFails as fallbackIfFails3, isFn as isFn3 } from \"@superutils/core\";\nfunction delay(duration = delay.defaults.duration, result, asRejected = false) {\n const promise = new PromisEBase_default();\n const finalize = (result2) => {\n const _result = fallbackIfFails3(\n async () => {\n const _result2 = await (isFn3(result2) ? result2() : result2);\n return !asRejected ? _result2 != null ? _result2 : duration : _result2 != null ? _result2 : new Error(\n `${delay.defaults.delayTimeoutMsg} ${duration}ms`\n );\n },\n [],\n // when result is a function and it fails/rejects,\n // promise will reject even if `asRejected = false`\n (err) => Promise.reject(err)\n );\n !asRejected ? promise.resolve(_result) : _result.then(promise.reject, promise.reject);\n };\n promise.timeoutId = setTimeout(() => finalize(result), duration);\n promise.pause = () => clearTimeout(promise.timeoutId);\n promise.catch(() => {\n }).finally(() => promise.pause());\n promise.onEarlyFinalize.push(() => promise.pause());\n return promise;\n}\ndelay.defaults = {\n /** Default delay duration in milliseconds */\n duration: 100,\n /** Default timed out message (if `result` is not provided) */\n delayTimeoutMsg: \"Timed out after\"\n};\nvar delay_default = delay;\n\n// src/delayReject.ts\nfunction delayReject(duration, reason) {\n return delay_default(duration, reason, true);\n}\nvar delayReject_default = delayReject;\n\n// src/retry.ts\nimport {\n fallbackIfFails as fallbackIfFails4,\n isEmpty,\n isPositiveInteger,\n objCopy as objCopy2\n} from \"@superutils/core\";\nvar retry = async (func, options) => {\n var _a, _b;\n options = objCopy2(retry.defaults, options != null ? options : {}, [], (key, value) => {\n switch (key) {\n // case 'retryDelayJitter':\n // \treturn true\n case \"retry\":\n // eslint-disable-next-line no-fallthrough\n case \"retryDelay\":\n case \"retryDelayJitterMax\":\n return value !== 0 && !isPositiveInteger(value);\n }\n return !!isEmpty(value);\n });\n const {\n retry: maxRetries,\n retryBackOff,\n retryDelay,\n retryDelayJitter,\n retryDelayJitterMax\n } = options;\n let _retryDelay = retryDelay;\n let retryCount = -1;\n let result;\n let error;\n let shouldRetry = false;\n do {\n retryCount++;\n if (retryBackOff === \"exponential\" && retryCount > 1) _retryDelay *= 2;\n if (retryDelayJitter)\n _retryDelay += Math.floor(Math.random() * retryDelayJitterMax);\n if (retryCount > 0) await delay_default(_retryDelay);\n try {\n error = void 0;\n result = await func();\n } catch (err) {\n error = err;\n }\n if (maxRetries === 0 || retryCount >= maxRetries) break;\n shouldRetry = !!((_b = await fallbackIfFails4(\n (_a = options.retryIf) != null ? _a : error,\n // if `retryIf` not provided, retry on error\n [result, retryCount, error],\n error\n // if `retryIf` throws error, default to retry on error\n )) != null ? _b : error);\n } while (shouldRetry);\n if (error !== void 0) return Promise.reject(error);\n return result;\n};\nretry.defaults = {\n retry: 1,\n retryBackOff: \"exponential\",\n retryDelay: 300,\n retryDelayJitter: true,\n retryDelayJitterMax: 100\n};\nvar retry_default = retry;\n\n// src/timeout.ts\nimport {\n arrUnique as arrUnique2,\n isFn as isFn4,\n isNumber,\n isObj as isObj2,\n isPositiveNumber as isPositiveNumber2,\n objCopy as objCopy3\n} from \"@superutils/core\";\n\n// src/TimeoutPromise.ts\nimport { arrUnique, fallbackIfFails as fallbackIfFails5, isObj } from \"@superutils/core\";\nvar TIMEOUT_FALLBACK = 1e4;\nvar TIMEOUT_MAX = 2147483647;\nvar TimeoutPromise = class extends PromisEBase_default {\n constructor(data, timeout2, options, _signals) {\n super(data);\n this.started = /* @__PURE__ */ new Date();\n this._setup = () => {\n var _a, _b, _c, _d;\n this._signals = arrUnique(\n [(_b = (_a = this.options) == null ? void 0 : _a.abortCtrl) == null ? void 0 : _b.signal, (_c = this.options) == null ? void 0 : _c.signal].filter(\n Boolean\n )\n );\n !this.onEarlyFinalize.includes(this._handleEarlyFinalize) && this.onEarlyFinalize.push(this._handleEarlyFinalize);\n !this.onFinalize.includes(this._handleFinalize) && this.onFinalize.push(this._handleFinalize);\n (_d = this._signals) == null ? void 0 : _d.forEach(\n (signal) => signal == null ? void 0 : signal.addEventListener(\n \"abort\",\n this._handleAbort\n )\n );\n };\n this._handleAbort = async () => {\n var _a, _b, _c;\n if (!((_a = this._signals) == null ? void 0 : _a.length) || !this.pending) return;\n let err = await fallbackIfFails5((_b = this.options) == null ? void 0 : _b.onAbort, [], void 0);\n err != null ? err : err = new Error(\n `Aborted after ${(/* @__PURE__ */ new Date()).getTime() - this.started.getTime()}ms`\n );\n (_c = err.name) != null ? _c : err.name = \"AbortError\";\n this.reject(err);\n };\n this._handleEarlyFinalize = () => {\n var _a, _b, _c, _d;\n ((_a = this.options) == null ? void 0 : _a.abortOnEarlyFinalize) && ((_d = (_c = (_b = this.options) == null ? void 0 : _b.abortCtrl) == null ? void 0 : _c.abort) == null ? void 0 : _d.call(_c));\n };\n // cleanup after execution\n this._handleFinalize = ((_, err) => {\n var _a, _b, _c, _d, _e;\n this.cancelAbort();\n this.clearTimeout();\n if (!this.timeout.rejected && !((_a = this._signals) == null ? void 0 : _a.find((x) => x == null ? void 0 : x.aborted)))\n return;\n ((_d = (_c = (_b = this.options) == null ? void 0 : _b.abortCtrl) == null ? void 0 : _c.signal) == null ? void 0 : _d.aborted) === false && ((_e = this.options) == null ? void 0 : _e.abortCtrl.abort(err));\n });\n this.data = data;\n this.options = isObj(options) ? options : {};\n this.timeout = timeout2;\n this._signals = _signals;\n this._setup();\n }\n get abortCtrl() {\n return this.options.abortCtrl;\n }\n get aborted() {\n var _a;\n return this.rejected && !this.timeout.rejected && !!((_a = this._signals) == null ? void 0 : _a.find((s) => s == null ? void 0 : s.aborted));\n }\n cancelAbort() {\n var _a;\n (_a = this._signals) == null ? void 0 : _a.forEach(\n (signal) => signal == null ? void 0 : signal.removeEventListener(\n \"abort\",\n this._handleAbort\n )\n );\n }\n clearTimeout() {\n clearTimeout(this.timeout.timeoutId);\n }\n get timedout() {\n return this.rejected && this.timeout.rejected;\n }\n};\nvar TimeoutPromise_default = TimeoutPromise;\n\n// src/timeout.ts\nfunction timeout(options, ...values) {\n var _a;\n const opts = objCopy3(\n timeout.defaults,\n isNumber(options) ? { timeout: options } : isObj2(options) ? options : {},\n [],\n \"empty\"\n );\n opts.timeout = Math.min(\n isPositiveNumber2(opts.timeout) ? opts.timeout : TIMEOUT_FALLBACK,\n TIMEOUT_MAX\n );\n const promises = values.map(\n (v) => isFn4(v) ? PromisEBase_default.try(v) : v\n );\n const dataPromise = promises.length <= 1 ? (\n // single promise resolves to a single result\n promises[0] instanceof PromisEBase_default ? promises[0] : new PromisEBase_default(promises[0])\n ) : (\n // multiple promises resolve to an array of results\n (isFn4(PromisEBase_default[opts.batchFunc]) ? PromisEBase_default[opts.batchFunc] : PromisEBase_default.all)(promises)\n );\n const timeoutPromise = delayReject_default(opts.timeout, opts.onTimeout);\n return new TimeoutPromise_default(\n PromisEBase_default.race([dataPromise, timeoutPromise]),\n timeoutPromise,\n opts,\n arrUnique2(\n [(_a = opts.abortCtrl) == null ? void 0 : _a.signal, opts.signal].filter(Boolean)\n )\n );\n}\ntimeout.defaults = {\n abortOnEarlyFinalize: true,\n batchFunc: \"all\",\n timeout: TIMEOUT_FALLBACK\n};\nvar timeout_default = timeout;\n\n// src/PromisE.ts\nvar PromisE = class extends PromisEBase_default {\n};\nPromisE.deferred = deferred_default;\nPromisE.deferredCallback = deferredCallback_default;\nPromisE.delay = delay_default;\nPromisE.delayReject = delayReject_default;\nPromisE.retry = retry_default;\nPromisE.timeout = timeout_default;\nvar PromisE_default = PromisE;\n\n// src/index.ts\nvar index_default = PromisE_default;\nexport {\n PromisE,\n PromisEBase,\n ResolveError,\n ResolveIgnored,\n TIMEOUT_FALLBACK,\n TIMEOUT_MAX,\n TimeoutPromise,\n index_default as default,\n deferred,\n deferredCallback,\n delay,\n delayReject,\n retry,\n timeout\n};\n","// src/curry.ts\nfunction curry(func, ...[arity = func.length]) {\n const curriedFn = (...args) => {\n const _args = args;\n if (_args.length >= arity) return func(...args);\n return (...nextArgs) => curriedFn(\n ..._args,\n ...nextArgs\n );\n };\n return curriedFn;\n}\n\n// src/is/isObj.ts\nvar isObj = (x, strict = true) => !!x && typeof x === \"object\" && (!strict || [\n Object.prototype,\n null\n // when an object is created using `Object.create(null)`\n].includes(Object.getPrototypeOf(x)));\nvar isObj_default = isObj;\n\n// src/is/isArr.ts\nvar isArr = (x) => Array.isArray(x);\nvar isArrObj = (x, strict = true) => isArr(x) && x.every((x2) => isObj(x2, strict));\nvar isArr2D = (x) => isArr(x) && x.every(isArr);\nvar isArrLike = (x) => isArr(x) || x instanceof Set || x instanceof Map;\nvar isArrLikeSafe = (x) => [\"[object Array]\", \"[object Map]\", \"[object Set]\"].includes(\n Object.prototype.toString.call(x)\n);\nvar isArrUnique = (x) => isArr(x) && new Set(x).size === x.length;\nvar isUint8Arr = (x) => x instanceof Uint8Array;\nvar isArr_default = isArr;\n\n// src/is/isDate.ts\nvar isDate = (x) => x instanceof Date;\nvar isDateValid = (date) => {\n const dateIsStr = typeof date === \"string\";\n if (!dateIsStr && !isDate(date)) return false;\n const dateObj = new Date(date);\n if (Number.isNaN(dateObj.getTime())) return false;\n if (!dateIsStr) return true;\n const [original, converted] = [date, dateObj.toISOString()].map(\n (y) => y.replace(/[TZ]/g, \"\").substring(0, 10)\n );\n return original === converted;\n};\nvar isDate_default = isDate;\n\n// src/is/isNumber.ts\nvar isInteger = (x) => Number.isInteger(x);\nvar isNegativeInteger = (x) => Number.isInteger(x) && x < 0;\nvar isNegativeNumber = (x) => isNumber(x) && x < 0;\nvar isNumber = (x) => typeof x === \"number\" && !Number.isNaN(x) && Number.isFinite(x);\nvar isPositiveInteger = (x) => isInteger(x) && x > 0;\nvar isPositiveNumber = (x) => isNumber(x) && x > 0;\n\n// src/is/isEmpty.ts\nvar isEmpty = (x, nonNumerable = false, fallback = false) => {\n if (x === null || x === void 0) return true;\n switch (typeof x) {\n case \"number\":\n return !isNumber(x);\n case \"string\":\n return !x.replaceAll(\"\t\", \"\").trim().length;\n case \"boolean\":\n case \"bigint\":\n case \"symbol\":\n case \"function\":\n return false;\n }\n if (x instanceof Date) return Number.isNaN(x.getTime());\n if (x instanceof Map || x instanceof Set) return !x.size;\n if (Array.isArray(x) || x instanceof Uint8Array) return !x.length;\n if (x instanceof Error) return !x.message.length;\n const proto = typeof x === \"object\" && Object.getPrototypeOf(x);\n if (proto === Object.prototype || proto === null) {\n return nonNumerable ? !Object.getOwnPropertyNames(x).length : !Object.keys(x).length;\n }\n return fallback;\n};\nvar isEmptySafe = (x, numberableOnly = false) => {\n const empty = isEmpty(x, numberableOnly, 0);\n if (empty !== 0) return empty;\n switch (Object.prototype.toString.call(x)) {\n case \"[object Uint8Array]\":\n return !x.length;\n case \"[object Date]\":\n return Number.isNaN(x.getTime());\n case \"[object Map]\":\n return !x.size;\n case \"[object Object]\":\n return !Object.keys(x).length;\n case \"[object Set]\":\n return !x.size;\n default:\n return false;\n }\n};\nvar isEmpty_default = isEmpty;\n\n// src/is/isEnv.ts\nvar isEnvBrowser = () => typeof window !== \"undefined\" && typeof (window == null ? void 0 : window.document) !== \"undefined\";\nvar isEnvNode = () => {\n var _a;\n return typeof process !== \"undefined\" && ((_a = process == null ? void 0 : process.versions) == null ? void 0 : _a.node) != null;\n};\nvar isEnvTouchable = () => {\n var _a, _b;\n return typeof window !== \"undefined\" && \"ontouchstart\" in ((_b = (_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement) != null ? _b : {});\n};\n\n// src/noop.ts\nfunction noop() {\n}\nasync function noopAsync() {\n}\n\n// src/is/isFn.ts\nvar isFn = (x) => typeof x === \"function\";\nvar isAsyncFn = (x) => x instanceof noopAsync.constructor && x[Symbol.toStringTag] === \"AsyncFunction\";\nvar isFn_default = isFn;\n\n// src/is/isMap.ts\nvar isMap = (x) => x instanceof Map;\nvar isMapObj = (x, strict = true) => isMap(x) && [...x.values()].every((value) => isObj_default(value, strict));\n\n// src/is/isUrl.ts\nvar isUrl = (x) => x instanceof URL;\nvar isUrlValid = (x, strict = true, tldExceptions = [\"localhost\"]) => {\n if (!x) return false;\n try {\n if (typeof x !== \"string\" && !isUrl(x)) return false;\n const url = isUrl(x) ? x : new URL(x);\n if (!strict) return true;\n const gotTld = tldExceptions.includes(url.hostname) || url.host.split(\".\").length > 1;\n if (!gotTld) return false;\n let y = `${x}`;\n if (y.endsWith(url.hostname)) y += \"/\";\n return url.href === y;\n } catch (_) {\n return false;\n }\n};\nvar isUrl_default = isUrl;\n\n// src/is/index.ts\nvar isBool = (x) => typeof x === \"boolean\" || x instanceof Boolean;\nvar isDefined = (x) => x !== void 0 && x !== null;\nvar isError = (x) => x instanceof Error;\nvar isPromise = (x) => x instanceof Promise;\nvar isRegExp = (x) => x instanceof RegExp;\nvar isSet = (x) => x instanceof Set;\nvar isStr = (x) => typeof x === \"string\";\nvar isSubjectLike = (x, withValue = false) => isObj_default(x, false) && isFn_default(x.subscribe) && isFn_default(x.next) && (!withValue || \"value\" in x);\nvar isSymbol = (x) => typeof x === \"symbol\";\nvar is = {\n arr: isArr_default,\n arr2D: isArr2D,\n arrLike: isArrLike,\n arrLikeSafe: isArrLikeSafe,\n arrObj: isArrObj,\n arrUnique: isArrUnique,\n asyncFn: isAsyncFn,\n bool: isBool,\n date: isDate_default,\n dateValid: isDateValid,\n defined: isDefined,\n empty: isEmpty_default,\n emptySafe: isEmptySafe,\n envBrowser: isEnvBrowser,\n envNode: isEnvNode,\n envTouchable: isEnvTouchable,\n error: isError,\n fn: isFn_default,\n integer: isInteger,\n map: isMap,\n mapObj: isMapObj,\n negativeInteger: isNegativeInteger,\n negativeNumber: isNegativeNumber,\n number: isNumber,\n obj: isObj_default,\n positiveInteger: isPositiveInteger,\n positiveNumber: isPositiveNumber,\n promise: isPromise,\n regExp: isRegExp,\n set: isSet,\n str: isStr,\n subjectLike: isSubjectLike,\n symbol: isSymbol,\n uint8Arr: isUint8Arr,\n url: isUrl_default,\n urlValid: isUrlValid\n};\n\n// src/fallbackIfFails.ts\nvar fallbackIfFails = (target, args, fallback) => {\n try {\n const result = !isFn(target) ? target : target(...isFn(args) ? args() : args);\n if (!isPromise(result)) return result;\n return result.catch(\n (err) => isFn(fallback) ? fallback(err) : fallback\n );\n } catch (err) {\n return isFn(fallback) ? fallback(err) : fallback;\n }\n};\nvar fallbackIfFails_default = fallbackIfFails;\n\n// src/toDatetimeLocal.ts\nvar toDatetimeLocal = (dateStr) => {\n const date = new Date(dateStr);\n if (!isDateValid(date)) return \"\";\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, \"0\");\n const day = date.getDate().toString().padStart(2, \"0\");\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n const res = `${year}-${month}-${day}T${hours}:${minutes}`;\n return res;\n};\n(/* @__PURE__ */ new Date()).getTime();\n\n// src/obj/objClean.ts\nvar objClean = (obj, keys, ignoreIfNotExist = true) => {\n const result = {};\n if (!isObj(obj) || !isArr(keys)) return result;\n const uniqKeys = arrUnique(\n keys.map((x) => String(x).split(\".\")[0])\n ).sort();\n for (const key of uniqKeys) {\n if (ignoreIfNotExist && !obj.hasOwnProperty(key)) continue;\n const value = obj[key];\n if (!isObj(value) || isSymbol(key)) {\n result[key] = value;\n continue;\n }\n const childPrefix = `${key}.`;\n const childKeys = keys.filter((k) => {\n var _a;\n return (_a = k == null ? void 0 : k.startsWith) == null ? void 0 : _a.call(k, childPrefix);\n }).map((k) => k.split(childPrefix)[1]);\n if (!childKeys.length) {\n result[key] = value;\n continue;\n }\n result[key] = objClean(\n value,\n childKeys\n );\n }\n return result;\n};\n\n// src/obj/objKeys.ts\nvar objKeys = (obj, sorted = true, includeSymbols = true) => (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n fallbackIfFails_default(\n () => [\n ...includeSymbols && Object.getOwnPropertySymbols(obj) || [],\n ...sorted ? Object.keys(obj).sort() : Object.keys(obj)\n ],\n [],\n []\n )\n);\nvar objKeys_default = objKeys;\n\n// src/obj/objCopy.ts\nvar clone = (value, fallback = \"null\") => JSON.parse(fallbackIfFails_default(JSON.stringify, [value], fallback));\nvar objCopy = (input, output, ignoreKeys, override = false, recursive = true) => {\n const _output = isObj(output, false) || isFn(output) ? output : {};\n if (!isObj(input, false) && !isFn(output)) return _output;\n const _ignoreKeys = new Set(ignoreKeys != null ? ignoreKeys : []);\n const inKeys = objKeys_default(input, true, true).filter(\n (x) => !_ignoreKeys.has(x)\n );\n for (const _key of inKeys) {\n const key = _key;\n const value = input[key];\n const skip = _output.hasOwnProperty(key) && (override === \"empty\" ? !isEmpty(_output[key]) : isFn(override) ? !override(key, _output[key], value) : true);\n if (skip) continue;\n const isPrimitive = [void 0, null, Infinity, NaN].includes(value) || !isObj(value, false);\n if (isPrimitive) {\n _output[key] = value;\n continue;\n }\n _output[key] = (() => {\n switch (Object.getPrototypeOf(value)) {\n case Array.prototype:\n return clone(value, \"[]\");\n case ArrayBuffer.prototype:\n return value.slice(0);\n case Date.prototype:\n return new Date(value.getTime());\n case Map.prototype:\n return new Map(\n clone(\n Array.from(\n value\n ),\n \"[]\"\n )\n );\n case RegExp.prototype:\n return new RegExp(value);\n case Set.prototype:\n return new Set(\n clone(Array.from(value))\n );\n case Uint8Array.prototype:\n return new Uint8Array([...value]);\n case URL.prototype:\n return new URL(value);\n default:\n break;\n }\n if (isSymbol(key) || !recursive) return clone(value);\n const ignoreChildKeys = [..._ignoreKeys].map(\n (x) => String(x).startsWith(String(key).concat(\".\")) && String(x).split(String(key).concat(\".\"))[1]\n ).filter(Boolean);\n if (!ignoreChildKeys.length) return clone(value);\n return objCopy(\n value,\n _output[key],\n ignoreChildKeys,\n override,\n recursive\n );\n })();\n }\n return _output;\n};\n\n// src/obj/objCreate.ts\nvar objCreate = (keys = [], values = [], result) => {\n if (!isObj(result)) result = {};\n for (let i = 0; i < (isArr(keys) ? keys : []).length; i++) {\n ;\n result[keys[i]] = values == null ? void 0 : values[i];\n }\n return result;\n};\n\n// src/obj/objHasKeys.ts\nfunction objHasKeys(input = {}, keys = [], requireValue = false) {\n if (!isObj(input) || !isArr(keys)) return false;\n for (const key of keys) {\n if (!input.hasOwnProperty(key)) return false;\n if (requireValue && isEmpty(input[key])) return false;\n }\n return true;\n}\n\n// src/obj/objReadOnly.ts\nvar objReadOnly = (obj, config) => {\n if (!isObj(obj, false)) obj = {};\n const { add, revocable, silent = true } = config != null ? config : {};\n const [typeTitle, keyTitle] = isArr(obj) ? [\"array\", \"index\"] : [\"object\", \"property name\"];\n function handleSetProp(obj2, key, value) {\n const isUpdate = obj2[key] !== void 0;\n if (isUpdate && silent) return true;\n const allowAddition = !isUpdate && (!isFn(add) ? add : add(obj2, key, value));\n const shouldThrow = !silent && (isUpdate || !allowAddition);\n if (shouldThrow)\n throw new TypeError(\n `Mutation not allow on read-only ${typeTitle} ${keyTitle}: ${key.toString()}`\n );\n if (!allowAddition) return true;\n obj2[key] = value;\n return true;\n }\n const proxyHandler = {\n get: (obj2, key) => obj2[key],\n set: handleSetProp,\n defineProperty: (obj2, key, { value }) => handleSetProp(obj2, key, value),\n // Prevent removal of properties\n deleteProperty: (obj2, key) => {\n if (!silent && obj2.hasOwnProperty(key)) {\n throw new Error(\n `Mutation not allow on read-only ${typeTitle} ${keyTitle}: ${key.toString()}`\n );\n }\n return true;\n }\n };\n return revocable ? Proxy.revocable(obj, proxyHandler) : new Proxy(obj, proxyHandler);\n};\n\n// src/obj/objSetProp.ts\nvar objSetProp = (obj, key, falsyValue, condition, truthyValue) => {\n var _a;\n const result = !isObj(obj, false) ? {} : obj;\n falsyValue != null ? falsyValue : falsyValue = result[key];\n condition = isFn(condition) ? condition((_a = result[key]) != null ? _a : falsyValue, key, obj) : condition;\n result[key] = !condition ? falsyValue : truthyValue;\n return result;\n};\nvar objSetPropUndefined = (...[obj, key, ...args]) => (obj == null ? void 0 : obj[key]) === void 0 && objSetProp(obj, key, ...args) || obj;\n\n// src/obj/objSort.ts\nvar objSort = (obj, recursive = true, _done = /* @__PURE__ */ new Map()) => {\n const sorted = {};\n if (!isObj(obj)) return sorted;\n for (const key of objKeys_default(obj)) {\n const value = obj[key];\n _done.set(value, true);\n sorted[key] = !recursive || !isObj(value) ? value : objSort(\n value,\n recursive,\n _done\n );\n }\n return sorted;\n};\n\n// src/obj/objWithoutKeys.ts\nvar objWithoutKeys = (input, keys, output) => {\n if (!isObj(input, false)) return {};\n if (!isArr(keys) || !keys.length) return input;\n output = {\n ...isObj(output, false) && output,\n ...input\n };\n for (const key of keys) delete output[key];\n return output;\n};\n\n// src/arr/arrReadOnly.ts\nvar arrReadOnly = (arr, config = {}) => objReadOnly(new ReadOnlyArrayHelper(config, arr), config);\nvar ReadOnlyArrayHelper = class extends Array {\n constructor(config, arr) {\n var _a;\n (_a = config.silent) != null ? _a : config.silent = true;\n super(...arr);\n this.config = config;\n this.ignoreOrThrow = (returnValue) => {\n if (this.config.silent) return returnValue;\n throw new Error(\"Mutation not allowed on read-only array\");\n };\n this.pop = () => this.ignoreOrThrow(this[this.length - 1]);\n this.push = (...items) => !this.config.add ? this.ignoreOrThrow(this.length) : super.push(...items);\n this.reverse = () => this.ignoreOrThrow(this);\n this.shift = () => this.ignoreOrThrow(this[0]);\n this.splice = (..._ignoredArgs) => this.ignoreOrThrow([]);\n this.unshift = (..._ignoredArgs) => this.ignoreOrThrow(this.length);\n }\n // fromAsync = super.fromAsync\n // reduce = super.reduce\n // reduceRight = super.reduceRight\n};\n\n// src/arr/arrReverse.ts\nvar arrReverse = (arr, reverse2 = true, newArray = false) => {\n if (!isArr(arr)) return [];\n if (newArray) arr = [...arr];\n return reverse2 ? arr.reverse() : arr;\n};\n\n// src/arr/arrToMap.ts\nfunction arrToMap(arr, key, flatDepth = 0) {\n ;\n [key, flatDepth] = isNumber(key) ? [void 0, key] : [key, flatDepth];\n const flatEntries = (!isArr(arr) ? [] : flatDepth > 0 ? arr.flat(flatDepth) : arr).map((item, i, flatArr) => {\n var _a;\n return [\n (_a = isFn(key) ? key(item, i, flatArr) : isObj(item) && isDefined(key) ? item[key] : i) != null ? _a : i,\n item\n ];\n });\n return new Map(flatEntries);\n}\n\n// src/arr/arrUnique.ts\nvar arrUnique = (arr, flatDepth = 0) => !isArr(arr) ? [] : Array.from(new Set(arr.flat(flatDepth)));\n\n// src/deferred/debounce.ts\nvar debounce = (callback, delay = 50, config = {}) => {\n const {\n leading = debounce.defaults.leading,\n onError = debounce.defaults.onError,\n thisArg\n } = config;\n let { tid } = config;\n if (thisArg !== void 0) callback = callback.bind(thisArg);\n const _callback = (...args) => fallbackIfFails_default(callback, args, onError);\n let firstArgs = null;\n const leadingGlobal = leading === \"global\";\n return (...args) => {\n clearTimeout(tid);\n tid = setTimeout(() => {\n firstArgs !== args && _callback(...args);\n firstArgs = leadingGlobal ? true : null;\n }, delay);\n if (!leading || firstArgs) return;\n firstArgs = args;\n _callback(...args);\n };\n};\ndebounce.defaults = {\n /**\n * Set the default value of argument `leading` for the `deferred` function.\n * This change is applicable application-wide and only applies to any new invocation of `deferred()`.\n */\n leading: false,\n /**\n * Set the default value of argument `onError` for the `deferred` function.\n * This change is applicable application-wide and only applies to any new invocation of `deferred()`.\n */\n onError: void 0\n};\nvar debounce_default = debounce;\n\n// src/deferred/throttle.ts\nvar throttle = (callback, delay = 50, config = {}) => {\n const { defaults: d } = throttle;\n const { onError = d.onError, trailing = d.trailing, thisArg } = config;\n let { tid } = config;\n const handleCallback = (...args) => fallbackIfFails_default(\n thisArg !== void 0 ? callback.bind(thisArg) : callback,\n args,\n !isFn(onError) ? void 0 : (err) => fallbackIfFails_default(onError, [err], void 0)\n );\n let trailArgs = null;\n return (...args) => {\n if (tid) {\n trailArgs = args;\n return;\n }\n tid = setTimeout(() => {\n tid = void 0;\n if (!trailing) return;\n const cbArgs = trailArgs;\n trailArgs = null;\n cbArgs && cbArgs !== args && handleCallback(...cbArgs);\n }, delay);\n handleCallback(...args);\n };\n};\nthrottle.defaults = {\n onError: void 0,\n trailing: false\n};\nvar throttled = throttle;\nvar throttle_default = throttle;\n\n// src/deferred/deferred.ts\nvar deferred = (callback, delay = 50, config = {}) => config.throttle ? throttle_default(callback, delay, config) : debounce_default(callback, delay, config);\n\n// src/iterable/filter.ts\nvar filter = (data, predicate, limit, asArray, result) => {\n var _a;\n if (!isMap(result)) result = /* @__PURE__ */ new Map();\n if (!isPositiveInteger(limit)) limit = Infinity;\n for (const [key, item] of ((_a = data == null ? void 0 : data.entries) == null ? void 0 : _a.call(data)) || []) {\n if (result.size >= limit) break;\n fallbackIfFails_default(predicate != null ? predicate : item, [item, key, data], false) && result.set(key, item);\n }\n return asArray ? [...result.values()] : result;\n};\nvar filter_default = filter;\n\n// src/iterable/getSize.ts\nvar getSize = (x) => {\n if (!x) return 0;\n try {\n const s = \"size\" in x ? x.size : \"length\" in x ? x.length : 0;\n return isNumber(s) ? s : 0;\n } catch (_) {\n return 0;\n }\n};\nvar getSize_default = getSize;\n\n// src/iterable/getValues.ts\nvar getValues = (data) => {\n var _a;\n return [\n ...((_a = data == null ? void 0 : data.values) == null ? void 0 : _a.call(data)) || []\n ];\n};\nvar getValues_default = getValues;\n\n// src/iterable/search.ts\nvar search = (data, options) => {\n var _a;\n const ignore = !getSize_default(data) || isEmpty(options == null ? void 0 : options.query);\n const result = isMap(options == null ? void 0 : options.result) ? options.result : /* @__PURE__ */ new Map();\n const asMap = (_a = options == null ? void 0 : options.asMap) != null ? _a : search.defaults.asMap;\n if (ignore) return asMap ? result : getValues_default(result);\n options = objCopy(\n search.defaults,\n options,\n [],\n \"empty\"\n // override `option` property with default value when \"empty\" (undefined, null, '',....)\n );\n const {\n ignoreCase,\n limit = Infinity,\n matchAll,\n matchExact,\n ranked\n } = options;\n let { query } = options;\n const qIsStr = isStr(query);\n const qIsRegExp = isRegExp(query);\n const qKeys = fallbackIfFails_default(Object.keys, [query], []);\n if (ignoreCase && !matchExact && !qIsRegExp) {\n query = qIsStr ? query.toLowerCase() : objCreate(\n qKeys,\n Object.values(query).map(\n (x) => isRegExp(x) ? x : `${x}`.toLowerCase()\n )\n );\n }\n options.query = query;\n if (!ranked) {\n for (const [dataKey, dataValue] of data.entries()) {\n if (result.size >= limit) break;\n const matched = qIsStr || qIsRegExp ? (\n // global search across all properties\n matchObjOrProp(options, dataValue, void 0) >= 0\n ) : (\n // field-specific search\n qKeys[matchAll ? \"every\" : \"some\"](\n (key) => matchObjOrProp(options, dataValue, key) >= 0\n )\n );\n if (!matched) continue;\n result.set(dataKey, dataValue);\n }\n } else {\n const preRankedResults = [];\n for (const [dataKey, dataValue] of data.entries()) {\n let matchIndex = -1;\n if (qIsStr || qIsRegExp) {\n matchIndex = matchObjOrProp(options, dataValue, void 0);\n matchIndex >= 0 && preRankedResults.push([matchIndex, dataKey, dataValue]);\n continue;\n }\n const indexes = [];\n const match = qKeys[matchAll ? \"every\" : \"some\"](\n // field-specific search\n (key) => {\n const index = matchObjOrProp(options, dataValue, key);\n indexes.push(index);\n return index >= 0;\n }\n );\n if (!match) continue;\n matchIndex = // eslint-disable-next-line @typescript-eslint/prefer-find\n indexes.sort((a, b) => a - b).filter((n) => n !== -1)[0];\n matchIndex >= 0 && preRankedResults.push([matchIndex, dataKey, dataValue]);\n }\n preRankedResults.sort((a, b) => a[0] - b[0]).slice(0, limit).forEach(([_, key, value]) => result.set(key, value));\n }\n return asMap ? result : getValues_default(result);\n};\nsearch.defaults = {\n asMap: true,\n ignoreCase: true,\n limit: Infinity,\n matchAll: false,\n ranked: false,\n transform: true\n};\nfunction matchObjOrProp({\n query,\n ignoreCase,\n matchExact,\n transform = true\n}, item, propertyName) {\n var _a, _b;\n const global = isStr(query) || isRegExp(query) || propertyName === void 0;\n const keyword = global ? query : query[propertyName];\n const propVal = global || !isObj(item) ? item : item[propertyName];\n const value = fallbackIfFails_default(\n () => isFn(transform) ? transform(\n item,\n global ? void 0 : propVal,\n propertyName\n ) : matchExact && transform === false ? propVal : isObj(propVal, false) ? JSON.stringify(\n isArrLike(propVal) ? [...propVal.values()] : Object.values(propVal)\n ) : String(propVal != null ? propVal : \"\"),\n [],\n \"\"\n );\n if (value === keyword) return 0;\n if (matchExact && !isRegExp(keyword)) return -1;\n let valueStr = String(value);\n if (!valueStr.trim()) return -1;\n if (isRegExp(keyword)) return (_b = (_a = valueStr.match(keyword)) == null ? void 0 : _a.index) != null ? _b : -1;\n if (ignoreCase) valueStr = valueStr.toLowerCase();\n return valueStr.indexOf(String(keyword));\n}\nvar search_default = search;\n\n// src/iterable/find.ts\nfunction find(data, optsOrCb) {\n const result = isFn(optsOrCb) ? filter_default(data, optsOrCb, 1) : search_default(data, { ...optsOrCb, asMap: true, limit: 1 });\n return result[\n (optsOrCb == null ? void 0 : optsOrCb.includeKey) ? \"entries\" : \"values\"\n // returns: value\n ]().next().value;\n}\n\n// src/iterable/getEntries.ts\nvar getEntries = (map) => {\n var _a;\n return [\n ...((_a = map == null ? void 0 : map.entries) == null ? void 0 : _a.call(map)) || []\n ];\n};\n\n// src/iterable/getKeys.ts\nvar getKeys = (data) => {\n var _a;\n return [\n ...((_a = data == null ? void 0 : data.keys) == null ? void 0 : _a.call(data)) || []\n ];\n};\n\n// src/iterable/reverse.ts\nvar reverse = (data, reverse2 = true, newInstance = false) => {\n var _a, _b, _c;\n const dataType = isArr(data) ? 1 : isMap(data) ? 2 : isSet(data) ? 3 : 0;\n if (!dataType) return [];\n const arr = dataType === 1 ? !newInstance ? data : [...data] : dataType === 2 ? [...data.entries()] : [...data.values()];\n if (reverse2) arr.reverse();\n switch (dataType) {\n case 1:\n return arr;\n case 2:\n case 3:\n if (newInstance || !(\"clear\" in data && isFn(data.clear)))\n return dataType === 2 ? new Map(arr) : new Set(arr);\n }\n (_a = data == null ? void 0 : data.clear) == null ? void 0 : _a.call(data);\n for (const item of arr)\n \"set\" in data ? (_b = data.set) == null ? void 0 : _b.call(data, ...item) : \"add\" in data && ((_c = data == null ? void 0 : data.add) == null ? void 0 : _c.call(data, item));\n return data;\n};\n\n// src/iterable/sliceMap.ts\nvar sliceMap = (data, options) => {\n var _a;\n const {\n asMap = false,\n end,\n start = 0,\n transform,\n ignoreEmpty = true\n } = isFn(options) ? { transform: options } : isObj(options) ? options : {};\n const result = /* @__PURE__ */ new Map();\n const subset = [...((_a = data == null ? void 0 : data.entries) == null ? void 0 : _a.call(data)) || []].slice(start, end);\n for (const [_, [key, value]] of subset.entries()) {\n if (ignoreEmpty && isEmpty(value)) continue;\n const newValue = fallbackIfFails_default(\n transform != null ? transform : value,\n [value, key, data],\n void 0\n );\n newValue !== void 0 && result.set(key, newValue);\n }\n return asMap ? result : [...result.values()];\n};\n\n// src/iterable/sort.ts\nfunction sort(data, keyOrFn, options) {\n const dataType = isArr(data) ? 1 : isMap(data) ? 2 : isSet(data) ? 3 : 0;\n if (!dataType) return data;\n const { asString, ignoreCase, newInstance, reverse: reverse2, undefinedFirst } = {\n ...sort.defaults,\n ...isObj(options) ? options : isObj(keyOrFn) ? keyOrFn : {}\n };\n if (dataType === 1 && isFn(keyOrFn)) {\n return arrReverse(\n data.sort(keyOrFn),\n // use provided comparator function\n reverse2,\n newInstance\n );\n }\n const alt = asString ? undefinedFirst ? \"\" : \"Z\".repeat(10) : undefinedFirst ? -Infinity : Infinity;\n const sorted = isFn(keyOrFn) ? arrReverse(\n // handle Set with comparator function\n [...data.entries()].sort(keyOrFn),\n reverse2,\n false\n // not required because of entries() & spread\n ) : (() => {\n let index = 1;\n const getVal = (target) => {\n const val = isObj(target) && index !== 0 ? target[keyOrFn] : target;\n if (!asString) return val;\n const value = `${val != null ? val : alt}`;\n return ignoreCase ? value.toLowerCase() : value;\n };\n const [gt, lt] = reverse2 ? [-1, 1] : [1, -1];\n if ([1, 3].includes(dataType)) {\n return (dataType === 3 || newInstance ? [...data] : data).sort((a, b) => getVal(a) > getVal(b) ? gt : lt);\n }\n index = keyOrFn === true ? 0 : 1;\n return [...data.entries()].sort(\n (a, b) => getVal(a == null ? void 0 : a[index]) > getVal(b == null ? void 0 : b[index]) ? gt : lt\n );\n })();\n if (dataType === 1) return sorted;\n if (newInstance) {\n return dataType === 2 ? new Map(sorted) : new Set(sorted);\n }\n ;\n data.clear();\n for (const entry of sorted)\n dataType === 2 ? data.set(...entry) : data.add(entry);\n return data;\n}\nsort.defaults = {\n asString: true,\n ignoreCase: true,\n newInstance: false,\n reverse: false,\n undefinedFirst: false\n};\n\n// src/map/mapJoin.ts\nvar mapJoin = (...inputs) => {\n var _a;\n return new Map(\n (_a = inputs == null ? void 0 : inputs.flatMap) == null ? void 0 : _a.call(\n inputs,\n (input) => isMap(input) ? Array.from(input.entries()) : isArr2D(input) ? input : []\n )\n );\n};\n\n// src/number/randomInt.ts\nvar randomInt = (min = 0, max = Number.MAX_SAFE_INTEGER) => parseInt(`${Math.random() * (max - min) + min}`);\n\n// src/str/clearClutter.ts\nvar clearClutter = (text, lineSeparator = \" \") => `${text}`.split(\"\\n\").map((ln) => ln.trim()).filter(Boolean).join(lineSeparator);\n\n// src/str/copyToClipboard.ts\nvar copyToClipboard = (str) => fallbackIfFails(\n // First attempt: modern clipboard API\n () => navigator.clipboard.writeText(str).then(() => 1),\n [],\n // If clipboard API is not available or fails, use the fallback method\n () => Promise.resolve(copyLegacy(str) ? 2 : 0)\n);\nvar copyLegacy = (str) => fallbackIfFails(\n () => {\n const el = document.createElement(\"textarea\");\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n el.select();\n const success = document.execCommand(\"copy\");\n document.body.removeChild(el);\n return success;\n },\n [],\n false\n // On error, return false\n);\n\n// src/str/getUrlParam.ts\nvar getUrlParam = (name, url, asArray) => {\n var _a;\n url != null ? url : url = fallbackIfFails_default(() => window.location.href, [], \"\");\n const _asArray = isArr(asArray) ? asArray : asArray === true && isStr(name) ? [name] : [];\n const prepareResult = (value = \"\", values = {}) => name ? isArr(value) || !_asArray.includes(name) ? value : [value].filter(Boolean) : values;\n if (!url) return prepareResult();\n if (typeof URLSearchParams === \"undefined\" || !URLSearchParams) {\n const r = getUrlParamRegex(name, url, _asArray);\n return prepareResult(r, r);\n }\n const search2 = isUrl(url) ? url.search : ((_a = url.split(\"?\")) == null ? void 0 : _a[1]) || \"\";\n if (search2 === \"?\" || !search2) return prepareResult();\n const params = new URLSearchParams(search2);\n const getValue = (paramName) => {\n const value = arrUnique(params.getAll(paramName));\n return value.length > 1 || _asArray.includes(paramName) ? value : value[0];\n };\n if (name) return prepareResult(getValue(name));\n const result = {};\n for (const name2 of arrUnique([...params.keys()])) {\n result[name2] = getValue(name2);\n }\n return result;\n};\nvar getUrlParamRegex = (name, url, asArray = []) => {\n url != null ? url : url = fallbackIfFails_default(() => window.location.href, [], \"\");\n if (isUrl(url)) url = url.toString();\n const params = {};\n const regex = /[?&]+([^=&]+)=([^&]*)/gi;\n url == null ? void 0 : url.replace(regex, (_, name2, value) => {\n value = decodeURIComponent(value);\n if (asArray.includes(name2) || params[name2] !== void 0) {\n params[name2] = isArr(params[name2]) ? params[name2] : [params[name2]];\n params[name2] = arrUnique([...params[name2], value]).filter(Boolean);\n } else {\n params[name2] = value;\n }\n return \"\";\n });\n return name ? params[name] : params;\n};\n\n// src/str/regex.ts\nvar EMAIL_REGEX = new RegExp(\n /^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,9}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i\n);\nvar HEX_REGEX = /^0x[0-9a-f]+$/i;\nvar HASH_REGEX = /^0x[0-9a-f]{64}$/i;\n\n// src/str/strToArr.ts\nvar strToArr = (value, seperator = \",\") => typeof value === \"string\" && value.split(seperator).filter(Boolean) || [];\nexport {\n EMAIL_REGEX,\n HASH_REGEX,\n HEX_REGEX,\n ReadOnlyArrayHelper,\n arrReadOnly,\n arrReverse,\n arrToMap,\n arrUnique,\n clearClutter,\n copyToClipboard,\n curry,\n debounce,\n deferred,\n fallbackIfFails,\n filter,\n find,\n getEntries,\n getKeys,\n getSize,\n getUrlParam,\n getValues,\n is,\n isArr,\n isArr2D,\n isArrLike,\n isArrLikeSafe,\n isArrObj,\n isArrUnique,\n isAsyncFn,\n isBool,\n isDate,\n isDateValid,\n isDefined,\n isEmpty,\n isEmptySafe,\n isEnvBrowser,\n isEnvNode,\n isEnvTouchable,\n isError,\n isFn,\n isInteger,\n isMap,\n isMapObj,\n isNegativeInteger,\n isNegativeNumber,\n isNumber,\n isObj,\n isPositiveInteger,\n isPositiveNumber,\n isPromise,\n isRegExp,\n isSet,\n isStr,\n isSubjectLike,\n isSymbol,\n isUint8Arr,\n isUrl,\n isUrlValid,\n mapJoin,\n matchObjOrProp,\n noop,\n noopAsync,\n objClean,\n objCopy,\n objCreate,\n objHasKeys,\n objKeys,\n objReadOnly,\n objSetProp,\n objSetPropUndefined,\n objSort,\n objWithoutKeys,\n randomInt,\n reverse,\n search,\n sliceMap,\n sort,\n strToArr,\n throttle,\n throttled,\n toDatetimeLocal\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n\n// Re-export fetch relevant & useful things from '@superutils/promise' for ease of use\nexport {\n\tResolveError,\n\tResolveIgnored,\n\tTIMEOUT_FALLBACK,\n\tTIMEOUT_MAX,\n\tTimeoutPromise,\n} from '@superutils/promise'\nexport type {\n\tDeferredAsyncOptions,\n\tOnEarlyFinalize,\n\tOnFinalize,\n\tRetryIfFunc,\n\tRetryOptions,\n\tTimeoutOptions,\n} from '@superutils/promise'\n\n/* All local exports */\nexport * from './createClient'\nexport * from './createPostClient'\nexport * from './executeInterceptors'\nexport * from './fetch'\nexport * from './getResponse'\nexport * from './mergeOptions'\nexport * from './types'\nimport createClient from './createClient'\nimport createPostClient from './createPostClient'\nimport _fetch from './fetch'\nimport { FetchAs, FetchCustomOptions, FetchInterceptors } from './types'\n\nconst methods = {\n\t/** Make HTTP requests with method GET */\n\tget: createClient({ method: 'get' }),\n\n\t/** Make HTTP requests with method HEAD */\n\thead: createClient({ method: 'head' }),\n\n\t/** Make HTTP requests with method OPTIONS */\n\toptions: createClient({ method: 'options' }),\n\n\t/** Make HTTP requests with method DELETE */\n\tdelete: createPostClient({ method: 'delete' }),\n\n\t/** Make HTTP requests with method PATCH */\n\tpatch: createPostClient({ method: 'patch' }),\n\n\t/** Make HTTP requests with method POST */\n\tpost: createPostClient({ method: 'post' }),\n\n\t/** Make HTTP requests with method PUT */\n\tput: createPostClient({ method: 'put' }),\n}\n\n/**\n * A `fetch()` replacement that simplifies data fetching with automatic JSON parsing, request timeouts, retries,\n * and handy interceptors that also work as transformers. It also includes deferred and throttled request\n * capabilities for complex asynchronous control flows.\n *\n * Will reject promise if response status code is not 2xx (200 <= status < 300).\n *\n * ## Method Specific Functions\n *\n * While `fetch()` provides access to all HTTP request methods by specifying it in options (eg: `{ method: 'get' }`),\n * for ease of use you can also use the following:\n *\n * - `fetch.delete(...)`\n * - `fetch.get(...)`\n * - `fetch.head(...)`\n * - `fetch.options(...)`\n * - `fetch.patch(...)`\n * - `fetch.post(...)`\n * - `fetch.put(...)`\n *\n * **Deferred variants:** To debounce/throttle requests.\n *\n * - `fetch.delete.deferred(...)`\n * - `fetch.get.deferred(...)`\n * - `fetch.head.deferred(...)`\n * - `fetch.options.deferred(...)`\n * - `fetch.patch.deferred(...)`\n * - `fetch.post.deferred(...)`\n * - `fetch.put.deferred(...)`\n *\n * @template T The type of the value that the `fetch` resolves to.\n * @template TReturn Return value type.\n *\n * If `T` is not specified defaults to the following based on the value of `options.as`:\n * - FetchAs.arrayBuffer: `ArrayBuffer`\n * - FetchAs.blob: `Blob`\n * - FetchAs.bytes: `Uint8Array<ArrayBuffer>`\n * - FetchAs.formData: `FormData`\n * - FetchAs.json: `unknown`\n * - FetchAs.text: `string`\n * - FetchAs.response: `Response`\n *\n * @param url\n * @param options (optional) Standard `fetch` options extended with {@link FetchCustomOptions}\n * @param options.abortCtrl (optional) if not provided `AbortController` will be instantiated when `timeout` used.\n *\n * Default: `new AbortController()`\n * @param options.as (optional) (optional) specify how to parse the result.\n * For raw `Response` use {@link FetchAs.response}\n *\n * Default: {@link FetchAs.json}\n * @param options.headers (optional) request headers\n *\n * Default: `{ 'content-type': 'application/json' }`\n * @param options.interceptors (optional) request interceptor/transformer callbacks.\n * See {@link FetchInterceptors} for details.\n * @param options.method (optional) fetch method.\n *\n * Default: `'get'`\n * @param options.timeout (optional) duration in milliseconds to abort the request.\n * This duration includes the execution of all interceptors/transformers.\n *\n * Default: `30_000`\n *\n *\n *\n * ---\n *\n * @example\n * #### Drop-in replacement for built-in fetch\n *\n * ```javascript\n * import fetch from '@superutils/fetch'\n *\n * fetch('https://dummyjson.com/products/1')\n * .then(response => response.json())\n * .then(console.log, console.error)\n * ```\n *\n * @example\n * #### Method specific function with JSON parsing by default\n * ```javascript\n * import fetch from '@superutils/fetch'\n *\n * // no need for `response.json()` or `result.data.data` drilling\n * fetch.get('https://dummyjson.com/products/1')\n * .then(product => console.log(product))\n * fetch.post('https://dummyjson.com/products/add', { title: 'Product title' })\n * .then(product => console.log(product))\n * ```\n *\n *\n * @example\n * #### Set default options.\n *\n * Options' default values (excluding `as` and `method`) can be configured to be EFFECTIVE GLOBALLY.\n *\n * ```typescript\n * import fetch from '@superutils/fetch'\n *\n * const { defaults, errorMsgs, interceptors } = fetch\n *\n * // set default request timeout duration in milliseconds\n * defaults.timeout = 40_000\n *\n * // default headers\n * defaults.headers = { 'content-type': 'text/plain' }\n *\n * // override error messages\n * errorMsgs.invalidUrl = 'URL is not valid'\n * errorMsgs.timedout = 'Request took longer than expected'\n *\n * // add an interceptor to log all request failures.\n * const fetchLogger = (fetchErr, url, options) => console.log('Fetch error log', fetchErr)\n * interceptors.error.push(fetchLogger)\n *\n * // add an interceptor to conditionally include header before making requests\n * interceptors.request.push((url, options) => {\n * // ignore login requests\n * if (`${url}`.includes('/login')) return\n *\n * options.headers.set('x-auth-token', 'my-auth-token')\n * })\n * ```\n */\nexport const fetch = _fetch as typeof _fetch & typeof methods\nfetch.delete = methods.delete\nfetch.get = methods.get\nfetch.head = methods.head\nfetch.options = methods.options\nfetch.patch = methods.patch\nfetch.post = methods.post\nfetch.put = methods.put\n\nexport default fetch\n","import { fallbackIfFails, isFn } from '@superutils/core'\nimport { type Interceptor } from './types'\n\n/**\n * Gracefully executes interceptors and returns the processed value.\n * If the value is not transformed (by returning a new value) by the interceptors,\n * the original value is returned.\n *\n * @param\tvalue value to be passed to the interceptors\n * @param\tsignal The AbortController used to monitor the request status. If the signal is aborted (e.g. due to\n * timeout or manual cancellation), the interceptor chain halts immediately. Note: This does not interrupt the\n * currently executing interceptor, but prevents subsequent ones from running.\n * @param\tinterceptors interceptor/transformer callbacks\n * @param\targs (optional) common arguments to be supplied to all the interceptors in addition to\n * the `value' which will always be the first argument.\n *\n * Interceptor arguments: `[value, ...args]`\n */\nexport const executeInterceptors = async <T, TArgs extends unknown[]>(\n\tvalue: T,\n\tsignal?: AbortSignal,\n\tinterceptors?: Interceptor<T, TArgs>[],\n\t...args: TArgs\n) => {\n\tfor (const interceptor of [...(interceptors ?? [])].filter(isFn)) {\n\t\tif (signal?.aborted) break\n\t\tvalue =\n\t\t\t((await fallbackIfFails(\n\t\t\t\tinterceptor,\n\t\t\t\t[value, ...args],\n\t\t\t\tundefined,\n\t\t\t)) as T) ?? value // if throws error or undefined/null is returned\n\t}\n\treturn value\n}\n\nexport default executeInterceptors\n","import { fallbackIfFails, isFn, isPositiveInteger } from '@superutils/core'\nimport { retry } from '@superutils/promise'\nimport { FetchArgs, FetchFunc } from './types'\n\n/**\n * Executes the built-in `fetch()` (or a custom `fetchFunc` if provided) with support for automatic retries.\n *\n * If `options.retry` is greater than 0, the request will be retried if it fails or if the response is not OK,\n * unless overridden by `options.retryIf`.\n *\n * @param url The request URL.\n * @param options (optional) Fetch options, including retry settings.\n *\n * @returns A promise resolving to the Response.\n */\nconst getResponse = (url: FetchArgs[0], options: FetchArgs[1] = {}) => {\n\tconst fetchFunc = isFn(options.fetchFunc)\n\t\t? options.fetchFunc\n\t\t: (globalThis.fetch as FetchFunc)\n\tif (!isPositiveInteger(options.retry)) return fetchFunc(url, options)\n\n\tlet attemptCount = 0\n\tconst response = retry(\n\t\t() => {\n\t\t\tattemptCount++\n\t\t\treturn fetchFunc(url, options)\n\t\t},\n\t\t{\n\t\t\t...options,\n\t\t\tretryIf: async (res, count, error) => {\n\t\t\t\tconst { abortCtrl, retryIf, signal } = options\n\t\t\t\tif (abortCtrl?.signal.aborted || signal?.aborted) return false\n\n\t\t\t\treturn !!(\n\t\t\t\t\t(await fallbackIfFails(\n\t\t\t\t\t\tretryIf,\n\t\t\t\t\t\t[res, count, error],\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t))\n\t\t\t\t\t?? (!!error || !res?.ok)\n\t\t\t\t)\n\t\t\t},\n\t\t},\n\t).catch(err =>\n\t\tPromise.reject(\n\t\t\tnew Error(`Request failed after attempt #${attemptCount}`, {\n\t\t\t\tcause: err,\n\t\t\t}),\n\t\t),\n\t)\n\n\treturn response\n}\nexport default getResponse\n","import { isArr, isFn, isObj, objCopy } from '@superutils/core'\nimport { FetchOptions, FetchOptionsInterceptor } from './types'\n\n/**\n * Merge one or more {@link FetchOptions}\n *\n * Notes:\n * - item properties will be prioritized in the order of sequence they were passed in\n * - the following properties will be merged:\n * * `errMsgs`\n * * `headers`\n * * `interceptors`\n * - all other properties will simply override previous values\n *\n * @returns combined\n */\nexport const mergeOptions = (...allOptions: (FetchOptions | undefined)[]) =>\n\tallOptions.reduce(\n\t\t(merged: FetchOptions, options) => {\n\t\t\toptions = isObj(options) ? options : {}\n\t\t\tconst { headers, interceptors: ints1 = {} } = merged\n\t\t\tconst { interceptors: ints2 = {} } = options\n\t\t\toptions.headers\n\t\t\t\t&& new Headers(options.headers).forEach((value, key) =>\n\t\t\t\t\t(headers as Headers).set(key, value),\n\t\t\t\t)\n\n\t\t\treturn {\n\t\t\t\t...merged,\n\t\t\t\t...options,\n\t\t\t\terrMsgs: objCopy(\n\t\t\t\t\toptions.errMsgs as Record<string, string>,\n\t\t\t\t\tmerged.errMsgs,\n\t\t\t\t\t[],\n\t\t\t\t\t'empty',\n\t\t\t\t),\n\t\t\t\theaders,\n\t\t\t\tinterceptors: {\n\t\t\t\t\terror: [...toArr(ints1?.error), ...toArr(ints2?.error)],\n\t\t\t\t\trequest: [\n\t\t\t\t\t\t...toArr(ints1?.request),\n\t\t\t\t\t\t...toArr(ints2?.request),\n\t\t\t\t\t],\n\t\t\t\t\tresponse: [\n\t\t\t\t\t\t...toArr(ints1?.response),\n\t\t\t\t\t\t...toArr(ints2?.response),\n\t\t\t\t\t],\n\t\t\t\t\tresult: [...toArr(ints1?.result), ...toArr(ints2?.result)],\n\t\t\t\t},\n\t\t\t\ttimeout: options.timeout ?? merged.timeout,\n\t\t\t} as FetchOptions\n\t\t},\n\t\t{ headers: new Headers() },\n\t) as FetchOptionsInterceptor\nexport default mergeOptions\n\nconst toArr = <T = unknown>(x?: T | T[]) => (isArr(x) ? x : isFn(x) ? [x] : [])\n","/** Commonly used content types for easier access */\nexport const ContentType = {\n\tAPPLICATION_JAVASCRIPT: 'application/javascript',\n\tAPPLICATION_JSON: 'application/json',\n\tAPPLICATION_OCTET_STREAM: 'application/octet-stream',\n\tAPPLICATION_PDF: 'application/pdf',\n\tAPPLICATION_X_WWW_FORM_URLENCODED: 'application/x-www-form-urlencoded',\n\tAPPLICATION_XML: 'application/xml',\n\tAPPLICATION_ZIP: 'application/zip',\n\tAUDIO_MPEG: 'audio/mpeg',\n\tMULTIPART_FORM_DATA: 'multipart/form-data',\n\tTEXT_CSS: 'text/css',\n\tTEXT_HTML: 'text/html',\n\tTEXT_PLAIN: 'text/plain',\n\tVIDEO_MP4: 'video/mp4',\n} as const\n\nexport enum FetchAs {\n\tarrayBuffer = 'arrayBuffer',\n\tblob = 'blob',\n\tbytes = 'bytes',\n\tformData = 'formData',\n\tjson = 'json',\n\tresponse = 'response',\n\ttext = 'text',\n}\n","import { FetchOptions } from './options'\n\n\n/** Custom error message for fetch requests with more detailed info about the request URL, fetch options and response */\nexport class FetchError extends Error {\n /** Create a new `FetchError` with a new `message` while preserving all metadata */\n clone!: (newMessage: string) => FetchError\n /* FetchOptions */\n options!: FetchOptions\n /* FResponse received, if any */\n response!: Response | undefined\n /* Fetch URL */\n url!: string | URL\n\n constructor(\n message: string,\n options: {\n cause?: unknown\n options: FetchOptions\n response?: Response\n url: string | URL\n },\n ) {\n super(message, { cause: options.cause })\n\n this.name = 'FetchError'\n\n /* Prevents cluttering the console log output while also preserving ready-only member behavior */\n Object.defineProperties(this, {\n clone: {\n get() {\n return (newMessage: string) =>\n new FetchError(newMessage, {\n cause: options.cause,\n options: options.options,\n response: options.response,\n url: options.url,\n })\n },\n },\n options: {\n get() {\n return options.options\n },\n },\n response: {\n get() {\n return options.response\n },\n },\n url: {\n get() {\n return options.url\n },\n },\n })\n }\n}","import {\n\tfallbackIfFails,\n\tisError,\n\tisFn,\n\tisObj,\n\tisPromise,\n\tisUrlValid,\n} from '@superutils/core'\nimport { timeout as PromisE_timeout, TIMEOUT_MAX } from '@superutils/promise'\nimport executeInterceptors from './executeInterceptors'\nimport getResponse from './getResponse'\nimport mergeOptions from './mergeOptions'\nimport type {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tFetchCustomOptions,\n\tFetchOptions,\n\tFetchOptionsInterceptor,\n\tFetchResult,\n\tIPromise_Fetch,\n\tPostBody,\n} from './types'\nimport {\n\tContentType,\n\tFetchAs,\n\tFetchErrMsgs,\n\tFetchError,\n\tFetchOptionsDefault,\n} from './types'\n\n/**\n * Extended `fetch` with timeout, retry, and other options. Automatically parses as JSON by default on success.\n *\n * @param url request URL\n * @param options (optional) Standard `fetch` options extended with {@link FetchCustomOptions}.\n * Default \"content-type\" header is 'application/json'.\n * @param options.as (optional) determines how to parse the result. Default: {@link FetchAs.json}\n * @param options.method (optional) fetch method. Default: `'get'`\n *\n * @example\n * #### Make a simple HTTP requests\n * ```javascript\n * import { fetch } from '@superutils/fetch'\n *\n * // no need for `response.json()` or `result.data.data` drilling\n * fetch.get('https://dummyjson.com/products/1')\n * \t .then(product => console.log(product))\n * ```\n */\nconst fetch = <\n\tT = unknown,\n\tTOptions extends FetchOptions = FetchOptions,\n\tTAs extends FetchAs = TOptions['as'] extends FetchAs\n\t\t? TOptions['as']\n\t\t: FetchAs.response,\n\tTReturn = FetchResult<T>[TAs],\n>(\n\turl: string | URL,\n\toptions: FetchOptions & TOptions = {} as TOptions,\n) => {\n\tif (!isObj(options)) options = {} as TOptions\n\tlet fromPostClient = false\n\tif ((options as unknown as Record<string, boolean>).fromPostClient) {\n\t\tdelete (options as unknown as Record<string, boolean>).fromPostClient\n\t\tfromPostClient = true\n\t}\n\tlet response: Response | undefined\n\t// merge `defaults` with `options` to make sure default values are used where appropriate\n\tconst opts = mergeOptions(\n\t\t{\n\t\t\tabortOnEarlyFinalize: fetch.defaults.abortOnEarlyFinalize,\n\t\t\terrMsgs: fetch.defaults.errMsgs,\n\t\t\ttimeout: TIMEOUT_MAX,\n\t\t\tvalidateUrl: false,\n\t\t},\n\t\toptions,\n\t)\n\t// make sure there's always an abort controller, so that request is aborted when promise is early finalized\n\topts.abortCtrl =\n\t\topts.abortCtrl instanceof AbortController\n\t\t\t? opts.abortCtrl\n\t\t\t: new AbortController()\n\topts.as ??= FetchAs.response\n\topts.method ??= 'get'\n\topts.signal ??= opts.abortCtrl.signal\n\tconst { abortCtrl, as: parseAs, headers, onAbort, onTimeout } = opts\n\topts.onAbort = async () => {\n\t\tconst err: Error =\n\t\t\t(await fallbackIfFails(onAbort, [], undefined))\n\t\t\t?? opts.abortCtrl?.signal?.reason\n\t\t\t?? opts.signal?.reason\n\t\t\t?? opts.errMsgs.aborted\n\n\t\tif (isError(err) && err.name === 'AbortError') {\n\t\t\terr.message = ['This operation was aborted'].includes(err.message)\n\t\t\t\t? opts.errMsgs.aborted\n\t\t\t\t: err.message\n\t\t}\n\t\treturn await interceptErr(\n\t\t\tisError(err) ? err : new Error(err),\n\t\t\turl,\n\t\t\topts,\n\t\t\tresponse,\n\t\t)\n\t}\n\topts.onTimeout = async () => {\n\t\tconst err = await fallbackIfFails(onTimeout, [], undefined)\n\t\treturn await interceptErr(\n\t\t\terr ?? new Error(opts.errMsgs.timedout),\n\t\t\turl,\n\t\t\topts,\n\t\t\tresponse,\n\t\t)\n\t}\n\treturn PromisE_timeout(opts, async () => {\n\t\ttry {\n\t\t\t// invoke body function before executing request interceptors\n\t\t\topts.body = await fallbackIfFails(\n\t\t\t\topts.body as unknown as Promise<PostBody>,\n\t\t\t\t[],\n\t\t\t\t(err: Error) => Promise.reject(err),\n\t\t\t)\n\n\t\t\t// invoke global and local response interceptors to intercept and/or transform `url` and `options`\n\t\t\turl = await executeInterceptors(\n\t\t\t\turl,\n\t\t\t\tabortCtrl.signal,\n\t\t\t\topts.interceptors?.request,\n\t\t\t\topts,\n\t\t\t)\n\n\t\t\tconst { body, errMsgs, validateUrl = false } = opts\n\t\t\topts.signal ??= abortCtrl.signal\n\t\t\tif (validateUrl && !isUrlValid(url, false))\n\t\t\t\tthrow new Error(errMsgs.invalidUrl)\n\n\t\t\tif (fromPostClient) {\n\t\t\t\tlet contentType = headers.get('content-type')\n\t\t\t\tif (!contentType) {\n\t\t\t\t\theaders.set('content-type', ContentType.APPLICATION_JSON)\n\t\t\t\t\tcontentType = ContentType.APPLICATION_JSON\n\t\t\t\t}\n\t\t\t\tconst shouldStringifyBody =\n\t\t\t\t\t['delete', 'patch', 'post', 'put'].includes(\n\t\t\t\t\t\t`${opts.method}`.toLowerCase(),\n\t\t\t\t\t)\n\t\t\t\t\t&& !['undefined', 'string'].includes(typeof body)\n\t\t\t\t\t&& isObj(body, true)\n\t\t\t\t\t&& contentType === ContentType.APPLICATION_JSON\n\t\t\t\t// stringify data/body\n\t\t\t\tif (shouldStringifyBody) opts.body = JSON.stringify(opts.body)\n\t\t\t}\n\n\t\t\t// make the fetch call\n\t\t\tresponse = await getResponse(url, opts)\n\t\t\t// invoke global and local request interceptors to intercept and/or transform `response`\n\t\t\tresponse = await executeInterceptors(\n\t\t\t\tresponse,\n\t\t\t\tabortCtrl.signal,\n\t\t\t\topts.interceptors?.response,\n\t\t\t\turl,\n\t\t\t\topts,\n\t\t\t)\n\t\t\tconst status = response?.status ?? 0\n\t\t\tconst isSuccess = status >= 200 && status < 300\n\t\t\tif (!isSuccess) {\n\t\t\t\tconst jsonError: unknown = await fallbackIfFails(\n\t\t\t\t\t// try to parse error response as json first\n\t\t\t\t\t() => response!.json(),\n\t\t\t\t\t[],\n\t\t\t\t\tundefined,\n\t\t\t\t)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t(jsonError as Error)?.message\n\t\t\t\t\t\t|| `${errMsgs.requestFailed} ${status}`,\n\t\t\t\t\t{ cause: jsonError },\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tconst parseFunc = response[parseAs as keyof typeof response]\n\t\t\tlet result: unknown = !isFn(parseFunc)\n\t\t\t\t? response\n\t\t\t\t: parseFunc.bind(response)()\n\t\t\tif (isPromise(result))\n\t\t\t\tresult = await result.catch((err: Error) =>\n\t\t\t\t\tPromise.reject(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`${errMsgs.parseFailed} ${parseAs}. ${err?.message}`,\n\t\t\t\t\t\t\t{ cause: err },\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t// invoke global and local request interceptors to intercept and/or transform parsed `result`\n\t\t\tresult = await executeInterceptors(\n\t\t\t\tresult,\n\t\t\t\tabortCtrl.signal,\n\t\t\t\topts.interceptors?.result,\n\t\t\t\turl,\n\t\t\t\topts,\n\t\t\t)\n\t\t\treturn result as TReturn\n\t\t} catch (_err: unknown) {\n\t\t\tlet err = _err as Error\n\n\t\t\terr = await interceptErr(_err as Error, url, opts, response)\n\t\t\treturn Promise.reject(err as FetchError)\n\t\t}\n\t}) as IPromise_Fetch<TReturn>\n}\n/** Default fetch options */\nfetch.defaults = {\n\tabortOnEarlyFinalize: true,\n\terrMsgs: {\n\t\taborted: 'Request aborted',\n\t\tinvalidUrl: 'Invalid URL',\n\t\tparseFailed: 'Failed to parse response as',\n\t\ttimedout: 'Request timed out',\n\t\trequestFailed: 'Request failed with status code:',\n\t} as Required<FetchErrMsgs>, // all error messages must be defined here\n\theaders: new Headers(),\n\tinterceptors: {\n\t\terror: [],\n\t\trequest: [],\n\t\tresponse: [],\n\t\tresult: [],\n\t},\n\ttimeout: 60_000,\n\tvalidateUrl: false,\n} as FetchOptionsDefault\n\nconst interceptErr = async (\n\terr: Error,\n\turl: string | URL,\n\toptions: FetchOptionsInterceptor,\n\tresponse?: Response,\n) => {\n\t// invoke global and local request interceptors to intercept and/or transform `error`\n\tconst fErr = await executeInterceptors(\n\t\tnew FetchError(err?.message ?? err, {\n\t\t\tcause: err?.cause ?? err,\n\t\t\tresponse: response,\n\t\t\toptions: options,\n\t\t\turl,\n\t\t}),\n\t\tundefined, // should execute regardless of abort status\n\t\toptions.interceptors?.error,\n\t\turl,\n\t\toptions,\n\t)\n\treturn fErr\n}\n\nexport default fetch\n","import { DeferredAsyncOptions, deferredCallback } from '@superutils/promise'\nimport fetch from './fetch'\nimport mergeOptions from './mergeOptions'\nimport type {\n\tExtractAs,\n\tExcludeOptions,\n\tFetchArgs,\n\tFetchOptions,\n\tGetFetchResult,\n\tIPromise_Fetch,\n} from './types'\nimport { FetchAs } from './types'\n\n/**\n * Defines client generic parameter T based on fixed options.\n *\n * If `fixedOptions.as` is defined and not `FetcAs.json`, then `T` will be `never`.\n */\nexport type ClientData<FixedOptions> =\n\tExtractAs<[FixedOptions]> extends FetchAs.json ? unknown : never // disallow providing T\n/**\n * Create a reusable fetch client with shared options. The returned function comes attached with a\n * `.deferred()` function for debounce and throttle behavior.\n *\n * The `createClient` utility streamlines the creation of dedicated API clients by generating pre-configured fetch\n * functions. These functions can be equipped with default options like headers, timeouts, or a specific HTTP method,\n * which minimizes code repetition across your application. If a method is not specified during creation, the client\n * will default to `GET`.\n *\n * The returned client also includes a `.deferred()` method, providing the same debounce, throttle, and sequential\n * execution capabilities found in functions like `fetch.get.deferred()`.\n *\n * @example\n * #### Create reusable clients\n * ```javascript\n * import { createClient } from '@superutils/fetch'\n *\n * // Create a \"GET\" client with default headers and a 5-second timeout\n * const apiClient = createClient(\n * \t { method: 'get' }, // fixed options cannot be overridden\n * \t { // default options can be overridden\n * \t headers: {\n * \t \tAuthorization: 'Bearer my-secret-token',\n * \t \t'Content-Type': 'application/json',\n * \t },\n * \t timeout: 5000,\n * \t },\n * \t {// default defer options (can be overridden)\n * \t delay: 300,\n * \t retry: 2, // If request fails, retry up to two more times\n * \t },\n * )\n *\n * // Use it just like the standard fetch\n * apiClient('https://dummyjson.com/products/1', {\n * // The 'method' property cannot be overridden as it is used in the fixed options when creating the client.\n * // In TypeScript, the compiler will not allow this property.\n * // In Javascript, it will simply be ignored.\n * // method: 'post',\n * timeout: 3000, // The 'timeout' property can be overridden\n * }).then(console.log, console.warn)\n *\n * // create a deferred client using \"apiClient\"\n * const deferredClient = apiClient.deferred(\n * { retry: 0 }, // disable retrying by overriding the `retry` defer option\n * 'https://dummyjson.com/products/1',\n * { timeout: 3000 },\n * )\n * deferredClient({ timeout: 10000 }) // timeout is overridden by individual request\n * \t.then(console.log, console.warn)\n * ```\n */\nexport const createClient = <\n\tFixedOptions extends FetchOptions | undefined,\n\tCommonOptions extends ExcludeOptions<FixedOptions> | undefined,\n\tCommonDelay extends number,\n>(\n\t/** Mandatory fetch options that cannot be overriden by individual request */\n\tfixedOptions?: FixedOptions,\n\t/** Common fetch options that can be overriden by individual request */\n\tcommonOptions?: FetchOptions & CommonOptions,\n\tcommonDeferOptions?: DeferredAsyncOptions<unknown, CommonDelay>,\n) => {\n\tfunction client<\n\t\tT extends ClientData<FixedOptions> = never,\n\t\tTOptions extends ExcludeOptions<FixedOptions> | undefined =\n\t\t\t| ExcludeOptions<FixedOptions>\n\t\t\t| undefined,\n\t\tResult = GetFetchResult<[FixedOptions, TOptions, CommonOptions], T>,\n\t>(url: FetchArgs[0], options?: TOptions): IPromise_Fetch<Result> {\n\t\tconst mergedOptions = mergeOptions(\n\t\t\tfetch.defaults,\n\t\t\tcommonOptions,\n\t\t\toptions,\n\t\t\tfixedOptions, // fixed options will always override other options\n\t\t)\n\t\tmergedOptions.as ??= FetchAs.json\n\t\treturn fetch(url, mergedOptions)\n\t}\n\n\t/** Make requests with debounce/throttle behavior */\n\tclient.deferred = <\n\t\tThisArg,\n\t\tDelay extends CommonDelay | number,\n\t\tDefaultUrl extends FetchArgs[0] | undefined = FetchArgs[0] | undefined,\n\t\tDefaultOptions extends ExcludeOptions<FixedOptions> | undefined =\n\t\t\t| ExcludeOptions<FixedOptions>\n\t\t\t| undefined,\n\t>(\n\t\tdeferOptions?: DeferredAsyncOptions<ThisArg, Delay>,\n\t\tdefaultUrl?: DefaultUrl,\n\t\tdefaultOptions?: DefaultOptions,\n\t) => {\n\t\tlet _abortCtrl: AbortController | undefined\n\t\tconst fetchCb = <\n\t\t\tT extends ClientData<FixedOptions> = never,\n\t\t\tTOptions extends ExcludeOptions<FixedOptions> | undefined =\n\t\t\t\t| ExcludeOptions<FixedOptions>\n\t\t\t\t| undefined,\n\t\t\tResult = GetFetchResult<\n\t\t\t\t[FixedOptions, TOptions, DefaultOptions, CommonOptions],\n\t\t\t\tT\n\t\t\t>,\n\t\t>(\n\t\t\t...args: DefaultUrl extends undefined\n\t\t\t\t? [url: FetchArgs[0], options?: TOptions]\n\t\t\t\t: [options?: TOptions]\n\t\t): IPromise_Fetch<Result> => {\n\t\t\tconst mergedOptions = (mergeOptions(\n\t\t\t\tfetch.defaults,\n\t\t\t\tcommonOptions,\n\t\t\t\tdefaultOptions,\n\t\t\t\t(defaultUrl === undefined ? args[1] : args[0]) as TOptions,\n\t\t\t\tfixedOptions, // fixed options will always override other options\n\t\t\t) ?? {}) as FetchOptions\n\t\t\tmergedOptions.as ??= FetchAs.json\n\t\t\t// make sure to abort any previously pending request\n\t\t\t_abortCtrl?.abort?.()\n\t\t\t// ensure AbortController is present in options and propagete external abort signal if provided\n\t\t\t_abortCtrl = new AbortController()\n\n\t\t\treturn fetch(\n\t\t\t\t(defaultUrl ?? args[0]) as FetchArgs[0],\n\t\t\t\tmergedOptions,\n\t\t\t) as unknown as IPromise_Fetch<Result>\n\t\t}\n\n\t\treturn deferredCallback(fetchCb, {\n\t\t\t...commonDeferOptions,\n\t\t\t...deferOptions,\n\t\t} as DeferredAsyncOptions<ThisArg, CommonDelay>) as typeof fetchCb\n\t}\n\n\treturn client\n}\nexport default createClient\n","import { DeferredAsyncOptions, deferredCallback } from '@superutils/promise'\nimport { ClientData } from './createClient'\nimport fetch from './fetch'\nimport mergeOptions from './mergeOptions'\nimport {\n\tExcludePostOptions,\n\tFetchAs,\n\tPostArgs,\n\tPostDeferredCbArgs,\n\tPostOptions,\n\tIPromise_Fetch,\n\tGetFetchResult,\n} from './types'\n\n/**\n * Create a reusable fetch client with shared options. The returned function comes attached with a\n * `.deferred()` function for debounced and throttled request.\n * While `createClient()` is versatile enough for any HTTP method, `createPostClient()` is specifically designed for\n * methods that require a request body, such as `DELETE`, `PATCH`, `POST`, and `PUT`. If a method is not provided, it\n * defaults to `POST`. The generated client accepts an additional second parameter (`data`) for the request payload.\n *\n * Similar to `createClient`, the returned function comes equipped with a `.deferred()` method, enabling debounced,\n * throttled, or sequential execution.\n *\n * @example\n * #### Create reusable clients\n * ```javascript\n * import { createPostClient, FetchAs } from '@superutils/fetch'\n *\n * // Create a POST client with 10-second as the default timeout\n * const postClient = createPostClient(\n * \t{ // fixed options cannot be overrided by client calls\n * \t method: 'post',\n * \t headers: { 'content-type': 'application/json' },\n * \t},\n * \t{ timeout: 10000 }, // common options that can be overriden by client calls\n * )\n *\n * // Invoking `postClient()` automatically applies the pre-configured options\n * postClient(\n * \t 'https://dummyjson.com/products/add',\n * \t { title: 'New Product' }, // data/body\n * \t {}, // other options\n * ).then(console.log)\n *\n * // create a deferred client using \"postClient\"\n * const updateProduct = postClient.deferred(\n * \t{\n * \t\tdelay: 300, // debounce duration\n * \t\tonResult: console.log, // prints only successful results\n * \t},\n * \t'https://dummyjson.com/products/add',\n * \t{ method: 'patch', timeout: 3000 },\n * )\n * updateProduct({ title: 'New title 1' }) // ignored by debounce\n * updateProduct({ title: 'New title 2' }) // executed\n * ```\n */\nexport const createPostClient = <\n\tFixedOptions extends PostOptions | undefined,\n\tCommonOptions extends ExcludePostOptions<FixedOptions> | undefined,\n\tCommonDelay extends number = number,\n>(\n\t/** Mandatory fetch options that cannot be overriden by individual request */\n\tfixedOptions?: FixedOptions,\n\t/** Common fetch options that can be overriden by individual request */\n\tcommonOptions?: PostOptions & CommonOptions,\n\tcommonDeferOptions?: DeferredAsyncOptions<unknown, CommonDelay>,\n) => {\n\t/**\n\t * Executes the HTTP request using the configured client options.\n\t *\n\t * This function is specifically designed for methods that require a request body (e.g., POST, PUT, PATCH),\n\t * allowing the payload to be passed directly as the second argument.\n\t */\n\tfunction client<\n\t\tT extends ClientData<FixedOptions> = never,\n\t\tOptions extends ExcludePostOptions<FixedOptions> | undefined =\n\t\t\t| ExcludePostOptions<FixedOptions>\n\t\t\t| undefined,\n\t\tResult = GetFetchResult<[FixedOptions, Options, CommonOptions], T>,\n\t>(\n\t\turl: PostArgs[0],\n\t\tdata?: PostArgs[1],\n\t\toptions?: Options,\n\t): IPromise_Fetch<Result> {\n\t\tconst mergedOptions = mergeOptions(\n\t\t\tfetch.defaults,\n\t\t\tcommonOptions,\n\t\t\toptions,\n\t\t\tfixedOptions, // fixed options will always override other options\n\t\t) as PostOptions\n\t\tmergedOptions.as ??= FetchAs.json\n\t\tmergedOptions.body = data ?? mergedOptions.body\n\t\tmergedOptions.method ??= 'post'\n\t\t;(mergedOptions as Record<string, boolean>).fromPostClient = true\n\t\treturn fetch(url, mergedOptions)\n\t}\n\n\t/**\n\t * Returns a version of the client configured for debounced, throttled, or sequential execution.\n\t *\n\t * This is particularly useful for optimizing high-frequency operations, such as auto-saving forms\n\t * or managing rapid state updates, by automatically handling request cancellation and execution timing.\n\t */\n\tclient.deferred = <\n\t\tThisArg,\n\t\tDefaultUrl extends PostArgs[0] | undefined,\n\t\tDefaultData extends PostArgs[1] | undefined,\n\t\tDefaultOptions extends ExcludePostOptions<FixedOptions> | undefined =\n\t\t\t| ExcludePostOptions<FixedOptions>\n\t\t\t| undefined,\n\t\tDelay extends CommonDelay | number = number,\n\t>(\n\t\tdeferOptions?: DeferredAsyncOptions<ThisArg, Delay>,\n\t\tdefaultUrl?: DefaultUrl,\n\t\tdefaultData?: DefaultData,\n\t\tdefaultOptions?: DefaultOptions,\n\t) => {\n\t\tlet _abortCtrl: AbortController | undefined\n\t\tconst postCb = <\n\t\t\tT extends ClientData<FixedOptions> = never,\n\t\t\tOptions extends ExcludePostOptions<FixedOptions> | undefined =\n\t\t\t\t| ExcludePostOptions<FixedOptions>\n\t\t\t\t| undefined,\n\t\t\tTReturn = GetFetchResult<\n\t\t\t\t[FixedOptions, Options, DefaultOptions, CommonOptions],\n\t\t\t\tT\n\t\t\t>,\n\t\t>(\n\t\t\t...args: PostDeferredCbArgs<DefaultUrl, DefaultData, Options>\n\t\t): IPromise_Fetch<TReturn> => {\n\t\t\t// add default url to the beginning of the array\n\t\t\tif (defaultUrl !== undefined) args.splice(0, 0, defaultUrl)\n\t\t\t// add default data after the url\n\t\t\tif (defaultData !== undefined) args.splice(1, 0, defaultData)\n\t\t\tconst mergedOptions = (mergeOptions(\n\t\t\t\tfetch.defaults,\n\t\t\t\tcommonOptions,\n\t\t\t\tdefaultOptions,\n\t\t\t\targs[2] as Options,\n\t\t\t\tfixedOptions, // fixed options will always override other options\n\t\t\t) ?? {}) as PostOptions\n\t\t\tmergedOptions.as ??= FetchAs.json\n\t\t\t// make sure to abort any previously pending request\n\t\t\t_abortCtrl?.abort?.()\n\t\t\t// ensure AbortController is present in options and propagete external abort signal if provided\n\t\t\t_abortCtrl = new AbortController()\n\n\t\t\t// attach body to options\n\t\t\tmergedOptions.body = (args[1] ?? mergedOptions.body) as PostArgs[1]\n\t\t\tmergedOptions.method ??= 'post'\n\t\t\t;(mergedOptions as Record<string, boolean>).fromPostClient = true\n\t\t\treturn fetch(args[0] as PostArgs[0], mergedOptions)\n\t\t}\n\n\t\treturn deferredCallback(postCb, {\n\t\t\t...commonDeferOptions,\n\t\t\t...deferOptions,\n\t\t} as typeof deferOptions) as typeof postCb\n\t}\n\n\treturn client\n}\nexport default createPostClient\n","/** This is an entrypoint tailored for IIFE builds for browsers. */\nimport * as promiseExports from '@superutils/promise'\nimport * as fetchExports from './index'\n\n/**\n * Export the fetch function and include all other exports as it's property\n *\n * ### Usage:\n * - `window.superutils.fetch(...)`\n * - `window.superutils.fetch.get(...)`\n * - `window.superutils.fetch.createClient(...)`\n */\nconst fetch = fetchExports.default\n\nObject.keys(fetchExports).forEach(key => {\n\tif (['default', 'fetch'].includes(key)) return\n\t;(fetch as unknown as Record<string, unknown>)[key] ??= (\n\t\tfetchExports as Record<string, unknown>\n\t)[key]\n})\nexport default fetch\n\n/**\n * Include all exports from @supertuils/promise:\n * 1. as if it were imported independantly\n * 2. only adds ~0.5KB (95%+ of the code is already used by @superutils/fetch)\n * 3. eliminates the need to import it separately\n * window.superutils.fetch(...)\n * window.superutils.fetch.get(...)\n * window.superutils.fetch.createClient(...)\n *\n * Usage:\n * window.\n */\nconst PromisE = promiseExports.default\nObject.keys(promiseExports).forEach(key => {\n\tif (['default', 'PromisE'].includes(key)) return\n\t;(PromisE as unknown as Record<string, unknown>)[key] ??= (\n\t\tpromiseExports as Record<string, unknown>\n\t)[key]\n})\nconst w = globalThis as unknown as Record<string, Record<string, unknown>>\nw.superutils ??= {}\nw.superutils.PromisE ??= PromisE\n"]}