@qxs-bns/utils 0.0.35 → 0.0.36

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.
package/es/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export{ArgoLog}from"./src/argo-log.mjs";export{formatDuration}from"./src/date-transfer.mjs";export{getDeviceType,isAndroid,isIOS,isMobile}from"./src/device.mjs";export{createVideoUploader,downloadFile}from"./src/file-operations.mjs";export{JsonToExcel,excelToJson}from"./src/json.mjs";export{OssError,OssUploader,generateSignedUrl,getClient,uploadFile}from"./src/oss-uploader.mjs";export{Storage}from"./src/storage.mjs";export{isBoolean,isElement,isImageByMimeType,isJSONString,isNumber,isPlainObject,isUndefined,isWindow}from"./src/types.mjs";export{ApiService}from"./src/use-api.mjs";export{watermark}from"./src/watermark.mjs";
1
+ export{ApiService}from"./src/api-client/axios-client.mjs";export{ApiError,FetchApiService}from"./src/api-client/fetch-client.mjs";export{ArgoLog}from"./src/argo-log.mjs";export{formatDuration}from"./src/date-transfer.mjs";export{getDeviceType,isAndroid,isIOS,isMobile}from"./src/device.mjs";export{createVideoUploader,downloadFile}from"./src/file-operations.mjs";export{JsonToExcel,excelToJson}from"./src/json.mjs";export{OssError,OssUploader,generateSignedUrl,getClient,uploadFile}from"./src/oss-uploader.mjs";export{Storage}from"./src/storage.mjs";export{isBoolean,isElement,isImageByMimeType,isJSONString,isNumber,isPlainObject,isUndefined,isWindow}from"./src/types.mjs";export{watermark}from"./src/watermark.mjs";
2
2
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,2 @@
1
+ import{isPlainObject as e}from"../types.mjs";var s=Object.defineProperty,t=(e,t,r)=>((e,t,r)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const r=class s{constructor(e,r){var i=this;if(this.apiInstance=e,this.isWholeResponse=r,t(this,"useApi",async function(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.isWholeResponse,r=null,o=null;try{const o={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};o.url=(o.proxyPrefix||"")+e.url,delete o.proxyPrefix;const n=await i.apiInstance(o);r=t?n.data:n.data.data}catch(e){"AxiosError"!==e.name?i.isAxiosResponse(e)?o=e.data:i.isErrorResponse(e)&&(o=e):console.error(e)}return{res:r,error:o}}),t(this,"apiClient",async(e,s,t)=>{t??this.isWholeResponse;const r={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};return r.proxyPrefix&&(r.url=(r.proxyPrefix||"")+e.url,delete r.proxyPrefix),await this.apiInstance(r)}),s.instance)return s.instance;s.instance=this,this.isWholeResponse=r}isBusinessError(s){return e(s)&&"string"==typeof s.message&&"number"==typeof s.code&&0!==s.code}isAxiosResponse(s){return e(s)&&void 0!==s.data&&this.isBusinessError(s.data)&&void 0!==s.status&&void 0!==s.statusText&&void 0!==s.headers&&void 0!==s.config&&void 0!==s.request}isErrorResponse(e){return"code"in e&&"data"in e&&"message"in e&&0!==e.code}};t(r,"instance");let i=r;export{i as ApiService};
2
+ //# sourceMappingURL=axios-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios-client.mjs","sources":["../../../../../packages/utils/src/api-client/axios-client.ts"],"sourcesContent":["import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'\nimport type {\n ApiTypeMap,\n BaseErrorResponse,\n ErrorResponse,\n RequestParams,\n RequestPayload,\n UrlObjectType,\n} from './types'\nimport { isPlainObject } from '../types'\n\n// 重新导出共享类型\nexport type {\n ApiTypeMap,\n BaseErrorResponse,\n ErrorResponse,\n Method,\n RequestParams,\n RequestPayload,\n UrlObjectType,\n UseApiResponse,\n} from './types'\n\n/**\n * 成功响应的基础约束接口\n * @template T - 响应数据的类型\n */\nexport interface BaseSuccessResponse<T = unknown> {\n data: T\n [key: string]: any\n}\n\n/**\n * 成功响应的数据结构(默认实现)\n * @template T - 响应数据的类型\n */\nexport interface SuccessResponse<T> extends BaseSuccessResponse<T> {\n code: number\n count: number\n data: T\n message: string\n}\n\n/**\n * Axios 专用的 API 响应封装(支持完整响应选项)\n * @template W - 是否返回完整响应,true 返回完整响应,false 只返回 data\n * @template T - 响应数据的类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n */\nexport interface AxiosUseApiResponse<\n W extends boolean = false,\n T = unknown,\n S extends BaseSuccessResponse<T> = SuccessResponse<T>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n res: W extends true ? S : T\n error: E | null\n}\n\n/**\n * API 服务类,提供统一的请求处理和错误处理\n * @template T - API 类型映射\n * @template U - URL 配置对象类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n *\n * @example\n * ```typescript\n * // 定义 API 类型映射\n * interface UserApi extends ApiTypeMap<UserUrlObject> {\n * '/user/list': {\n * request: { page: number; size: number }\n * response: User[]\n * }\n * }\n *\n * // 使用默认响应类型\n * const api = new ApiService<UserApi, UserUrlObject>(axios.create(), false)\n *\n * // 使用自定义响应类型\n * interface CustomSuccessResponse<T> {\n * status: number\n * result: T\n * msg: string\n * }\n *\n * interface CustomErrorResponse {\n * status: number\n * result: null\n * msg: string\n * }\n *\n * const customApi = new ApiService<\n * UserApi,\n * UserUrlObject,\n * CustomSuccessResponse<unknown>,\n * CustomErrorResponse\n * >(axios.create(), false)\n *\n * // 发起请求\n * const { res, error } = await api.useApi({\n * url: '/user/list',\n * method: 'GET',\n * params: { page: 1, size: 10 }\n * })\n * ```\n */\nexport class ApiService<\n T extends ApiTypeMap<U>,\n U extends UrlObjectType,\n S extends BaseSuccessResponse = SuccessResponse<unknown>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n private static instance: ApiService<any, any, any, any>\n\n /**\n * 构造函数,实现单例模式\n * @param apiInstance - Axios 实例\n * @param isWholeResponse - 是否返回完整响应\n */\n constructor(\n private apiInstance: AxiosInstance,\n private isWholeResponse: boolean,\n ) {\n if (ApiService.instance) {\n return ApiService.instance as ApiService<T, U, S, E>\n }\n ApiService.instance = this\n this.isWholeResponse = isWholeResponse\n }\n\n /**\n * 判断是否为业务错误\n * @param obj - 待判断的对象\n */\n private isBusinessError(obj: E): boolean {\n return isPlainObject(obj)\n && typeof (obj as any).message === 'string'\n && typeof (obj as any).code === 'number'\n && (obj as any).code !== 0\n }\n\n /**\n * 判断是否为 Axios 响应对象\n * @param value - 待判断的值\n */\n private isAxiosResponse(value: any): value is AxiosResponse {\n return isPlainObject(value)\n && value.data !== undefined\n && this.isBusinessError(value.data)\n && value.status !== undefined\n && value.statusText !== undefined\n && value.headers !== undefined\n && value.config !== undefined\n && value.request !== undefined\n }\n\n /**\n * 判断是否为错误响应\n * @param value - 待判断的值\n */\n private isErrorResponse(value: any): value is E {\n return 'code' in value && 'data' in value && 'message' in value && value.code !== 0\n }\n\n /**\n * 发起 API 请求,返回统一的响应格式 { res, error }\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应,true 返回 SuccessResponse,false 只返回 data\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数(GET 请求会自动转为 params,其他方法转为 data)\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns Promise<UseApiResponse<W, T, S, E>> - 包含 res 和 error 的统一响应对象\n */\n public useApi = async <\n K extends U,\n W extends boolean = false,\n >(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse: W = this.isWholeResponse as W,\n ): Promise<AxiosUseApiResponse<W, T[K['url']]['response'], S, E>> => {\n let res: AxiosUseApiResponse<W, T[K['url']]['response'], S, E>['res'] | null = null\n let error: AxiosUseApiResponse<W, T[K['url']]['response'], S, E>['error'] = null\n\n try {\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n\n // 发起请求\n const response = await this.apiInstance<S & { data: T[K['url']]['response'] }>(config)\n res = isWholeResponse\n ? (response.data as any)\n : response.data.data\n }\n catch (err: any) {\n // 错误处理\n if (err.name !== 'AxiosError') {\n if (this.isAxiosResponse(err)) {\n error = err.data as E\n }\n else if (this.isErrorResponse(err)) {\n error = err\n }\n }\n else {\n console.error(err)\n }\n }\n\n return { res: res!, error }\n }\n\n /**\n * 发起 API 请求\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns 根据 isWholeResponse 返回完整响应或解包后的数据\n */\n public apiClient = async <K extends U, W extends boolean = false>(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse?: W,\n ): Promise<W extends true ? AxiosResponse<T[K['url']]['response']> : T[K['url']]['response']> => {\n const useWholeResponse = isWholeResponse ?? this.isWholeResponse\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n if (config.proxyPrefix) {\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n }\n\n // 发起请求,利用 axios 的第二个泛型参数 R 控制解包\n if (useWholeResponse) {\n return await this.apiInstance<T[K['url']]['response']>(config)\n }\n else {\n return await this.apiInstance<any, T[K['url']]['response']>(config)\n }\n }\n}\n"],"names":["_ApiService","constructor","apiInstance","isWholeResponse","_this","this","__publicField","async","axiosConfig","params","arguments","length","undefined","res","error","config","method","includes","toUpperCase","data","url","proxyPrefix","response","err","name","isAxiosResponse","isErrorResponse","console","instance","isBusinessError","obj","isPlainObject","message","code","value","status","statusText","headers","request","ApiService"],"mappings":"uMA4GO,MAAMA,EAAN,MAAMA,EAaXC,WAAAA,CACUC,EACAC,GACR,IAAAC,EAAAC,KACA,GAHQA,KAAAH,YAAAA,EACAG,KAAAF,gBAAAA,EAoDVG,EAAAD,KAAO,SAASE,eAIdC,EAGAC,GAEmE,IADnEN,EAAAO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAqBN,EAAKD,gBAEtBU,EAA2E,KAC3EC,EAAwE,KAE5E,IAEE,MAAMC,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAI5HM,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,YAGd,MAAMC,QAAiBlB,EAAKF,YAAmDa,GAC/EF,EAAMV,EACDmB,EAASH,KACVG,EAASH,KAAKA,IACpB,OACOI,GAEY,eAAbA,EAAIC,KACFpB,EAAKqB,gBAAgBF,GACvBT,EAAQS,EAAIJ,KAELf,EAAKsB,gBAAgBH,KAC5BT,EAAQS,GAIVI,QAAQb,MAAMS,EAElB,CAEA,MAAO,CAAEV,MAAWC,QACtB,GAWAR,EAAAD,KAAO,YAAYE,MACjBC,EAGAC,EACAN,KAEyBA,GAAmBE,KAAKF,gBAAjD,MAEMY,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAU5H,OANIM,EAAOM,cACTN,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,mBAKDhB,KAAKH,YAAqCa,KAjIrDf,EAAW4B,SACb,OAAO5B,EAAW4B,SAEpB5B,EAAW4B,SAAWvB,KACtBA,KAAKF,gBAAkBA,CACzB,CAMQ0B,eAAAA,CAAgBC,GACtB,OAAOC,EAAcD,IACgB,iBAAxBA,EAAYE,SACS,iBAArBF,EAAYG,MACE,IAArBH,EAAYG,IACpB,CAMQR,eAAAA,CAAgBS,GACtB,OAAOH,EAAcG,SACD,IAAfA,EAAMf,MACNd,KAAKwB,gBAAgBK,EAAMf,YACV,IAAjBe,EAAMC,aACe,IAArBD,EAAME,iBACY,IAAlBF,EAAMG,cACW,IAAjBH,EAAMnB,aACY,IAAlBmB,EAAMI,OACb,CAMQZ,eAAAA,CAAgBQ,GACtB,MAAO,SAAUA,GAAS,SAAUA,GAAS,YAAaA,GAAwB,IAAfA,EAAMD,IAC3E,GAlDA3B,EANWN,EAMI,YANV,IAAMuC,EAANvC"}
@@ -0,0 +1,2 @@
1
+ var e=Object.defineProperty,t=(t,s,a)=>((t,s,a)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a)(t,"symbol"!=typeof s?s+"":s,a);class s extends Error{constructor(e,s,a,r){super(s),t(this,"code"),t(this,"details"),t(this,"status"),this.name="ApiError",this.code=e,this.status=a,this.details=r}}const a=class e{constructor(a){if(this.client=a,t(this,"useApi",async(e,t)=>{let a=null,r=null;try{const{url:s,method:r,proxyPrefix:o,params:n,data:i,...c}=e,l=(o||"")+s,d={...c,method:r.toLowerCase()},h=t||n,u=t||i;"GET"===r.toUpperCase()&&h?d.searchParams=h:u&&(d.json=u);const m=await this.client(l,d);a=(m.headers.get("content-type")??"").toLowerCase().includes("text/event-stream")?m.body:await m.json()}catch(e){r=e instanceof s?{code:e.code,message:e.message,details:e.details}:{code:"UNKNOWN_ERROR",message:e.message||"Unknown error"}}return{res:a,error:r}}),t(this,"apiClient",async(e,t)=>{const{url:s,method:a,proxyPrefix:r,params:o,data:n,...i}=e,c=(r||"")+s,l={...i,method:a.toLowerCase(),throwOnError:!0},d=t||o,h=t||n;"GET"===a.toUpperCase()&&d?l.searchParams=d:h&&(l.json=h);const u=await this.client(c,l);return(u.headers.get("content-type")??"").toLowerCase().includes("text/event-stream")?u.body:await u.json()}),e.instance)return e.instance;e.instance=this}};t(a,"instance");let r=a;export{s as ApiError,r as FetchApiService};
2
+ //# sourceMappingURL=fetch-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-client.mjs","sources":["../../../../../packages/utils/src/api-client/fetch-client.ts"],"sourcesContent":["import type { Options } from 'ky'\nimport type {\n ApiTypeMap,\n BaseErrorResponse,\n ErrorResponse,\n RequestParams,\n RequestPayload,\n UrlObjectType,\n UseApiResponse,\n} from './types'\n\n/**\n * 扩展的 API 请求配置选项\n */\ninterface ExtendedOptions extends Options {\n /** 内部标记:是否为重试请求 @internal */\n _isRetry?: boolean\n /** 静默模式:401 错误不弹出登录弹窗 @default false */\n _silent?: boolean\n /** 操作上下文:用于登录弹窗说明 */\n _actionContext?: string\n /** 错误处理策略:是否抛出错误 @default false */\n throwOnError?: boolean\n}\n\n/**\n * 自定义 API 错误类\n */\nexport class ApiError extends Error {\n code: string\n details?: string\n status: number\n\n constructor(code: string, message: string, status: number, details?: string) {\n super(message)\n this.name = 'ApiError'\n this.code = code\n this.status = status\n this.details = details\n }\n}\n\n// ============================================================================\n// Fetch API 服务类\n// ============================================================================\n\n/**\n * Fetch API 服务类,基于 ky 提供统一的请求处理\n */\nexport class FetchApiService<\n T extends ApiTypeMap<U>,\n U extends UrlObjectType,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n private static instance: FetchApiService<any, any, any>\n\n constructor(private client: any) {\n if (FetchApiService.instance) {\n return FetchApiService.instance as FetchApiService<T, U, E>\n }\n FetchApiService.instance = this\n }\n\n /**\n * 发起 API 请求,返回统一的响应格式 { res, error }\n * @template K - URL 配置对象类型\n * @param config - 请求配置\n * @param params - 请求参数(GET 用 params,POST 等用 data)\n * @returns Promise<{ res, error }> - 统一响应格式\n */\n public useApi = async <K extends U>(\n config: Omit<ExtendedOptions, 'method'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n data?: RequestPayload<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']> | RequestPayload<T[K['url']]['request']>,\n ): Promise<UseApiResponse<T[K['url']]['response'], E>> => {\n let res: T[K['url']]['response'] | null = null\n let error: E | null = null\n\n try {\n // 构建请求配置\n const { url, method, proxyPrefix, params: configParams, data: configData, ...restOptions } = config\n const fullUrl = (proxyPrefix || '') + url\n\n const options: ExtendedOptions = {\n ...restOptions,\n method: method.toLowerCase() as any,\n }\n\n // 处理请求参数(优先使用第二个参数 params)\n const finalParams = params || configParams\n const finalData = params || configData\n\n if (method.toUpperCase() === 'GET' && finalParams) {\n (options as any).searchParams = finalParams\n }\n else if (finalData) {\n (options as any).json = finalData\n }\n\n // 发起请求\n const response = await this.client(fullUrl, options)\n\n // 处理 SSE 流式响应\n const contentType = response.headers.get('content-type') ?? ''\n if (contentType.toLowerCase().includes('text/event-stream')) {\n res = response.body as any\n }\n else {\n res = await response.json()\n }\n }\n catch (err: any) {\n // 错误已在 ky hooks 中处理,这里只需捕获\n if (err instanceof ApiError) {\n error = {\n code: err.code,\n message: err.message,\n details: err.details,\n } as unknown as E\n }\n else {\n error = {\n code: 'UNKNOWN_ERROR',\n message: err.message || 'Unknown error',\n } as unknown as E\n }\n }\n\n return { res, error }\n }\n\n /**\n * 发起 API 请求,直接返回数据或抛出错误\n * @template K - URL 配置对象类型\n * @param config - 请求配置\n * @param params - 请求参数(GET 用 params,POST 等用 data)\n * @returns Promise<Response> - 直接返回响应数据\n */\n public apiClient = async <K extends U>(\n config: Omit<ExtendedOptions, 'method'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n data?: RequestPayload<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']> | RequestPayload<T[K['url']]['request']>,\n ): Promise<T[K['url']]['response']> => {\n const { url, method, proxyPrefix, params: configParams, data: configData, ...restOptions } = config\n const fullUrl = (proxyPrefix || '') + url\n\n const options: ExtendedOptions = {\n ...restOptions,\n method: method.toLowerCase() as any,\n throwOnError: true,\n }\n\n // 处理请求参数(优先使用第二个参数 params)\n const finalParams = params || configParams\n const finalData = params || configData\n\n if (method.toUpperCase() === 'GET' && finalParams) {\n (options as any).searchParams = finalParams\n }\n else if (finalData) {\n (options as any).json = finalData\n }\n\n // 发起请求\n const response = await this.client(fullUrl, options)\n\n // 处理 SSE 流式响应\n const contentType = response.headers.get('content-type') ?? ''\n if (contentType.toLowerCase().includes('text/event-stream')) {\n return response.body as any\n }\n\n return await response.json()\n }\n}\n"],"names":["ApiError","Error","constructor","code","message","status","details","super","__publicField","this","name","_FetchApiService","client","async","config","params","res","error","url","method","proxyPrefix","configParams","data","configData","restOptions","fullUrl","options","toLowerCase","finalParams","finalData","toUpperCase","searchParams","json","response","headers","get","includes","body","err","throwOnError","instance","FetchApiService"],"mappings":"0JA4BO,MAAMA,UAAiBC,MAK5BC,WAAAA,CAAYC,EAAcC,EAAiBC,EAAgBC,GACzDC,MAAMH,GALRI,EAAAC,KAAA,QACAD,EAAAC,KAAA,WACAD,EAAAC,KAAA,UAIEA,KAAKC,KAAO,WACZD,KAAKN,KAAOA,EACZM,KAAKJ,OAASA,EACdI,KAAKH,QAAUA,CACjB,EAUK,MAAMK,EAAN,MAAMA,EAOXT,WAAAA,CAAoBU,GAClB,GADkBH,KAAAG,OAAAA,EAcpBJ,EAAAC,KAAO,SAASI,MACdC,EAIAC,KAEA,IAAIC,EAAsC,KACtCC,EAAkB,KAEtB,IAEE,MAAMC,IAAEA,EAAAC,OAAKA,EAAAC,YAAQA,EAAaL,OAAQM,EAAcC,KAAMC,KAAeC,GAAgBV,EACvFW,GAAWL,GAAe,IAAMF,EAEhCQ,EAA2B,IAC5BF,EACHL,OAAQA,EAAOQ,eAIXC,EAAcb,GAAUM,EACxBQ,EAAYd,GAAUQ,EAEC,QAAzBJ,EAAOW,eAA2BF,EACnCF,EAAgBK,aAAeH,EAEzBC,IACNH,EAAgBM,KAAOH,GAI1B,MAAMI,QAAiBxB,KAAKG,OAAOa,EAASC,GAK1CV,GAFkBiB,EAASC,QAAQC,IAAI,iBAAmB,IAC5CR,cAAcS,SAAS,qBAC/BH,EAASI,WAGHJ,EAASD,MAEzB,OACOM,GAGHrB,EADEqB,aAAetC,EACT,CACNG,KAAMmC,EAAInC,KACVC,QAASkC,EAAIlC,QACbE,QAASgC,EAAIhC,SAIP,CACNH,KAAM,gBACNC,QAASkC,EAAIlC,SAAW,gBAG9B,CAEA,MAAO,CAAEY,MAAKC,WAUhBT,EAAAC,KAAO,YAAYI,MACjBC,EAIAC,KAEA,MAAMG,IAAEA,EAAAC,OAAKA,EAAAC,YAAQA,EAAaL,OAAQM,EAAcC,KAAMC,KAAeC,GAAgBV,EACvFW,GAAWL,GAAe,IAAMF,EAEhCQ,EAA2B,IAC5BF,EACHL,OAAQA,EAAOQ,cACfY,cAAc,GAIVX,EAAcb,GAAUM,EACxBQ,EAAYd,GAAUQ,EAEC,QAAzBJ,EAAOW,eAA2BF,EACnCF,EAAgBK,aAAeH,EAEzBC,IACNH,EAAgBM,KAAOH,GAI1B,MAAMI,QAAiBxB,KAAKG,OAAOa,EAASC,GAI5C,OADoBO,EAASC,QAAQC,IAAI,iBAAmB,IAC5CR,cAAcS,SAAS,qBAC9BH,EAASI,WAGLJ,EAASD,SAvHlBrB,EAAgB6B,SAClB,OAAO7B,EAAgB6B,SAEzB7B,EAAgB6B,SAAW/B,IAC7B,GAPAD,EALWG,EAKI,YALV,IAAM8B,EAAN9B"}
package/lib/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./src/argo-log.cjs"),r=require("./src/date-transfer.cjs"),s=require("./src/device.cjs"),o=require("./src/file-operations.cjs"),i=require("./src/json.cjs"),t=require("./src/oss-uploader.cjs"),p=require("./src/storage.cjs"),a=require("./src/types.cjs"),c=require("./src/use-api.cjs"),n=require("./src/watermark.cjs");exports.ArgoLog=e.ArgoLog,exports.formatDuration=r.formatDuration,exports.getDeviceType=s.getDeviceType,exports.isAndroid=s.isAndroid,exports.isIOS=s.isIOS,exports.isMobile=s.isMobile,exports.createVideoUploader=o.createVideoUploader,exports.downloadFile=o.downloadFile,exports.JsonToExcel=i.JsonToExcel,exports.excelToJson=i.excelToJson,exports.OssError=t.OssError,exports.OssUploader=t.OssUploader,exports.generateSignedUrl=t.generateSignedUrl,exports.getClient=t.getClient,exports.uploadFile=t.uploadFile,exports.Storage=p.Storage,exports.isBoolean=a.isBoolean,exports.isElement=a.isElement,exports.isImageByMimeType=a.isImageByMimeType,exports.isJSONString=a.isJSONString,exports.isNumber=a.isNumber,exports.isPlainObject=a.isPlainObject,exports.isUndefined=a.isUndefined,exports.isWindow=a.isWindow,exports.ApiService=c.ApiService,exports.watermark=n.watermark;
1
+ "use strict";var e=require("./src/api-client/axios-client.cjs"),r=require("./src/api-client/fetch-client.cjs"),s=require("./src/argo-log.cjs"),i=require("./src/date-transfer.cjs"),o=require("./src/device.cjs"),t=require("./src/file-operations.cjs"),p=require("./src/json.cjs"),c=require("./src/oss-uploader.cjs"),a=require("./src/storage.cjs"),n=require("./src/types.cjs"),l=require("./src/watermark.cjs");exports.ApiService=e.ApiService,exports.ApiError=r.ApiError,exports.FetchApiService=r.FetchApiService,exports.ArgoLog=s.ArgoLog,exports.formatDuration=i.formatDuration,exports.getDeviceType=o.getDeviceType,exports.isAndroid=o.isAndroid,exports.isIOS=o.isIOS,exports.isMobile=o.isMobile,exports.createVideoUploader=t.createVideoUploader,exports.downloadFile=t.downloadFile,exports.JsonToExcel=p.JsonToExcel,exports.excelToJson=p.excelToJson,exports.OssError=c.OssError,exports.OssUploader=c.OssUploader,exports.generateSignedUrl=c.generateSignedUrl,exports.getClient=c.getClient,exports.uploadFile=c.uploadFile,exports.Storage=a.Storage,exports.isBoolean=n.isBoolean,exports.isElement=n.isElement,exports.isImageByMimeType=n.isImageByMimeType,exports.isJSONString=n.isJSONString,exports.isNumber=n.isNumber,exports.isPlainObject=n.isPlainObject,exports.isUndefined=n.isUndefined,exports.isWindow=n.isWindow,exports.watermark=l.watermark;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("../types.cjs"),s=Object.defineProperty,t=(e,t,r)=>((e,t,r)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const r=class s{constructor(e,r){var i=this;if(this.apiInstance=e,this.isWholeResponse=r,t(this,"useApi",async function(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.isWholeResponse,r=null,o=null;try{const o={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};o.url=(o.proxyPrefix||"")+e.url,delete o.proxyPrefix;const n=await i.apiInstance(o);r=t?n.data:n.data.data}catch(e){"AxiosError"!==e.name?i.isAxiosResponse(e)?o=e.data:i.isErrorResponse(e)&&(o=e):console.error(e)}return{res:r,error:o}}),t(this,"apiClient",async(e,s,t)=>{t??this.isWholeResponse;const r={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};return r.proxyPrefix&&(r.url=(r.proxyPrefix||"")+e.url,delete r.proxyPrefix),await this.apiInstance(r)}),s.instance)return s.instance;s.instance=this,this.isWholeResponse=r}isBusinessError(s){return e.isPlainObject(s)&&"string"==typeof s.message&&"number"==typeof s.code&&0!==s.code}isAxiosResponse(s){return e.isPlainObject(s)&&void 0!==s.data&&this.isBusinessError(s.data)&&void 0!==s.status&&void 0!==s.statusText&&void 0!==s.headers&&void 0!==s.config&&void 0!==s.request}isErrorResponse(e){return"code"in e&&"data"in e&&"message"in e&&0!==e.code}};t(r,"instance");let i=r;exports.ApiService=i;
2
+ //# sourceMappingURL=axios-client.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios-client.cjs","sources":["../../../../../packages/utils/src/api-client/axios-client.ts"],"sourcesContent":["import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'\nimport type {\n ApiTypeMap,\n BaseErrorResponse,\n ErrorResponse,\n RequestParams,\n RequestPayload,\n UrlObjectType,\n} from './types'\nimport { isPlainObject } from '../types'\n\n// 重新导出共享类型\nexport type {\n ApiTypeMap,\n BaseErrorResponse,\n ErrorResponse,\n Method,\n RequestParams,\n RequestPayload,\n UrlObjectType,\n UseApiResponse,\n} from './types'\n\n/**\n * 成功响应的基础约束接口\n * @template T - 响应数据的类型\n */\nexport interface BaseSuccessResponse<T = unknown> {\n data: T\n [key: string]: any\n}\n\n/**\n * 成功响应的数据结构(默认实现)\n * @template T - 响应数据的类型\n */\nexport interface SuccessResponse<T> extends BaseSuccessResponse<T> {\n code: number\n count: number\n data: T\n message: string\n}\n\n/**\n * Axios 专用的 API 响应封装(支持完整响应选项)\n * @template W - 是否返回完整响应,true 返回完整响应,false 只返回 data\n * @template T - 响应数据的类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n */\nexport interface AxiosUseApiResponse<\n W extends boolean = false,\n T = unknown,\n S extends BaseSuccessResponse<T> = SuccessResponse<T>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n res: W extends true ? S : T\n error: E | null\n}\n\n/**\n * API 服务类,提供统一的请求处理和错误处理\n * @template T - API 类型映射\n * @template U - URL 配置对象类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n *\n * @example\n * ```typescript\n * // 定义 API 类型映射\n * interface UserApi extends ApiTypeMap<UserUrlObject> {\n * '/user/list': {\n * request: { page: number; size: number }\n * response: User[]\n * }\n * }\n *\n * // 使用默认响应类型\n * const api = new ApiService<UserApi, UserUrlObject>(axios.create(), false)\n *\n * // 使用自定义响应类型\n * interface CustomSuccessResponse<T> {\n * status: number\n * result: T\n * msg: string\n * }\n *\n * interface CustomErrorResponse {\n * status: number\n * result: null\n * msg: string\n * }\n *\n * const customApi = new ApiService<\n * UserApi,\n * UserUrlObject,\n * CustomSuccessResponse<unknown>,\n * CustomErrorResponse\n * >(axios.create(), false)\n *\n * // 发起请求\n * const { res, error } = await api.useApi({\n * url: '/user/list',\n * method: 'GET',\n * params: { page: 1, size: 10 }\n * })\n * ```\n */\nexport class ApiService<\n T extends ApiTypeMap<U>,\n U extends UrlObjectType,\n S extends BaseSuccessResponse = SuccessResponse<unknown>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n private static instance: ApiService<any, any, any, any>\n\n /**\n * 构造函数,实现单例模式\n * @param apiInstance - Axios 实例\n * @param isWholeResponse - 是否返回完整响应\n */\n constructor(\n private apiInstance: AxiosInstance,\n private isWholeResponse: boolean,\n ) {\n if (ApiService.instance) {\n return ApiService.instance as ApiService<T, U, S, E>\n }\n ApiService.instance = this\n this.isWholeResponse = isWholeResponse\n }\n\n /**\n * 判断是否为业务错误\n * @param obj - 待判断的对象\n */\n private isBusinessError(obj: E): boolean {\n return isPlainObject(obj)\n && typeof (obj as any).message === 'string'\n && typeof (obj as any).code === 'number'\n && (obj as any).code !== 0\n }\n\n /**\n * 判断是否为 Axios 响应对象\n * @param value - 待判断的值\n */\n private isAxiosResponse(value: any): value is AxiosResponse {\n return isPlainObject(value)\n && value.data !== undefined\n && this.isBusinessError(value.data)\n && value.status !== undefined\n && value.statusText !== undefined\n && value.headers !== undefined\n && value.config !== undefined\n && value.request !== undefined\n }\n\n /**\n * 判断是否为错误响应\n * @param value - 待判断的值\n */\n private isErrorResponse(value: any): value is E {\n return 'code' in value && 'data' in value && 'message' in value && value.code !== 0\n }\n\n /**\n * 发起 API 请求,返回统一的响应格式 { res, error }\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应,true 返回 SuccessResponse,false 只返回 data\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数(GET 请求会自动转为 params,其他方法转为 data)\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns Promise<UseApiResponse<W, T, S, E>> - 包含 res 和 error 的统一响应对象\n */\n public useApi = async <\n K extends U,\n W extends boolean = false,\n >(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse: W = this.isWholeResponse as W,\n ): Promise<AxiosUseApiResponse<W, T[K['url']]['response'], S, E>> => {\n let res: AxiosUseApiResponse<W, T[K['url']]['response'], S, E>['res'] | null = null\n let error: AxiosUseApiResponse<W, T[K['url']]['response'], S, E>['error'] = null\n\n try {\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n\n // 发起请求\n const response = await this.apiInstance<S & { data: T[K['url']]['response'] }>(config)\n res = isWholeResponse\n ? (response.data as any)\n : response.data.data\n }\n catch (err: any) {\n // 错误处理\n if (err.name !== 'AxiosError') {\n if (this.isAxiosResponse(err)) {\n error = err.data as E\n }\n else if (this.isErrorResponse(err)) {\n error = err\n }\n }\n else {\n console.error(err)\n }\n }\n\n return { res: res!, error }\n }\n\n /**\n * 发起 API 请求\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns 根据 isWholeResponse 返回完整响应或解包后的数据\n */\n public apiClient = async <K extends U, W extends boolean = false>(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse?: W,\n ): Promise<W extends true ? AxiosResponse<T[K['url']]['response']> : T[K['url']]['response']> => {\n const useWholeResponse = isWholeResponse ?? this.isWholeResponse\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n if (config.proxyPrefix) {\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n }\n\n // 发起请求,利用 axios 的第二个泛型参数 R 控制解包\n if (useWholeResponse) {\n return await this.apiInstance<T[K['url']]['response']>(config)\n }\n else {\n return await this.apiInstance<any, T[K['url']]['response']>(config)\n }\n }\n}\n"],"names":["_ApiService","constructor","apiInstance","isWholeResponse","_this","this","__publicField","async","axiosConfig","params","arguments","length","undefined","res","error","config","method","includes","toUpperCase","data","url","proxyPrefix","response","err","name","isAxiosResponse","isErrorResponse","console","instance","isBusinessError","obj","isPlainObject","message","code","value","status","statusText","headers","request","ApiService"],"mappings":"iMA4GO,MAAMA,EAAN,MAAMA,EAaXC,WAAAA,CACUC,EACAC,GACR,IAAAC,EAAAC,KACA,GAHQA,KAAAH,YAAAA,EACAG,KAAAF,gBAAAA,EAoDVG,EAAAD,KAAO,SAASE,eAIdC,EAGAC,GAEmE,IADnEN,EAAAO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAqBN,EAAKD,gBAEtBU,EAA2E,KAC3EC,EAAwE,KAE5E,IAEE,MAAMC,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAI5HM,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,YAGd,MAAMC,QAAiBlB,EAAKF,YAAmDa,GAC/EF,EAAMV,EACDmB,EAASH,KACVG,EAASH,KAAKA,IACpB,OACOI,GAEY,eAAbA,EAAIC,KACFpB,EAAKqB,gBAAgBF,GACvBT,EAAQS,EAAIJ,KAELf,EAAKsB,gBAAgBH,KAC5BT,EAAQS,GAIVI,QAAQb,MAAMS,EAElB,CAEA,MAAO,CAAEV,MAAWC,QACtB,GAWAR,EAAAD,KAAO,YAAYE,MACjBC,EAGAC,EACAN,KAEyBA,GAAmBE,KAAKF,gBAAjD,MAEMY,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAU5H,OANIM,EAAOM,cACTN,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,mBAKDhB,KAAKH,YAAqCa,KAjIrDf,EAAW4B,SACb,OAAO5B,EAAW4B,SAEpB5B,EAAW4B,SAAWvB,KACtBA,KAAKF,gBAAkBA,CACzB,CAMQ0B,eAAAA,CAAgBC,GACtB,OAAOC,EAAAA,cAAcD,IACgB,iBAAxBA,EAAYE,SACS,iBAArBF,EAAYG,MACE,IAArBH,EAAYG,IACpB,CAMQR,eAAAA,CAAgBS,GACtB,OAAOH,gBAAcG,SACD,IAAfA,EAAMf,MACNd,KAAKwB,gBAAgBK,EAAMf,YACV,IAAjBe,EAAMC,aACe,IAArBD,EAAME,iBACY,IAAlBF,EAAMG,cACW,IAAjBH,EAAMnB,aACY,IAAlBmB,EAAMI,OACb,CAMQZ,eAAAA,CAAgBQ,GACtB,MAAO,SAAUA,GAAS,SAAUA,GAAS,YAAaA,GAAwB,IAAfA,EAAMD,IAC3E,GAlDA3B,EANWN,EAMI,YANV,IAAMuC,EAANvC"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=Object.defineProperty,t=(t,s,r)=>((t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r)(t,"symbol"!=typeof s?s+"":s,r);class s extends Error{constructor(e,s,r,a){super(s),t(this,"code"),t(this,"details"),t(this,"status"),this.name="ApiError",this.code=e,this.status=r,this.details=a}}const r=class e{constructor(r){if(this.client=r,t(this,"useApi",async(e,t)=>{let r=null,a=null;try{const{url:s,method:a,proxyPrefix:o,params:n,data:i,...c}=e,l=(o||"")+s,h={...c,method:a.toLowerCase()},d=t||n,p=t||i;"GET"===a.toUpperCase()&&d?h.searchParams=d:p&&(h.json=p);const u=await this.client(l,h);r=(u.headers.get("content-type")??"").toLowerCase().includes("text/event-stream")?u.body:await u.json()}catch(e){a=e instanceof s?{code:e.code,message:e.message,details:e.details}:{code:"UNKNOWN_ERROR",message:e.message||"Unknown error"}}return{res:r,error:a}}),t(this,"apiClient",async(e,t)=>{const{url:s,method:r,proxyPrefix:a,params:o,data:n,...i}=e,c=(a||"")+s,l={...i,method:r.toLowerCase(),throwOnError:!0},h=t||o,d=t||n;"GET"===r.toUpperCase()&&h?l.searchParams=h:d&&(l.json=d);const p=await this.client(c,l);return(p.headers.get("content-type")??"").toLowerCase().includes("text/event-stream")?p.body:await p.json()}),e.instance)return e.instance;e.instance=this}};t(r,"instance");let a=r;exports.ApiError=s,exports.FetchApiService=a;
2
+ //# sourceMappingURL=fetch-client.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-client.cjs","sources":["../../../../../packages/utils/src/api-client/fetch-client.ts"],"sourcesContent":["import type { Options } from 'ky'\nimport type {\n ApiTypeMap,\n BaseErrorResponse,\n ErrorResponse,\n RequestParams,\n RequestPayload,\n UrlObjectType,\n UseApiResponse,\n} from './types'\n\n/**\n * 扩展的 API 请求配置选项\n */\ninterface ExtendedOptions extends Options {\n /** 内部标记:是否为重试请求 @internal */\n _isRetry?: boolean\n /** 静默模式:401 错误不弹出登录弹窗 @default false */\n _silent?: boolean\n /** 操作上下文:用于登录弹窗说明 */\n _actionContext?: string\n /** 错误处理策略:是否抛出错误 @default false */\n throwOnError?: boolean\n}\n\n/**\n * 自定义 API 错误类\n */\nexport class ApiError extends Error {\n code: string\n details?: string\n status: number\n\n constructor(code: string, message: string, status: number, details?: string) {\n super(message)\n this.name = 'ApiError'\n this.code = code\n this.status = status\n this.details = details\n }\n}\n\n// ============================================================================\n// Fetch API 服务类\n// ============================================================================\n\n/**\n * Fetch API 服务类,基于 ky 提供统一的请求处理\n */\nexport class FetchApiService<\n T extends ApiTypeMap<U>,\n U extends UrlObjectType,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n private static instance: FetchApiService<any, any, any>\n\n constructor(private client: any) {\n if (FetchApiService.instance) {\n return FetchApiService.instance as FetchApiService<T, U, E>\n }\n FetchApiService.instance = this\n }\n\n /**\n * 发起 API 请求,返回统一的响应格式 { res, error }\n * @template K - URL 配置对象类型\n * @param config - 请求配置\n * @param params - 请求参数(GET 用 params,POST 等用 data)\n * @returns Promise<{ res, error }> - 统一响应格式\n */\n public useApi = async <K extends U>(\n config: Omit<ExtendedOptions, 'method'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n data?: RequestPayload<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']> | RequestPayload<T[K['url']]['request']>,\n ): Promise<UseApiResponse<T[K['url']]['response'], E>> => {\n let res: T[K['url']]['response'] | null = null\n let error: E | null = null\n\n try {\n // 构建请求配置\n const { url, method, proxyPrefix, params: configParams, data: configData, ...restOptions } = config\n const fullUrl = (proxyPrefix || '') + url\n\n const options: ExtendedOptions = {\n ...restOptions,\n method: method.toLowerCase() as any,\n }\n\n // 处理请求参数(优先使用第二个参数 params)\n const finalParams = params || configParams\n const finalData = params || configData\n\n if (method.toUpperCase() === 'GET' && finalParams) {\n (options as any).searchParams = finalParams\n }\n else if (finalData) {\n (options as any).json = finalData\n }\n\n // 发起请求\n const response = await this.client(fullUrl, options)\n\n // 处理 SSE 流式响应\n const contentType = response.headers.get('content-type') ?? ''\n if (contentType.toLowerCase().includes('text/event-stream')) {\n res = response.body as any\n }\n else {\n res = await response.json()\n }\n }\n catch (err: any) {\n // 错误已在 ky hooks 中处理,这里只需捕获\n if (err instanceof ApiError) {\n error = {\n code: err.code,\n message: err.message,\n details: err.details,\n } as unknown as E\n }\n else {\n error = {\n code: 'UNKNOWN_ERROR',\n message: err.message || 'Unknown error',\n } as unknown as E\n }\n }\n\n return { res, error }\n }\n\n /**\n * 发起 API 请求,直接返回数据或抛出错误\n * @template K - URL 配置对象类型\n * @param config - 请求配置\n * @param params - 请求参数(GET 用 params,POST 等用 data)\n * @returns Promise<Response> - 直接返回响应数据\n */\n public apiClient = async <K extends U>(\n config: Omit<ExtendedOptions, 'method'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n data?: RequestPayload<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']> | RequestPayload<T[K['url']]['request']>,\n ): Promise<T[K['url']]['response']> => {\n const { url, method, proxyPrefix, params: configParams, data: configData, ...restOptions } = config\n const fullUrl = (proxyPrefix || '') + url\n\n const options: ExtendedOptions = {\n ...restOptions,\n method: method.toLowerCase() as any,\n throwOnError: true,\n }\n\n // 处理请求参数(优先使用第二个参数 params)\n const finalParams = params || configParams\n const finalData = params || configData\n\n if (method.toUpperCase() === 'GET' && finalParams) {\n (options as any).searchParams = finalParams\n }\n else if (finalData) {\n (options as any).json = finalData\n }\n\n // 发起请求\n const response = await this.client(fullUrl, options)\n\n // 处理 SSE 流式响应\n const contentType = response.headers.get('content-type') ?? ''\n if (contentType.toLowerCase().includes('text/event-stream')) {\n return response.body as any\n }\n\n return await response.json()\n }\n}\n"],"names":["ApiError","Error","constructor","code","message","status","details","super","__publicField","this","name","_FetchApiService","client","async","config","params","res","error","url","method","proxyPrefix","configParams","data","configData","restOptions","fullUrl","options","toLowerCase","finalParams","finalData","toUpperCase","searchParams","json","response","headers","get","includes","body","err","throwOnError","instance","FetchApiService"],"mappings":"uKA4BO,MAAMA,UAAiBC,MAK5BC,WAAAA,CAAYC,EAAcC,EAAiBC,EAAgBC,GACzDC,MAAMH,GALRI,EAAAC,KAAA,QACAD,EAAAC,KAAA,WACAD,EAAAC,KAAA,UAIEA,KAAKC,KAAO,WACZD,KAAKN,KAAOA,EACZM,KAAKJ,OAASA,EACdI,KAAKH,QAAUA,CACjB,EAUK,MAAMK,EAAN,MAAMA,EAOXT,WAAAA,CAAoBU,GAClB,GADkBH,KAAAG,OAAAA,EAcpBJ,EAAAC,KAAO,SAASI,MACdC,EAIAC,KAEA,IAAIC,EAAsC,KACtCC,EAAkB,KAEtB,IAEE,MAAMC,IAAEA,EAAAC,OAAKA,EAAAC,YAAQA,EAAaL,OAAQM,EAAcC,KAAMC,KAAeC,GAAgBV,EACvFW,GAAWL,GAAe,IAAMF,EAEhCQ,EAA2B,IAC5BF,EACHL,OAAQA,EAAOQ,eAIXC,EAAcb,GAAUM,EACxBQ,EAAYd,GAAUQ,EAEC,QAAzBJ,EAAOW,eAA2BF,EACnCF,EAAgBK,aAAeH,EAEzBC,IACNH,EAAgBM,KAAOH,GAI1B,MAAMI,QAAiBxB,KAAKG,OAAOa,EAASC,GAK1CV,GAFkBiB,EAASC,QAAQC,IAAI,iBAAmB,IAC5CR,cAAcS,SAAS,qBAC/BH,EAASI,WAGHJ,EAASD,MAEzB,OACOM,GAGHrB,EADEqB,aAAetC,EACT,CACNG,KAAMmC,EAAInC,KACVC,QAASkC,EAAIlC,QACbE,QAASgC,EAAIhC,SAIP,CACNH,KAAM,gBACNC,QAASkC,EAAIlC,SAAW,gBAG9B,CAEA,MAAO,CAAEY,MAAKC,WAUhBT,EAAAC,KAAO,YAAYI,MACjBC,EAIAC,KAEA,MAAMG,IAAEA,EAAAC,OAAKA,EAAAC,YAAQA,EAAaL,OAAQM,EAAcC,KAAMC,KAAeC,GAAgBV,EACvFW,GAAWL,GAAe,IAAMF,EAEhCQ,EAA2B,IAC5BF,EACHL,OAAQA,EAAOQ,cACfY,cAAc,GAIVX,EAAcb,GAAUM,EACxBQ,EAAYd,GAAUQ,EAEC,QAAzBJ,EAAOW,eAA2BF,EACnCF,EAAgBK,aAAeH,EAEzBC,IACNH,EAAgBM,KAAOH,GAI1B,MAAMI,QAAiBxB,KAAKG,OAAOa,EAASC,GAI5C,OADoBO,EAASC,QAAQC,IAAI,iBAAmB,IAC5CR,cAAcS,SAAS,qBAC9BH,EAASI,WAGLJ,EAASD,SAvHlBrB,EAAgB6B,SAClB,OAAO7B,EAAgB6B,SAEzB7B,EAAgB6B,SAAW/B,IAC7B,GAPAD,EALWG,EAKI,YALV,IAAM8B,EAAN9B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qxs-bns/utils",
3
3
  "type": "module",
4
- "version": "0.0.35",
4
+ "version": "0.0.36",
5
5
  "private": false,
6
6
  "license": "MIT",
7
7
  "homepage": "https://qxs-bns.pages.dev/guide/utils/",
@@ -15,11 +15,15 @@
15
15
  "sideEffects": false,
16
16
  "main": "./lib/index.cjs",
17
17
  "peerDependencies": {
18
- "axios": "^1.7.9"
18
+ "axios": "^1.7.9",
19
+ "ky": "^1.14.1"
19
20
  },
20
21
  "peerDependenciesMeta": {
21
22
  "axios": {
22
23
  "optional": true
24
+ },
25
+ "ky": {
26
+ "optional": true
23
27
  }
24
28
  },
25
29
  "dependencies": {
package/types/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './src/api-client';
1
2
  export * from './src/argo-log';
2
3
  export * from './src/date-transfer';
3
4
  export * from './src/device';
@@ -6,6 +7,5 @@ export * from './src/json';
6
7
  export * from './src/oss-uploader';
7
8
  export * from './src/storage';
8
9
  export * from './src/types';
9
- export * from './src/use-api';
10
10
  export * from './src/watermark';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA"}
@@ -1,4 +1,6 @@
1
- import type { AxiosInstance, AxiosRequestConfig, AxiosResponse, Method } from 'axios';
1
+ import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
+ import type { ApiTypeMap, BaseErrorResponse, ErrorResponse, RequestParams, RequestPayload, UrlObjectType } from './types';
3
+ export type { ApiTypeMap, BaseErrorResponse, ErrorResponse, Method, RequestParams, RequestPayload, UrlObjectType, UseApiResponse, } from './types';
2
4
  /**
3
5
  * 成功响应的基础约束接口
4
6
  * @template T - 响应数据的类型
@@ -7,12 +9,6 @@ export interface BaseSuccessResponse<T = unknown> {
7
9
  data: T;
8
10
  [key: string]: any;
9
11
  }
10
- /**
11
- * 错误响应的基础约束接口
12
- */
13
- export interface BaseErrorResponse {
14
- [key: string]: any;
15
- }
16
12
  /**
17
13
  * 成功响应的数据结构(默认实现)
18
14
  * @template T - 响应数据的类型
@@ -24,48 +20,16 @@ export interface SuccessResponse<T> extends BaseSuccessResponse<T> {
24
20
  message: string;
25
21
  }
26
22
  /**
27
- * 错误响应的数据结构(默认实现)
28
- */
29
- export interface ErrorResponse extends BaseErrorResponse {
30
- code: number;
31
- data: null;
32
- message: string;
33
- }
34
- /**
35
- * API 响应的统一封装
23
+ * Axios 专用的 API 响应封装(支持完整响应选项)
36
24
  * @template W - 是否返回完整响应,true 返回完整响应,false 只返回 data
37
25
  * @template T - 响应数据的类型
38
26
  * @template S - 自定义成功响应类型
39
27
  * @template E - 自定义错误响应类型
40
28
  */
41
- export interface UseApiResponse<W extends boolean = false, T = unknown, S extends BaseSuccessResponse<T> = SuccessResponse<T>, E extends BaseErrorResponse = ErrorResponse> {
29
+ export interface AxiosUseApiResponse<W extends boolean = false, T = unknown, S extends BaseSuccessResponse<T> = SuccessResponse<T>, E extends BaseErrorResponse = ErrorResponse> {
42
30
  res: W extends true ? S : T;
43
31
  error: E | null;
44
32
  }
45
- /**
46
- * API URL 配置对象类型
47
- */
48
- export interface UrlObjectType {
49
- url: string;
50
- method: Method;
51
- proxyPrefix?: string;
52
- }
53
- /**
54
- * API 类型映射,用于定义每个接口的请求和响应类型
55
- * @template U - URL 配置对象类型
56
- */
57
- export type ApiTypeMap<U extends UrlObjectType> = {
58
- [K in U['url']]: {
59
- request: any;
60
- response: any;
61
- };
62
- };
63
- type RequestPayload<T> = T extends {
64
- data: any;
65
- } ? T['data'] : T;
66
- type RequestParams<T> = T extends {
67
- params: any;
68
- } ? T['params'] : T;
69
33
  /**
70
34
  * API 服务类,提供统一的请求处理和错误处理
71
35
  * @template T - API 类型映射
@@ -150,7 +114,7 @@ export declare class ApiService<T extends ApiTypeMap<U>, U extends UrlObjectType
150
114
  */
151
115
  useApi: <K extends U, W extends boolean = false>(axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K["url"]]["request"]>>, "params"> & K & {
152
116
  params?: RequestParams<T[K["url"]]["request"]>;
153
- }, params?: RequestParams<T[K["url"]]["request"]>, isWholeResponse?: W) => Promise<UseApiResponse<W, T[K["url"]]["response"], S, E>>;
117
+ }, params?: RequestParams<T[K["url"]]["request"]>, isWholeResponse?: W) => Promise<AxiosUseApiResponse<W, T[K["url"]]["response"], S, E>>;
154
118
  /**
155
119
  * 发起 API 请求
156
120
  * @template K - URL 配置对象类型
@@ -164,5 +128,4 @@ export declare class ApiService<T extends ApiTypeMap<U>, U extends UrlObjectType
164
128
  params?: RequestParams<T[K["url"]]["request"]>;
165
129
  }, params?: RequestParams<T[K["url"]]["request"]>, isWholeResponse?: W) => Promise<W extends true ? AxiosResponse<T[K["url"]]["response"]> : T[K["url"]]["response"]>;
166
130
  }
167
- export {};
168
- //# sourceMappingURL=use-api.d.ts.map
131
+ //# sourceMappingURL=axios-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios-client.d.ts","sourceRoot":"","sources":["../../../../../packages/utils/src/api-client/axios-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { Options } from 'ky';
2
+ import type { ApiTypeMap, BaseErrorResponse, ErrorResponse, RequestParams, RequestPayload, UrlObjectType, UseApiResponse } from './types';
3
+ /**
4
+ * 扩展的 API 请求配置选项
5
+ */
6
+ interface ExtendedOptions extends Options {
7
+ /** 内部标记:是否为重试请求 @internal */
8
+ _isRetry?: boolean;
9
+ /** 静默模式:401 错误不弹出登录弹窗 @default false */
10
+ _silent?: boolean;
11
+ /** 操作上下文:用于登录弹窗说明 */
12
+ _actionContext?: string;
13
+ /** 错误处理策略:是否抛出错误 @default false */
14
+ throwOnError?: boolean;
15
+ }
16
+ /**
17
+ * 自定义 API 错误类
18
+ */
19
+ export declare class ApiError extends Error {
20
+ code: string;
21
+ details?: string;
22
+ status: number;
23
+ constructor(code: string, message: string, status: number, details?: string);
24
+ }
25
+ /**
26
+ * Fetch API 服务类,基于 ky 提供统一的请求处理
27
+ */
28
+ export declare class FetchApiService<T extends ApiTypeMap<U>, U extends UrlObjectType, E extends BaseErrorResponse = ErrorResponse> {
29
+ private client;
30
+ private static instance;
31
+ constructor(client: any);
32
+ /**
33
+ * 发起 API 请求,返回统一的响应格式 { res, error }
34
+ * @template K - URL 配置对象类型
35
+ * @param config - 请求配置
36
+ * @param params - 请求参数(GET 用 params,POST 等用 data)
37
+ * @returns Promise<{ res, error }> - 统一响应格式
38
+ */
39
+ useApi: <K extends U>(config: Omit<ExtendedOptions, "method"> & K & {
40
+ params?: RequestParams<T[K["url"]]["request"]>;
41
+ data?: RequestPayload<T[K["url"]]["request"]>;
42
+ }, params?: RequestParams<T[K["url"]]["request"]> | RequestPayload<T[K["url"]]["request"]>) => Promise<UseApiResponse<T[K["url"]]["response"], E>>;
43
+ /**
44
+ * 发起 API 请求,直接返回数据或抛出错误
45
+ * @template K - URL 配置对象类型
46
+ * @param config - 请求配置
47
+ * @param params - 请求参数(GET 用 params,POST 等用 data)
48
+ * @returns Promise<Response> - 直接返回响应数据
49
+ */
50
+ apiClient: <K extends U>(config: Omit<ExtendedOptions, "method"> & K & {
51
+ params?: RequestParams<T[K["url"]]["request"]>;
52
+ data?: RequestPayload<T[K["url"]]["request"]>;
53
+ }, params?: RequestParams<T[K["url"]]["request"]> | RequestPayload<T[K["url"]]["request"]>) => Promise<T[K["url"]]["response"]>;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=fetch-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-client.d.ts","sourceRoot":"","sources":["../../../../../packages/utils/src/api-client/fetch-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB;;GAEG;AACH,UAAU,eAAgB,SAAQ,OAAO;IACvC,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qBAAqB;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mCAAmC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;gBAEF,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAO5E;AAMD;;GAEG;AACH,qBAAa,eAAe,CAC1B,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EACvB,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,iBAAiB,GAAG,aAAa;IAI/B,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;gBAEnC,MAAM,EAAE,GAAG;IAO/B;;;;;;OAMG;IACI,MAAM,GAAU,CAAC,SAAS,CAAC,EAChC,QAAQ,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG;QAC5C,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;KAC9C,EACD,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KACtF,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAuDrD;IAED;;;;;;OAMG;IACI,SAAS,GAAU,CAAC,SAAS,CAAC,EACnC,QAAQ,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG;QAC5C,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;KAC9C,EACD,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KACtF,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CA+BlC;CACF"}
@@ -0,0 +1,4 @@
1
+ export { ApiService, type AxiosUseApiResponse, type BaseSuccessResponse, type SuccessResponse } from './axios-client';
2
+ export { ApiError, FetchApiService } from './fetch-client';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/utils/src/api-client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC1D,cAAc,SAAS,CAAA"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * HTTP 请求方法类型
3
+ */
4
+ export type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
5
+ /**
6
+ * API URL 配置对象类型
7
+ */
8
+ export interface UrlObjectType {
9
+ url: string;
10
+ method: Method;
11
+ proxyPrefix?: string;
12
+ }
13
+ /**
14
+ * API 类型映射,用于定义每个接口的请求和响应类型
15
+ * @template U - URL 配置对象类型
16
+ */
17
+ export type ApiTypeMap<U extends UrlObjectType = UrlObjectType> = {
18
+ [K in U['url']]: {
19
+ request: any;
20
+ response: any;
21
+ };
22
+ };
23
+ /**
24
+ * 错误响应的基础约束接口
25
+ */
26
+ export interface BaseErrorResponse {
27
+ [key: string]: any;
28
+ }
29
+ /**
30
+ * 错误响应的数据结构
31
+ */
32
+ export interface ErrorResponse extends BaseErrorResponse {
33
+ code: string | number;
34
+ message: string;
35
+ details?: string;
36
+ }
37
+ /**
38
+ * API 响应的统一封装
39
+ */
40
+ export interface UseApiResponse<T = unknown, E extends BaseErrorResponse = ErrorResponse> {
41
+ res: T | null;
42
+ error: E | null;
43
+ }
44
+ /**
45
+ * 辅助类型:提取请求体数据类型
46
+ */
47
+ export type RequestPayload<T> = T extends {
48
+ data: infer D;
49
+ } ? D : never;
50
+ /**
51
+ * 辅助类型:提取查询参数类型
52
+ */
53
+ export type RequestParams<T> = T extends {
54
+ params: infer P;
55
+ } ? P : never;
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/utils/src/api-client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AAErF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI;KAC/D,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG;QACf,OAAO,EAAE,GAAG,CAAA;QACZ,QAAQ,EAAE,GAAG,CAAA;KACd;CACF,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,iBAAiB,GAAG,aAAa;IACtF,GAAG,EAAE,CAAC,GAAG,IAAI,CAAA;IACb,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAEvE;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA"}
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/@vue+shared@3.5.18/node_modules/@vue/shared/dist/shared.d.ts","../../../node_modules/.pnpm/@vue+reactivity@3.5.18/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../../node_modules/.pnpm/@vue+runtime-core@3.5.18/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../../node_modules/.pnpm/@vue+runtime-dom@3.5.18/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../../node_modules/.pnpm/vue@3.5.18_typescript@5.9.2/node_modules/vue/jsx-runtime/index.d.ts","../../../packages/utils/src/argo-log.ts","../../../packages/utils/src/date-transfer.ts","../../../packages/utils/src/device.ts","../../../packages/utils/src/file-operations.ts","../../../node_modules/.pnpm/xlsx@0.18.5/node_modules/xlsx/types/index.d.ts","../../../packages/utils/src/json.ts","../../../node_modules/.pnpm/@types+ali-oss@6.16.13/node_modules/@types/ali-oss/index.d.ts","../../../packages/utils/src/oss-uploader.ts","../../../packages/utils/src/storage.ts","../../../packages/utils/src/types.ts","../../../node_modules/.pnpm/axios@1.11.0/node_modules/axios/index.d.ts","../../../packages/utils/src/use-api.ts","../../../packages/utils/src/watermark.ts","../../../packages/utils/index.ts","../../../packages/utils/shims.d.ts"],"fileIdsList":[[82],[82,83,84,86],[83,84,85,86],[86],[87,88,89,90,91,93,95,96,97,99,100],[87,102],[87],[87,92],[87,94],[87,97,98]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"25e0492430a92b27414c02e43d9a67a96d915cc9982caa3f36096933e1492f1e","impliedFormat":1},{"version":"616a55b9694bdb765470c1f66dc9606779b250520a36b87f4de2e4c594cea9bc","impliedFormat":1},{"version":"7e7187b0314b6ee31f37db0f82da408112ef548713ccbe28796ef551d47a6e0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"591c55c575d645b7f600dd2be6d9cf8d28c4b4a5297d9dfcd41b861fddce04ab","impliedFormat":1},{"version":"269536033c45b92c13747175bf6d197b959559acb119247b3eb9a0eee250c8c5","impliedFormat":1},{"version":"7bdf93e623085b522f7e1bb4fe4ee9c4df2400b53398eb9a803b9f10f911725b","signature":"4085058b6de61f42972027fce952ec6d0f966070d17d023a3f5c3ebd0c869407","affectsGlobalScope":true},{"version":"72af2f99ff91a9a6767e9374d5bcfdfa734f056e0ca4f99acfbdc0b6910cbe6a","signature":"642691020b5d2610d98d8dfa25df7e7c58a2e885d24bdec278f98842b02892f6"},{"version":"de9652b1bdad8aa2fa302b263a6a72265b276fec040394aa3b6c1adcff419ebc","signature":"6364be1269de7f1efc40324fb2cadc9a17d9bd2742d5bc1b95e309d848ca50f6"},{"version":"8f2a5590837d3f29a8d141931432d8b61e019382d1bdcb5d9990f2525242942b","signature":"4f8d8bcaa7127e5ed2d649cd5fc16b4e46b6d6960d82982ede8429d8066f9b96","affectsGlobalScope":true},{"version":"593654eebe902db28ca173f021f74ea9f77e8b344aebb0a80fa4d10f29bb3a9d","impliedFormat":1},{"version":"19f50a093aa873de6321cd996913aa89e0ec5308a8ae49bf05f071cd9614d0c6","signature":"10ee1d72a1aeb7992ec2517f444db7d425261969e0476b94a1bef6e47fd5c4b6"},{"version":"3cee95a3d958bf994db4705fbe6b7ae503867445972247adc49626f7fd16d46a","impliedFormat":1},{"version":"cab10f9be9bc19e3175a7fecd1a3ee3a810c139e8edbb9bd313928cf71d44cb8","signature":"6a2fbda7ededa991e6090e3e1523246344249347d05fbe97b441b3bcf6a5506a"},{"version":"7484cd645652e5de0e944021ff47e2794cd64e91ccba9e2ddfe2e5c4c7e62b89","signature":"b5ff6435fa9c6d61900a8764225558104fce909c6005109cb4ec42a6772052bd"},{"version":"7ad9aed3f5dc3de5049e8ba6912319dace213430b8babffad59e9b3cb8835760","signature":"a7b65e5fbd85d753c99c13a242176ec0f4f024108de502acbd52f82108f9386d"},{"version":"1d7ee0c4eb734d59b6d962bc9151f6330895067cd3058ce6a3cd95347ef5c6e8","impliedFormat":99},{"version":"cf924e26ca902228f18f189c71491704561d78f503e1bfd5e5c7f7cfd4fbbd00","signature":"b5ca2f4d4a420c9c8180e87dc6fb2359d785cf2f3dab4cc4a0dd0c9f541e6e2b"},{"version":"df1bca5fc6bc70b5a4d100bc5e359d8905927cb3534101a90ad6e54334bc4d7a","signature":"57b68e7019ec085b6644c3ce5572dfcf262183369e4e617b1fba51099a851100"},{"version":"61ee1ed58c57d98a9772f321aaffce39201a34288c10bd9d1b9c481dfdeb782a","signature":"79d44304d158c208bad4d8f97802a0742218d6328059981b009bd02b27314a54"},{"version":"a911a3d8df881033bf7dddc7c2e68233d6121c2114826324eae73232d0d30b97","affectsGlobalScope":true}],"root":[[88,91],93,[95,97],[99,102]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"composite":true,"declaration":true,"declarationDir":"./","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noFallthroughCasesInSwitch":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../../../packages/utils","skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[83,1],[84,2],[86,3],[87,4],[101,5],[88,6],[89,7],[90,7],[91,7],[93,8],[95,9],[96,7],[97,7],[99,10],[100,7]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.2"}
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/@vue+shared@3.5.18/node_modules/@vue/shared/dist/shared.d.ts","../../../node_modules/.pnpm/@vue+reactivity@3.5.18/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../../node_modules/.pnpm/@vue+runtime-core@3.5.18/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../../node_modules/.pnpm/@vue+runtime-dom@3.5.18/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../../node_modules/.pnpm/vue@3.5.18_typescript@5.9.2/node_modules/vue/jsx-runtime/index.d.ts","../../../packages/utils/src/argo-log.ts","../../../packages/utils/src/date-transfer.ts","../../../packages/utils/src/device.ts","../../../packages/utils/src/file-operations.ts","../../../node_modules/.pnpm/xlsx@0.18.5/node_modules/xlsx/types/index.d.ts","../../../packages/utils/src/json.ts","../../../node_modules/.pnpm/@types+ali-oss@6.16.13/node_modules/@types/ali-oss/index.d.ts","../../../packages/utils/src/oss-uploader.ts","../../../packages/utils/src/storage.ts","../../../packages/utils/src/types.ts","../../../packages/utils/src/watermark.ts","../../../node_modules/.pnpm/axios@1.11.0/node_modules/axios/index.d.ts","../../../packages/utils/src/api-client/types.ts","../../../packages/utils/src/api-client/axios-client.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/common.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/hooks.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/retry.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/options.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/core/constants.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/response.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/responsepromise.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/ky.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/types/request.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/errors/httperror.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/errors/timeouterror.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/errors/forceretryerror.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/utils/type-guards.d.ts","../../../node_modules/.pnpm/ky@1.14.1/node_modules/ky/distribution/index.d.ts","../../../packages/utils/src/api-client/fetch-client.ts","../../../packages/utils/src/api-client/index.ts","../../../packages/utils/index.ts","../../../packages/utils/shims.d.ts"],"fileIdsList":[[82],[82,83,84,86],[83,84,85,86],[105],[106],[105,107,110],[110],[103,105,107,108,109,110,111,112,113,114],[105,106,115],[105,106,108],[102,103,104],[107],[111,112,113],[86],[87,88,89,90,91,93,95,96,97,98,117],[87,97,99,100],[87,100,115],[87,100,101,116],[87],[87,119],[87,92],[87,94]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"25e0492430a92b27414c02e43d9a67a96d915cc9982caa3f36096933e1492f1e","impliedFormat":1},{"version":"616a55b9694bdb765470c1f66dc9606779b250520a36b87f4de2e4c594cea9bc","impliedFormat":1},{"version":"7e7187b0314b6ee31f37db0f82da408112ef548713ccbe28796ef551d47a6e0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"591c55c575d645b7f600dd2be6d9cf8d28c4b4a5297d9dfcd41b861fddce04ab","impliedFormat":1},{"version":"269536033c45b92c13747175bf6d197b959559acb119247b3eb9a0eee250c8c5","impliedFormat":1},{"version":"7bdf93e623085b522f7e1bb4fe4ee9c4df2400b53398eb9a803b9f10f911725b","signature":"4085058b6de61f42972027fce952ec6d0f966070d17d023a3f5c3ebd0c869407","affectsGlobalScope":true},{"version":"72af2f99ff91a9a6767e9374d5bcfdfa734f056e0ca4f99acfbdc0b6910cbe6a","signature":"642691020b5d2610d98d8dfa25df7e7c58a2e885d24bdec278f98842b02892f6"},{"version":"de9652b1bdad8aa2fa302b263a6a72265b276fec040394aa3b6c1adcff419ebc","signature":"6364be1269de7f1efc40324fb2cadc9a17d9bd2742d5bc1b95e309d848ca50f6"},{"version":"8f2a5590837d3f29a8d141931432d8b61e019382d1bdcb5d9990f2525242942b","signature":"4f8d8bcaa7127e5ed2d649cd5fc16b4e46b6d6960d82982ede8429d8066f9b96","affectsGlobalScope":true},{"version":"593654eebe902db28ca173f021f74ea9f77e8b344aebb0a80fa4d10f29bb3a9d","impliedFormat":1},{"version":"19f50a093aa873de6321cd996913aa89e0ec5308a8ae49bf05f071cd9614d0c6","signature":"10ee1d72a1aeb7992ec2517f444db7d425261969e0476b94a1bef6e47fd5c4b6"},{"version":"3cee95a3d958bf994db4705fbe6b7ae503867445972247adc49626f7fd16d46a","impliedFormat":1},{"version":"cab10f9be9bc19e3175a7fecd1a3ee3a810c139e8edbb9bd313928cf71d44cb8","signature":"6a2fbda7ededa991e6090e3e1523246344249347d05fbe97b441b3bcf6a5506a"},{"version":"7484cd645652e5de0e944021ff47e2794cd64e91ccba9e2ddfe2e5c4c7e62b89","signature":"b5ff6435fa9c6d61900a8764225558104fce909c6005109cb4ec42a6772052bd"},{"version":"7ad9aed3f5dc3de5049e8ba6912319dace213430b8babffad59e9b3cb8835760","signature":"a7b65e5fbd85d753c99c13a242176ec0f4f024108de502acbd52f82108f9386d"},{"version":"df1bca5fc6bc70b5a4d100bc5e359d8905927cb3534101a90ad6e54334bc4d7a","signature":"57b68e7019ec085b6644c3ce5572dfcf262183369e4e617b1fba51099a851100"},{"version":"1d7ee0c4eb734d59b6d962bc9151f6330895067cd3058ce6a3cd95347ef5c6e8","impliedFormat":99},{"version":"e3bc3272dae75834ff86b3e69dabd4070988ca59cafdcd9bac31224d07b7179d","signature":"274e1dc16e38f7795e19d29a4730ab203e93dd513b54982f08154ffa24f72eec"},{"version":"b07ad91c88aaa542de6d77e0ba6d458fc7623a88139fac2632bcb1eb54cf79a5","signature":"ddbead02f1fbd4a881aa855fbcb178eeab5911d52c346e64e80077a1a97df4d5"},{"version":"20fcb118bebfb69ca52595ac4f0dd500fe457a5cedb0a4186a3b09cb20aad7c7","impliedFormat":99},{"version":"253aaaa09ecea0012b1a66a3b9f1df249a190cbd4ad3a34faed290ffd76cc2ef","impliedFormat":99},{"version":"d8521817842936ef14076cfe1a5a8cd86f6681afab3e1284b4e6f82ef9603c4a","impliedFormat":99},{"version":"731cfe307acc27e7d6a1b7a92485d91e9381e34e8b23d218aa5ee2a53df399e0","impliedFormat":99},{"version":"f89148f4772e016c8de02d18124e0dd5a84a5ac8e111baaa5405e02311c04345","impliedFormat":99},{"version":"b7ff22e70edc0399bdbb137addc7305f349996fe308125c6e29a5616ddfca817","impliedFormat":99},{"version":"303fdf723814de36ab2dde0cac7aee973ff152b9375b94f5919a66a0520b30f2","impliedFormat":99},{"version":"d599aadec3c934bfebce534bb669a3293a57c0ec1b9c037ccc6e5a3ffddda700","impliedFormat":99},{"version":"e60c9658a1253a68172fa78f91409e3f5587007d6d12c8ea63733db038cfaa33","impliedFormat":99},{"version":"c6c9cac842a0ef7f3358f4caf5c24d24bcb8fad986d8c784ccb813edf8011655","impliedFormat":99},{"version":"924e5a838ba92f49627b61352a57dedffc392cdb39954ac4086e8b786637d142","impliedFormat":99},{"version":"cb26ff91cd0ac970c7653b81163eeef385b170b9e13e4fbbd63f92ca8907f1bf","impliedFormat":99},{"version":"84d5ff92c1e1d49743f1140d1388226e40e311968f9de29cdae606b5111e7bae","impliedFormat":99},{"version":"35f8161d6edaddbdecc2a18ed564ac69fa7dee792b49a8d3f33e4181551b6efe","impliedFormat":99},{"version":"21a751f4234f9129bb91001be8240824c9bce40c5b010bd6801fa7bae88ed2ca","signature":"b81f59fc43815dbc136d400d4a362206786b349def10d3bf4bc25be34aad7819"},{"version":"b622510f7cceb49483c3a18e6b1c21970936c512e246e0493b6b6b41ae0fab48","signature":"0ae5b4ffe8e27808dee5ffdf7112c0927f6d519799793813c7162274982966f0"},{"version":"8b9ddc32e6d53ab2563f3a425e99d2a0139d361692e963d7765e35ccc73253db","signature":"88602184760b77d470ad73433b1103ac2f64541749d5ffa63ef2b6eaf2720c5b"},{"version":"a911a3d8df881033bf7dddc7c2e68233d6121c2114826324eae73232d0d30b97","affectsGlobalScope":true}],"root":[[88,91],93,[95,98],100,101,[116,119]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"composite":true,"declaration":true,"declarationDir":"./","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noFallthroughCasesInSwitch":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../../../packages/utils","skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[83,1],[84,2],[86,3],[106,4],[113,5],[111,6],[112,7],[115,8],[103,9],[109,10],[105,11],[108,12],[114,13],[87,14],[118,15],[101,16],[116,17],[117,18],[100,19],[88,20],[89,19],[90,19],[91,19],[93,21],[95,22],[96,19],[97,19],[98,19]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.2"}
@@ -1,2 +0,0 @@
1
- import{isPlainObject as e}from"./types.mjs";var s=Object.defineProperty,t=(e,t,r)=>((e,t,r)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const r=class s{constructor(e,r){var i=this;if(this.apiInstance=e,this.isWholeResponse=r,t(this,"useApi",async function(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.isWholeResponse,r=null,o=null;try{const o={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};o.url=(o.proxyPrefix||"")+e.url,delete o.proxyPrefix;const n=await i.apiInstance(o);r=t?n.data:n.data.data}catch(e){"AxiosError"!==e.name?i.isAxiosResponse(e)?o=e.data:i.isErrorResponse(e)&&(o=e):console.error(e)}return{res:r,error:o}}),t(this,"apiClient",async(e,s,t)=>{t??this.isWholeResponse;const r={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};return r.proxyPrefix&&(r.url=(r.proxyPrefix||"")+e.url,delete r.proxyPrefix),await this.apiInstance(r)}),s.instance)return s.instance;s.instance=this,this.isWholeResponse=r}isBusinessError(s){return e(s)&&"string"==typeof s.message&&"number"==typeof s.code&&0!==s.code}isAxiosResponse(s){return e(s)&&void 0!==s.data&&this.isBusinessError(s.data)&&void 0!==s.status&&void 0!==s.statusText&&void 0!==s.headers&&void 0!==s.config&&void 0!==s.request}isErrorResponse(e){return"code"in e&&"data"in e&&"message"in e&&0!==e.code}};t(r,"instance");let i=r;export{i as ApiService};
2
- //# sourceMappingURL=use-api.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-api.mjs","sources":["../../../../packages/utils/src/use-api.ts"],"sourcesContent":["import type { AxiosInstance, AxiosRequestConfig, AxiosResponse, Method } from 'axios'\nimport { isPlainObject } from './types'\n\n/**\n * 成功响应的基础约束接口\n * @template T - 响应数据的类型\n */\nexport interface BaseSuccessResponse<T = unknown> {\n data: T\n [key: string]: any\n}\n\n/**\n * 错误响应的基础约束接口\n */\nexport interface BaseErrorResponse {\n [key: string]: any\n}\n\n/**\n * 成功响应的数据结构(默认实现)\n * @template T - 响应数据的类型\n */\nexport interface SuccessResponse<T> extends BaseSuccessResponse<T> {\n code: number\n count: number\n data: T\n message: string\n}\n\n/**\n * 错误响应的数据结构(默认实现)\n */\nexport interface ErrorResponse extends BaseErrorResponse {\n code: number\n data: null\n message: string\n}\n\n/**\n * API 响应的统一封装\n * @template W - 是否返回完整响应,true 返回完整响应,false 只返回 data\n * @template T - 响应数据的类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n */\nexport interface UseApiResponse<\n W extends boolean = false,\n T = unknown,\n S extends BaseSuccessResponse<T> = SuccessResponse<T>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n res: W extends true ? S : T\n error: E | null\n}\n\n/**\n * API URL 配置对象类型\n */\nexport interface UrlObjectType {\n url: string\n method: Method\n proxyPrefix?: string\n}\n\n/**\n * API 类型映射,用于定义每个接口的请求和响应类型\n * @template U - URL 配置对象类型\n */\nexport type ApiTypeMap<U extends UrlObjectType> = {\n [K in U['url']]: {\n request: any\n response: any\n }\n}\n\n// 辅助类型,用于提取请求数据类型\ntype RequestPayload<T> = T extends { data: any } ? T['data'] : T\ntype RequestParams<T> = T extends { params: any } ? T['params'] : T\n\n/**\n * API 服务类,提供统一的请求处理和错误处理\n * @template T - API 类型映射\n * @template U - URL 配置对象类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n *\n * @example\n * ```typescript\n * // 定义 API 类型映射\n * interface UserApi extends ApiTypeMap<UserUrlObject> {\n * '/user/list': {\n * request: { page: number; size: number }\n * response: User[]\n * }\n * }\n *\n * // 使用默认响应类型\n * const api = new ApiService<UserApi, UserUrlObject>(axios.create(), false)\n *\n * // 使用自定义响应类型\n * interface CustomSuccessResponse<T> {\n * status: number\n * result: T\n * msg: string\n * }\n *\n * interface CustomErrorResponse {\n * status: number\n * result: null\n * msg: string\n * }\n *\n * const customApi = new ApiService<\n * UserApi,\n * UserUrlObject,\n * CustomSuccessResponse<unknown>,\n * CustomErrorResponse\n * >(axios.create(), false)\n *\n * // 发起请求\n * const { res, error } = await api.useApi({\n * url: '/user/list',\n * method: 'GET',\n * params: { page: 1, size: 10 }\n * })\n * ```\n */\nexport class ApiService<\n T extends ApiTypeMap<U>,\n U extends UrlObjectType,\n S extends BaseSuccessResponse = SuccessResponse<unknown>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n private static instance: ApiService<any, any, any, any>\n\n /**\n * 构造函数,实现单例模式\n * @param apiInstance - Axios 实例\n * @param isWholeResponse - 是否返回完整响应\n */\n constructor(\n private apiInstance: AxiosInstance,\n private isWholeResponse: boolean,\n ) {\n if (ApiService.instance) {\n return ApiService.instance as ApiService<T, U, S, E>\n }\n ApiService.instance = this\n this.isWholeResponse = isWholeResponse\n }\n\n /**\n * 判断是否为业务错误\n * @param obj - 待判断的对象\n */\n private isBusinessError(obj: E): boolean {\n return isPlainObject(obj)\n && typeof (obj as any).message === 'string'\n && typeof (obj as any).code === 'number'\n && (obj as any).code !== 0\n }\n\n /**\n * 判断是否为 Axios 响应对象\n * @param value - 待判断的值\n */\n private isAxiosResponse(value: any): value is AxiosResponse {\n return isPlainObject(value)\n && value.data !== undefined\n && this.isBusinessError(value.data)\n && value.status !== undefined\n && value.statusText !== undefined\n && value.headers !== undefined\n && value.config !== undefined\n && value.request !== undefined\n }\n\n /**\n * 判断是否为错误响应\n * @param value - 待判断的值\n */\n private isErrorResponse(value: any): value is E {\n return 'code' in value && 'data' in value && 'message' in value && value.code !== 0\n }\n\n /**\n * 发起 API 请求,返回统一的响应格式 { res, error }\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应,true 返回 SuccessResponse,false 只返回 data\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数(GET 请求会自动转为 params,其他方法转为 data)\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns Promise<UseApiResponse<W, T, S, E>> - 包含 res 和 error 的统一响应对象\n */\n public useApi = async <\n K extends U,\n W extends boolean = false,\n >(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse: W = this.isWholeResponse as W,\n ): Promise<UseApiResponse<W, T[K['url']]['response'], S, E>> => {\n let res: UseApiResponse<W, T[K['url']]['response'], S, E>['res'] | null = null\n let error: UseApiResponse<W, T[K['url']]['response'], S, E>['error'] = null\n\n try {\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n\n // 发起请求\n const response = await this.apiInstance<S & { data: T[K['url']]['response'] }>(config)\n res = isWholeResponse\n ? (response.data as any)\n : response.data.data\n }\n catch (err: any) {\n // 错误处理\n if (err.name !== 'AxiosError') {\n if (this.isAxiosResponse(err)) {\n error = err.data as E\n }\n else if (this.isErrorResponse(err)) {\n error = err\n }\n }\n else {\n console.error(err)\n }\n }\n\n return { res: res!, error }\n }\n\n /**\n * 发起 API 请求\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns 根据 isWholeResponse 返回完整响应或解包后的数据\n */\n public apiClient = async <K extends U, W extends boolean = false>(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse?: W,\n ): Promise<W extends true ? AxiosResponse<T[K['url']]['response']> : T[K['url']]['response']> => {\n const useWholeResponse = isWholeResponse ?? this.isWholeResponse\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n if (config.proxyPrefix) {\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n }\n\n // 发起请求,利用 axios 的第二个泛型参数 R 控制解包\n if (useWholeResponse) {\n return await this.apiInstance<T[K['url']]['response']>(config)\n }\n else {\n return await this.apiInstance<any, T[K['url']]['response']>(config)\n }\n }\n}\n"],"names":["_ApiService","constructor","apiInstance","isWholeResponse","_this","this","__publicField","async","axiosConfig","params","arguments","length","undefined","res","error","config","method","includes","toUpperCase","data","url","proxyPrefix","response","err","name","isAxiosResponse","isErrorResponse","console","instance","isBusinessError","obj","isPlainObject","message","code","value","status","statusText","headers","request","ApiService"],"mappings":"sMAgIO,MAAMA,EAAN,MAAMA,EAaXC,WAAAA,CACUC,EACAC,GACR,IAAAC,EAAAC,KACA,GAHQA,KAAAH,YAAAA,EACAG,KAAAF,gBAAAA,EAoDVG,EAAAD,KAAO,SAASE,eAIdC,EAGAC,GAE8D,IAD9DN,EAAAO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAqBN,EAAKD,gBAEtBU,EAAsE,KACtEC,EAAmE,KAEvE,IAEE,MAAMC,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAI5HM,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,YAGd,MAAMC,QAAiBlB,EAAKF,YAAmDa,GAC/EF,EAAMV,EACDmB,EAASH,KACVG,EAASH,KAAKA,IACpB,OACOI,GAEY,eAAbA,EAAIC,KACFpB,EAAKqB,gBAAgBF,GACvBT,EAAQS,EAAIJ,KAELf,EAAKsB,gBAAgBH,KAC5BT,EAAQS,GAIVI,QAAQb,MAAMS,EAElB,CAEA,MAAO,CAAEV,MAAWC,QACtB,GAWAR,EAAAD,KAAO,YAAYE,MACjBC,EAGAC,EACAN,KAEyBA,GAAmBE,KAAKF,gBAAjD,MAEMY,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAU5H,OANIM,EAAOM,cACTN,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,mBAKDhB,KAAKH,YAAqCa,KAjIrDf,EAAW4B,SACb,OAAO5B,EAAW4B,SAEpB5B,EAAW4B,SAAWvB,KACtBA,KAAKF,gBAAkBA,CACzB,CAMQ0B,eAAAA,CAAgBC,GACtB,OAAOC,EAAcD,IACgB,iBAAxBA,EAAYE,SACS,iBAArBF,EAAYG,MACE,IAArBH,EAAYG,IACpB,CAMQR,eAAAA,CAAgBS,GACtB,OAAOH,EAAcG,SACD,IAAfA,EAAMf,MACNd,KAAKwB,gBAAgBK,EAAMf,YACV,IAAjBe,EAAMC,aACe,IAArBD,EAAME,iBACY,IAAlBF,EAAMG,cACW,IAAjBH,EAAMnB,aACY,IAAlBmB,EAAMI,OACb,CAMQZ,eAAAA,CAAgBQ,GACtB,MAAO,SAAUA,GAAS,SAAUA,GAAS,YAAaA,GAAwB,IAAfA,EAAMD,IAC3E,GAlDA3B,EANWN,EAMI,YANV,IAAMuC,EAANvC"}
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("./types.cjs"),s=Object.defineProperty,t=(e,t,r)=>((e,t,r)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r);const r=class s{constructor(e,r){var i=this;if(this.apiInstance=e,this.isWholeResponse=r,t(this,"useApi",async function(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.isWholeResponse,r=null,o=null;try{const o={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};o.url=(o.proxyPrefix||"")+e.url,delete o.proxyPrefix;const n=await i.apiInstance(o);r=t?n.data:n.data.data}catch(e){"AxiosError"!==e.name?i.isAxiosResponse(e)?o=e.data:i.isErrorResponse(e)&&(o=e):console.error(e)}return{res:r,error:o}}),t(this,"apiClient",async(e,s,t)=>{t??this.isWholeResponse;const r={...e,...s?e.method&&["GET"].includes(e.method.toUpperCase())?{params:s}:{data:s}:{}};return r.proxyPrefix&&(r.url=(r.proxyPrefix||"")+e.url,delete r.proxyPrefix),await this.apiInstance(r)}),s.instance)return s.instance;s.instance=this,this.isWholeResponse=r}isBusinessError(s){return e.isPlainObject(s)&&"string"==typeof s.message&&"number"==typeof s.code&&0!==s.code}isAxiosResponse(s){return e.isPlainObject(s)&&void 0!==s.data&&this.isBusinessError(s.data)&&void 0!==s.status&&void 0!==s.statusText&&void 0!==s.headers&&void 0!==s.config&&void 0!==s.request}isErrorResponse(e){return"code"in e&&"data"in e&&"message"in e&&0!==e.code}};t(r,"instance");let i=r;exports.ApiService=i;
2
- //# sourceMappingURL=use-api.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-api.cjs","sources":["../../../../packages/utils/src/use-api.ts"],"sourcesContent":["import type { AxiosInstance, AxiosRequestConfig, AxiosResponse, Method } from 'axios'\nimport { isPlainObject } from './types'\n\n/**\n * 成功响应的基础约束接口\n * @template T - 响应数据的类型\n */\nexport interface BaseSuccessResponse<T = unknown> {\n data: T\n [key: string]: any\n}\n\n/**\n * 错误响应的基础约束接口\n */\nexport interface BaseErrorResponse {\n [key: string]: any\n}\n\n/**\n * 成功响应的数据结构(默认实现)\n * @template T - 响应数据的类型\n */\nexport interface SuccessResponse<T> extends BaseSuccessResponse<T> {\n code: number\n count: number\n data: T\n message: string\n}\n\n/**\n * 错误响应的数据结构(默认实现)\n */\nexport interface ErrorResponse extends BaseErrorResponse {\n code: number\n data: null\n message: string\n}\n\n/**\n * API 响应的统一封装\n * @template W - 是否返回完整响应,true 返回完整响应,false 只返回 data\n * @template T - 响应数据的类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n */\nexport interface UseApiResponse<\n W extends boolean = false,\n T = unknown,\n S extends BaseSuccessResponse<T> = SuccessResponse<T>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n res: W extends true ? S : T\n error: E | null\n}\n\n/**\n * API URL 配置对象类型\n */\nexport interface UrlObjectType {\n url: string\n method: Method\n proxyPrefix?: string\n}\n\n/**\n * API 类型映射,用于定义每个接口的请求和响应类型\n * @template U - URL 配置对象类型\n */\nexport type ApiTypeMap<U extends UrlObjectType> = {\n [K in U['url']]: {\n request: any\n response: any\n }\n}\n\n// 辅助类型,用于提取请求数据类型\ntype RequestPayload<T> = T extends { data: any } ? T['data'] : T\ntype RequestParams<T> = T extends { params: any } ? T['params'] : T\n\n/**\n * API 服务类,提供统一的请求处理和错误处理\n * @template T - API 类型映射\n * @template U - URL 配置对象类型\n * @template S - 自定义成功响应类型\n * @template E - 自定义错误响应类型\n *\n * @example\n * ```typescript\n * // 定义 API 类型映射\n * interface UserApi extends ApiTypeMap<UserUrlObject> {\n * '/user/list': {\n * request: { page: number; size: number }\n * response: User[]\n * }\n * }\n *\n * // 使用默认响应类型\n * const api = new ApiService<UserApi, UserUrlObject>(axios.create(), false)\n *\n * // 使用自定义响应类型\n * interface CustomSuccessResponse<T> {\n * status: number\n * result: T\n * msg: string\n * }\n *\n * interface CustomErrorResponse {\n * status: number\n * result: null\n * msg: string\n * }\n *\n * const customApi = new ApiService<\n * UserApi,\n * UserUrlObject,\n * CustomSuccessResponse<unknown>,\n * CustomErrorResponse\n * >(axios.create(), false)\n *\n * // 发起请求\n * const { res, error } = await api.useApi({\n * url: '/user/list',\n * method: 'GET',\n * params: { page: 1, size: 10 }\n * })\n * ```\n */\nexport class ApiService<\n T extends ApiTypeMap<U>,\n U extends UrlObjectType,\n S extends BaseSuccessResponse = SuccessResponse<unknown>,\n E extends BaseErrorResponse = ErrorResponse,\n> {\n private static instance: ApiService<any, any, any, any>\n\n /**\n * 构造函数,实现单例模式\n * @param apiInstance - Axios 实例\n * @param isWholeResponse - 是否返回完整响应\n */\n constructor(\n private apiInstance: AxiosInstance,\n private isWholeResponse: boolean,\n ) {\n if (ApiService.instance) {\n return ApiService.instance as ApiService<T, U, S, E>\n }\n ApiService.instance = this\n this.isWholeResponse = isWholeResponse\n }\n\n /**\n * 判断是否为业务错误\n * @param obj - 待判断的对象\n */\n private isBusinessError(obj: E): boolean {\n return isPlainObject(obj)\n && typeof (obj as any).message === 'string'\n && typeof (obj as any).code === 'number'\n && (obj as any).code !== 0\n }\n\n /**\n * 判断是否为 Axios 响应对象\n * @param value - 待判断的值\n */\n private isAxiosResponse(value: any): value is AxiosResponse {\n return isPlainObject(value)\n && value.data !== undefined\n && this.isBusinessError(value.data)\n && value.status !== undefined\n && value.statusText !== undefined\n && value.headers !== undefined\n && value.config !== undefined\n && value.request !== undefined\n }\n\n /**\n * 判断是否为错误响应\n * @param value - 待判断的值\n */\n private isErrorResponse(value: any): value is E {\n return 'code' in value && 'data' in value && 'message' in value && value.code !== 0\n }\n\n /**\n * 发起 API 请求,返回统一的响应格式 { res, error }\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应,true 返回 SuccessResponse,false 只返回 data\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数(GET 请求会自动转为 params,其他方法转为 data)\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns Promise<UseApiResponse<W, T, S, E>> - 包含 res 和 error 的统一响应对象\n */\n public useApi = async <\n K extends U,\n W extends boolean = false,\n >(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse: W = this.isWholeResponse as W,\n ): Promise<UseApiResponse<W, T[K['url']]['response'], S, E>> => {\n let res: UseApiResponse<W, T[K['url']]['response'], S, E>['res'] | null = null\n let error: UseApiResponse<W, T[K['url']]['response'], S, E>['error'] = null\n\n try {\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n\n // 发起请求\n const response = await this.apiInstance<S & { data: T[K['url']]['response'] }>(config)\n res = isWholeResponse\n ? (response.data as any)\n : response.data.data\n }\n catch (err: any) {\n // 错误处理\n if (err.name !== 'AxiosError') {\n if (this.isAxiosResponse(err)) {\n error = err.data as E\n }\n else if (this.isErrorResponse(err)) {\n error = err\n }\n }\n else {\n console.error(err)\n }\n }\n\n return { res: res!, error }\n }\n\n /**\n * 发起 API 请求\n * @template K - URL 配置对象类型\n * @template W - 是否返回完整响应\n * @param axiosConfig - Axios 请求配置\n * @param params - 请求参数\n * @param isWholeResponse - 是否返回完整响应,默认使用实例配置\n * @returns 根据 isWholeResponse 返回完整响应或解包后的数据\n */\n public apiClient = async <K extends U, W extends boolean = false>(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse?: W,\n ): Promise<W extends true ? AxiosResponse<T[K['url']]['response']> : T[K['url']]['response']> => {\n const useWholeResponse = isWholeResponse ?? this.isWholeResponse\n // 处理请求配置\n const config = {\n ...axiosConfig,\n ...(params ? (axiosConfig.method && ['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }) : {}),\n }\n\n // 处理代理前缀\n if (config.proxyPrefix) {\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n }\n\n // 发起请求,利用 axios 的第二个泛型参数 R 控制解包\n if (useWholeResponse) {\n return await this.apiInstance<T[K['url']]['response']>(config)\n }\n else {\n return await this.apiInstance<any, T[K['url']]['response']>(config)\n }\n }\n}\n"],"names":["_ApiService","constructor","apiInstance","isWholeResponse","_this","this","__publicField","async","axiosConfig","params","arguments","length","undefined","res","error","config","method","includes","toUpperCase","data","url","proxyPrefix","response","err","name","isAxiosResponse","isErrorResponse","console","instance","isBusinessError","obj","isPlainObject","message","code","value","status","statusText","headers","request","ApiService"],"mappings":"gMAgIO,MAAMA,EAAN,MAAMA,EAaXC,WAAAA,CACUC,EACAC,GACR,IAAAC,EAAAC,KACA,GAHQA,KAAAH,YAAAA,EACAG,KAAAF,gBAAAA,EAoDVG,EAAAD,KAAO,SAASE,eAIdC,EAGAC,GAE8D,IAD9DN,EAAAO,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAqBN,EAAKD,gBAEtBU,EAAsE,KACtEC,EAAmE,KAEvE,IAEE,MAAMC,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAI5HM,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,YAGd,MAAMC,QAAiBlB,EAAKF,YAAmDa,GAC/EF,EAAMV,EACDmB,EAASH,KACVG,EAASH,KAAKA,IACpB,OACOI,GAEY,eAAbA,EAAIC,KACFpB,EAAKqB,gBAAgBF,GACvBT,EAAQS,EAAIJ,KAELf,EAAKsB,gBAAgBH,KAC5BT,EAAQS,GAIVI,QAAQb,MAAMS,EAElB,CAEA,MAAO,CAAEV,MAAWC,QACtB,GAWAR,EAAAD,KAAO,YAAYE,MACjBC,EAGAC,EACAN,KAEyBA,GAAmBE,KAAKF,gBAAjD,MAEMY,EAAS,IACVP,KACCC,EAAUD,EAAYQ,QAAU,CAAC,OAAOC,SAAST,EAAYQ,OAAOE,eAAiB,CAAET,UAAW,CAAEU,KAAMV,GAAY,CAAA,GAU5H,OANIM,EAAOM,cACTN,EAAOK,KAAOL,EAAOM,aAAe,IAAMb,EAAYY,WAC/CL,EAAOM,mBAKDhB,KAAKH,YAAqCa,KAjIrDf,EAAW4B,SACb,OAAO5B,EAAW4B,SAEpB5B,EAAW4B,SAAWvB,KACtBA,KAAKF,gBAAkBA,CACzB,CAMQ0B,eAAAA,CAAgBC,GACtB,OAAOC,EAAAA,cAAcD,IACgB,iBAAxBA,EAAYE,SACS,iBAArBF,EAAYG,MACE,IAArBH,EAAYG,IACpB,CAMQR,eAAAA,CAAgBS,GACtB,OAAOH,gBAAcG,SACD,IAAfA,EAAMf,MACNd,KAAKwB,gBAAgBK,EAAMf,YACV,IAAjBe,EAAMC,aACe,IAArBD,EAAME,iBACY,IAAlBF,EAAMG,cACW,IAAjBH,EAAMnB,aACY,IAAlBmB,EAAMI,OACb,CAMQZ,eAAAA,CAAgBQ,GACtB,MAAO,SAAUA,GAAS,SAAUA,GAAS,YAAaA,GAAwB,IAAfA,EAAMD,IAC3E,GAlDA3B,EANWN,EAMI,YANV,IAAMuC,EAANvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-api.d.ts","sourceRoot":"","sources":["../../../../packages/utils/src/use-api.ts"],"names":[],"mappings":"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"}