@boteteam/utils 0.0.19 → 0.0.20-alpha.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/cjs/CookieUtils.d.ts +3 -0
  2. package/dist/cjs/CookieUtils.js +91 -5
  3. package/dist/cjs/CookieUtils.js.map +2 -2
  4. package/dist/cjs/environment.d.ts +11 -0
  5. package/dist/cjs/environment.js +78 -0
  6. package/dist/cjs/environment.js.map +7 -0
  7. package/dist/cjs/formatModule/formatModuleData.js +13 -13
  8. package/dist/cjs/formatModule/formatModuleData.js.map +2 -2
  9. package/dist/cjs/http.d.ts +40 -0
  10. package/dist/cjs/http.js +295 -0
  11. package/dist/cjs/http.js.map +7 -0
  12. package/dist/cjs/index.d.ts +3 -1
  13. package/dist/cjs/index.js +20 -0
  14. package/dist/cjs/index.js.map +2 -2
  15. package/dist/cjs/pathArgsUtils.js +15 -2
  16. package/dist/cjs/pathArgsUtils.js.map +2 -2
  17. package/dist/cjs/securityUtils.d.ts +0 -3
  18. package/dist/cjs/securityUtils.js +31 -4
  19. package/dist/cjs/securityUtils.js.map +2 -2
  20. package/dist/esm/CookieUtils.d.ts +3 -0
  21. package/dist/esm/CookieUtils.js +170 -5
  22. package/dist/esm/CookieUtils.js.map +1 -1
  23. package/dist/esm/environment.d.ts +11 -0
  24. package/dist/esm/environment.js +56 -0
  25. package/dist/esm/environment.js.map +1 -0
  26. package/dist/esm/formatModule/formatModuleData.js +16 -15
  27. package/dist/esm/formatModule/formatModuleData.js.map +1 -1
  28. package/dist/esm/http.d.ts +40 -0
  29. package/dist/esm/http.js +315 -0
  30. package/dist/esm/http.js.map +1 -0
  31. package/dist/esm/index.d.ts +3 -1
  32. package/dist/esm/index.js +3 -1
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/pathArgsUtils.js +18 -3
  35. package/dist/esm/pathArgsUtils.js.map +1 -1
  36. package/dist/esm/securityUtils.d.ts +0 -3
  37. package/dist/esm/securityUtils.js +34 -4
  38. package/dist/esm/securityUtils.js.map +1 -1
  39. package/dist/umd/index.min.js +1 -1
  40. package/dist/umd/index.min.js.map +1 -1
  41. package/package.json +5 -4
