@robot-admin/request-core 0.2.0 → 0.4.0

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/LICENSE +21 -0
  3. package/README.md +248 -357
  4. package/SECURITY.md +14 -0
  5. package/dist/axios.cjs +134 -809
  6. package/dist/axios.cjs.map +1 -1
  7. package/dist/axios.d.cts +55 -220
  8. package/dist/axios.d.ts +55 -220
  9. package/dist/axios.js +2 -790
  10. package/dist/axios.js.map +1 -1
  11. package/dist/chunk-2JXH7SIL.js +711 -0
  12. package/dist/chunk-2JXH7SIL.js.map +1 -0
  13. package/dist/chunk-56QOEWUS.js +8 -0
  14. package/dist/chunk-56QOEWUS.js.map +1 -0
  15. package/dist/chunk-DUP3Y4DN.js +320 -0
  16. package/dist/chunk-DUP3Y4DN.js.map +1 -0
  17. package/dist/chunk-JGFRUAZT.cjs +1007 -0
  18. package/dist/chunk-JGFRUAZT.cjs.map +1 -0
  19. package/dist/chunk-KHI6XQRN.cjs +717 -0
  20. package/dist/chunk-KHI6XQRN.cjs.map +1 -0
  21. package/dist/chunk-OAZ5BUBU.js +969 -0
  22. package/dist/chunk-OAZ5BUBU.js.map +1 -0
  23. package/dist/chunk-QSDNDTOZ.js +28 -0
  24. package/dist/chunk-QSDNDTOZ.js.map +1 -0
  25. package/dist/chunk-UHXBAFY6.cjs +323 -0
  26. package/dist/chunk-UHXBAFY6.cjs.map +1 -0
  27. package/dist/chunk-WUZ43MLM.cjs +30 -0
  28. package/dist/chunk-WUZ43MLM.cjs.map +1 -0
  29. package/dist/chunk-WXHQXPS4.cjs +10 -0
  30. package/dist/chunk-WXHQXPS4.cjs.map +1 -0
  31. package/dist/crud.cjs +12 -484
  32. package/dist/crud.cjs.map +1 -1
  33. package/dist/crud.d.cts +8 -269
  34. package/dist/crud.d.ts +8 -269
  35. package/dist/crud.js +4 -487
  36. package/dist/crud.js.map +1 -1
  37. package/dist/index.cjs +136 -1302
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.d.cts +7 -165
  40. package/dist/index.d.ts +7 -165
  41. package/dist/index.js +5 -1283
  42. package/dist/index.js.map +1 -1
  43. package/dist/naive.cjs +14 -0
  44. package/dist/naive.cjs.map +1 -0
  45. package/dist/naive.d.cts +9 -0
  46. package/dist/naive.d.ts +9 -0
  47. package/dist/naive.js +5 -0
  48. package/dist/naive.js.map +1 -0
  49. package/dist/types-BRDRqYFs.d.cts +197 -0
  50. package/dist/types-BVJhlSuh.d.cts +310 -0
  51. package/dist/types-BVJhlSuh.d.ts +310 -0
  52. package/dist/types-CUyibJZX.d.ts +197 -0
  53. package/dist/vue.cjs +93 -0
  54. package/dist/vue.cjs.map +1 -0
  55. package/dist/vue.d.cts +38 -0
  56. package/dist/vue.d.ts +38 -0
  57. package/dist/vue.js +71 -0
  58. package/dist/vue.js.map +1 -0
  59. package/package.json +60 -16
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/axios/utils/helpers.ts","../src/axios/runtime.ts","../src/axios/plugins/cache.ts","../src/axios/utils/abort.ts","../src/axios/plugins/cancel.ts","../src/axios/plugins/dedupe.ts","../src/axios/plugins/request.ts","../src/axios/plugins/response.ts","../src/axios/plugins/retry.ts","../src/axios/plugins/index.ts","../src/axios/service.ts","../src/axios/request.ts","../src/core.ts","../src/client/errors.ts"],"names":["CLEANUP_INTERVAL","REQUEST_TIMEOUT","stopTimerIfIdle","startTimer","axios"],"mappings":"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","file":"chunk-JGFRUAZT.cjs","sourcesContent":["import type {\n AxiosRequestConfig,\n GenericAbortSignal,\n} from \"axios\";\nimport type {\n CacheItem,\n CacheStore,\n MemoryCacheOptions,\n RequestKeyOptions,\n} from \"../types\";\n\nconst binaryObjectIds = new WeakMap<object, number>();\nlet nextBinaryObjectId = 0;\n\nfunction getBinaryObjectId(value: object): number {\n let id = binaryObjectIds.get(value);\n if (id === undefined) {\n id = ++nextBinaryObjectId;\n binaryObjectIds.set(value, id);\n }\n return id;\n}\n\nfunction sortedStringify(value: unknown, seen = new WeakSet<object>()): string {\n if (value === null || value === undefined) return \"\";\n if (typeof value === \"bigint\") return `bigint:${value.toString()}`;\n if (typeof value !== \"object\") return `${typeof value}:${String(value)}`;\n\n if (seen.has(value)) {\n throw new Error(\"Cannot generate a stable request key from a circular value.\");\n }\n seen.add(value);\n\n try {\n if (Array.isArray(value)) {\n return `[${value.map((item) => sortedStringify(item, seen)).join(\",\")}]`;\n }\n if (value instanceof Date) return `date:${value.toISOString()}`;\n if (value instanceof Map) {\n return `map:${sortedStringify(\n [...value.entries()].sort(([left], [right]) =>\n String(left).localeCompare(String(right)),\n ),\n seen,\n )}`;\n }\n if (value instanceof Set) {\n return `set:${sortedStringify(\n [...value.values()].sort((left, right) =>\n String(left).localeCompare(String(right)),\n ),\n seen,\n )}`;\n }\n if (typeof URLSearchParams !== \"undefined\" && value instanceof URLSearchParams) {\n return `url-search:${JSON.stringify([...value.entries()].sort())}`;\n }\n if (typeof FormData !== \"undefined\" && value instanceof FormData) {\n const entries = [...value.entries()].map(([key, item]) => [\n key,\n typeof item === \"string\"\n ? `string:${item}`\n : `binary:${getBinaryObjectId(item)}:${item.name}:${item.size}:${item.type}`,\n ]);\n return `form-data:${JSON.stringify(entries)}`;\n }\n if (\n (typeof Blob !== \"undefined\" && value instanceof Blob) ||\n value instanceof ArrayBuffer ||\n ArrayBuffer.isView(value)\n ) {\n return `binary:${getBinaryObjectId(value)}`;\n }\n\n const candidate = value as Record<string, unknown> & {\n toJSON?: () => unknown;\n constructor?: { name?: string };\n };\n const jsonValue =\n typeof candidate.toJSON === \"function\" &&\n candidate.constructor?.name === \"AxiosHeaders\"\n ? candidate.toJSON()\n : candidate;\n if (!jsonValue || typeof jsonValue !== \"object\") {\n return sortedStringify(jsonValue, seen);\n }\n const source = jsonValue as Record<string, unknown>;\n return `{${Object.keys(source)\n .sort()\n .map((key) => `${JSON.stringify(key)}:${sortedStringify(source[key], seen)}`)\n .join(\",\")}}`;\n } finally {\n seen.delete(value);\n }\n}\n\nfunction fingerprint(value: string): string {\n let hash = 0x811c9dc5;\n for (let index = 0; index < value.length; index += 1) {\n hash ^= value.charCodeAt(index);\n hash = Math.imul(hash, 0x01000193);\n }\n return (hash >>> 0).toString(36);\n}\n\nexport function generateRequestKey(\n config: AxiosRequestConfig,\n options: RequestKeyOptions = {},\n): string {\n const {\n method = \"get\",\n url = \"\",\n baseURL = \"\",\n params,\n data,\n headers,\n responseType = \"json\",\n } = config;\n const parts = [method.toUpperCase(), baseURL, url, responseType];\n if (params != null) parts.push(sortedStringify(params));\n if (data != null) parts.push(sortedStringify(data));\n\n if (headers) {\n const headerSource =\n typeof (headers as { toJSON?: () => unknown }).toJSON === \"function\"\n ? (headers as { toJSON: () => unknown }).toJSON()\n : headers;\n const normalized: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(\n headerSource as Record<string, unknown>,\n )) {\n normalized[key.toLowerCase()] = value;\n }\n const varyHeaders = new Set(\n [\"authorization\", \"x-tenant-id\", \"x-user-id\", ...options.varyHeaders ?? []].map(\n (key) => key.toLowerCase(),\n ),\n );\n const selected: Record<string, string> = {};\n for (const key of [...varyHeaders].sort()) {\n if (normalized[key] != null) {\n selected[key] = fingerprint(String(normalized[key]));\n }\n }\n if (Object.keys(selected).length > 0) parts.push(sortedStringify(selected));\n }\n\n return parts.join(\"|\");\n}\n\nfunction defaultClone<T>(value: T): T {\n if (typeof structuredClone !== \"function\") return value;\n try {\n return structuredClone(value);\n } catch {\n return value;\n }\n}\n\nexport class MemoryCache implements CacheStore {\n private readonly cache = new Map<string, CacheItem>();\n private readonly accessOrder = new Set<string>();\n private maxSize: number;\n private readonly cloneValue: <T>(value: T) => T;\n\n constructor(options: MemoryCacheOptions = {}) {\n this.maxSize = options.maxSize ?? 1000;\n this.assertMaxSize(this.maxSize);\n this.cloneValue =\n typeof options.clone === \"function\"\n ? options.clone\n : options.clone === false\n ? <T>(value: T) => value\n : defaultClone;\n }\n\n get<T = unknown>(key: string): T | null {\n const item = this.cache.get(key);\n if (!item) return null;\n if (Date.now() >= item.expireAt) {\n this.delete(key);\n return null;\n }\n this.accessOrder.delete(key);\n this.accessOrder.add(key);\n return this.cloneValue(item.data as T);\n }\n\n set<T = unknown>(\n key: string,\n data: T,\n ttl: number,\n options: { tags?: readonly string[] } = {},\n ): void {\n if (!Number.isFinite(ttl) || ttl < 0) {\n throw new RangeError(\"Cache TTL must be a finite number greater than or equal to 0.\");\n }\n if (this.maxSize === 0) return;\n if (this.cache.size >= this.maxSize && !this.cache.has(key)) this.evictOldest();\n this.cache.set(key, {\n data: this.cloneValue(data),\n expireAt: Date.now() + ttl,\n tags: options.tags ? [...options.tags] : undefined,\n });\n this.accessOrder.delete(key);\n this.accessOrder.add(key);\n }\n\n delete(key: string): boolean {\n this.accessOrder.delete(key);\n return this.cache.delete(key);\n }\n\n clear(): void {\n this.cache.clear();\n this.accessOrder.clear();\n }\n\n cleanup(): void {\n const now = Date.now();\n for (const [key, item] of this.cache) {\n if (now >= item.expireAt) this.delete(key);\n }\n }\n\n deleteByPrefix(prefix: string): number {\n let removed = 0;\n for (const key of [...this.cache.keys()]) {\n if (key.startsWith(prefix) && this.delete(key)) removed += 1;\n }\n return removed;\n }\n\n deleteByTag(tag: string): number {\n let removed = 0;\n for (const [key, item] of [...this.cache.entries()]) {\n if (item.tags?.includes(tag) && this.delete(key)) removed += 1;\n }\n return removed;\n }\n\n get size(): number {\n return this.cache.size;\n }\n\n setMaxSize(size: number): void {\n this.assertMaxSize(size);\n this.maxSize = size;\n while (this.cache.size > this.maxSize) this.evictOldest();\n }\n\n private assertMaxSize(size: number): void {\n if (!Number.isInteger(size) || size < 0) {\n throw new RangeError(\n \"Cache capacity must be an integer greater than or equal to 0.\",\n );\n }\n }\n\n private evictOldest(): void {\n const oldestKey = this.accessOrder.values().next().value as string | undefined;\n if (oldestKey !== undefined) this.delete(oldestKey);\n }\n}\n\nexport function delay(ms: number, signal?: GenericAbortSignal): Promise<void> {\n if (signal?.aborted) {\n return Promise.reject(createAbortError((signal as AbortSignal).reason));\n }\n return new Promise((resolve, reject) => {\n const onAbort = () => {\n clearTimeout(timer);\n signal?.removeEventListener?.(\"abort\", onAbort);\n reject(createAbortError((signal as AbortSignal | undefined)?.reason));\n };\n const timer = setTimeout(() => {\n signal?.removeEventListener?.(\"abort\", onAbort);\n resolve();\n }, Math.max(0, Number.isFinite(ms) ? ms : 0));\n signal?.addEventListener?.(\"abort\", onAbort, { once: true });\n });\n}\n\nfunction createAbortError(reason?: unknown): Error {\n if (reason instanceof Error) return reason;\n return Object.assign(new Error(\"canceled\"), {\n name: \"AbortError\",\n code: \"ERR_CANCELED\",\n reason,\n });\n}\n\nexport function isNetworkError(error: unknown): boolean {\n const candidate = error as {\n response?: unknown;\n code?: string;\n message?: string;\n };\n return (\n !candidate?.response &&\n Boolean(candidate?.code) &&\n candidate.code !== \"ECONNABORTED\" &&\n candidate.code !== \"ERR_CANCELED\" &&\n candidate.message !== \"canceled\" &&\n candidate.message !== \"Request aborted\" &&\n candidate.message !== \"Request cancelled\"\n );\n}\n\nexport function isTimeoutError(error: unknown): boolean {\n const code = (error as { code?: string })?.code;\n return code === \"ECONNABORTED\" || code === \"ETIMEDOUT\";\n}\n\nexport function isRetryableStatus(\n status: number,\n retryableStatusCodes: number[],\n): boolean {\n return retryableStatusCodes.includes(status);\n}\n\nexport function normalizeConfig<T extends object>(\n config: boolean | T | undefined,\n defaults: T,\n): T {\n if (config === true) return { ...defaults, enabled: true };\n if (config === false) return { ...defaults, enabled: false };\n if (config && typeof config === \"object\") {\n return {\n ...defaults,\n ...Object.fromEntries(\n Object.entries(config as Record<string, unknown>).filter(\n ([, value]) => value !== undefined,\n ),\n ),\n } as T;\n }\n return { ...defaults };\n}\n","import type { AxiosInstance } from \"axios\";\nimport type {\n CacheStore,\n EnhancedAbortController,\n RequestPolicyDefaults,\n RequestScope,\n} from \"./types\";\nimport { MemoryCache } from \"./utils/helpers\";\n\nexport interface CancelableRequest {\n controller: EnhancedAbortController;\n scope?: RequestScope;\n}\n\nexport interface ReLoginState {\n promise: Promise<void> | null;\n resolve: (() => void) | null;\n reject: ((reason?: unknown) => void) | null;\n}\n\nexport interface RequestRuntime {\n cache: CacheStore;\n defaults: RequestPolicyDefaults;\n pendingRequests: Map<string, EnhancedAbortController>;\n cancelableRequests: Map<string, CancelableRequest>;\n joinedRequests: Map<string, Promise<unknown>>;\n requestId: number;\n dedupeCleanupTimer: ReturnType<typeof setInterval> | null;\n cancelCleanupTimer: ReturnType<typeof setInterval> | null;\n reLogin: ReLoginState;\n authRefreshPromise: Promise<string | null> | null;\n reauthenticatePromise: Promise<string | null> | null;\n disposed: boolean;\n}\n\nexport interface CreateRequestRuntimeOptions {\n cache?: CacheStore;\n defaults?: RequestPolicyDefaults;\n}\n\ninterface SharedPackageState {\n defaultInstance: AxiosInstance | null;\n lastInstance: AxiosInstance | null;\n globalConfig: {\n successCodes: Array<number | string>;\n fieldAliases: {\n data: string[];\n list: string[];\n total: string[];\n };\n };\n}\n\nconst RUNTIME_KEY = Symbol.for(\"@robot-admin/request-core/runtime/v1\");\nconst PACKAGE_STATE_KEY = Symbol.for(\"@robot-admin/request-core/state/v1\");\n\nconst DEFAULT_GLOBAL_CONFIG: SharedPackageState[\"globalConfig\"] = {\n successCodes: [200, 0, \"200\", \"0\"],\n fieldAliases: {\n data: [\"data\", \"list\", \"items\", \"records\"],\n list: [\"list\", \"items\", \"records\", \"rows\", \"data\"],\n total: [\"total\", \"totalCount\", \"count\", \"totalElements\"],\n },\n};\n\nfunction cloneGlobalConfig(\n config: SharedPackageState[\"globalConfig\"],\n): SharedPackageState[\"globalConfig\"] {\n return {\n successCodes: [...config.successCodes],\n fieldAliases: {\n data: [...config.fieldAliases.data],\n list: [...config.fieldAliases.list],\n total: [...config.fieldAliases.total],\n },\n };\n}\n\nfunction getSharedState(): SharedPackageState {\n const target = globalThis as typeof globalThis & {\n [PACKAGE_STATE_KEY]?: SharedPackageState;\n };\n if (!target[PACKAGE_STATE_KEY]) {\n target[PACKAGE_STATE_KEY] = {\n defaultInstance: null,\n lastInstance: null,\n globalConfig: cloneGlobalConfig(DEFAULT_GLOBAL_CONFIG),\n };\n }\n return target[PACKAGE_STATE_KEY];\n}\n\nexport function createRequestRuntime(\n options: CreateRequestRuntimeOptions = {},\n): RequestRuntime {\n return {\n cache: options.cache ?? new MemoryCache(),\n defaults: { ...options.defaults },\n pendingRequests: new Map(),\n cancelableRequests: new Map(),\n joinedRequests: new Map(),\n requestId: 0,\n dedupeCleanupTimer: null,\n cancelCleanupTimer: null,\n reLogin: { promise: null, resolve: null, reject: null },\n authRefreshPromise: null,\n reauthenticatePromise: null,\n disposed: false,\n };\n}\n\nexport function attachRequestRuntime(\n instance: AxiosInstance,\n runtime: RequestRuntime,\n): void {\n Object.defineProperty(instance, RUNTIME_KEY, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: runtime,\n });\n getSharedState().lastInstance = instance;\n}\n\nexport function getRequestRuntime(instance: AxiosInstance): RequestRuntime {\n const runtime = (instance as AxiosInstance & { [RUNTIME_KEY]?: RequestRuntime })[\n RUNTIME_KEY\n ];\n if (!runtime) {\n throw new Error(\"The Axios instance is not managed by request-core.\");\n }\n return runtime;\n}\n\nexport function getActiveRequestRuntime(\n instance?: AxiosInstance,\n): RequestRuntime {\n const shared = getSharedState();\n const target = instance ?? shared.defaultInstance ?? shared.lastInstance;\n if (!target) {\n throw new Error(\n \"Request client not initialized. Create a client or call createRequestCore() first.\",\n );\n }\n return getRequestRuntime(target);\n}\n\nexport function setDefaultAxiosInstance(instance: AxiosInstance): void {\n getRequestRuntime(instance);\n getSharedState().defaultInstance = instance;\n}\n\nexport function getDefaultAxiosInstance(): AxiosInstance | null {\n return getSharedState().defaultInstance;\n}\n\nexport function getGlobalRuntimeConfig(): SharedPackageState[\"globalConfig\"] {\n return cloneGlobalConfig(getSharedState().globalConfig);\n}\n\nexport function setGlobalRuntimeConfig(config: {\n successCodes?: Array<number | string>;\n fieldAliases?: Partial<SharedPackageState[\"globalConfig\"][\"fieldAliases\"]>;\n}): void {\n const next = cloneGlobalConfig(DEFAULT_GLOBAL_CONFIG);\n if (config.successCodes) next.successCodes = [...config.successCodes];\n if (config.fieldAliases?.data) next.fieldAliases.data = [...config.fieldAliases.data];\n if (config.fieldAliases?.list) next.fieldAliases.list = [...config.fieldAliases.list];\n if (config.fieldAliases?.total) next.fieldAliases.total = [...config.fieldAliases.total];\n getSharedState().globalConfig = next;\n}\n","import type {\n AxiosInstance,\n AxiosRequestConfig,\n AxiosResponse,\n InternalAxiosRequestConfig,\n} from \"axios\";\nimport type {\n CacheConfig,\n CachedResponseData,\n EnhancedAxiosRequestConfig,\n} from \"../types\";\nimport type { RequestRuntime } from \"../runtime\";\nimport { getActiveRequestRuntime } from \"../runtime\";\nimport { generateRequestKey, normalizeConfig } from \"../utils/helpers\";\n\ninterface ResolvedCacheConfig extends CacheConfig {\n enabled: boolean;\n ttl: number;\n forceUpdate: boolean;\n tags: readonly string[];\n varyHeaders: readonly string[];\n}\n\ninterface CacheHit {\n __fromCache: true;\n __cachedResponse: AxiosResponse;\n config: InternalAxiosRequestConfig;\n}\n\nconst DEFAULT_CACHE_CONFIG: ResolvedCacheConfig = {\n enabled: false,\n ttl: 5 * 60 * 1000,\n forceUpdate: false,\n tags: [],\n varyHeaders: [],\n};\n\nfunction resolveCacheConfig(\n config: EnhancedAxiosRequestConfig,\n runtime: RequestRuntime,\n): ResolvedCacheConfig {\n const inherited = normalizeConfig(\n runtime.defaults.cache,\n DEFAULT_CACHE_CONFIG,\n ) as ResolvedCacheConfig;\n const resolved = normalizeConfig(config.cache, inherited) as ResolvedCacheConfig;\n if (!Number.isFinite(resolved.ttl) || resolved.ttl < 0) {\n throw new RangeError(\"Cache TTL must be a finite number greater than or equal to 0.\");\n }\n return resolved;\n}\n\nfunction cacheKey(\n config: AxiosRequestConfig,\n cacheConfig: ResolvedCacheConfig,\n): string {\n return (\n cacheConfig.key ??\n generateRequestKey(config, { varyHeaders: cacheConfig.varyHeaders })\n );\n}\n\nfunction createCacheResponse(\n cached: CachedResponseData,\n config: InternalAxiosRequestConfig,\n): AxiosResponse {\n return {\n data: cached.data,\n status: cached.status,\n statusText: `${cached.statusText} (from cache)`,\n headers: cached.headers as AxiosResponse[\"headers\"],\n config,\n };\n}\n\nexport function setupCachePlugin(\n instance: AxiosInstance,\n runtime: RequestRuntime,\n): void {\n instance.interceptors.request.use((config) => {\n const enhanced = config as EnhancedAxiosRequestConfig;\n const cacheConfig = resolveCacheConfig(enhanced, runtime);\n if (\n config.method?.toUpperCase() !== \"GET\" ||\n !cacheConfig.enabled ||\n cacheConfig.forceUpdate\n ) {\n return config;\n }\n\n const cached = runtime.cache.get<CachedResponseData>(\n cacheKey(config, cacheConfig),\n );\n if (!cached) return config;\n\n enhanced.__fromCache = true;\n const hit: CacheHit = {\n __fromCache: true,\n __cachedResponse: createCacheResponse(cached, config),\n config,\n };\n return Promise.reject(hit);\n });\n\n instance.interceptors.response.use(\n (response) => {\n const config = response.config as EnhancedAxiosRequestConfig;\n if (config.__fromCache && config.__cachedResponse) {\n return config.__cachedResponse;\n }\n const cacheConfig = resolveCacheConfig(config, runtime);\n if (\n config.method?.toUpperCase() === \"GET\" &&\n cacheConfig.enabled &&\n response.status >= 200 &&\n response.status < 300\n ) {\n const cached: CachedResponseData = {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: { ...response.headers },\n };\n runtime.cache.set(cacheKey(config, cacheConfig), cached, cacheConfig.ttl, {\n tags: cacheConfig.tags,\n });\n }\n return response;\n },\n (error: unknown) => {\n const hit = error as Partial<CacheHit>;\n if (hit.__fromCache && hit.__cachedResponse) {\n return Promise.resolve(hit.__cachedResponse);\n }\n return Promise.reject(error);\n },\n );\n}\n\nexport function clearAllCache(instance?: AxiosInstance): void {\n getActiveRequestRuntime(instance).cache.clear();\n}\n\nexport function clearCache(\n config: AxiosRequestConfig,\n instance?: AxiosInstance,\n): boolean {\n const runtime = getActiveRequestRuntime(instance);\n const cacheConfig = resolveCacheConfig(config as EnhancedAxiosRequestConfig, runtime);\n return runtime.cache.delete(cacheKey(config, cacheConfig));\n}\n\nexport function clearCacheByPrefix(\n prefix: string,\n instance?: AxiosInstance,\n): number {\n return getActiveRequestRuntime(instance).cache.deleteByPrefix?.(prefix) ?? 0;\n}\n\nexport function clearCacheByTag(tag: string, instance?: AxiosInstance): number {\n return getActiveRequestRuntime(instance).cache.deleteByTag?.(tag) ?? 0;\n}\n\nexport function cleanupExpiredCache(instance?: AxiosInstance): void {\n getActiveRequestRuntime(instance).cache.cleanup?.();\n}\n\nexport function getCacheSize(instance?: AxiosInstance): number {\n return getActiveRequestRuntime(instance).cache.size;\n}\n","/*\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2026-08-09\n * @FilePath: \\robot-admin-request-core\\src\\axios\\utils\\abort.ts\n * @Description: Axios 插件共享取消上下文管理\n * Copyright (c) 2026 by CHENY, All Rights Reserved 😎.\n */\n\nimport type { EnhancedAbortController, EnhancedAxiosRequestConfig } from \"../types\";\n\n/**\n * 创建或复用请求级共享 AbortController。\n *\n * 调用方 signal 不直接作为 Axios 最终 signal 使用,而是单向桥接到共享\n * controller。这样调用方取消、重复请求取消和路由批量取消都会落到同一信号,\n * 同时避免 dedupe/cancel 插件互相覆盖 config.signal。\n */\nexport function ensureSharedAbortController(\n config: EnhancedAxiosRequestConfig,\n): EnhancedAbortController | null {\n if (typeof AbortController === \"undefined\") return null;\n\n const existing = config.__abortController;\n if (existing) {\n existing._startTime ??= Date.now();\n config.signal = existing.signal;\n return existing;\n }\n\n const externalSignal = config.signal;\n const controller = new AbortController() as EnhancedAbortController;\n controller._startTime = Date.now();\n\n if (externalSignal && externalSignal !== controller.signal) {\n config.__externalSignal = externalSignal;\n\n const forwardAbort = () => {\n if (!controller.signal.aborted) {\n controller.abort((externalSignal as AbortSignal).reason);\n }\n };\n\n if (externalSignal.aborted) {\n forwardAbort();\n } else {\n externalSignal.addEventListener?.(\"abort\", forwardAbort, { once: true });\n config.__abortCleanup = () => {\n externalSignal.removeEventListener?.(\"abort\", forwardAbort);\n };\n }\n }\n\n config.__abortController = controller;\n config.signal = controller.signal;\n return controller;\n}\n\n/**\n * 清理请求级取消桥接,并恢复调用方原始 signal。\n *\n * 必须在内置 retry 插件之后执行,确保自动重试期间桥接持续有效;恢复后的\n * config 也可被 Robot_Admin 等消费方在 401 业务拦截器中安全地再次发送。\n */\nexport function cleanupAbortContext(\n config: EnhancedAxiosRequestConfig | undefined,\n): void {\n if (!config) return;\n\n config.__abortCleanup?.();\n\n if (config.__externalSignal) {\n config.signal = config.__externalSignal;\n } else if (config.signal === config.__abortController?.signal) {\n delete config.signal;\n }\n\n delete config.__abortCleanup;\n delete config.__externalSignal;\n delete config.__abortController;\n}\n","import type { AxiosInstance, InternalAxiosRequestConfig } from \"axios\";\nimport type { CancelConfig, EnhancedAxiosRequestConfig, RequestScope } from \"../types\";\nimport type { RequestRuntime } from \"../runtime\";\nimport { getActiveRequestRuntime } from \"../runtime\";\nimport { ensureSharedAbortController } from \"../utils/abort\";\nimport { normalizeConfig } from \"../utils/helpers\";\n\ninterface ResolvedCancelConfig extends CancelConfig {\n enabled: boolean;\n whitelist: RegExp[];\n}\n\nconst DEFAULT_CANCEL_CONFIG: ResolvedCancelConfig = {\n enabled: true,\n whitelist: [],\n};\nconst CLEANUP_INTERVAL = 30_000;\nconst REQUEST_TIMEOUT = 5 * 60_000;\n\nfunction stopTimerIfIdle(runtime: RequestRuntime): void {\n if (runtime.cancelableRequests.size === 0 && runtime.cancelCleanupTimer) {\n clearInterval(runtime.cancelCleanupTimer);\n runtime.cancelCleanupTimer = null;\n }\n}\n\nfunction startTimer(runtime: RequestRuntime): void {\n if (runtime.cancelCleanupTimer) return;\n runtime.cancelCleanupTimer = setInterval(() => {\n const now = Date.now();\n for (const [id, entry] of runtime.cancelableRequests) {\n if (now - (entry.controller._startTime ?? now) > REQUEST_TIMEOUT) {\n entry.controller.abort(new Error(\"Request lifecycle expired.\"));\n runtime.cancelableRequests.delete(id);\n }\n }\n stopTimerIfIdle(runtime);\n }, CLEANUP_INTERVAL);\n runtime.cancelCleanupTimer.unref?.();\n}\n\nfunction isWhitelisted(url: string, whitelist: RegExp[]): boolean {\n return whitelist.some((pattern) => new RegExp(pattern.source, pattern.flags).test(url));\n}\n\nfunction removeCancelable(\n config: EnhancedAxiosRequestConfig | undefined,\n runtime: RequestRuntime,\n): void {\n if (config?.__cancelId) runtime.cancelableRequests.delete(config.__cancelId);\n stopTimerIfIdle(runtime);\n}\n\nexport function setupCancelPlugin(\n instance: AxiosInstance,\n runtime: RequestRuntime,\n): void {\n instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const enhanced = config as EnhancedAxiosRequestConfig;\n const inherited = normalizeConfig(\n runtime.defaults.cancel,\n DEFAULT_CANCEL_CONFIG,\n ) as ResolvedCancelConfig;\n const cancel = normalizeConfig(enhanced.cancel, inherited) as ResolvedCancelConfig;\n if (\n !cancel.enabled ||\n enhanced.__fromCache ||\n isWhitelisted(config.url ?? \"\", cancel.whitelist)\n ) {\n return config;\n }\n\n const controller = ensureSharedAbortController(enhanced);\n if (!controller) return config;\n const id = `request_${++runtime.requestId}`;\n enhanced.__cancelId = id;\n runtime.cancelableRequests.set(id, {\n controller,\n scope: cancel.scope ?? enhanced.scope,\n });\n startTimer(runtime);\n return config;\n });\n\n instance.interceptors.response.use(\n (response) => {\n removeCancelable(response.config as EnhancedAxiosRequestConfig, runtime);\n return response;\n },\n (error: unknown) => {\n removeCancelable(\n (error as { config?: EnhancedAxiosRequestConfig })?.config,\n runtime,\n );\n return Promise.reject(error);\n },\n );\n}\n\nexport function cancelAllRequests(instance?: AxiosInstance): void {\n const runtime = getActiveRequestRuntime(instance);\n for (const entry of runtime.cancelableRequests.values()) entry.controller.abort();\n runtime.cancelableRequests.clear();\n stopTimerIfIdle(runtime);\n}\n\nexport function cancelRequestScope(\n scope: RequestScope,\n instance?: AxiosInstance,\n): number {\n const runtime = getActiveRequestRuntime(instance);\n let canceled = 0;\n for (const [id, entry] of [...runtime.cancelableRequests.entries()]) {\n if (entry.scope === scope) {\n entry.controller.abort(new Error(`Request scope canceled: ${String(scope)}`));\n runtime.cancelableRequests.delete(id);\n canceled += 1;\n }\n }\n stopTimerIfIdle(runtime);\n return canceled;\n}\n\nexport function getCancelableRequestCount(instance?: AxiosInstance): number {\n return getActiveRequestRuntime(instance).cancelableRequests.size;\n}\n","import type { AxiosInstance, InternalAxiosRequestConfig } from \"axios\";\nimport type {\n DedupeConfig,\n EnhancedAbortController,\n EnhancedAxiosRequestConfig,\n} from \"../types\";\nimport type { RequestRuntime } from \"../runtime\";\nimport { getActiveRequestRuntime } from \"../runtime\";\nimport { ensureSharedAbortController } from \"../utils/abort\";\nimport { generateRequestKey, normalizeConfig } from \"../utils/helpers\";\n\nconst DEFAULT_DEDUPE_CONFIG: Required<DedupeConfig> = {\n enabled: true,\n keyGenerator: generateRequestKey,\n};\nconst SAFE_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\nconst CLEANUP_INTERVAL = 30_000;\nconst REQUEST_TIMEOUT = 5 * 60_000;\n\nfunction stopTimerIfIdle(runtime: RequestRuntime): void {\n if (runtime.pendingRequests.size === 0 && runtime.dedupeCleanupTimer) {\n clearInterval(runtime.dedupeCleanupTimer);\n runtime.dedupeCleanupTimer = null;\n }\n}\n\nfunction startTimer(runtime: RequestRuntime): void {\n if (runtime.dedupeCleanupTimer) return;\n runtime.dedupeCleanupTimer = setInterval(() => {\n const now = Date.now();\n for (const [key, controller] of runtime.pendingRequests) {\n if (now - (controller._startTime ?? now) > REQUEST_TIMEOUT) {\n controller.abort();\n runtime.pendingRequests.delete(key);\n }\n }\n stopTimerIfIdle(runtime);\n }, CLEANUP_INTERVAL);\n runtime.dedupeCleanupTimer.unref?.();\n}\n\nfunction removePending(\n config: EnhancedAxiosRequestConfig,\n runtime: RequestRuntime,\n): void {\n const key = config.__requestKey;\n const controller = config.__abortController;\n if (key && controller && runtime.pendingRequests.get(key) === controller) {\n runtime.pendingRequests.delete(key);\n }\n stopTimerIfIdle(runtime);\n}\n\nexport function setupDedupePlugin(\n instance: AxiosInstance,\n runtime: RequestRuntime,\n): void {\n instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const enhanced = config as EnhancedAxiosRequestConfig;\n const method = (config.method ?? \"get\").toUpperCase();\n const requestSetting = enhanced.dedupe ?? runtime.defaults.dedupe;\n const isImplicitDefault = requestSetting === undefined;\n if (isImplicitDefault && !SAFE_METHODS.has(method)) return config;\n\n const dedupe = normalizeConfig(\n requestSetting,\n DEFAULT_DEDUPE_CONFIG,\n ) as Required<DedupeConfig>;\n if (!dedupe.enabled || enhanced.__fromCache) return config;\n\n const key = dedupe.keyGenerator(config);\n const existing = runtime.pendingRequests.get(key);\n if (existing) {\n existing.abort(new Error(\"Superseded by a newer request.\"));\n runtime.pendingRequests.delete(key);\n }\n\n const controller = ensureSharedAbortController(enhanced);\n if (!controller) return config;\n enhanced.__requestKey = key;\n runtime.pendingRequests.set(key, controller as EnhancedAbortController);\n startTimer(runtime);\n return config;\n });\n\n instance.interceptors.response.use(\n (response) => {\n removePending(response.config as EnhancedAxiosRequestConfig, runtime);\n return response;\n },\n (error: unknown) => {\n const config = (error as { config?: EnhancedAxiosRequestConfig })?.config;\n if (config) removePending(config, runtime);\n return Promise.reject(error);\n },\n );\n}\n\nexport function cancelAllPendingRequests(instance?: AxiosInstance): void {\n const runtime = getActiveRequestRuntime(instance);\n for (const controller of runtime.pendingRequests.values()) controller.abort();\n runtime.pendingRequests.clear();\n stopTimerIfIdle(runtime);\n}\n\nexport function getPendingRequestCount(instance?: AxiosInstance): number {\n return getActiveRequestRuntime(instance).pendingRequests.size;\n}\n","import type { AxiosInstance } from \"axios\";\nimport { getActiveRequestRuntime } from \"../runtime\";\n\nexport function waitForReLogin(instance?: AxiosInstance): Promise<void> {\n const state = getActiveRequestRuntime(instance).reLogin;\n if (!state.promise) {\n state.promise = new Promise<void>((resolve, reject) => {\n state.resolve = resolve;\n state.reject = reject;\n }).finally(() => {\n state.promise = null;\n state.resolve = null;\n state.reject = null;\n });\n }\n return state.promise;\n}\n\nexport function getReLoginPromise(instance?: AxiosInstance): Promise<void> | null {\n return getActiveRequestRuntime(instance).reLogin.promise;\n}\n\nexport function resolveReLogin(instance?: AxiosInstance): void {\n getActiveRequestRuntime(instance).reLogin.resolve?.();\n}\n\nexport function rejectReLogin(reason?: unknown, instance?: AxiosInstance): void {\n getActiveRequestRuntime(instance).reLogin.reject?.(reason);\n}\n\nexport function setupRequestPlugin(_instance: AxiosInstance): void {\n // Authentication is opt-in and installed by createRequestClient().\n}\n","/*\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2026-02-07 10:00:00\n * @LastEditors: ChenYu ycyplus@gmail.com\n * @LastEditTime: 2026-02-07 10:00:00\n * @FilePath: \\robot-admin-request-core\\src\\axios\\plugins\\response.ts\n * @Description: 响应处理插件(预留,用户通过 interceptors 配置)\n * Copyright (c) 2026 by CHENY, All Rights Reserved ���.\n */\n\nimport type { AxiosInstance, AxiosResponse } from \"axios\";\nimport type { EnhancedAxiosRequestConfig } from \"../types\";\nimport { cleanupAbortContext } from \"../utils/abort\";\n\n/**\n * 设置响应插件(预留,具体逻辑由用户通过 interceptors 配置)\n */\nexport function setupResponsePlugin(instance: AxiosInstance): void {\n instance.interceptors.response.use(\n (response: AxiosResponse) => {\n cleanupAbortContext(response.config as EnhancedAxiosRequestConfig);\n return response;\n },\n (error: unknown) => {\n cleanupAbortContext(\n (error as { config?: EnhancedAxiosRequestConfig })?.config,\n );\n return Promise.reject(error);\n },\n );\n}\n","import type { AxiosError, AxiosInstance } from \"axios\";\nimport type { EnhancedAxiosRequestConfig, RetryConfig } from \"../types\";\nimport type { RequestRuntime } from \"../runtime\";\nimport {\n delay,\n isNetworkError,\n isRetryableStatus,\n isTimeoutError,\n normalizeConfig,\n} from \"../utils/helpers\";\n\ninterface ResolvedRetryConfig extends RetryConfig {\n enabled: boolean;\n count: number;\n delay: number;\n exponentialBackoff: boolean;\n jitter: boolean;\n retryableStatusCodes: number[];\n retryableMethods: string[];\n maxDelay: number;\n maxElapsedMs: number;\n respectRetryAfter: boolean;\n retryUnsafeBody: boolean;\n}\n\nconst DEFAULT_RETRY_CONFIG: ResolvedRetryConfig = {\n enabled: false,\n count: 3,\n delay: 1000,\n exponentialBackoff: true,\n jitter: true,\n retryableStatusCodes: [408, 429, 500, 502, 503, 504],\n retryableMethods: [\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"DELETE\"],\n maxDelay: 30_000,\n maxElapsedMs: 0,\n respectRetryAfter: true,\n retryUnsafeBody: false,\n};\n\nfunction resolveRetryConfig(\n config: EnhancedAxiosRequestConfig,\n runtime: RequestRuntime,\n): ResolvedRetryConfig {\n const inherited = normalizeConfig(\n runtime.defaults.retry,\n DEFAULT_RETRY_CONFIG,\n ) as ResolvedRetryConfig;\n const resolved = normalizeConfig(config.retry, inherited) as ResolvedRetryConfig;\n for (const [name, value] of [\n [\"count\", resolved.count],\n [\"delay\", resolved.delay],\n [\"maxDelay\", resolved.maxDelay],\n [\"maxElapsedMs\", resolved.maxElapsedMs],\n ] as const) {\n if (!Number.isFinite(value) || value < 0 || (name === \"count\" && !Number.isInteger(value))) {\n throw new RangeError(`Retry ${name} has an invalid value.`);\n }\n }\n return resolved;\n}\n\nfunction isCanceled(error: unknown): boolean {\n const candidate = error as { name?: string; code?: string };\n return (\n candidate?.name === \"CanceledError\" ||\n candidate?.name === \"AbortError\" ||\n candidate?.code === \"ERR_CANCELED\"\n );\n}\n\nfunction hasUnsafeBody(data: unknown): boolean {\n if (!data || typeof data !== \"object\") return false;\n const candidate = data as { pipe?: unknown; getReader?: unknown; locked?: unknown };\n return (\n typeof candidate.pipe === \"function\" ||\n typeof candidate.getReader === \"function\" ||\n candidate.locked === true\n );\n}\n\nasync function shouldRetry(\n error: AxiosError,\n retry: ResolvedRetryConfig,\n): Promise<boolean> {\n const config = error.config as EnhancedAxiosRequestConfig | undefined;\n if (!retry.enabled || !config || isCanceled(error)) return false;\n const attempt = config.__retryCount ?? 0;\n if (attempt >= retry.count) return false;\n if (hasUnsafeBody(config.data) && !retry.retryUnsafeBody) return false;\n const method = (config.method ?? \"get\").toUpperCase();\n if (!retry.retryableMethods.some((item) => item.toUpperCase() === method)) return false;\n if (retry.shouldRetry) return retry.shouldRetry(error, attempt + 1);\n if (isNetworkError(error) || isTimeoutError(error)) return true;\n return error.response?.status\n ? isRetryableStatus(error.response.status, retry.retryableStatusCodes)\n : false;\n}\n\nfunction retryAfterDelay(error: AxiosError): number | null {\n const raw = error.response?.headers?.[\"retry-after\"];\n if (raw == null) return null;\n const seconds = Number(raw);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1000);\n const timestamp = Date.parse(String(raw));\n return Number.isFinite(timestamp) ? Math.max(0, timestamp - Date.now()) : null;\n}\n\nfunction calculateDelay(\n error: AxiosError,\n attempt: number,\n retry: ResolvedRetryConfig,\n): number {\n let calculated = retry.exponentialBackoff\n ? retry.delay * 2 ** (attempt - 1)\n : retry.delay;\n if (retry.jitter) calculated = Math.round(calculated * (0.75 + Math.random() * 0.5));\n if (retry.respectRetryAfter && [429, 503].includes(error.response?.status ?? 0)) {\n calculated = Math.max(calculated, retryAfterDelay(error) ?? 0);\n }\n return Math.min(Math.max(0, calculated), retry.maxDelay);\n}\n\nexport function setupRetryPlugin(\n instance: AxiosInstance,\n runtime: RequestRuntime,\n): void {\n instance.interceptors.response.use(undefined, async (error: AxiosError) => {\n const config = error.config as EnhancedAxiosRequestConfig | undefined;\n if (!config) return Promise.reject(error);\n\n const retry = resolveRetryConfig(config, runtime);\n if (!(await shouldRetry(error, retry))) return Promise.reject(error);\n\n const startedAt = config.__retryStartedAt ?? Date.now();\n config.__retryStartedAt = startedAt;\n const attempt = (config.__retryCount ?? 0) + 1;\n const wait = calculateDelay(error, attempt, retry);\n const elapsed = Date.now() - startedAt;\n if (retry.maxElapsedMs > 0 && elapsed + wait > retry.maxElapsedMs) {\n return Promise.reject(error);\n }\n\n config.__retryCount = attempt;\n await retry.onRetry?.({ attempt, delay: wait, elapsed, error, config });\n try {\n await delay(wait, config.signal);\n } catch (cause) {\n return Promise.reject(\n Object.assign(new Error(\"canceled\"), {\n name: \"CanceledError\",\n code: \"ERR_CANCELED\",\n config,\n cause,\n }),\n );\n }\n\n const next: EnhancedAxiosRequestConfig = { ...config };\n delete next.__cancelId;\n delete next.__requestKey;\n return instance.request(next);\n });\n}\n","import type { AxiosInstance } from \"axios\";\nimport type { RequestRuntime } from \"../runtime\";\nimport { setupCachePlugin } from \"./cache\";\nimport { setupCancelPlugin } from \"./cancel\";\nimport { setupDedupePlugin } from \"./dedupe\";\nimport { setupRequestPlugin } from \"./request\";\nimport { setupResponsePlugin } from \"./response\";\nimport { setupRetryPlugin } from \"./retry\";\n\n/**\n * Axios request interceptors execute in reverse registration order and\n * response interceptors execute in registration order. Cache hits therefore\n * still pass through cancel/dedupe cleanup before reaching consumers.\n */\nexport function setupPlugins(\n instance: AxiosInstance,\n runtime: RequestRuntime,\n): void {\n setupRequestPlugin(instance);\n setupCachePlugin(instance, runtime);\n setupCancelPlugin(instance, runtime);\n setupDedupePlugin(instance, runtime);\n setupRetryPlugin(instance, runtime);\n setupResponsePlugin(instance);\n}\n\nexport {\n waitForReLogin,\n resolveReLogin,\n rejectReLogin,\n getReLoginPromise,\n} from \"./request\";\nexport { cancelAllPendingRequests, getPendingRequestCount } from \"./dedupe\";\nexport {\n clearAllCache,\n clearCache,\n clearCacheByPrefix,\n clearCacheByTag,\n cleanupExpiredCache,\n getCacheSize,\n} from \"./cache\";\nexport {\n cancelAllRequests,\n cancelRequestScope,\n getCancelableRequestCount,\n} from \"./cancel\";\n","import type { AxiosInstance } from \"axios\";\nimport type { EnhancedAxiosRequestConfig } from \"./types\";\nimport {\n getDefaultAxiosInstance,\n setDefaultAxiosInstance,\n} from \"./runtime\";\n\nexport function setGlobalAxiosInstance(instance: AxiosInstance): void {\n setDefaultAxiosInstance(instance);\n}\n\nexport function getGlobalAxiosInstance(): AxiosInstance {\n const instance = getDefaultAxiosInstance();\n if (!instance) {\n throw new Error(\n \"Axios instance not initialized. Please call createRequestCore() or setGlobalAxiosInstance() first.\",\n );\n }\n return instance;\n}\n\nconst service = new Proxy({} as AxiosInstance, {\n get(_target, prop) {\n return getGlobalAxiosInstance()[prop as keyof AxiosInstance];\n },\n});\n\nexport default service;\n\nexport async function getData<T = unknown>(\n url: string,\n config?: EnhancedAxiosRequestConfig,\n): Promise<T> {\n const response = await getGlobalAxiosInstance().get(url, config);\n return response.data;\n}\n\nexport async function postData<T = unknown, D = unknown>(\n url: string,\n data?: D,\n config?: EnhancedAxiosRequestConfig<D>,\n): Promise<T> {\n const response = await getGlobalAxiosInstance().post(url, data, config);\n return response.data;\n}\n\nexport async function putData<T = unknown, D = unknown>(\n url: string,\n data?: D,\n config?: EnhancedAxiosRequestConfig<D>,\n): Promise<T> {\n const response = await getGlobalAxiosInstance().put(url, data, config);\n return response.data;\n}\n\nexport async function patchData<T = unknown, D = unknown>(\n url: string,\n data?: D,\n config?: EnhancedAxiosRequestConfig<D>,\n): Promise<T> {\n const response = await getGlobalAxiosInstance().patch(url, data, config);\n return response.data;\n}\n\nexport async function deleteData<T = unknown>(\n url: string,\n config?: EnhancedAxiosRequestConfig,\n): Promise<T> {\n const response = await getGlobalAxiosInstance().delete(url, config);\n return response.data;\n}\n","import axios, { type AxiosInstance, type AxiosRequestConfig } from \"axios\";\nimport { rejectReLogin, resolveReLogin, setupPlugins } from \"./plugins\";\nimport {\n attachRequestRuntime,\n createRequestRuntime,\n type CreateRequestRuntimeOptions,\n} from \"./runtime\";\nimport type { EnhancedAxiosInstance } from \"./types\";\n\nexport {\n setGlobalAxiosInstance,\n getGlobalAxiosInstance,\n getData,\n postData,\n putData,\n patchData,\n deleteData,\n} from \"./service\";\nexport { default } from \"./service\";\n\n/** Creates an isolated Axios instance with request-core lifecycle policies. */\nexport function createAxiosInstance(\n config: AxiosRequestConfig = {},\n runtimeOptions: CreateRequestRuntimeOptions = {},\n): EnhancedAxiosInstance {\n const instance = axios.create({\n timeout: 5000,\n headers: { \"Content-Type\": \"application/json\" },\n ...config,\n });\n const runtime = createRequestRuntime(runtimeOptions);\n attachRequestRuntime(instance, runtime);\n setupPlugins(instance, runtime);\n return instance as EnhancedAxiosInstance;\n}\n\nexport {\n waitForReLogin,\n getReLoginPromise,\n cancelAllPendingRequests,\n getPendingRequestCount,\n clearAllCache,\n clearCache,\n clearCacheByPrefix,\n clearCacheByTag,\n cleanupExpiredCache,\n getCacheSize,\n cancelAllRequests,\n cancelRequestScope,\n getCancelableRequestCount,\n} from \"./plugins\";\n\nexport const onReLoginSuccess = (instance?: AxiosInstance): void => {\n resolveReLogin(instance);\n};\n\nexport const onReLoginCancel = (instance?: AxiosInstance): void => {\n rejectReLogin(new Error(\"重新登录已取消\"), instance);\n};\n","import type { App } from \"vue\";\nimport type {\n AxiosRequestConfig,\n AxiosError,\n AxiosResponse,\n InternalAxiosRequestConfig,\n} from \"axios\";\nimport { createAxiosInstance } from \"./axios/request\";\nimport { setGlobalAxiosInstance } from \"./axios/service\";\nimport {\n getGlobalRuntimeConfig,\n setGlobalRuntimeConfig,\n} from \"./axios/runtime\";\nimport type { CacheStore, RequestPolicyDefaults } from \"./axios/types\";\n\nexport interface InterceptorConfig {\n request?: (\n config: InternalAxiosRequestConfig,\n ) => InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>;\n requestError?: (error: AxiosError) => unknown;\n response?: (response: AxiosResponse) => AxiosResponse | Promise<AxiosResponse>;\n responseError?: (error: AxiosError) => unknown;\n}\n\nexport interface FieldAliases {\n data?: string[];\n list?: string[];\n total?: string[];\n}\n\nexport interface RequestCoreConfig {\n request?: AxiosRequestConfig;\n interceptors?: InterceptorConfig;\n successCodes?: Array<number | string>;\n fieldAliases?: FieldAliases;\n defaults?: RequestPolicyDefaults;\n cacheStore?: CacheStore;\n}\n\n/** Returns a defensive copy of the legacy default response configuration. */\nexport function getGlobalConfig() {\n return getGlobalRuntimeConfig();\n}\n\n/**\n * Creates the 0.2-compatible Vue plugin and selects its Axios instance for\n * global getData/postData helpers.\n *\n * @deprecated Prefer createRequestClient() plus createRequestPlugin().\n */\nexport function createRequestCore(config: RequestCoreConfig = {}) {\n const {\n request = {},\n interceptors = {},\n successCodes,\n fieldAliases,\n defaults,\n cacheStore,\n } = config;\n\n setGlobalRuntimeConfig({ successCodes, fieldAliases });\n const axiosInstance = createAxiosInstance(request, {\n cache: cacheStore,\n defaults,\n });\n setGlobalAxiosInstance(axiosInstance);\n\n if (interceptors.request || interceptors.requestError) {\n axiosInstance.interceptors.request.use(\n interceptors.request ?? ((requestConfig) => requestConfig),\n interceptors.requestError,\n );\n }\n if (interceptors.response || interceptors.responseError) {\n axiosInstance.interceptors.response.use(\n interceptors.response ?? ((response) => response),\n interceptors.responseError,\n );\n }\n\n return {\n install(app: App): void {\n app.config.globalProperties.$axios = axiosInstance;\n },\n axiosInstance,\n };\n}\n","import axios from \"axios\";\nimport type { AxiosRequestConfig } from \"axios\";\n\nexport type RequestErrorKind =\n | \"business\"\n | \"http\"\n | \"network\"\n | \"timeout\"\n | \"canceled\"\n | \"concurrency\"\n | \"configuration\"\n | \"unknown\";\n\nexport interface RequestErrorOptions<T = unknown> {\n kind: RequestErrorKind;\n message: string;\n code?: string | number;\n status?: number;\n data?: T;\n requestId?: string;\n retryable?: boolean;\n config?: AxiosRequestConfig;\n cause?: unknown;\n}\n\nexport class RequestError<T = unknown> extends Error {\n readonly name = \"RequestError\";\n readonly kind: RequestErrorKind;\n readonly code?: string | number;\n readonly status?: number;\n readonly data?: T;\n readonly requestId?: string;\n readonly retryable: boolean;\n readonly config?: AxiosRequestConfig;\n readonly cause?: unknown;\n\n constructor(options: RequestErrorOptions<T>) {\n super(options.message);\n this.kind = options.kind;\n this.code = options.code;\n this.status = options.status;\n this.data = options.data;\n this.requestId = options.requestId;\n this.retryable = options.retryable ?? false;\n this.config = options.config;\n this.cause = options.cause;\n }\n}\n\nexport function isRequestError(error: unknown): error is RequestError {\n return error instanceof RequestError;\n}\n\nexport function isCanceledError(error: unknown): boolean {\n return (\n (error instanceof RequestError && error.kind === \"canceled\") ||\n axios.isCancel(error) ||\n (error as { code?: string; name?: string })?.code === \"ERR_CANCELED\" ||\n (error as { name?: string })?.name === \"AbortError\"\n );\n}\n\nexport function normalizeRequestError(error: unknown): RequestError {\n if (error instanceof RequestError) return error;\n if (isCanceledError(error)) {\n return new RequestError({\n kind: \"canceled\",\n message: \"Request canceled.\",\n code: \"ERR_CANCELED\",\n cause: error,\n });\n }\n if (axios.isAxiosError(error)) {\n const status = error.response?.status;\n const timeout = error.code === \"ECONNABORTED\" || error.code === \"ETIMEDOUT\";\n const kind: RequestErrorKind = timeout\n ? \"timeout\"\n : status\n ? \"http\"\n : \"network\";\n return new RequestError({\n kind,\n message: error.message || \"Request failed.\",\n code: error.code,\n status,\n data: error.response?.data,\n requestId:\n error.response?.headers?.[\"x-request-id\"] ??\n error.response?.headers?.[\"x-correlation-id\"],\n retryable: timeout || !status || status === 408 || status === 429 || status >= 500,\n config: error.config,\n cause: error,\n });\n }\n return new RequestError({\n kind: \"unknown\",\n message: error instanceof Error ? error.message : \"Unknown request error.\",\n cause: error,\n });\n}\n"]}