@boteteam/utils 0.0.20-alpha.0.2 → 0.0.21
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/dist/cjs/CookieUtils.js +0 -69
- package/dist/cjs/CookieUtils.js.map +2 -2
- package/dist/cjs/http.d.ts +3 -3
- package/dist/cjs/http.js +2 -30
- package/dist/cjs/http.js.map +2 -2
- package/dist/esm/CookieUtils.js +7 -120
- package/dist/esm/CookieUtils.js.map +1 -1
- package/dist/esm/http.d.ts +3 -3
- package/dist/esm/http.js +3 -39
- package/dist/esm/http.js.map +1 -1
- package/dist/umd/index.min.js +1 -1
- package/dist/umd/index.min.js.map +1 -1
- package/package.json +4 -5
package/dist/esm/http.js
CHANGED
|
@@ -10,38 +10,15 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
10
10
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
11
11
|
// import CookieUtil from './CookieUtils';
|
|
12
12
|
import security from '@lingxiteam/security';
|
|
13
|
-
import { getLocation
|
|
13
|
+
import { getLocation } from "./environment";
|
|
14
14
|
export var tenantIdSessionKey = 'botSelectedTenantID';
|
|
15
|
-
|
|
16
|
-
// React Native 环境下的存储替代方案
|
|
17
|
-
var getStorage = function getStorage() {
|
|
18
|
-
if (isReactNative()) {
|
|
19
|
-
try {
|
|
20
|
-
return require('@react-native-async-storage/async-storage').default;
|
|
21
|
-
} catch (_unused) {
|
|
22
|
-
console.warn('AsyncStorage not available in React Native environment');
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
};
|
|
28
15
|
var http = function http(url, config) {
|
|
29
16
|
// const token = localStorage.getItem('X-Auth-Token');
|
|
30
17
|
// config.headers['X-Auth-Token'] = token;
|
|
31
18
|
config.headers['content-type'] = 'application/json;charset=UTF-8';
|
|
32
19
|
|
|
33
20
|
// 获取 token
|
|
34
|
-
var token =
|
|
35
|
-
if (isReactNative()) {
|
|
36
|
-
var AsyncStorage = getStorage();
|
|
37
|
-
if (AsyncStorage) {
|
|
38
|
-
// 在 React Native 中,我们需要异步获取 token
|
|
39
|
-
// 这里简化处理,实际使用时可能需要异步版本
|
|
40
|
-
token = null; // 同步版本暂时返回 null
|
|
41
|
-
}
|
|
42
|
-
} else {
|
|
43
|
-
token = sessionStorage.getItem('token');
|
|
44
|
-
}
|
|
21
|
+
var token = sessionStorage.getItem('token');
|
|
45
22
|
if (token) {
|
|
46
23
|
config.headers.Authorization = "Bearer ".concat(token);
|
|
47
24
|
}
|
|
@@ -102,33 +79,20 @@ var currentTenantId = '';
|
|
|
102
79
|
export var getAccessUrl = function getAccessUrl(url) {
|
|
103
80
|
// 未配置,表示使用当前工程地址,去掉 hash 部分
|
|
104
81
|
if (!url) {
|
|
105
|
-
if (isReactNative()) {
|
|
106
|
-
// React Native 环境中无法获取当前 URL,返回默认值
|
|
107
|
-
return 'http://localhost/';
|
|
108
|
-
}
|
|
109
82
|
var _location = getLocation();
|
|
110
83
|
if (_location) {
|
|
111
84
|
return new URL('', _location.href).toString();
|
|
112
85
|
}
|
|
113
|
-
return
|
|
86
|
+
return null;
|
|
114
87
|
}
|
|
115
88
|
// 一串数字表示是端口号,与当前工程使用相同的 hostname 以兼容使用不同 IP (回环地址、内网 IP)访问的情况
|
|
116
89
|
if (/^\d+$/.test(url)) {
|
|
117
|
-
if (isReactNative()) {
|
|
118
|
-
// React Native 环境中无法获取 hostname,使用默认值
|
|
119
|
-
return "http://localhost:".concat(url, "/");
|
|
120
|
-
}
|
|
121
90
|
var _location2 = getLocation();
|
|
122
91
|
if (_location2) {
|
|
123
92
|
return "http://".concat(_location2.hostname, ":").concat(url, "/");
|
|
124
93
|
}
|
|
125
94
|
return "http://localhost:".concat(url, "/");
|
|
126
95
|
}
|
|
127
|
-
// 完整地址/相对路径/绝对路径,根据当前工程地址解析
|
|
128
|
-
if (isReactNative()) {
|
|
129
|
-
// React Native 环境中无法获取当前 URL,直接返回原 URL
|
|
130
|
-
return url;
|
|
131
|
-
}
|
|
132
96
|
var location = getLocation();
|
|
133
97
|
if (location) {
|
|
134
98
|
return new URL(url, location.href).toString();
|
package/dist/esm/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["security","getLocation","isReactNative","tenantIdSessionKey","getStorage","require","default","_unused","console","warn","http","url","config","headers","token","AsyncStorage","sessionStorage","getItem","Authorization","concat","currentTenantId","Promise","resolve","rejects","fetch","then","response","contentType","get","test","blob","json","text","data","Object","prototype","toString","call","_typeof","hasOwnProperty","String","resultCode","reject","Array","isArray","resultObject","catch","err","baseUrl","process","env","REACT_APP_REQ_PREFIX","getUrl","params","arguments","length","undefined","paramsArr","keys","map","item","join","getAccessUrl","location","URL","href","hostname","managerUrl","BOTE_MANAGER_URL","botUrl","BOTE_BOT_URL","getManagerUrl","route","getBotUrl","request","getBaseUrl","setUrlPrefix","prefix","setTenantId","tenantId","getBotIconUrl","botId","updatedTime","replace","getSceneIconUrl","sceneId","docChain","referenceDocUrl","_ref","docId","referenceDocChunkUrl","_ref2","chunkId","score","rank","docType","downloadDocUrl","_ref3","_ref3$isSecurity","isSecurity","autoSecurityWithUrl","imageUrl","_ref4","path","_ref4$isSecurity","encodeURIComponent","tenantKnowledge","_ref5","knowledgeType","docName","_ref6","cfg","_ref7","rest","_objectWithoutProperties","_excluded","_url","_objectSpread","method","post","_ref8","_excluded2","_body","FormData","append","JSON","stringify","body"],"sources":["../../src/http.ts"],"sourcesContent":["// import CookieUtil from './CookieUtils';\nimport security from '@lingxiteam/security';\nimport { getLocation, isReactNative } from './environment';\n\nexport const tenantIdSessionKey: string = 'botSelectedTenantID';\n\n// React Native 环境下的存储替代方案\nconst getStorage = () => {\n if (isReactNative()) {\n try {\n return require('@react-native-async-storage/async-storage').default;\n } catch {\n console.warn('AsyncStorage not available in React Native environment');\n return null;\n }\n }\n return null;\n};\n\nconst http = (url: string, config: any) => {\n // const token = localStorage.getItem('X-Auth-Token');\n // config.headers['X-Auth-Token'] = token;\n config.headers['content-type'] = 'application/json;charset=UTF-8';\n \n // 获取 token\n let token: string | null = null;\n if (isReactNative()) {\n const AsyncStorage = getStorage();\n if (AsyncStorage) {\n // 在 React Native 中,我们需要异步获取 token\n // 这里简化处理,实际使用时可能需要异步版本\n token = null; // 同步版本暂时返回 null\n }\n } else {\n token = sessionStorage.getItem('token') as string;\n }\n \n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n \n // 兼容生产环境\n config.headers['Tenant-Id'] = currentTenantId;\n\n return new Promise((resolve, rejects) => {\n fetch(url, config)\n .then((response) => {\n const contentType: string | null = response.headers.get('content-type');\n if (contentType) {\n if (\n /application\\/octet-stream/.test(contentType) ||\n /application\\/zip/.test(contentType) ||\n /application\\/vnd\\.ms-excel/.test(contentType)\n ) {\n return response.blob();\n }\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (/text\\/html/.test(contentType)) {\n return response.text();\n }\n }\n return response;\n })\n .then((data) => {\n if (Object.prototype.toString.call(data) === '[object Blob]') {\n if (\n typeof data === 'object' &&\n Object.hasOwnProperty.call(data, 'resultCode') &&\n String(data.resultCode) !== '0'\n ) {\n return Promise.reject(data);\n }\n return data;\n }\n if (Array.isArray(data)) return data;\n if (String(data?.resultCode) === '0') {\n resolve(data?.resultObject);\n }\n return data;\n })\n .catch((err) => {\n rejects(err);\n });\n });\n};\n\nlet baseUrl = `${process.env.REACT_APP_REQ_PREFIX}/bote`;\nconst getUrl = (url: string, params: any = {}) => {\n let paramsArr = '';\n if (params && Object.keys(params).length > 0) {\n paramsArr = Object.keys(params)\n .map((item) => `${item}=${params[item]}`)\n .join('&');\n }\n return `${baseUrl}${url}${paramsArr ? `?${paramsArr}` : ''}`;\n};\n\n// 当前租户ID\nlet currentTenantId = '';\n\n/**\n * 构造管理平台或机器人工程的完整访问地址\n * @param url 环境变量中配置的地址\n */\nexport const getAccessUrl = (url: string | undefined) => {\n // 未配置,表示使用当前工程地址,去掉 hash 部分\n if (!url) {\n if (isReactNative()) {\n // React Native 环境中无法获取当前 URL,返回默认值\n return 'http://localhost/';\n }\n const location = getLocation();\n if (location) {\n return new URL('', location.href).toString();\n }\n return 'http://localhost/';\n }\n // 一串数字表示是端口号,与当前工程使用相同的 hostname 以兼容使用不同 IP (回环地址、内网 IP)访问的情况\n if (/^\\d+$/.test(url)) {\n if (isReactNative()) {\n // React Native 环境中无法获取 hostname,使用默认值\n return `http://localhost:${url}/`;\n }\n const location = getLocation();\n if (location) {\n return `http://${location.hostname}:${url}/`;\n }\n return `http://localhost:${url}/`;\n }\n // 完整地址/相对路径/绝对路径,根据当前工程地址解析\n if (isReactNative()) {\n // React Native 环境中无法获取当前 URL,直接返回原 URL\n return url;\n }\n const location = getLocation();\n if (location) {\n return new URL(url, location.href).toString();\n }\n return url;\n};\n\n// 管理平台访问地址\nconst managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);\n// 机器人工程访问地址\nconst botUrl = getAccessUrl(process.env.BOTE_BOT_URL);\n\n/**\n * 获取管理平台地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getManagerUrl = (route?: string | null) => route ? `${managerUrl}#${route}` : managerUrl;\n\n/**\n * 获取机器人工程访问地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getBotUrl = (route?: string | null) => route ? `${botUrl}#${route}` : botUrl;\n\nconst request = {\n getBaseUrl: () => baseUrl,\n setUrlPrefix: (prefix: string) => {\n baseUrl = `${prefix}${baseUrl}`;\n },\n setTenantId: (tenantId: string) => {\n currentTenantId = tenantId;\n },\n getManagerUrl,\n getBotUrl,\n // 获取智能应用图标地址\n getBotIconUrl: (tenantId?: string, botId?: string, updatedTime?: string) => {\n if (tenantId && botId) {\n let url = `${baseUrl}/manager/bot/botIcon?tenantId=${tenantId}&botId=${botId}`;\n // 管理平台构造图标链接时加上更新时间参数,可以确保修改图标后浏览器能立即请求新图标\n // 浏览器的缓存策略有些激进,不刷新页面不会重新请求图片(单页应用很少会刷新页面),即使后端返回了 Cache-Control: no-cache\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n return url;\n }\n return undefined;\n },\n // 获取智能体图标地址\n getSceneIconUrl: (\n tenantId?: string,\n sceneId?: string,\n updatedTime?: string,\n ) => {\n if (tenantId && sceneId) {\n let url = `${baseUrl}/manager/scene/sceneIcon?tenantId=${tenantId}&sceneId=${sceneId}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n return url;\n }\n return undefined;\n },\n // 构造 DocChain 相关地址的辅助方法\n docChain: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n referenceDocChunkUrl: ({\n tenantId,\n docId,\n chunkId,\n token,\n score,\n rank,\n docType,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/documentChunk?tenantId=${tenantId}&docId=${docId}&chunkId=${chunkId}&score=${score}&rank=${rank}&docType=${docType}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({\n tenantId,\n docId,\n token,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=src&doc_id=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n // 图片地址\n imageUrl: ({\n tenantId,\n docId,\n token,\n path,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=path&doc_id=${docId}&path=${encodeURIComponent(\n path,\n )}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n },\n // 构造 tenantKnowledge 相关地址的辅助方法\n tenantKnowledge: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n knowledgeType,\n docName,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}&knowledgeType=${knowledgeType}&casPortal=true&docName=${docName}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({ knowledgeType, docId }: { [key: string]: string }) => {\n const url = `${baseUrl}/knowledge/access/downloadKnowledgeDoc?knowledgeType=${knowledgeType}&docId=${docId}`;\n\n return url;\n },\n },\n get: (url: string, cfg: any) => {\n const { params, ...rest }: any = cfg || {};\n // 拼租户ID 到参数中\n const tenantId = currentTenantId || params.tenantId;\n params.tenantId = tenantId;\n\n const _url = getUrl(url, params);\n return http(_url, {\n method: 'GET',\n headers: {},\n ...rest,\n });\n },\n post: (url: string, cfg: any) => {\n const { data, params, ...rest }: any = cfg || {};\n // 拼租户ID 到参数中\n const tenantId = currentTenantId || data.tenantId;\n let _body;\n if (data instanceof FormData) {\n data.append('tenantId', tenantId);\n _body = data;\n } else {\n _body = JSON.stringify(data || {});\n }\n\n const _url = getUrl(url, params);\n return http(_url, {\n body: _body,\n method: 'POST',\n headers: {},\n ...rest,\n });\n },\n};\n\nexport { request };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["security","getLocation","tenantIdSessionKey","http","url","config","headers","token","sessionStorage","getItem","Authorization","concat","currentTenantId","Promise","resolve","rejects","fetch","then","response","contentType","get","test","blob","json","text","data","Object","prototype","toString","call","_typeof","hasOwnProperty","String","resultCode","reject","Array","isArray","resultObject","catch","err","baseUrl","process","env","REACT_APP_REQ_PREFIX","getUrl","params","arguments","length","undefined","paramsArr","keys","map","item","join","getAccessUrl","location","URL","href","hostname","managerUrl","BOTE_MANAGER_URL","botUrl","BOTE_BOT_URL","getManagerUrl","route","getBotUrl","request","getBaseUrl","setUrlPrefix","prefix","setTenantId","tenantId","getBotIconUrl","botId","updatedTime","replace","getSceneIconUrl","sceneId","docChain","referenceDocUrl","_ref","docId","referenceDocChunkUrl","_ref2","chunkId","score","rank","docType","downloadDocUrl","_ref3","_ref3$isSecurity","isSecurity","autoSecurityWithUrl","imageUrl","_ref4","path","_ref4$isSecurity","encodeURIComponent","tenantKnowledge","_ref5","knowledgeType","docName","_ref6","cfg","_ref7","rest","_objectWithoutProperties","_excluded","_url","_objectSpread","method","post","_ref8","_excluded2","_body","FormData","append","JSON","stringify","body"],"sources":["../../src/http.ts"],"sourcesContent":["// import CookieUtil from './CookieUtils';\nimport security from '@lingxiteam/security';\nimport { getLocation } from './environment';\n\nexport const tenantIdSessionKey: string = 'botSelectedTenantID';\n\nconst http = (url: string, config: any) => {\n // const token = localStorage.getItem('X-Auth-Token');\n // config.headers['X-Auth-Token'] = token;\n config.headers['content-type'] = 'application/json;charset=UTF-8';\n \n // 获取 token\n const token = sessionStorage.getItem('token') as string;\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n \n // 兼容生产环境\n config.headers['Tenant-Id'] = currentTenantId;\n\n return new Promise((resolve, rejects) => {\n fetch(url, config)\n .then((response) => {\n const contentType: string | null = response.headers.get('content-type');\n if (contentType) {\n if (\n /application\\/octet-stream/.test(contentType) ||\n /application\\/zip/.test(contentType) ||\n /application\\/vnd\\.ms-excel/.test(contentType)\n ) {\n return response.blob();\n }\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (/text\\/html/.test(contentType)) {\n return response.text();\n }\n }\n return response;\n })\n .then((data) => {\n if (Object.prototype.toString.call(data) === '[object Blob]') {\n if (\n typeof data === 'object' &&\n Object.hasOwnProperty.call(data, 'resultCode') &&\n String(data.resultCode) !== '0'\n ) {\n return Promise.reject(data);\n }\n return data;\n }\n if (Array.isArray(data)) return data;\n if (String(data?.resultCode) === '0') {\n resolve(data?.resultObject);\n }\n return data;\n })\n .catch((err) => {\n rejects(err);\n });\n });\n};\n\nlet baseUrl = `${process.env.REACT_APP_REQ_PREFIX}/bote`;\nconst getUrl = (url: string, params: any = {}) => {\n let paramsArr = '';\n if (params && Object.keys(params).length > 0) {\n paramsArr = Object.keys(params)\n .map((item) => `${item}=${params[item]}`)\n .join('&');\n }\n return `${baseUrl}${url}${paramsArr ? `?${paramsArr}` : ''}`;\n};\n\n// 当前租户ID\nlet currentTenantId = '';\n\n/**\n * 构造管理平台或机器人工程的完整访问地址\n * @param url 环境变量中配置的地址\n */\nexport const getAccessUrl = (url: string | undefined) => {\n // 未配置,表示使用当前工程地址,去掉 hash 部分\n if (!url) {\n const location = getLocation();\n if (location) {\n return new URL('', location.href).toString();\n }\n return null;\n }\n // 一串数字表示是端口号,与当前工程使用相同的 hostname 以兼容使用不同 IP (回环地址、内网 IP)访问的情况\n if (/^\\d+$/.test(url)) {\n const location = getLocation();\n if (location) {\n return `http://${location.hostname}:${url}/`;\n }\n return `http://localhost:${url}/`;\n }\n const location = getLocation();\n if (location) {\n return new URL(url, location.href).toString();\n }\n return url;\n};\n\n// 管理平台访问地址\nconst managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);\n// 机器人工程访问地址\nconst botUrl = getAccessUrl(process.env.BOTE_BOT_URL);\n\n/**\n * 获取管理平台地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getManagerUrl = (route?: string | null) => route ? `${managerUrl}#${route}` : managerUrl;\n\n/**\n * 获取机器人工程访问地址\n *\n * @param route 路由(\"#\" 后面的部分),可选\n */\nconst getBotUrl = (route?: string | null) => route ? `${botUrl}#${route}` : botUrl;\n\nconst request = {\n getBaseUrl: () => baseUrl,\n setUrlPrefix: (prefix: string) => {\n baseUrl = `${prefix}${baseUrl}`;\n },\n setTenantId: (tenantId: string) => {\n currentTenantId = tenantId;\n },\n getManagerUrl,\n getBotUrl,\n // 获取智能应用图标地址\n getBotIconUrl: (tenantId?: string, botId?: string, updatedTime?: string) => {\n if (tenantId && botId) {\n let url = `${baseUrl}/manager/bot/botIcon?tenantId=${tenantId}&botId=${botId}`;\n // 管理平台构造图标链接时加上更新时间参数,可以确保修改图标后浏览器能立即请求新图标\n // 浏览器的缓存策略有些激进,不刷新页面不会重新请求图片(单页应用很少会刷新页面),即使后端返回了 Cache-Control: no-cache\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n return url;\n }\n return undefined;\n },\n // 获取智能体图标地址\n getSceneIconUrl: (\n tenantId?: string,\n sceneId?: string,\n updatedTime?: string,\n ) => {\n if (tenantId && sceneId) {\n let url = `${baseUrl}/manager/scene/sceneIcon?tenantId=${tenantId}&sceneId=${sceneId}`;\n if (updatedTime) {\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\n }\n return url;\n }\n return undefined;\n },\n // 构造 DocChain 相关地址的辅助方法\n docChain: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n referenceDocChunkUrl: ({\n tenantId,\n docId,\n chunkId,\n token,\n score,\n rank,\n docType,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/documentChunk?tenantId=${tenantId}&docId=${docId}&chunkId=${chunkId}&score=${score}&rank=${rank}&docType=${docType}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({\n tenantId,\n docId,\n token,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=src&doc_id=${docId}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n // 图片地址\n imageUrl: ({\n tenantId,\n docId,\n token,\n path,\n isSecurity = true,\n }: {\n [key: string]: string | boolean;\n }) => {\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=path&doc_id=${docId}&path=${encodeURIComponent(\n path,\n )}`;\n if (token) {\n url += `&token=${token}`;\n }\n if (isSecurity) {\n url = security.autoSecurityWithUrl(url);\n }\n return url;\n },\n },\n // 构造 tenantKnowledge 相关地址的辅助方法\n tenantKnowledge: {\n referenceDocUrl: ({\n tenantId,\n docId,\n token,\n knowledgeType,\n docName,\n }: {\n [key: string]: string;\n }) => {\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}&knowledgeType=${knowledgeType}&casPortal=true&docName=${docName}`;\n if (token) {\n url += `&token=${token}`;\n }\n return url;\n },\n // 下载文档接口地址\n downloadDocUrl: ({ knowledgeType, docId }: { [key: string]: string }) => {\n const url = `${baseUrl}/knowledge/access/downloadKnowledgeDoc?knowledgeType=${knowledgeType}&docId=${docId}`;\n\n return url;\n },\n },\n get: (url: string, cfg: any) => {\n const { params, ...rest }: any = cfg || {};\n // 拼租户ID 到参数中\n const tenantId = currentTenantId || params.tenantId;\n params.tenantId = tenantId;\n\n const _url = getUrl(url, params);\n return http(_url, {\n method: 'GET',\n headers: {},\n ...rest,\n });\n },\n post: (url: string, cfg: any) => {\n const { data, params, ...rest }: any = cfg || {};\n // 拼租户ID 到参数中\n const tenantId = currentTenantId || data.tenantId;\n let _body;\n if (data instanceof FormData) {\n data.append('tenantId', tenantId);\n _body = data;\n } else {\n _body = JSON.stringify(data || {});\n }\n\n const _url = getUrl(url, params);\n return http(_url, {\n body: _body,\n method: 'POST',\n headers: {},\n ...rest,\n });\n },\n};\n\nexport { request };\n"],"mappings":"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"}
|