@@ -0,0 +1,295 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/http.ts
30
+ var http_exports = {};
31
+ __export(http_exports, {
32
+ getAccessUrl: () => getAccessUrl,
33
+ request: () => request,
34
+ tenantIdSessionKey: () => tenantIdSessionKey
35
+ });
36
+ module.exports = __toCommonJS(http_exports);
37
+ var import_security = __toESM(require("@lingxiteam/security"));
38
+ var import_environment = require("./environment");
39
+ var tenantIdSessionKey = "botSelectedTenantID";
40
+ var getStorage = () => {
41
+ if ((0, import_environment.isReactNative)()) {
42
+ try {
43
+ return require("@react-native-async-storage/async-storage").default;
44
+ } catch {
45
+ console.warn("AsyncStorage not available in React Native environment");
46
+ return null;
47
+ }
48
+ }
49
+ return null;
50
+ };
51
+ var http = (url, config) => {
52
+ config.headers["content-type"] = "application/json;charset=UTF-8";
53
+ let token = null;
54
+ if ((0, import_environment.isReactNative)()) {
55
+ const AsyncStorage = getStorage();
56
+ if (AsyncStorage) {
57
+ token = null;
58
+ }
59
+ } else {
60
+ token = sessionStorage.getItem("token");
61
+ }
62
+ if (token) {
63
+ config.headers.Authorization = `Bearer ${token}`;
64
+ }
65
+ config.headers["Tenant-Id"] = currentTenantId;
66
+ return new Promise((resolve, rejects) => {
67
+ fetch(url, config).then((response) => {
68
+ const contentType = response.headers.get("content-type");
69
+ if (contentType) {
70
+ if (/application\/octet-stream/.test(contentType) || /application\/zip/.test(contentType) || /application\/vnd\.ms-excel/.test(contentType)) {
71
+ return response.blob();
72
+ }
73
+ if (/application\/json/.test(contentType)) {
74
+ return response.json();
75
+ }
76
+ if (/text\/html/.test(contentType)) {
77
+ return response.text();
78
+ }
79
+ }
80
+ return response;
81
+ }).then((data) => {
82
+ if (Object.prototype.toString.call(data) === "[object Blob]") {
83
+ if (typeof data === "object" && Object.hasOwnProperty.call(data, "resultCode") && String(data.resultCode) !== "0") {
84
+ return Promise.reject(data);
85
+ }
86
+ return data;
87
+ }
88
+ if (Array.isArray(data))
89
+ return data;
90
+ if (String(data == null ? void 0 : data.resultCode) === "0") {
91
+ resolve(data == null ? void 0 : data.resultObject);
92
+ }
93
+ return data;
94
+ }).catch((err) => {
95
+ rejects(err);
96
+ });
97
+ });
98
+ };
99
+ var baseUrl = `${process.env.REACT_APP_REQ_PREFIX}/bote`;
100
+ var getUrl = (url, params = {}) => {
101
+ let paramsArr = "";
102
+ if (params && Object.keys(params).length > 0) {
103
+ paramsArr = Object.keys(params).map((item) => `${item}=${params[item]}`).join("&");
104
+ }
105
+ return `${baseUrl}${url}${paramsArr ? `?${paramsArr}` : ""}`;
106
+ };
107
+ var currentTenantId = "";
108
+ var getAccessUrl = (url) => {
109
+ if (!url) {
110
+ if ((0, import_environment.isReactNative)()) {
111
+ return "http://localhost/";
112
+ }
113
+ const location2 = (0, import_environment.getLocation)();
114
+ if (location2) {
115
+ return new URL("", location2.href).toString();
116
+ }
117
+ return "http://localhost/";
118
+ }
119
+ if (/^\d+$/.test(url)) {
120
+ if ((0, import_environment.isReactNative)()) {
121
+ return `http://localhost:${url}/`;
122
+ }
123
+ const location2 = (0, import_environment.getLocation)();
124
+ if (location2) {
125
+ return `http://${location2.hostname}:${url}/`;
126
+ }
127
+ return `http://localhost:${url}/`;
128
+ }
129
+ if ((0, import_environment.isReactNative)()) {
130
+ return url;
131
+ }
132
+ const location = (0, import_environment.getLocation)();
133
+ if (location) {
134
+ return new URL(url, location.href).toString();
135
+ }
136
+ return url;
137
+ };
138
+ var managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);
139
+ var botUrl = getAccessUrl(process.env.BOTE_BOT_URL);
140
+ var getManagerUrl = (route) => route ? `${managerUrl}#${route}` : managerUrl;
141
+ var getBotUrl = (route) => route ? `${botUrl}#${route}` : botUrl;
142
+ var request = {
143
+ getBaseUrl: () => baseUrl,
144
+ setUrlPrefix: (prefix) => {
145
+ baseUrl = `${prefix}${baseUrl}`;
146
+ },
147
+ setTenantId: (tenantId) => {
148
+ currentTenantId = tenantId;
149
+ },
150
+ getManagerUrl,
151
+ getBotUrl,
152
+ // 获取智能应用图标地址
153
+ getBotIconUrl: (tenantId, botId, updatedTime) => {
154
+ if (tenantId && botId) {
155
+ let url = `${baseUrl}/manager/bot/botIcon?tenantId=${tenantId}&botId=${botId}`;
156
+ if (updatedTime) {
157
+ url += `&_=${updatedTime.replace(/\D/g, "")}`;
158
+ }
159
+ return url;
160
+ }
161
+ return void 0;
162
+ },
163
+ // 获取智能体图标地址
164
+ getSceneIconUrl: (tenantId, sceneId, updatedTime) => {
165
+ if (tenantId && sceneId) {
166
+ let url = `${baseUrl}/manager/scene/sceneIcon?tenantId=${tenantId}&sceneId=${sceneId}`;
167
+ if (updatedTime) {
168
+ url += `&_=${updatedTime.replace(/\D/g, "")}`;
169
+ }
170
+ return url;
171
+ }
172
+ return void 0;
173
+ },
174
+ // 构造 DocChain 相关地址的辅助方法
175
+ docChain: {
176
+ referenceDocUrl: ({
177
+ tenantId,
178
+ docId,
179
+ token
180
+ }) => {
181
+ let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}`;
182
+ if (token) {
183
+ url += `&token=${token}`;
184
+ }
185
+ return url;
186
+ },
187
+ referenceDocChunkUrl: ({
188
+ tenantId,
189
+ docId,
190
+ chunkId,
191
+ token,
192
+ score,
193
+ rank,
194
+ docType
195
+ }) => {
196
+ let url = `${managerUrl}#/documentChunk?tenantId=${tenantId}&docId=${docId}&chunkId=${chunkId}&score=${score}&rank=${rank}&docType=${docType}`;
197
+ if (token) {
198
+ url += `&token=${token}`;
199
+ }
200
+ return url;
201
+ },
202
+ // 下载文档接口地址
203
+ downloadDocUrl: ({
204
+ tenantId,
205
+ docId,
206
+ token,
207
+ isSecurity = true
208
+ }) => {
209
+ let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=src&doc_id=${docId}`;
210
+ if (token) {
211
+ url += `&token=${token}`;
212
+ }
213
+ if (isSecurity) {
214
+ url = import_security.default.autoSecurityWithUrl(url);
215
+ }
216
+ return url;
217
+ },
218
+ // 图片地址
219
+ imageUrl: ({
220
+ tenantId,
221
+ docId,
222
+ token,
223
+ path,
224
+ isSecurity = true
225
+ }) => {
226
+ let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=path&doc_id=${docId}&path=${encodeURIComponent(
227
+ path
228
+ )}`;
229
+ if (token) {
230
+ url += `&token=${token}`;
231
+ }
232
+ if (isSecurity) {
233
+ url = import_security.default.autoSecurityWithUrl(url);
234
+ }
235
+ return url;
236
+ }
237
+ },
238
+ // 构造 tenantKnowledge 相关地址的辅助方法
239
+ tenantKnowledge: {
240
+ referenceDocUrl: ({
241
+ tenantId,
242
+ docId,
243
+ token,
244
+ knowledgeType,
245
+ docName
246
+ }) => {
247
+ let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}&knowledgeType=${knowledgeType}&casPortal=true&docName=${docName}`;
248
+ if (token) {
249
+ url += `&token=${token}`;
250
+ }
251
+ return url;
252
+ },
253
+ // 下载文档接口地址
254
+ downloadDocUrl: ({ knowledgeType, docId }) => {
255
+ const url = `${baseUrl}/knowledge/access/downloadKnowledgeDoc?knowledgeType=${knowledgeType}&docId=${docId}`;
256
+ return url;
257
+ }
258
+ },
259
+ get: (url, cfg) => {
260
+ const { params, ...rest } = cfg || {};
261
+ const tenantId = currentTenantId || params.tenantId;
262
+ params.tenantId = tenantId;
263
+ const _url = getUrl(url, params);
264
+ return http(_url, {
265
+ method: "GET",
266
+ headers: {},
267
+ ...rest
268
+ });
269
+ },
270
+ post: (url, cfg) => {
271
+ const { data, params, ...rest } = cfg || {};
272
+ const tenantId = currentTenantId || data.tenantId;
273
+ let _body;
274
+ if (data instanceof FormData) {
275
+ data.append("tenantId", tenantId);
276
+ _body = data;
277
+ } else {
278
+ _body = JSON.stringify(data || {});
279
+ }
280
+ const _url = getUrl(url, params);
281
+ return http(_url, {
282
+ body: _body,
283
+ method: "POST",
284
+ headers: {},
285
+ ...rest
286
+ });
287
+ }
288
+ };
289
+ // Annotate the CommonJS export names for ESM import in node:
290
+ 0 && (module.exports = {
291
+ getAccessUrl,
292
+ request,
293
+ tenantIdSessionKey
294
+ });
295
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/http.ts"],
4
+ "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"],
5
+ "mappings": "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",
6
+ "names": ["location", "security"]
7
+ }
@@ -10,5 +10,7 @@ import loopPageStaticCodeMap from './loopPageStaticCodeMap';
10
10
  import scriptExecution, { type scriptExecutionType } from './scriptExecution';
11
11
  import { getFileUrlById, getRemoteComponentUrlByCode, getRemoteComponentUrlById } from './file';
12
12
  import { isValidUrl, sanitizeRedirectUrl, safeRedirect, sanitizeEventHandler } from './securityUtils';
13
+ import { isReactNative, isWeb, isNode, getEnvironment, getWindow, getDocument, getLocation } from './environment';
14
+ import { request, tenantIdSessionKey } from './http';
13
15
  export type { fileToBase64Type, asyncLocalStorageType, asyncSessionStorageType, scriptExecutionType, };
14
- export { fileToBase64, CookieUtils, argsToString, argsToObject, getSearchObj, asyncLocalStorage, asyncSessionStorage, camelToSnake, underscoreToCamelCase, generateRandom18Int, formatModuleData, patternTransitionRegExp, stringPramarsValTransition, loopPageStaticCodeMap, getDataArr, replaceParamsValue, replaceParamsValueForEvent, getParamsContentByParamKeys, getFileUrlById, getRemoteComponentUrlByCode, getRemoteComponentUrlById, stringScriptExecution, scriptExecution, isValidUrl, sanitizeRedirectUrl, safeRedirect, sanitizeEventHandler, };
16
+ export { fileToBase64, CookieUtils, argsToString, argsToObject, getSearchObj, asyncLocalStorage, asyncSessionStorage, camelToSnake, underscoreToCamelCase, generateRandom18Int, formatModuleData, patternTransitionRegExp, stringPramarsValTransition, loopPageStaticCodeMap, getDataArr, replaceParamsValue, replaceParamsValueForEvent, getParamsContentByParamKeys, getFileUrlById, getRemoteComponentUrlByCode, getRemoteComponentUrlById, stringScriptExecution, scriptExecution, isValidUrl, sanitizeRedirectUrl, safeRedirect, sanitizeEventHandler, isReactNative, isWeb, isNode, getEnvironment, getWindow, getDocument, getLocation, request, tenantIdSessionKey, };
package/dist/cjs/index.js CHANGED
@@ -39,22 +39,31 @@ __export(src_exports, {
39
39
  formatModuleData: () => import_formatModuleData.default,
40
40
  generateRandom18Int: () => import_stringUtils.generateRandom18Int,
41
41
  getDataArr: () => import_treeUtils.getDataArr,
42
+ getDocument: () => import_environment.getDocument,
43
+ getEnvironment: () => import_environment.getEnvironment,
42
44
  getFileUrlById: () => import_file.getFileUrlById,
45
+ getLocation: () => import_environment.getLocation,
43
46
  getParamsContentByParamKeys: () => import_treeUtils.getParamsContentByParamKeys,
44
47
  getRemoteComponentUrlByCode: () => import_file.getRemoteComponentUrlByCode,
45
48
  getRemoteComponentUrlById: () => import_file.getRemoteComponentUrlById,
46
49
  getSearchObj: () => import_pathArgsUtils.getSearchObj,
50
+ getWindow: () => import_environment.getWindow,
51
+ isNode: () => import_environment.isNode,
52
+ isReactNative: () => import_environment.isReactNative,
47
53
  isValidUrl: () => import_securityUtils.isValidUrl,
54
+ isWeb: () => import_environment.isWeb,
48
55
  loopPageStaticCodeMap: () => import_loopPageStaticCodeMap.default,
49
56
  patternTransitionRegExp: () => import_helpers.patternTransitionRegExp,
50
57
  replaceParamsValue: () => import_treeUtils.replaceParamsValue,
51
58
  replaceParamsValueForEvent: () => import_treeUtils.replaceParamsValueForEvent,
59
+ request: () => import_http.request,
52
60
  safeRedirect: () => import_securityUtils.safeRedirect,
53
61
  sanitizeEventHandler: () => import_securityUtils.sanitizeEventHandler,
54
62
  sanitizeRedirectUrl: () => import_securityUtils.sanitizeRedirectUrl,
55
63
  scriptExecution: () => import_scriptExecution.default,
56
64
  stringPramarsValTransition: () => import_helpers.stringPramarsValTransition,
57
65
  stringScriptExecution: () => import_helpers.stringScriptExecution,
66
+ tenantIdSessionKey: () => import_http.tenantIdSessionKey,
58
67
  underscoreToCamelCase: () => import_stringUtils.underscoreToCamelCase
59
68
  });
60
69
  module.exports = __toCommonJS(src_exports);
@@ -70,6 +79,8 @@ var import_loopPageStaticCodeMap = __toESM(require("./loopPageStaticCodeMap"));
70
79
  var import_scriptExecution = __toESM(require("./scriptExecution"));
71
80
  var import_file = require("./file");
72
81
  var import_securityUtils = require("./securityUtils");
82
+ var import_environment = require("./environment");
83
+ var import_http = require("./http");
73
84
  var _ = require("lodash");
74
85
  _.noConflict();
75
86
  // Annotate the CommonJS export names for ESM import in node:
@@ -84,22 +95,31 @@ _.noConflict();
84
95
  formatModuleData,
85
96
  generateRandom18Int,
86
97
  getDataArr,
98
+ getDocument,
99
+ getEnvironment,
87
100
  getFileUrlById,
101
+ getLocation,
88
102
  getParamsContentByParamKeys,
89
103
  getRemoteComponentUrlByCode,
90
104
  getRemoteComponentUrlById,
91
105
  getSearchObj,
106
+ getWindow,
107
+ isNode,
108
+ isReactNative,
92
109
  isValidUrl,
110
+ isWeb,
93
111
  loopPageStaticCodeMap,
94
112
  patternTransitionRegExp,
95
113
  replaceParamsValue,
96
114
  replaceParamsValueForEvent,
115
+ request,
97
116
  safeRedirect,
98
117
  sanitizeEventHandler,
99
118
  sanitizeRedirectUrl,
100
119
  scriptExecution,
101
120
  stringPramarsValTransition,
102
121
  stringScriptExecution,
122
+ tenantIdSessionKey,
103
123
  underscoreToCamelCase
104
124
  });
105
125
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import fileToBase64, { type fileToBase64Type } from './fileToBase64';\nimport CookieUtils from './CookieUtils';\nimport { argsToString, argsToObject, getSearchObj } from './pathArgsUtils';\nimport {\n asyncLocalStorage,\n asyncSessionStorage,\n type asyncLocalStorageType,\n type asyncSessionStorageType,\n} from './asyncStorage';\nimport {\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n} from './stringUtils';\nimport {\n getDataArr,\n replaceParamsValue,\n getParamsContentByParamKeys,\n replaceParamsValueForEvent,\n} from './treeUtils';\nimport formatModuleData from './formatModule/formatModuleData';\nimport {\n patternTransitionRegExp,\n stringPramarsValTransition,\n stringScriptExecution,\n} from './formatModule/helpers';\nimport loopPageStaticCodeMap from './loopPageStaticCodeMap';\nimport scriptExecution, { type scriptExecutionType } from './scriptExecution';\nimport {\n getFileUrlById,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n} from './file';\nimport {\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n} from './securityUtils';\n\n// 避免 _对象 和其他库冲突\nconst _ = require('lodash');\n\n_.noConflict();\n\nexport type {\n fileToBase64Type,\n asyncLocalStorageType,\n asyncSessionStorageType,\n scriptExecutionType,\n};\n\nexport {\n fileToBase64,\n CookieUtils,\n argsToString,\n argsToObject,\n getSearchObj,\n asyncLocalStorage,\n asyncSessionStorage,\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n formatModuleData,\n patternTransitionRegExp,\n stringPramarsValTransition,\n loopPageStaticCodeMap,\n getDataArr,\n replaceParamsValue,\n replaceParamsValueForEvent,\n getParamsContentByParamKeys,\n getFileUrlById,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n stringScriptExecution,\n scriptExecution,\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wCAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4DAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAoD;AACpD,yBAAwB;AACxB,2BAAyD;AACzD,0BAKO;AACP,yBAIO;AACP,uBAKO;AACP,8BAA6B;AAC7B,qBAIO;AACP,mCAAkC;AAClC,6BAA0D;AAC1D,kBAIO;AACP,2BAKO;AAGP,IAAM,IAAI,QAAQ,QAAQ;AAE1B,EAAE,WAAW;",
4
+ "sourcesContent": ["import fileToBase64, { type fileToBase64Type } from './fileToBase64';\nimport CookieUtils from './CookieUtils';\nimport { argsToString, argsToObject, getSearchObj } from './pathArgsUtils';\nimport {\n asyncLocalStorage,\n asyncSessionStorage,\n type asyncLocalStorageType,\n type asyncSessionStorageType,\n} from './asyncStorage';\nimport {\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n} from './stringUtils';\nimport {\n getDataArr,\n replaceParamsValue,\n getParamsContentByParamKeys,\n replaceParamsValueForEvent,\n} from './treeUtils';\nimport formatModuleData from './formatModule/formatModuleData';\nimport {\n patternTransitionRegExp,\n stringPramarsValTransition,\n stringScriptExecution,\n} from './formatModule/helpers';\nimport loopPageStaticCodeMap from './loopPageStaticCodeMap';\nimport scriptExecution, { type scriptExecutionType } from './scriptExecution';\nimport {\n getFileUrlById,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n} from './file';\nimport {\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n} from './securityUtils';\nimport {\n isReactNative,\n isWeb,\n isNode,\n getEnvironment,\n getWindow,\n getDocument,\n getLocation,\n} from './environment';\n\nimport { request, tenantIdSessionKey } from './http';\n\n// 避免 _对象 和其他库冲突\nconst _ = require('lodash');\n\n_.noConflict();\n\nexport type {\n fileToBase64Type,\n asyncLocalStorageType,\n asyncSessionStorageType,\n scriptExecutionType,\n};\n\nexport {\n fileToBase64,\n CookieUtils,\n argsToString,\n argsToObject,\n getSearchObj,\n asyncLocalStorage,\n asyncSessionStorage,\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n formatModuleData,\n patternTransitionRegExp,\n stringPramarsValTransition,\n loopPageStaticCodeMap,\n getDataArr,\n replaceParamsValue,\n replaceParamsValueForEvent,\n getParamsContentByParamKeys,\n getFileUrlById,\n getRemoteComponentUrlByCode,\n getRemoteComponentUrlById,\n stringScriptExecution,\n scriptExecution,\n isValidUrl,\n sanitizeRedirectUrl,\n safeRedirect,\n sanitizeEventHandler,\n isReactNative,\n isWeb,\n isNode,\n getEnvironment,\n getWindow,\n getDocument,\n getLocation,\n request,\n tenantIdSessionKey,\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wCAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4DAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAoD;AACpD,yBAAwB;AACxB,2BAAyD;AACzD,0BAKO;AACP,yBAIO;AACP,uBAKO;AACP,8BAA6B;AAC7B,qBAIO;AACP,mCAAkC;AAClC,6BAA0D;AAC1D,kBAIO;AACP,2BAKO;AACP,yBAQO;AAEP,kBAA4C;AAG5C,IAAM,IAAI,QAAQ,QAAQ;AAE1B,EAAE,WAAW;",
6
6
  "names": ["CookieUtils", "fileToBase64", "formatModuleData", "loopPageStaticCodeMap", "scriptExecution"]
7
7
  }
@@ -24,6 +24,7 @@ __export(pathArgsUtils_exports, {
24
24
  getSearchObj: () => getSearchObj
25
25
  });
26
26
  module.exports = __toCommonJS(pathArgsUtils_exports);
27
+ var import_environment = require("./environment");
27
28
  var argsToString = (params) => {
28
29
  const paramsAttr = [];
29
30
  try {
@@ -64,8 +65,20 @@ var argsToObject = (params) => {
64
65
  });
65
66
  return res;
66
67
  };
67
- var getSearchObj = (url = window.location.href) => {
68
- const urlArr = url.split("?");
68
+ var getSearchObj = (url) => {
69
+ let targetUrl = url;
70
+ if (!targetUrl) {
71
+ if ((0, import_environment.isReactNative)()) {
72
+ return {};
73
+ }
74
+ const location = (0, import_environment.getLocation)();
75
+ if (location) {
76
+ targetUrl = location.href;
77
+ } else {
78
+ return {};
79
+ }
80
+ }
81
+ const urlArr = targetUrl.split("?");
69
82
  if (urlArr.length === 1)
70
83
  return {};
71
84
  const search = urlArr.pop();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/pathArgsUtils.ts"],
4
- "sourcesContent": ["/**\n * 对象参数转字符串\n * @param params\n * @returns\n */\nconst argsToString = (params: { [key: string]: any }) => {\n const paramsAttr: string[] = [];\n try {\n if (\n params &&\n !Array.isArray(params) &&\n typeof params === 'object' &&\n Object.keys(params).length > 0\n ) {\n Object.keys(params).forEach((item: string) => {\n paramsAttr.push(`${item}=${params[item]}`);\n });\n return paramsAttr?.join('&') as string;\n }\n return '';\n } catch {\n return '';\n }\n};\n\n/**\n * 路径参数转对象\n * @param params\n * @returns\n */\nconst argsToObject = (params: string) => {\n const res: { [key: string]: any } = {};\n const _params = typeof params === 'string' && params ? params : '';\n const paramsArr = _params.startsWith('?') ? _params.slice(1).split('&') : _params.split('&');\n paramsArr.forEach((item: string) => {\n const itemArr: any[] = item.split('=');\n const key = itemArr[0];\n let value = itemArr[1];\n switch (value) {\n case 'false':\n value = false;\n break;\n case 'true':\n value = true;\n break;\n case 'undefined':\n case 'null':\n value = '';\n break;\n default:\n break;\n }\n res[key] = value;\n });\n return res as { [key: string]: any };\n};\n\nconst getSearchObj = (url: string = window.location.href) => {\n const urlArr = url.split('?');\n if (urlArr.length === 1) return {};\n const search = urlArr.pop();\n const objs = search ? search.split('&') : [];\n const obj: { [key: string]: any } = {};\n\n objs.forEach((value) => {\n const [k, v] = value.split('=');\n if (v) {\n obj[decodeURIComponent(k)] = decodeURIComponent(v);\n }\n });\n\n return obj as any;\n};\n\nexport { argsToString, argsToObject, getSearchObj };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAM,eAAe,CAAC,WAAmC;AACvD,QAAM,aAAuB,CAAC;AAC9B,MAAI;AACF,QACE,UACA,CAAC,MAAM,QAAQ,MAAM,KACrB,OAAO,WAAW,YAClB,OAAO,KAAK,MAAM,EAAE,SAAS,GAC7B;AACA,aAAO,KAAK,MAAM,EAAE,QAAQ,CAAC,SAAiB;AAC5C,mBAAW,KAAK,GAAG,QAAQ,OAAO,IAAI,GAAG;AAAA,MAC3C,CAAC;AACD,aAAO,yCAAY,KAAK;AAAA,IAC1B;AACA,WAAO;AAAA,EACT,QAAE;AACA,WAAO;AAAA,EACT;AACF;AAOA,IAAM,eAAe,CAAC,WAAmB;AACvC,QAAM,MAA8B,CAAC;AACrC,QAAM,UAAU,OAAO,WAAW,YAAY,SAAS,SAAS;AAChE,QAAM,YAAY,QAAQ,WAAW,GAAG,IAAI,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,QAAQ,MAAM,GAAG;AAC3F,YAAU,QAAQ,CAAC,SAAiB;AAClC,UAAM,UAAiB,KAAK,MAAM,GAAG;AACrC,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,QAAQ,QAAQ,CAAC;AACrB,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ;AACR;AAAA,MACF;AACE;AAAA,IACJ;AACA,QAAI,GAAG,IAAI;AAAA,EACb,CAAC;AACD,SAAO;AACT;AAEA,IAAM,eAAe,CAAC,MAAc,OAAO,SAAS,SAAS;AAC3D,QAAM,SAAS,IAAI,MAAM,GAAG;AAC5B,MAAI,OAAO,WAAW;AAAG,WAAO,CAAC;AACjC,QAAM,SAAS,OAAO,IAAI;AAC1B,QAAM,OAAO,SAAS,OAAO,MAAM,GAAG,IAAI,CAAC;AAC3C,QAAM,MAA8B,CAAC;AAErC,OAAK,QAAQ,CAAC,UAAU;AACtB,UAAM,CAAC,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG;AAC9B,QAAI,GAAG;AACL,UAAI,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CAAC;AAAA,IACnD;AAAA,EACF,CAAC;AAED,SAAO;AACT;",
4
+ "sourcesContent": ["import { getLocation, isReactNative } from './environment';\n\n/**\n * 对象参数转字符串\n * @param params\n * @returns\n */\nconst argsToString = (params: { [key: string]: any }) => {\n const paramsAttr: string[] = [];\n try {\n if (\n params &&\n !Array.isArray(params) &&\n typeof params === 'object' &&\n Object.keys(params).length > 0\n ) {\n Object.keys(params).forEach((item: string) => {\n paramsAttr.push(`${item}=${params[item]}`);\n });\n return paramsAttr?.join('&') as string;\n }\n return '';\n } catch {\n return '';\n }\n};\n\n/**\n * 路径参数转对象\n * @param params\n * @returns\n */\nconst argsToObject = (params: string) => {\n const res: { [key: string]: any } = {};\n const _params = typeof params === 'string' && params ? params : '';\n const paramsArr = _params.startsWith('?') ? _params.slice(1).split('&') : _params.split('&');\n paramsArr.forEach((item: string) => {\n const itemArr: any[] = item.split('=');\n const key = itemArr[0];\n let value = itemArr[1];\n switch (value) {\n case 'false':\n value = false;\n break;\n case 'true':\n value = true;\n break;\n case 'undefined':\n case 'null':\n value = '';\n break;\n default:\n break;\n }\n res[key] = value;\n });\n return res as { [key: string]: any };\n};\n\nconst getSearchObj = (url?: string) => {\n // 如果没有提供 url,尝试从当前环境获取\n let targetUrl = url;\n if (!targetUrl) {\n if (isReactNative()) {\n // React Native 环境中无法获取当前 URL,返回空对象\n return {};\n }\n const location = getLocation();\n if (location) {\n targetUrl = location.href;\n } else {\n return {};\n }\n }\n\n const urlArr = targetUrl.split('?');\n if (urlArr.length === 1) return {};\n const search = urlArr.pop();\n const objs = search ? search.split('&') : [];\n const obj: { [key: string]: any } = {};\n\n objs.forEach((value) => {\n const [k, v] = value.split('=');\n if (v) {\n obj[decodeURIComponent(k)] = decodeURIComponent(v);\n }\n });\n\n return obj as any;\n};\n\nexport { argsToString, argsToObject, getSearchObj };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA2C;AAO3C,IAAM,eAAe,CAAC,WAAmC;AACvD,QAAM,aAAuB,CAAC;AAC9B,MAAI;AACF,QACE,UACA,CAAC,MAAM,QAAQ,MAAM,KACrB,OAAO,WAAW,YAClB,OAAO,KAAK,MAAM,EAAE,SAAS,GAC7B;AACA,aAAO,KAAK,MAAM,EAAE,QAAQ,CAAC,SAAiB;AAC5C,mBAAW,KAAK,GAAG,QAAQ,OAAO,IAAI,GAAG;AAAA,MAC3C,CAAC;AACD,aAAO,yCAAY,KAAK;AAAA,IAC1B;AACA,WAAO;AAAA,EACT,QAAE;AACA,WAAO;AAAA,EACT;AACF;AAOA,IAAM,eAAe,CAAC,WAAmB;AACvC,QAAM,MAA8B,CAAC;AACrC,QAAM,UAAU,OAAO,WAAW,YAAY,SAAS,SAAS;AAChE,QAAM,YAAY,QAAQ,WAAW,GAAG,IAAI,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,QAAQ,MAAM,GAAG;AAC3F,YAAU,QAAQ,CAAC,SAAiB;AAClC,UAAM,UAAiB,KAAK,MAAM,GAAG;AACrC,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,QAAQ,QAAQ,CAAC;AACrB,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,gBAAQ;AACR;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ;AACR;AAAA,MACF;AACE;AAAA,IACJ;AACA,QAAI,GAAG,IAAI;AAAA,EACb,CAAC;AACD,SAAO;AACT;AAEA,IAAM,eAAe,CAAC,QAAiB;AAErC,MAAI,YAAY;AAChB,MAAI,CAAC,WAAW;AACd,YAAI,kCAAc,GAAG;AAEnB,aAAO,CAAC;AAAA,IACV;AACA,UAAM,eAAW,gCAAY;AAC7B,QAAI,UAAU;AACZ,kBAAY,SAAS;AAAA,IACvB,OAAO;AACL,aAAO,CAAC;AAAA,IACV;AAAA,EACF;AAEA,QAAM,SAAS,UAAU,MAAM,GAAG;AAClC,MAAI,OAAO,WAAW;AAAG,WAAO,CAAC;AACjC,QAAM,SAAS,OAAO,IAAI;AAC1B,QAAM,OAAO,SAAS,OAAO,MAAM,GAAG,IAAI,CAAC;AAC3C,QAAM,MAA8B,CAAC;AAErC,OAAK,QAAQ,CAAC,UAAU;AACtB,UAAM,CAAC,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG;AAC9B,QAAI,GAAG;AACL,UAAI,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CAAC;AAAA,IACnD;AAAA,EACF,CAAC;AAED,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * 安全工具函数,用于防止XSS等安全漏洞
3
- */
4
1
  /**
5
2
  * 验证URL是否安全,防止XSS攻击
6
3
  * @param url 待验证的URL
@@ -25,12 +25,20 @@ __export(securityUtils_exports, {
25
25
  sanitizeRedirectUrl: () => sanitizeRedirectUrl
26
26
  });
27
27
  module.exports = __toCommonJS(securityUtils_exports);
28
+ var import_environment = require("./environment");
28
29
  var isValidUrl = (url) => {
29
30
  if (!url || typeof url !== "string") {
30
31
  return false;
31
32
  }
32
33
  try {
33
- const urlObj = new URL(url, window.location.origin);
34
+ let baseUrl;
35
+ if ((0, import_environment.isReactNative)()) {
36
+ baseUrl = "http://localhost";
37
+ } else {
38
+ const location = (0, import_environment.getLocation)();
39
+ baseUrl = location ? location.origin : "http://localhost";
40
+ }
41
+ const urlObj = new URL(url, baseUrl);
34
42
  if (!["http:", "https:"].includes(urlObj.protocol)) {
35
43
  return false;
36
44
  }
@@ -57,8 +65,20 @@ var sanitizeRedirectUrl = (url, allowedDomains = [], defaultUrl = "/") => {
57
65
  return defaultUrl;
58
66
  }
59
67
  try {
60
- const urlObj = new URL(url, window.location.origin);
61
- const currentHost = window.location.hostname;
68
+ let baseUrl;
69
+ let currentHost;
70
+ if ((0, import_environment.isReactNative)()) {
71
+ baseUrl = "http://localhost";
72
+ currentHost = "localhost";
73
+ } else {
74
+ const location = (0, import_environment.getLocation)();
75
+ if (!location) {
76
+ return defaultUrl;
77
+ }
78
+ baseUrl = location.origin;
79
+ currentHost = location.hostname;
80
+ }
81
+ const urlObj = new URL(url, baseUrl);
62
82
  if (allowedDomains.length === 0) {
63
83
  if (urlObj.hostname !== currentHost) {
64
84
  return defaultUrl;
@@ -78,7 +98,14 @@ var sanitizeRedirectUrl = (url, allowedDomains = [], defaultUrl = "/") => {
78
98
  };
79
99
  var safeRedirect = (url, allowedDomains = []) => {
80
100
  const safeUrl = sanitizeRedirectUrl(url, allowedDomains);
81
- window.location.href = safeUrl;
101
+ if ((0, import_environment.isReactNative)()) {
102
+ console.warn("safeRedirect is not supported in React Native environment");
103
+ return;
104
+ }
105
+ const win = typeof window !== "undefined" ? window : null;
106
+ if (win) {
107
+ win.location.href = safeUrl;
108
+ }
82
109
  };
83
110
  var sanitizeEventHandler = (handler) => {
84
111
  if (typeof handler !== "function") {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/securityUtils.ts"],
4
- "sourcesContent": ["/**\n * 安全工具函数,用于防止XSS等安全漏洞\n */\n\n/**\n * 验证URL是否安全,防止XSS攻击\n * @param url 待验证的URL\n * @returns 是否为安全的URL\n */\nexport const isValidUrl = (url: string): boolean => {\n if (!url || typeof url !== 'string') {\n return false;\n }\n\n try {\n const urlObj = new URL(url, window.location.origin);\n \n // 只允许http和https协议,防止javascript:等危险协议\n if (!['http:', 'https:'].includes(urlObj.protocol)) {\n return false;\n }\n\n // 检查是否包含危险字符\n const dangerousPatterns = [\n /javascript:/i,\n /vbscript:/i,\n /data:/i,\n /file:/i,\n /<script/i,\n /onload=/i,\n /onerror=/i,\n /onclick=/i,\n ];\n\n return !dangerousPatterns.some(pattern => pattern.test(url));\n } catch {\n return false;\n }\n};\n\n/**\n * 清理和验证重定向URL,确保安全\n * @param url 待清理的URL\n * @param allowedDomains 允许的域名列表,为空时允许同源URL\n * @returns 清理后的安全URL,如果不安全则返回默认URL\n */\nexport const sanitizeRedirectUrl = (\n url: string,\n allowedDomains: string[] = [],\n defaultUrl: string = '/'\n): string => {\n if (!url || typeof url !== 'string') {\n return defaultUrl;\n }\n\n // 基本URL验证\n if (!isValidUrl(url)) {\n return defaultUrl;\n }\n\n try {\n const urlObj = new URL(url, window.location.origin);\n const currentHost = window.location.hostname;\n\n // 如果没有指定允许的域名,只允许同源URL\n if (allowedDomains.length === 0) {\n if (urlObj.hostname !== currentHost) {\n return defaultUrl;\n }\n } else {\n // 检查是否在允许的域名列表中\n const isAllowedDomain = allowedDomains.some(domain =>\n urlObj.hostname === domain || urlObj.hostname.endsWith(`.${domain}`)\n );\n \n if (!isAllowedDomain && urlObj.hostname !== currentHost) {\n return defaultUrl;\n }\n }\n\n return urlObj.pathname + urlObj.search;\n } catch {\n return defaultUrl;\n }\n};\n\n/**\n * 安全地设置window.location.href,防止XSS攻击\n * @param url 目标URL\n * @param allowedDomains 允许的域名列表\n */\nexport const safeRedirect = (url: string, allowedDomains: string[] = []): void => {\n const safeUrl = sanitizeRedirectUrl(url, allowedDomains);\n window.location.href = safeUrl;\n};\n\n/**\n * 验证和清理事件处理器,防止恶意代码注入\n * @param handler 事件处理函数\n * @returns 安全的事件处理函数\n */\nexport const sanitizeEventHandler = (handler: Function): Function => {\n if (typeof handler !== 'function') {\n return () => {};\n }\n \n return (...args: any[]) => {\n try {\n handler(...args);\n } catch (error) {\n console.error('Event handler error:', error);\n }\n };\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,IAAM,aAAa,CAAC,QAAyB;AAClD,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,SAAS,IAAI,IAAI,KAAK,OAAO,SAAS,MAAM;AAGlD,QAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,SAAS,OAAO,QAAQ,GAAG;AAClD,aAAO;AAAA,IACT;AAGA,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO,CAAC,kBAAkB,KAAK,aAAW,QAAQ,KAAK,GAAG,CAAC;AAAA,EAC7D,QAAE;AACA,WAAO;AAAA,EACT;AACF;AAQO,IAAM,sBAAsB,CACjC,KACA,iBAA2B,CAAC,GAC5B,aAAqB,QACV;AACX,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,WAAO;AAAA,EACT;AAGA,MAAI,CAAC,WAAW,GAAG,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,SAAS,IAAI,IAAI,KAAK,OAAO,SAAS,MAAM;AAClD,UAAM,cAAc,OAAO,SAAS;AAGpC,QAAI,eAAe,WAAW,GAAG;AAC/B,UAAI,OAAO,aAAa,aAAa;AACnC,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AAEL,YAAM,kBAAkB,eAAe;AAAA,QAAK,YAC1C,OAAO,aAAa,UAAU,OAAO,SAAS,SAAS,IAAI,QAAQ;AAAA,MACrE;AAEA,UAAI,CAAC,mBAAmB,OAAO,aAAa,aAAa;AACvD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,OAAO,WAAW,OAAO;AAAA,EAClC,QAAE;AACA,WAAO;AAAA,EACT;AACF;AAOO,IAAM,eAAe,CAAC,KAAa,iBAA2B,CAAC,MAAY;AAChF,QAAM,UAAU,oBAAoB,KAAK,cAAc;AACvD,SAAO,SAAS,OAAO;AACzB;AAOO,IAAM,uBAAuB,CAAC,YAAgC;AACnE,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAEA,SAAO,IAAI,SAAgB;AACzB,QAAI;AACF,cAAQ,GAAG,IAAI;AAAA,IACjB,SAAS,OAAP;AACA,cAAQ,MAAM,wBAAwB,KAAK;AAAA,IAC7C;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["/**\n * 安全工具函数,用于防止XSS等安全漏洞\n */\nimport { getLocation, isReactNative } from './environment';\n\n/**\n * 验证URL是否安全,防止XSS攻击\n * @param url 待验证的URL\n * @returns 是否为安全的URL\n */\nexport const isValidUrl = (url: string): boolean => {\n if (!url || typeof url !== 'string') {\n return false;\n }\n\n try {\n let baseUrl: string;\n if (isReactNative()) {\n // React Native 环境中使用默认的 base URL\n baseUrl = 'http://localhost';\n } else {\n const location = getLocation();\n baseUrl = location ? location.origin : 'http://localhost';\n }\n \n const urlObj = new URL(url, baseUrl);\n \n // 只允许http和https协议,防止javascript:等危险协议\n if (!['http:', 'https:'].includes(urlObj.protocol)) {\n return false;\n }\n\n // 检查是否包含危险字符\n const dangerousPatterns = [\n /javascript:/i,\n /vbscript:/i,\n /data:/i,\n /file:/i,\n /<script/i,\n /onload=/i,\n /onerror=/i,\n /onclick=/i,\n ];\n\n return !dangerousPatterns.some(pattern => pattern.test(url));\n } catch {\n return false;\n }\n};\n\n/**\n * 清理和验证重定向URL,确保安全\n * @param url 待清理的URL\n * @param allowedDomains 允许的域名列表,为空时允许同源URL\n * @returns 清理后的安全URL,如果不安全则返回默认URL\n */\nexport const sanitizeRedirectUrl = (\n url: string,\n allowedDomains: string[] = [],\n defaultUrl: string = '/'\n): string => {\n if (!url || typeof url !== 'string') {\n return defaultUrl;\n }\n\n // 基本URL验证\n if (!isValidUrl(url)) {\n return defaultUrl;\n }\n\n try {\n let baseUrl: string;\n let currentHost: string;\n \n if (isReactNative()) {\n // React Native 环境中使用默认值\n baseUrl = 'http://localhost';\n currentHost = 'localhost';\n } else {\n const location = getLocation();\n if (!location) {\n return defaultUrl;\n }\n baseUrl = location.origin;\n currentHost = location.hostname;\n }\n\n const urlObj = new URL(url, baseUrl);\n\n // 如果没有指定允许的域名,只允许同源URL\n if (allowedDomains.length === 0) {\n if (urlObj.hostname !== currentHost) {\n return defaultUrl;\n }\n } else {\n // 检查是否在允许的域名列表中\n const isAllowedDomain = allowedDomains.some(domain =>\n urlObj.hostname === domain || urlObj.hostname.endsWith(`.${domain}`)\n );\n \n if (!isAllowedDomain && urlObj.hostname !== currentHost) {\n return defaultUrl;\n }\n }\n\n return urlObj.pathname + urlObj.search;\n } catch {\n return defaultUrl;\n }\n};\n\n/**\n * 安全地设置window.location.href,防止XSS攻击\n * @param url 目标URL\n * @param allowedDomains 允许的域名列表\n */\nexport const safeRedirect = (url: string, allowedDomains: string[] = []): void => {\n const safeUrl = sanitizeRedirectUrl(url, allowedDomains);\n \n if (isReactNative()) {\n // React Native 环境中无法直接跳转,可以通过其他方式处理\n console.warn('safeRedirect is not supported in React Native environment');\n return;\n }\n \n const win = typeof window !== 'undefined' ? window : null;\n if (win) {\n win.location.href = safeUrl;\n }\n};\n\n/**\n * 验证和清理事件处理器,防止恶意代码注入\n * @param handler 事件处理函数\n * @returns 安全的事件处理函数\n */\nexport const sanitizeEventHandler = (handler: Function): Function => {\n if (typeof handler !== 'function') {\n return () => {};\n }\n \n return (...args: any[]) => {\n try {\n handler(...args);\n } catch (error) {\n console.error('Event handler error:', error);\n }\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAA2C;AAOpC,IAAM,aAAa,CAAC,QAAyB;AAClD,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,WAAO;AAAA,EACT;AAEA,MAAI;AACF,QAAI;AACJ,YAAI,kCAAc,GAAG;AAEnB,gBAAU;AAAA,IACZ,OAAO;AACL,YAAM,eAAW,gCAAY;AAC7B,gBAAU,WAAW,SAAS,SAAS;AAAA,IACzC;AAEA,UAAM,SAAS,IAAI,IAAI,KAAK,OAAO;AAGnC,QAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,SAAS,OAAO,QAAQ,GAAG;AAClD,aAAO;AAAA,IACT;AAGA,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO,CAAC,kBAAkB,KAAK,aAAW,QAAQ,KAAK,GAAG,CAAC;AAAA,EAC7D,QAAE;AACA,WAAO;AAAA,EACT;AACF;AAQO,IAAM,sBAAsB,CACjC,KACA,iBAA2B,CAAC,GAC5B,aAAqB,QACV;AACX,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,WAAO;AAAA,EACT;AAGA,MAAI,CAAC,WAAW,GAAG,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,QAAI;AACJ,QAAI;AAEJ,YAAI,kCAAc,GAAG;AAEnB,gBAAU;AACV,oBAAc;AAAA,IAChB,OAAO;AACL,YAAM,eAAW,gCAAY;AAC7B,UAAI,CAAC,UAAU;AACb,eAAO;AAAA,MACT;AACA,gBAAU,SAAS;AACnB,oBAAc,SAAS;AAAA,IACzB;AAEA,UAAM,SAAS,IAAI,IAAI,KAAK,OAAO;AAGnC,QAAI,eAAe,WAAW,GAAG;AAC/B,UAAI,OAAO,aAAa,aAAa;AACnC,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AAEL,YAAM,kBAAkB,eAAe;AAAA,QAAK,YAC1C,OAAO,aAAa,UAAU,OAAO,SAAS,SAAS,IAAI,QAAQ;AAAA,MACrE;AAEA,UAAI,CAAC,mBAAmB,OAAO,aAAa,aAAa;AACvD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,OAAO,WAAW,OAAO;AAAA,EAClC,QAAE;AACA,WAAO;AAAA,EACT;AACF;AAOO,IAAM,eAAe,CAAC,KAAa,iBAA2B,CAAC,MAAY;AAChF,QAAM,UAAU,oBAAoB,KAAK,cAAc;AAEvD,UAAI,kCAAc,GAAG;AAEnB,YAAQ,KAAK,2DAA2D;AACxE;AAAA,EACF;AAEA,QAAM,MAAM,OAAO,WAAW,cAAc,SAAS;AACrD,MAAI,KAAK;AACP,QAAI,SAAS,OAAO;AAAA,EACtB;AACF;AAOO,IAAM,uBAAuB,CAAC,YAAgC;AACnE,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAEA,SAAO,IAAI,SAAgB;AACzB,QAAI;AACF,cAAQ,GAAG,IAAI;AAAA,IACjB,SAAS,OAAP;AACA,cAAQ,MAAM,wBAAwB,KAAK;AAAA,IAC7C;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,5 +2,8 @@ declare const CookieUtils: {
2
2
  get(name: string): string | null;
3
3
  set(name: string, value: string, expires?: Date, path?: string, domain?: string, secure?: boolean): void;
4
4
  unset(name: string, path?: string, domain?: string, secure?: boolean): void;
5
+ getAsync(name: string): Promise<string | null>;
6
+ setAsync(name: string, value: string, expires?: Date, path?: string, domain?: string, secure?: boolean): Promise<void>;
7
+ unsetAsync(name: string, path?: string, domain?: string, secure?: boolean): Promise<void>;
5
8
  };
6
9
  export default CookieUtils;