@boteteam/utils 0.0.20 → 0.0.22

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 (104) hide show
  1. package/README.md +23 -23
  2. package/dist/cjs/CookieUtils.d.ts +3 -0
  3. package/dist/cjs/CookieUtils.js +22 -5
  4. package/dist/cjs/CookieUtils.js.map +2 -2
  5. package/dist/cjs/asyncStorage.js.map +1 -1
  6. package/dist/cjs/environment.d.ts +12 -0
  7. package/dist/cjs/environment.js +84 -0
  8. package/dist/cjs/environment.js.map +7 -0
  9. package/dist/cjs/file.js +1 -1
  10. package/dist/cjs/file.js.map +2 -2
  11. package/dist/cjs/fileToBase64.js.map +1 -1
  12. package/dist/cjs/formatModule/formatModuleData.js.map +1 -1
  13. package/dist/cjs/formatModule/helpers/formRulsRegMap.js.map +1 -1
  14. package/dist/cjs/formatModule/helpers/formatCarouselProps.js.map +1 -1
  15. package/dist/cjs/formatModule/helpers/formatChartsProps.js.map +1 -1
  16. package/dist/cjs/formatModule/helpers/formatDescriptionsProps.js.map +1 -1
  17. package/dist/cjs/formatModule/helpers/formatEchartCommonProps.js.map +1 -1
  18. package/dist/cjs/formatModule/helpers/formatEchartLineProps.js.map +1 -1
  19. package/dist/cjs/formatModule/helpers/formatEchartPieProps.js.map +1 -1
  20. package/dist/cjs/formatModule/helpers/formatFormProps.js.map +1 -1
  21. package/dist/cjs/formatModule/helpers/formatHighCodeProps.js.map +1 -1
  22. package/dist/cjs/formatModule/helpers/formatImageProps.js.map +1 -1
  23. package/dist/cjs/formatModule/helpers/formatListProps.js.map +1 -1
  24. package/dist/cjs/formatModule/helpers/formatLoopProps.js.map +1 -1
  25. package/dist/cjs/formatModule/helpers/formatStepsProps.js.map +1 -1
  26. package/dist/cjs/formatModule/helpers/formatStyleProps.js.map +1 -1
  27. package/dist/cjs/formatModule/helpers/formatTableProps.js.map +1 -1
  28. package/dist/cjs/formatModule/helpers/index.js.map +1 -1
  29. package/dist/cjs/formatModule/helpers/patternTransitionRegExp.js.map +1 -1
  30. package/dist/cjs/formatModule/helpers/staticCodeAssemble.js.map +1 -1
  31. package/dist/cjs/formatModule/helpers/stringPramarsValTransition.js.map +1 -1
  32. package/dist/cjs/formatModule/helpers/stringScriptExecution.js.map +1 -1
  33. package/dist/cjs/formatModule/helpers/urlPrefix.js.map +1 -1
  34. package/dist/cjs/http.d.ts +15 -7
  35. package/dist/cjs/http.js +71 -12
  36. package/dist/cjs/http.js.map +3 -3
  37. package/dist/cjs/index.d.ts +2 -1
  38. package/dist/cjs/index.js +17 -0
  39. package/dist/cjs/index.js.map +2 -2
  40. package/dist/cjs/loopPageStaticCodeMap.js.map +1 -1
  41. package/dist/cjs/markdownEscape.js.map +1 -1
  42. package/dist/cjs/pathArgsUtils.js +15 -2
  43. package/dist/cjs/pathArgsUtils.js.map +2 -2
  44. package/dist/cjs/scriptExecution.js.map +1 -1
  45. package/dist/cjs/securityUtils.d.ts +0 -3
  46. package/dist/cjs/securityUtils.js +31 -4
  47. package/dist/cjs/securityUtils.js.map +2 -2
  48. package/dist/cjs/stringUtils.js.map +1 -1
  49. package/dist/cjs/treeUtils.js.map +1 -1
  50. package/dist/esm/CookieUtils.d.ts +3 -0
  51. package/dist/esm/CookieUtils.js +57 -5
  52. package/dist/esm/CookieUtils.js.map +1 -1
  53. package/dist/esm/asyncStorage.js +4 -4
  54. package/dist/esm/asyncStorage.js.map +1 -1
  55. package/dist/esm/environment.d.ts +12 -0
  56. package/dist/esm/environment.js +63 -0
  57. package/dist/esm/environment.js.map +1 -0
  58. package/dist/esm/file.js +25 -25
  59. package/dist/esm/file.js.map +1 -1
  60. package/dist/esm/fileToBase64.js +4 -4
  61. package/dist/esm/fileToBase64.js.map +1 -1
  62. package/dist/esm/formatModule/formatModuleData.js.map +1 -1
  63. package/dist/esm/formatModule/helpers/formRulsRegMap.js.map +1 -1
  64. package/dist/esm/formatModule/helpers/formatCarouselProps.js.map +1 -1
  65. package/dist/esm/formatModule/helpers/formatChartsProps.js.map +1 -1
  66. package/dist/esm/formatModule/helpers/formatDescriptionsProps.js.map +1 -1
  67. package/dist/esm/formatModule/helpers/formatEchartCommonProps.js.map +1 -1
  68. package/dist/esm/formatModule/helpers/formatEchartLineProps.js.map +1 -1
  69. package/dist/esm/formatModule/helpers/formatEchartPieProps.js.map +1 -1
  70. package/dist/esm/formatModule/helpers/formatFormProps.js.map +1 -1
  71. package/dist/esm/formatModule/helpers/formatHighCodeProps.js.map +1 -1
  72. package/dist/esm/formatModule/helpers/formatImageProps.js.map +1 -1
  73. package/dist/esm/formatModule/helpers/formatListProps.js.map +1 -1
  74. package/dist/esm/formatModule/helpers/formatLoopProps.js.map +1 -1
  75. package/dist/esm/formatModule/helpers/formatStepsProps.js.map +1 -1
  76. package/dist/esm/formatModule/helpers/formatStyleProps.js.map +1 -1
  77. package/dist/esm/formatModule/helpers/formatTableProps.js.map +1 -1
  78. package/dist/esm/formatModule/helpers/index.js.map +1 -1
  79. package/dist/esm/formatModule/helpers/patternTransitionRegExp.js.map +1 -1
  80. package/dist/esm/formatModule/helpers/staticCodeAssemble.js +4 -4
  81. package/dist/esm/formatModule/helpers/staticCodeAssemble.js.map +1 -1
  82. package/dist/esm/formatModule/helpers/stringPramarsValTransition.js.map +1 -1
  83. package/dist/esm/formatModule/helpers/stringScriptExecution.js.map +1 -1
  84. package/dist/esm/formatModule/helpers/urlPrefix.js.map +1 -1
  85. package/dist/esm/http.d.ts +15 -7
  86. package/dist/esm/http.js +118 -62
  87. package/dist/esm/http.js.map +1 -1
  88. package/dist/esm/index.d.ts +2 -1
  89. package/dist/esm/index.js +2 -1
  90. package/dist/esm/index.js.map +1 -1
  91. package/dist/esm/loopPageStaticCodeMap.js.map +1 -1
  92. package/dist/esm/markdownEscape.js.map +1 -1
  93. package/dist/esm/pathArgsUtils.js +26 -11
  94. package/dist/esm/pathArgsUtils.js.map +1 -1
  95. package/dist/esm/scriptExecution.js.map +1 -1
  96. package/dist/esm/securityUtils.d.ts +0 -3
  97. package/dist/esm/securityUtils.js +53 -23
  98. package/dist/esm/securityUtils.js.map +1 -1
  99. package/dist/esm/stringUtils.js.map +1 -1
  100. package/dist/esm/treeUtils.js +8 -8
  101. package/dist/esm/treeUtils.js.map +1 -1
  102. package/dist/umd/index.min.js +1 -1
  103. package/dist/umd/index.min.js.map +1 -1
  104. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/http.ts"],
4
- "sourcesContent": ["// import CookieUtil from './CookieUtils';\nimport security from '@lingxiteam/security';\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 const token = sessionStorage.getItem('token') as string;\n config.headers.Authorization = `Bearer ${token}`;\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/**\n * 构造管理平台或机器人工程的完整访问地址\n * @param url 环境变量中配置的地址\n */\nexport const getAccessUrl = (url: string | undefined) => {\n // 未配置,表示使用当前工程地址,去掉 hash 部分\n if (!url) {\n return new URL('', window.location.href).toString();\n }\n // 一串数字表示是端口号,与当前工程使用相同的 hostname 以兼容使用不同 IP (回环地址、内网 IP)访问的情况\n if (/^\\d+$/.test(url)) {\n return `http://${window.location.hostname}:${url}/`;\n }\n // 完整地址/相对路径/绝对路径,根据当前工程地址解析\n return new URL(url, window.location.href).toString();\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 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: (tenantId?: string, sceneId?: string, updatedTime?: string) => {\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: ({ tenantId, docId, token, isSecurity = true }: { [key: string]: string | boolean }) => {\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: ({ tenantId, docId, token, path, isSecurity = true }: { [key: string]: string | boolean }) => {\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 = sessionStorage.getItem(tenantIdSessionKey) as string || 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 = (sessionStorage.getItem(tenantIdSessionKey) as string) || 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": ["security"]
4
+ "sourcesContent": ["// import CookieUtil from './CookieUtils';\r\nimport security from '@lingxiteam/security';\r\nimport { getLocation } from './environment';\r\n\r\nexport const tenantIdSessionKey: string = 'botSelectedTenantID';\r\n\r\nconst http = (url: string, config: any) => {\r\n // const token = localStorage.getItem('X-Auth-Token');\r\n // config.headers['X-Auth-Token'] = token;\r\n config.headers['content-type'] = 'application/json;charset=UTF-8';\r\n\r\n // 获取 token\r\n const token = sessionStorage.getItem('token') as string;\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n // 兼容生产环境\r\n config.headers['Tenant-Id'] = currentTenantId;\r\n\r\n return new Promise((resolve, rejects) => {\r\n fetch(url, config)\r\n .then((response) => {\r\n const contentType: string | null = response.headers.get('content-type');\r\n if (contentType) {\r\n if (\r\n /application\\/octet-stream/.test(contentType) ||\r\n /application\\/zip/.test(contentType) ||\r\n /application\\/vnd\\.ms-excel/.test(contentType)\r\n ) {\r\n return response.blob();\r\n }\r\n if (/application\\/json/.test(contentType)) {\r\n return response.json();\r\n }\r\n if (/text\\/html/.test(contentType)) {\r\n return response.text();\r\n }\r\n }\r\n return response;\r\n })\r\n .then((data) => {\r\n if (Object.prototype.toString.call(data) === '[object Blob]') {\r\n if (\r\n typeof data === 'object' &&\r\n Object.hasOwnProperty.call(data, 'resultCode') &&\r\n String(data.resultCode) !== '0'\r\n ) {\r\n return Promise.reject(data);\r\n }\r\n return data;\r\n }\r\n if (Array.isArray(data)) return data;\r\n if (String(data?.resultCode) === '0') {\r\n resolve(data?.resultObject);\r\n }\r\n return data;\r\n })\r\n .catch((err) => {\r\n rejects(err);\r\n });\r\n });\r\n};\r\n\r\nlet baseUrl = `${process.env.REACT_APP_REQ_PREFIX}/bote`;\r\nconst getUrl = (url: string, params: any = {}) => {\r\n let paramsArr = '';\r\n if (params && Object.keys(params).length > 0) {\r\n paramsArr = Object.keys(params)\r\n .map((item) => `${item}=${params[item]}`)\r\n .join('&');\r\n }\r\n return `${baseUrl}${url}${paramsArr ? `?${paramsArr}` : ''}`;\r\n};\r\n\r\n// 当前租户ID\r\nlet currentTenantId = '';\r\n\r\n/**\r\n * 构造管理平台或机器人工程的完整访问地址\r\n * @param url 环境变量中配置的地址\r\n */\r\nexport const getAccessUrl = (url: string | undefined) => {\r\n // 未配置,表示使用当前工程地址,去掉 hash 部分\r\n if (!url) {\r\n const location = getLocation();\r\n if (location) {\r\n return new URL('', location.href).toString();\r\n }\r\n return null;\r\n }\r\n // 一串数字表示是端口号,与当前工程使用相同的 hostname 以兼容使用不同 IP (回环地址、内网 IP)访问的情况\r\n if (/^\\d+$/.test(url)) {\r\n const location = getLocation();\r\n if (location) {\r\n return `http://${location.hostname}:${url}/`;\r\n }\r\n return `http://localhost:${url}/`;\r\n }\r\n const location = getLocation();\r\n if (location) {\r\n return new URL(url, location.href).toString();\r\n }\r\n return url;\r\n};\r\n\r\n// 管理平台访问地址\r\nconst managerUrl = getAccessUrl(process.env.BOTE_MANAGER_URL);\r\n// 机器人工程访问地址\r\nconst botUrl = getAccessUrl(process.env.BOTE_BOT_URL);\r\n\r\n/**\r\n * 获取管理平台地址\r\n *\r\n * @param route 路由(\"#\" 后面的部分),可选\r\n */\r\nconst getManagerUrl = (route?: string | null) => route ? `${managerUrl}#${route}` : managerUrl;\r\n\r\n/**\r\n * 获取机器人工程访问地址\r\n *\r\n * @param route 路由(\"#\" 后面的部分),可选\r\n */\r\nconst getBotUrl = (route?: string | null) => route ? `${botUrl}#${route}` : botUrl;\r\n\r\nconst request = {\r\n getBaseUrl: () => baseUrl,\r\n setUrlPrefix: (prefix: string) => {\r\n baseUrl = `${prefix}${baseUrl}`;\r\n },\r\n setTenantId: (tenantId: string) => {\r\n currentTenantId = tenantId;\r\n },\r\n getManagerUrl,\r\n getBotUrl,\r\n // 获取智能应用图标地址\r\n getBotIconUrl: (tenantId?: string, botId?: string, updatedTime?: string, isSecurity = true) => {\r\n if (tenantId && botId) {\r\n let url = `${baseUrl}/manager/bot/botIcon?tenantId=${tenantId}&botId=${botId}`;\r\n // 管理平台构造图标链接时加上更新时间参数,可以确保修改图标后浏览器能立即请求新图标\r\n // 浏览器的缓存策略有些激进,不刷新页面不会重新请求图片(单页应用很少会刷新页面),即使后端返回了 Cache-Control: no-cache\r\n if (updatedTime) {\r\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\r\n }\r\n if (isSecurity) {\r\n url = security.autoSecurityWithUrl(url);\r\n }\r\n return url;\r\n }\r\n return undefined;\r\n },\r\n // 获取智能体图标地址\r\n getSceneIconUrl: (\r\n tenantId?: string,\r\n sceneId?: string,\r\n updatedTime?: string,\r\n isSecurity = true,\r\n ) => {\r\n if (tenantId && sceneId) {\r\n let url = `${baseUrl}/manager/scene/sceneIcon?tenantId=${tenantId}&sceneId=${sceneId}`;\r\n if (updatedTime) {\r\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\r\n }\r\n if (isSecurity) {\r\n url = security.autoSecurityWithUrl(url);\r\n }\r\n return url;\r\n }\r\n return undefined;\r\n },\r\n // 获取机器人配置图标\r\n getBotPageSettingIcon: ({\r\n botId,\r\n tenantId,\r\n type,\r\n updatedTime,\r\n isSecurity = true,\r\n }: {\r\n botId: string,\r\n tenantId?: string,\r\n type: 'welcomeBannerlg' | 'welcomeBannerxs' | 'welcomeIcon',\r\n updatedTime?: string,\r\n isSecurity?: boolean,\r\n }) => {\r\n let url = `${baseUrl}/manager/bot/getPageSettingIconByType?tenantId=${tenantId}&botId=${botId}&type=${type}`;\r\n if (updatedTime) {\r\n url += `&_=${updatedTime.replace(/\\D/g, '')}`;\r\n }\r\n if (isSecurity) {\r\n url = security.autoSecurityWithUrl(url);\r\n }\r\n return url;\r\n },\r\n // 构造 DocChain 相关地址的辅助方法\r\n docChain: {\r\n referenceDocUrl: ({\r\n tenantId,\r\n docId,\r\n token,\r\n }: {\r\n [key: string]: string;\r\n }) => {\r\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}`;\r\n if (token) {\r\n url += `&token=${token}`;\r\n }\r\n return url;\r\n },\r\n referenceDocChunkUrl: ({\r\n tenantId,\r\n docId,\r\n chunkId,\r\n token,\r\n score,\r\n rank,\r\n docType,\r\n }: {\r\n [key: string]: string;\r\n }) => {\r\n let url = `${managerUrl}#/documentChunk?tenantId=${tenantId}&docId=${docId}&chunkId=${chunkId}&score=${score}&rank=${rank}&docType=${docType}`;\r\n if (token) {\r\n url += `&token=${token}`;\r\n }\r\n return url;\r\n },\r\n // 下载文档接口地址\r\n downloadDocUrl: ({\r\n tenantId,\r\n docId,\r\n token,\r\n isSecurity = true,\r\n }: {\r\n [key: string]: string | boolean;\r\n }) => {\r\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=src&doc_id=${docId}`;\r\n if (token) {\r\n url += `&token=${token}`;\r\n }\r\n if (isSecurity) {\r\n url = security.autoSecurityWithUrl(url);\r\n }\r\n return url;\r\n },\r\n // 图片地址\r\n imageUrl: ({\r\n tenantId,\r\n docId,\r\n token,\r\n path,\r\n isSecurity = true,\r\n }: {\r\n [key: string]: string | boolean;\r\n }) => {\r\n let url = `${baseUrl}/docchain/v1/doc/read?tenantId=${tenantId}&read_format=path&doc_id=${docId}&path=${encodeURIComponent(\r\n path,\r\n )}`;\r\n if (token) {\r\n url += `&token=${token}`;\r\n }\r\n if (isSecurity) {\r\n url = security.autoSecurityWithUrl(url);\r\n }\r\n return url;\r\n },\r\n },\r\n // 构造 tenantKnowledge 相关地址的辅助方法\r\n tenantKnowledge: {\r\n referenceDocUrl: ({\r\n tenantId,\r\n docId,\r\n token,\r\n knowledgeType,\r\n docName,\r\n }: {\r\n [key: string]: string;\r\n }) => {\r\n let url = `${managerUrl}#/referencesDetail?tenantId=${tenantId}&docId=${docId}&knowledgeType=${knowledgeType}&casPortal=true&docName=${docName}`;\r\n if (token) {\r\n url += `&token=${token}`;\r\n }\r\n return url;\r\n },\r\n // 下载文档接口地址\r\n downloadDocUrl: ({ knowledgeType, docId }: { [key: string]: string }) => {\r\n const url = `${baseUrl}/knowledge/access/downloadKnowledgeDoc?knowledgeType=${knowledgeType}&docId=${docId}`;\r\n\r\n return url;\r\n },\r\n },\r\n get: (url: string, cfg: any) => {\r\n const { params, ...rest }: any = cfg || {};\r\n // 拼租户ID 到参数中\r\n if (!params.tenantId && currentTenantId) {\r\n params.tenantId = currentTenantId;\r\n }\r\n\r\n const _url = getUrl(url, params);\r\n return http(_url, {\r\n method: 'GET',\r\n headers: {},\r\n ...rest,\r\n });\r\n },\r\n post: (url: string, cfg: any) => {\r\n const { data, params, ...rest }: any = cfg || {};\r\n let _body;\r\n\r\n if (data instanceof FormData) {\r\n // 拼租户ID 到参数中\r\n if (!data.get('tenantId') && currentTenantId) {\r\n data.append('tenantId', currentTenantId);\r\n }\r\n\r\n _body = data;\r\n } else {\r\n // 拼租户ID 到参数中\r\n if (!data.tenantId && currentTenantId) {\r\n data.tenantId = currentTenantId;\r\n }\r\n\r\n _body = JSON.stringify(data || {});\r\n }\r\n\r\n const _url = getUrl(url, params);\r\n return http(_url, {\r\n body: _body,\r\n method: 'POST',\r\n headers: {},\r\n ...rest,\r\n });\r\n },\r\n};\r\n\r\nexport { request };\r\n"],
5
+ "mappings": "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",
6
+ "names": ["location", "security"]
7
7
  }
@@ -10,6 +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, isMobile } from './environment';
13
14
  import { request, tenantIdSessionKey } from './http';
14
15
  export type { fileToBase64Type, asyncLocalStorageType, asyncSessionStorageType, scriptExecutionType, };
15
- 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, request, tenantIdSessionKey, };
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, isMobile, request, tenantIdSessionKey, };
package/dist/cjs/index.js CHANGED
@@ -39,12 +39,20 @@ __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
+ isMobile: () => import_environment.isMobile,
52
+ isNode: () => import_environment.isNode,
53
+ isReactNative: () => import_environment.isReactNative,
47
54
  isValidUrl: () => import_securityUtils.isValidUrl,
55
+ isWeb: () => import_environment.isWeb,
48
56
  loopPageStaticCodeMap: () => import_loopPageStaticCodeMap.default,
49
57
  patternTransitionRegExp: () => import_helpers.patternTransitionRegExp,
50
58
  replaceParamsValue: () => import_treeUtils.replaceParamsValue,
@@ -72,6 +80,7 @@ var import_loopPageStaticCodeMap = __toESM(require("./loopPageStaticCodeMap"));
72
80
  var import_scriptExecution = __toESM(require("./scriptExecution"));
73
81
  var import_file = require("./file");
74
82
  var import_securityUtils = require("./securityUtils");
83
+ var import_environment = require("./environment");
75
84
  var import_http = require("./http");
76
85
  var _ = require("lodash");
77
86
  _.noConflict();
@@ -87,12 +96,20 @@ _.noConflict();
87
96
  formatModuleData,
88
97
  generateRandom18Int,
89
98
  getDataArr,
99
+ getDocument,
100
+ getEnvironment,
90
101
  getFileUrlById,
102
+ getLocation,
91
103
  getParamsContentByParamKeys,
92
104
  getRemoteComponentUrlByCode,
93
105
  getRemoteComponentUrlById,
94
106
  getSearchObj,
107
+ getWindow,
108
+ isMobile,
109
+ isNode,
110
+ isReactNative,
95
111
  isValidUrl,
112
+ isWeb,
96
113
  loopPageStaticCodeMap,
97
114
  patternTransitionRegExp,
98
115
  replaceParamsValue,
@@ -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\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 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,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;AAEP,kBAA4C;AAG5C,IAAM,IAAI,QAAQ,QAAQ;AAE1B,EAAE,WAAW;",
4
+ "sourcesContent": ["import fileToBase64, { type fileToBase64Type } from './fileToBase64';\r\nimport CookieUtils from './CookieUtils';\r\nimport { argsToString, argsToObject, getSearchObj } from './pathArgsUtils';\r\nimport {\r\n asyncLocalStorage,\r\n asyncSessionStorage,\r\n type asyncLocalStorageType,\r\n type asyncSessionStorageType,\r\n} from './asyncStorage';\r\nimport {\r\n camelToSnake,\r\n underscoreToCamelCase,\r\n generateRandom18Int,\r\n} from './stringUtils';\r\nimport {\r\n getDataArr,\r\n replaceParamsValue,\r\n getParamsContentByParamKeys,\r\n replaceParamsValueForEvent,\r\n} from './treeUtils';\r\nimport formatModuleData from './formatModule/formatModuleData';\r\nimport {\r\n patternTransitionRegExp,\r\n stringPramarsValTransition,\r\n stringScriptExecution,\r\n} from './formatModule/helpers';\r\nimport loopPageStaticCodeMap from './loopPageStaticCodeMap';\r\nimport scriptExecution, { type scriptExecutionType } from './scriptExecution';\r\nimport {\r\n getFileUrlById,\r\n getRemoteComponentUrlByCode,\r\n getRemoteComponentUrlById,\r\n} from './file';\r\nimport {\r\n isValidUrl,\r\n sanitizeRedirectUrl,\r\n safeRedirect,\r\n sanitizeEventHandler,\r\n} from './securityUtils';\r\nimport {\r\n isReactNative,\r\n isWeb,\r\n isNode,\r\n getEnvironment,\r\n getWindow,\r\n getDocument,\r\n getLocation,\r\n isMobile,\r\n} from './environment';\r\n\r\nimport { request, tenantIdSessionKey } from './http';\r\n\r\n// 避免 _对象 和其他库冲突\r\nconst _ = require('lodash');\r\n\r\n_.noConflict();\r\n\r\nexport type {\r\n fileToBase64Type,\r\n asyncLocalStorageType,\r\n asyncSessionStorageType,\r\n scriptExecutionType,\r\n};\r\n\r\nexport {\r\n fileToBase64,\r\n CookieUtils,\r\n argsToString,\r\n argsToObject,\r\n getSearchObj,\r\n asyncLocalStorage,\r\n asyncSessionStorage,\r\n camelToSnake,\r\n underscoreToCamelCase,\r\n generateRandom18Int,\r\n formatModuleData,\r\n patternTransitionRegExp,\r\n stringPramarsValTransition,\r\n loopPageStaticCodeMap,\r\n getDataArr,\r\n replaceParamsValue,\r\n replaceParamsValueForEvent,\r\n getParamsContentByParamKeys,\r\n getFileUrlById,\r\n getRemoteComponentUrlByCode,\r\n getRemoteComponentUrlById,\r\n stringScriptExecution,\r\n scriptExecution,\r\n isValidUrl,\r\n sanitizeRedirectUrl,\r\n safeRedirect,\r\n sanitizeEventHandler,\r\n isReactNative,\r\n isWeb,\r\n isNode,\r\n getEnvironment,\r\n getWindow,\r\n getDocument,\r\n getLocation,\r\n isMobile,\r\n request,\r\n tenantIdSessionKey,\r\n};\r\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;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,yBASO;AAEP,kBAA4C;AAG5C,IAAM,IAAI,QAAQ,QAAQ;AAE1B,EAAE,WAAW;",
6
6
  "names": ["CookieUtils", "fileToBase64", "formatModuleData", "loopPageStaticCodeMap", "scriptExecution"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/loopPageStaticCodeMap.ts"],
4
- "sourcesContent": ["const loopPageStaticCodeMap = (items: { [key: string]: any }[]) => {\n const staticCodeList: string[] = [];\n const LoopStaticCode = (items: { [key: string]: any }[]) => {\n if (Array.isArray(items)) {\n items.forEach((item) => {\n if (Array.isArray(item?.compProps?.attrs)) {\n item?.compProps?.attrs?.forEach((attr:any) => {\n if (attr?.staticCode && !staticCodeList.includes(attr?.staticCode)) {\n staticCodeList.push(attr?.staticCode);\n }\n });\n }\n if (\n (item?.compProps?.dataOptions?.staticCode &&\n !staticCodeList.includes(item?.compProps?.dataOptions?.staticCode))\n ) {\n staticCodeList.push(item?.compProps?.dataOptions?.staticCode);\n }\n LoopStaticCode(item?.children);\n });\n }\n };\n LoopStaticCode(items);\n return staticCodeList;\n};\n\nexport default loopPageStaticCodeMap;\n"],
4
+ "sourcesContent": ["const loopPageStaticCodeMap = (items: { [key: string]: any }[]) => {\r\n const staticCodeList: string[] = [];\r\n const LoopStaticCode = (items: { [key: string]: any }[]) => {\r\n if (Array.isArray(items)) {\r\n items.forEach((item) => {\r\n if (Array.isArray(item?.compProps?.attrs)) {\r\n item?.compProps?.attrs?.forEach((attr:any) => {\r\n if (attr?.staticCode && !staticCodeList.includes(attr?.staticCode)) {\r\n staticCodeList.push(attr?.staticCode);\r\n }\r\n });\r\n }\r\n if (\r\n (item?.compProps?.dataOptions?.staticCode &&\r\n !staticCodeList.includes(item?.compProps?.dataOptions?.staticCode))\r\n ) {\r\n staticCodeList.push(item?.compProps?.dataOptions?.staticCode);\r\n }\r\n LoopStaticCode(item?.children);\r\n });\r\n }\r\n };\r\n LoopStaticCode(items);\r\n return staticCodeList;\r\n};\r\n\r\nexport default loopPageStaticCodeMap;\r\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,wBAAwB,CAAC,UAAoC;AACjE,QAAM,iBAA2B,CAAC;AAClC,QAAM,iBAAiB,CAACA,WAAoC;AAC1D,QAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,MAAAA,OAAM,QAAQ,CAAC,SAAS;AAJ9B;AAKQ,YAAI,MAAM,SAAQ,kCAAM,cAAN,mBAAiB,KAAK,GAAG;AACzC,mDAAM,cAAN,mBAAiB,UAAjB,mBAAwB,QAAQ,CAAC,SAAa;AAC5C,iBAAI,6BAAM,eAAc,CAAC,eAAe,SAAS,6BAAM,UAAU,GAAG;AAClE,6BAAe,KAAK,6BAAM,UAAU;AAAA,YACtC;AAAA,UACF;AAAA,QACF;AACA,cACG,wCAAM,cAAN,mBAAiB,gBAAjB,mBAA8B,eAC/B,CAAC,eAAe,UAAS,wCAAM,cAAN,mBAAiB,gBAAjB,mBAA8B,UAAU,GACjE;AACA,yBAAe,MAAK,wCAAM,cAAN,mBAAiB,gBAAjB,mBAA8B,UAAU;AAAA,QAC9D;AACA,uBAAe,6BAAM,QAAQ;AAAA,MAC/B,CAAC;AAAA,IACH;AAAA,EACF;AACA,iBAAe,KAAK;AACpB,SAAO;AACT;AAEA,IAAO,gCAAQ;",
6
6
  "names": ["items"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/markdownEscape.ts"],
4
- "sourcesContent": ["const replacements = [\n [/\\*/g, '\\\\*', 'asterisks'],\n [/#/g, '\\\\#', 'numberSigns'],\n [/\\//g, '\\\\/', 'slashes'],\n [/\\(/g, '\\\\(', 'parentheses'],\n [/\\)/g, '\\\\)', 'parentheses'],\n [/\\[/g, '\\\\[', 'squareBrackets'],\n [/\\]/g, '\\\\]', 'squareBrackets'],\n [/</g, '&lt;', 'angleBrackets'],\n [/>/g, '&gt;', 'angleBrackets'],\n [/_/g, '\\\\_', 'underscores'],\n];\n\nconst escape = (string:string, skips:string[] = []) => {\n const _skips = Array.isArray(skips) ? skips : [];\n if (string && typeof string === 'string') {\n return replacements.reduce((string, replacement) => {\n const name = replacement?.[2];\n return name && _skips.indexOf(name as string) !== -1\n ? string\n : string.replace(replacement?.[0], replacement?.[1] as string);\n }, string);\n }\n return string;\n};\n\n\nexport default escape;\n"],
4
+ "sourcesContent": ["const replacements = [\r\n [/\\*/g, '\\\\*', 'asterisks'],\r\n [/#/g, '\\\\#', 'numberSigns'],\r\n [/\\//g, '\\\\/', 'slashes'],\r\n [/\\(/g, '\\\\(', 'parentheses'],\r\n [/\\)/g, '\\\\)', 'parentheses'],\r\n [/\\[/g, '\\\\[', 'squareBrackets'],\r\n [/\\]/g, '\\\\]', 'squareBrackets'],\r\n [/</g, '&lt;', 'angleBrackets'],\r\n [/>/g, '&gt;', 'angleBrackets'],\r\n [/_/g, '\\\\_', 'underscores'],\r\n];\r\n\r\nconst escape = (string:string, skips:string[] = []) => {\r\n const _skips = Array.isArray(skips) ? skips : [];\r\n if (string && typeof string === 'string') {\r\n return replacements.reduce((string, replacement) => {\r\n const name = replacement?.[2];\r\n return name && _skips.indexOf(name as string) !== -1\r\n ? string\r\n : string.replace(replacement?.[0], replacement?.[1] as string);\r\n }, string);\r\n }\r\n return string;\r\n};\r\n\r\n\r\nexport default escape;\r\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,eAAe;AAAA,EACnB,CAAC,OAAO,OAAO,WAAW;AAAA,EAC1B,CAAC,MAAM,OAAO,aAAa;AAAA,EAC3B,CAAC,OAAO,OAAO,SAAS;AAAA,EACxB,CAAC,OAAO,OAAO,aAAa;AAAA,EAC5B,CAAC,OAAO,OAAO,aAAa;AAAA,EAC5B,CAAC,OAAO,OAAO,gBAAgB;AAAA,EAC/B,CAAC,OAAO,OAAO,gBAAgB;AAAA,EAC/B,CAAC,MAAM,QAAQ,eAAe;AAAA,EAC9B,CAAC,MAAM,QAAQ,eAAe;AAAA,EAC9B,CAAC,MAAM,OAAO,aAAa;AAC7B;AAEA,IAAM,SAAS,CAAC,QAAe,QAAiB,CAAC,MAAM;AACrD,QAAM,SAAS,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC;AAC/C,MAAI,UAAU,OAAO,WAAW,UAAU;AACxC,WAAO,aAAa,OAAO,CAACA,SAAQ,gBAAgB;AAClD,YAAM,OAAO,2CAAc;AAC3B,aAAO,QAAQ,OAAO,QAAQ,IAAc,MAAM,KAC9CA,UACAA,QAAO,QAAQ,2CAAc,IAAI,2CAAc,EAAY;AAAA,IACjE,GAAG,MAAM;AAAA,EACX;AACA,SAAO;AACT;AAGA,IAAO,yBAAQ;",
6
6
  "names": ["string"]
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';\r\n\r\n/**\r\n * 对象参数转字符串\r\n * @param params\r\n * @returns\r\n */\r\nconst argsToString = (params: { [key: string]: any }) => {\r\n const paramsAttr: string[] = [];\r\n try {\r\n if (\r\n params &&\r\n !Array.isArray(params) &&\r\n typeof params === 'object' &&\r\n Object.keys(params).length > 0\r\n ) {\r\n Object.keys(params).forEach((item: string) => {\r\n paramsAttr.push(`${item}=${params[item]}`);\r\n });\r\n return paramsAttr?.join('&') as string;\r\n }\r\n return '';\r\n } catch {\r\n return '';\r\n }\r\n};\r\n\r\n/**\r\n * 路径参数转对象\r\n * @param params\r\n * @returns\r\n */\r\nconst argsToObject = (params: string) => {\r\n const res: { [key: string]: any } = {};\r\n const _params = typeof params === 'string' && params ? params : '';\r\n const paramsArr = _params.startsWith('?') ? _params.slice(1).split('&') : _params.split('&');\r\n paramsArr.forEach((item: string) => {\r\n const itemArr: any[] = item.split('=');\r\n const key = itemArr[0];\r\n let value = itemArr[1];\r\n switch (value) {\r\n case 'false':\r\n value = false;\r\n break;\r\n case 'true':\r\n value = true;\r\n break;\r\n case 'undefined':\r\n case 'null':\r\n value = '';\r\n break;\r\n default:\r\n break;\r\n }\r\n res[key] = value;\r\n });\r\n return res as { [key: string]: any };\r\n};\r\n\r\nconst getSearchObj = (url?: string) => {\r\n // 如果没有提供 url,尝试从当前环境获取\r\n let targetUrl = url;\r\n if (!targetUrl) {\r\n if (isReactNative()) {\r\n // React Native 环境中无法获取当前 URL,返回空对象\r\n return {};\r\n }\r\n const location = getLocation();\r\n if (location) {\r\n targetUrl = location.href;\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n const urlArr = targetUrl.split('?');\r\n if (urlArr.length === 1) return {};\r\n const search = urlArr.pop();\r\n const objs = search ? search.split('&') : [];\r\n const obj: { [key: string]: any } = {};\r\n\r\n objs.forEach((value) => {\r\n const [k, v] = value.split('=');\r\n if (v) {\r\n obj[decodeURIComponent(k)] = decodeURIComponent(v);\r\n }\r\n });\r\n\r\n return obj as any;\r\n};\r\n\r\nexport { argsToString, argsToObject, getSearchObj };\r\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,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/scriptExecution.ts"],
4
- "sourcesContent": ["import 'ses';\n\nexport type scriptExecutionType = (scriptCode: string, options: {[key:string]: any}) => any;\nconst scriptExecution = (scriptCode: string, options: {[key:string]: any}) => {\n const compartment = new Compartment(options);\n try {\n return scriptCode ? compartment.evaluate(scriptCode) : null;\n } catch (err) {\n console.error(err);\n return null;\n }\n};\n\nexport default scriptExecution;\n"],
4
+ "sourcesContent": ["import 'ses';\r\n\r\nexport type scriptExecutionType = (scriptCode: string, options: {[key:string]: any}) => any;\r\nconst scriptExecution = (scriptCode: string, options: {[key:string]: any}) => {\r\n const compartment = new Compartment(options);\r\n try {\r\n return scriptCode ? compartment.evaluate(scriptCode) : null;\r\n } catch (err) {\r\n console.error(err);\r\n return null;\r\n }\r\n};\r\n\r\nexport default scriptExecution;\r\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAO;AAGP,IAAM,kBAAkB,CAAC,YAAoB,YAAiC;AAC5E,QAAM,cAAc,IAAI,YAAY,OAAO;AAC3C,MAAI;AACF,WAAO,aAAa,YAAY,SAAS,UAAU,IAAI;AAAA,EACzD,SAAS,KAAP;AACA,YAAQ,MAAM,GAAG;AACjB,WAAO;AAAA,EACT;AACF;AAEA,IAAO,0BAAQ;",
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": ["/**\r\n * 安全工具函数,用于防止XSS等安全漏洞\r\n */\r\nimport { getLocation, isReactNative } from './environment';\r\n\r\n/**\r\n * 验证URL是否安全,防止XSS攻击\r\n * @param url 待验证的URL\r\n * @returns 是否为安全的URL\r\n */\r\nexport const isValidUrl = (url: string): boolean => {\r\n if (!url || typeof url !== 'string') {\r\n return false;\r\n }\r\n\r\n try {\r\n let baseUrl: string;\r\n if (isReactNative()) {\r\n // React Native 环境中使用默认的 base URL\r\n baseUrl = 'http://localhost';\r\n } else {\r\n const location = getLocation();\r\n baseUrl = location ? location.origin : 'http://localhost';\r\n }\r\n \r\n const urlObj = new URL(url, baseUrl);\r\n \r\n // 只允许http和https协议,防止javascript:等危险协议\r\n if (!['http:', 'https:'].includes(urlObj.protocol)) {\r\n return false;\r\n }\r\n\r\n // 检查是否包含危险字符\r\n const dangerousPatterns = [\r\n /javascript:/i,\r\n /vbscript:/i,\r\n /data:/i,\r\n /file:/i,\r\n /<script/i,\r\n /onload=/i,\r\n /onerror=/i,\r\n /onclick=/i,\r\n ];\r\n\r\n return !dangerousPatterns.some(pattern => pattern.test(url));\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * 清理和验证重定向URL,确保安全\r\n * @param url 待清理的URL\r\n * @param allowedDomains 允许的域名列表,为空时允许同源URL\r\n * @returns 清理后的安全URL,如果不安全则返回默认URL\r\n */\r\nexport const sanitizeRedirectUrl = (\r\n url: string,\r\n allowedDomains: string[] = [],\r\n defaultUrl: string = '/'\r\n): string => {\r\n if (!url || typeof url !== 'string') {\r\n return defaultUrl;\r\n }\r\n\r\n // 基本URL验证\r\n if (!isValidUrl(url)) {\r\n return defaultUrl;\r\n }\r\n\r\n try {\r\n let baseUrl: string;\r\n let currentHost: string;\r\n \r\n if (isReactNative()) {\r\n // React Native 环境中使用默认值\r\n baseUrl = 'http://localhost';\r\n currentHost = 'localhost';\r\n } else {\r\n const location = getLocation();\r\n if (!location) {\r\n return defaultUrl;\r\n }\r\n baseUrl = location.origin;\r\n currentHost = location.hostname;\r\n }\r\n\r\n const urlObj = new URL(url, baseUrl);\r\n\r\n // 如果没有指定允许的域名,只允许同源URL\r\n if (allowedDomains.length === 0) {\r\n if (urlObj.hostname !== currentHost) {\r\n return defaultUrl;\r\n }\r\n } else {\r\n // 检查是否在允许的域名列表中\r\n const isAllowedDomain = allowedDomains.some(domain =>\r\n urlObj.hostname === domain || urlObj.hostname.endsWith(`.${domain}`)\r\n );\r\n \r\n if (!isAllowedDomain && urlObj.hostname !== currentHost) {\r\n return defaultUrl;\r\n }\r\n }\r\n\r\n return urlObj.pathname + urlObj.search;\r\n } catch {\r\n return defaultUrl;\r\n }\r\n};\r\n\r\n/**\r\n * 安全地设置window.location.href,防止XSS攻击\r\n * @param url 目标URL\r\n * @param allowedDomains 允许的域名列表\r\n */\r\nexport const safeRedirect = (url: string, allowedDomains: string[] = []): void => {\r\n const safeUrl = sanitizeRedirectUrl(url, allowedDomains);\r\n \r\n if (isReactNative()) {\r\n // React Native 环境中无法直接跳转,可以通过其他方式处理\r\n console.warn('safeRedirect is not supported in React Native environment');\r\n return;\r\n }\r\n \r\n const win = typeof window !== 'undefined' ? window : null;\r\n if (win) {\r\n win.location.href = safeUrl;\r\n }\r\n};\r\n\r\n/**\r\n * 验证和清理事件处理器,防止恶意代码注入\r\n * @param handler 事件处理函数\r\n * @returns 安全的事件处理函数\r\n */\r\nexport const sanitizeEventHandler = (handler: Function): Function => {\r\n if (typeof handler !== 'function') {\r\n return () => {};\r\n }\r\n \r\n return (...args: any[]) => {\r\n try {\r\n handler(...args);\r\n } catch (error) {\r\n console.error('Event handler error:', error);\r\n }\r\n };\r\n};\r\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
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/stringUtils.ts"],
4
- "sourcesContent": ["// 将所有大写字母前加上下划线,并将大写字母转换为小写\nfunction camelToSnake(str:string) {\n return str.replace(/([A-Z])/g, (match) => `_${match.toLowerCase()}`);\n}\n\n// 下划线转驼峰\nfunction underscoreToCamelCase(str:string) {\n return str.replace(/_([a-z])/g, (match, letter) => letter.toUpperCase());\n}\n\nfunction generateRandom18Int() {\n return new Promise((resolve, reject) => {\n try {\n // 生成一个18位的随机整数\n // 10**17 到 10**18 - 1 的范围\n const min = 10 ** 17; // 18位数的最小值\n const max = (10 ** 18) - 1; // 18位数的最大值\n\n // 使用Math.floor(Math.random() * (max - min + 1)) + min 来生成随机数\n const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;\n resolve(randomNum);\n return randomNum;\n } catch (err) {\n reject(err);\n return 0;\n }\n });\n}\n\nexport {\n camelToSnake,\n underscoreToCamelCase,\n generateRandom18Int,\n};\n"],
4
+ "sourcesContent": ["// 将所有大写字母前加上下划线,并将大写字母转换为小写\r\nfunction camelToSnake(str:string) {\r\n return str.replace(/([A-Z])/g, (match) => `_${match.toLowerCase()}`);\r\n}\r\n\r\n// 下划线转驼峰\r\nfunction underscoreToCamelCase(str:string) {\r\n return str.replace(/_([a-z])/g, (match, letter) => letter.toUpperCase());\r\n}\r\n\r\nfunction generateRandom18Int() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // 生成一个18位的随机整数\r\n // 10**17 到 10**18 - 1 的范围\r\n const min = 10 ** 17; // 18位数的最小值\r\n const max = (10 ** 18) - 1; // 18位数的最大值\r\n\r\n // 使用Math.floor(Math.random() * (max - min + 1)) + min 来生成随机数\r\n const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;\r\n resolve(randomNum);\r\n return randomNum;\r\n } catch (err) {\r\n reject(err);\r\n return 0;\r\n }\r\n });\r\n}\r\n\r\nexport {\r\n camelToSnake,\r\n underscoreToCamelCase,\r\n generateRandom18Int,\r\n};\r\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,SAAS,aAAa,KAAY;AAChC,SAAO,IAAI,QAAQ,YAAY,CAAC,UAAU,IAAI,MAAM,YAAY,GAAG;AACrE;AAGA,SAAS,sBAAsB,KAAY;AACzC,SAAO,IAAI,QAAQ,aAAa,CAAC,OAAO,WAAW,OAAO,YAAY,CAAC;AACzE;AAEA,SAAS,sBAAsB;AAC7B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI;AAGF,YAAM,MAAM,MAAM;AAClB,YAAM,MAAO,MAAM,KAAM;AAGzB,YAAM,YAAY,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,MAAM,EAAE,IAAI;AAChE,cAAQ,SAAS;AACjB,aAAO;AAAA,IACT,SAAS,KAAP;AACA,aAAO,GAAG;AACV,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/treeUtils.ts"],
4
- "sourcesContent": ["import { get, cloneDeep } from 'lodash';\nimport escapeString from './markdownEscape';\n\nexport const getDataArr = (content: string) => {\n let matchArr:string[] = [];\n if (content && typeof content === 'string') {\n const escapeRegex = /\\$\\{\\{([^}]+)\\}\\}/gi; // 变量正则表达式,${{xxx}}\n const regex = /\\$\\{(.+?)\\}/gi; // 变量正则表达式,${xxx}\n let matchs = escapeRegex.exec(content);\n if (matchs?.[1]) {\n matchArr = matchs[1].split('.');\n } else {\n matchs = regex.exec(content);\n if (matchs?.[1]) {\n matchArr = matchs[1].split('.');\n }\n }\n return matchArr?.filter((item, idx) => !(idx === 0 && ['root', 'pageParams'].includes(item)) && !(idx === 1 && ['pageParams'].includes(item))); // 过滤掉第一个root,pageParams\n }\n return matchArr;\n};\n\nconst loopNodeByParamsPath:any = (\n paramsArr:string[],\n data: {[key:string]: any},\n escape:boolean = false\n) => {\n if (Array.isArray(paramsArr) && paramsArr.length > 0) {\n for (const keyword of paramsArr) {\n const dataNode = get(data, keyword);\n let nextParamsArr = paramsArr.slice(1); // 取下一个节点字段\n if (Array.isArray(dataNode)) {\n // 如果当前节点是数组,且下一个节点是数字,则取下标对应的值\n const idxRegex = /^\\[.*\\]$|^\\d+$/;\n if (idxRegex.test(nextParamsArr?.[0])) {\n const idxNum = nextParamsArr?.[0].replace(/\\[|\\]/g, '');\n if (dataNode?.[Number(idxNum)] instanceof Object) {\n return loopNodeByParamsPath(nextParamsArr.slice(1), dataNode?.[Number(idxNum)], escape);\n }\n return escape ? escapeString(dataNode?.[Number(idxNum)]) : dataNode?.[Number(idxNum)];\n }\n // 否则或缺中间节点,直接往下取值\n nextParamsArr = nextParamsArr.slice(1);\n if (nextParamsArr?.length >= 1) {\n return dataNode.map((item:any) => {\n // 如果数组节点是对象,则继续递归取值\n if (item instanceof Object && nextParamsArr?.length >= 1) {\n return loopNodeByParamsPath(nextParamsArr, item, escape);\n }\n // 否则直接返回数组值\n return escape ? escapeString(item) : item;\n });\n }\n return dataNode;\n } if (nextParamsArr?.length >= 1) {\n return loopNodeByParamsPath(nextParamsArr, dataNode, escape);\n }\n return escape ? escapeString(dataNode) : dataNode;\n }\n }\n return '';\n};\n\n\nexport const getParamsContentByParamKeys = (paramNames: string, data: {[key:string]: any} = {}) => {\n if (!paramNames || !data || Object.keys(data)?.length <= 0) {\n return undefined;\n }\n const escapeRegex = /\\$\\{\\{([^}]+)\\}\\}/gi; // 匹配${{}}格式的参数,属于需转义内容\n const paramNameList = getDataArr(paramNames);\n return loopNodeByParamsPath(paramNameList, data, escapeRegex.test(paramNames));\n};\n\n// 获取替换循环体内的参数值\nexport const replaceLoopBodyParamsValue = (\n contentStr: string,\n options: {\n loopParams: { [key: string]: any } // 循环体参数\n loopSourceArr: string[], // 循环体数据源\n loopData: {[key: string]: any}[], // 循环数据源数据\n parameters?: {[key: string]: any}, // 全量参数\n staticCodeMap?: {[key: string]: any}, // 静态数据\n },\n) => {\n const {\n loopParams = {},\n loopSourceArr = [],\n loopData = [],\n parameters = {},\n } = options || {};\n let nowTemp = '';\n if (typeof contentStr === 'string' && contentStr && loopParams) {\n nowTemp = contentStr.replace(/\\$\\{(.+?)\\}/gi, (match) => {\n const paramsPath = getDataArr(match).filter((itemKey) => !loopSourceArr.includes(itemKey));\n let filedVal:any = '';\n // 如果当前节点是数组,且下一个节点是数字,则取下标对应的值\n const idxRegex = /^\\[.*\\]$|^\\d+$/;\n if (idxRegex.test(paramsPath?.[0])) {\n const idxNum = paramsPath?.[0].replace(/\\[|\\]/g, '');\n if (loopData?.[Number(idxNum)] instanceof Object) {\n filedVal = loopNodeByParamsPath(paramsPath.slice(1), loopData?.[Number(idxNum)]);\n } else {\n filedVal = loopData?.[Number(idxNum)] || '';\n }\n } else {\n filedVal = loopNodeByParamsPath(paramsPath.slice(1), loopParams);\n\n // 循环体内查找不到,则从参数中取值,但忽略循环体本身\n if (!filedVal && parameters) {\n const _parameters = cloneDeep(parameters);\n if (Array.isArray(loopSourceArr) && loopSourceArr.length > 0) {\n loopSourceArr.forEach((sourceKey:string) => {\n delete _parameters[sourceKey];\n });\n }\n const paramNameList = getDataArr(match);\n filedVal = loopNodeByParamsPath(paramNameList, _parameters);\n }\n }\n return filedVal || '';\n });\n }\n return nowTemp;\n};\n\nexport const replaceParamsValue = (\n contentStr: string,\n pararms: { [key: string]: any } = {},\n isObject2String: boolean = false,\n) => {\n let nowContent:string = '';\n if (typeof contentStr === 'string' && contentStr && pararms) {\n nowContent = contentStr.replace(/\\$\\{\\{?[^{}]+}?\\}/g, (match) => {\n const filedVal = getParamsContentByParamKeys(match, pararms);\n if (isObject2String && typeof filedVal === 'object') {\n return JSON.stringify(filedVal);\n }\n return filedVal || '';\n });\n }\n return nowContent;\n};\n\n\n/** ======下面几个方法主要提供给事件参数使用 勿共用 ===== */\nconst splitStringWithTemplateLiteral = (input: string) => {\n // 正则表达式:匹配 ${...} 模式\n const templateRegex = /\\$\\{[^}]*\\}/;\n\n // 检查字符串是否包含 ${...}\n if (!templateRegex.test(input)) {\n return [input]; // 返回原始字符串\n }\n\n // 匹配所有 ${...} 模式\n const matches = input.match(templateRegex);\n\n if (!matches || matches.length === 0) {\n return [input]; // 返回原始字符串\n }\n\n // 分割字符串,同时保留 ${...} 模式\n const result = input.split(templateRegex).filter(Boolean); // 去掉空字符串\n\n // 将匹配到的 ${...} 模式重新插入到结果数组中\n matches.forEach((match, index) => {\n result.splice(index * 2 + 1, 0, match); // 插入到对应位置\n });\n\n return result;\n};\n\nconst getParamsContentByParamKeysForEvent = (\n paramNames: string,\n data: { [key: string]: any } = {},\n) => {\n let paramNameList: string[] = [];\n const regex = /\\$\\{(.+?)\\}/gi; // 变量正则表达式,${xxx}\n if (paramNames && typeof paramNames === 'string') {\n const matchs = regex.exec(paramNames);\n if (matchs?.[1]) {\n paramNameList = matchs?.[1]?.split('.');\n }\n }\n\n // 如果替换不成功,需要返回字符串原始的值\n return paramNameList.length > 0\n ? loopNodeByParamsPath(paramNameList, data) || ''\n : paramNames;\n};\n\n\n/**\n * 提供给事件参数转换那边的方法\n * 和replaceParamsValue 区别,\n * 1、不能去掉pageParams那一层\n * 2、字符串拼对象,需要把对象做JSON.stringify转换\n * 3、如果替换不成功,需要返回字符串原始的值\n * @param contentStr \"你好\" ,\"你$好, ${pageParams.userName}\" , \"${pageData}, ${pageParams.userList[0]}\"\n * @param data 数据\n */\nexport const replaceParamsValueForEvent = (\n contentStr: string,\n data: { [key: string]: any } = {},\n) => {\n if (!contentStr || !data || Object.keys(data)?.length <= 0) {\n return undefined;\n }\n\n const valueArr = splitStringWithTemplateLiteral(contentStr);\n // 单个字符串, 没有拼接\n if (valueArr.length === 1) {\n return getParamsContentByParamKeysForEvent(valueArr[0], data);\n }\n\n\n let nowTemp = '';\n if (typeof contentStr === 'string' && contentStr && data) {\n nowTemp = contentStr.replace(/\\$\\{(.+?)\\}/g, (match) => {\n const filedVal = getParamsContentByParamKeysForEvent(match, data);\n if (typeof filedVal === 'string') {\n return filedVal;\n }\n // 字符串拼对象,需要把对象做JSON.stringify转换\n try {\n return JSON.stringify(filedVal);\n } catch {\n return '';\n }\n });\n }\n return nowTemp;\n};\n\n/** ======上面几个方法主要提供给事件参数使用 勿共用 ===== */\n"],
4
+ "sourcesContent": ["import { get, cloneDeep } from 'lodash';\r\nimport escapeString from './markdownEscape';\r\n\r\nexport const getDataArr = (content: string) => {\r\n let matchArr:string[] = [];\r\n if (content && typeof content === 'string') {\r\n const escapeRegex = /\\$\\{\\{([^}]+)\\}\\}/gi; // 变量正则表达式,${{xxx}}\r\n const regex = /\\$\\{(.+?)\\}/gi; // 变量正则表达式,${xxx}\r\n let matchs = escapeRegex.exec(content);\r\n if (matchs?.[1]) {\r\n matchArr = matchs[1].split('.');\r\n } else {\r\n matchs = regex.exec(content);\r\n if (matchs?.[1]) {\r\n matchArr = matchs[1].split('.');\r\n }\r\n }\r\n return matchArr?.filter((item, idx) => !(idx === 0 && ['root', 'pageParams'].includes(item)) && !(idx === 1 && ['pageParams'].includes(item))); // 过滤掉第一个root,pageParams\r\n }\r\n return matchArr;\r\n};\r\n\r\nconst loopNodeByParamsPath:any = (\r\n paramsArr:string[],\r\n data: {[key:string]: any},\r\n escape:boolean = false\r\n) => {\r\n if (Array.isArray(paramsArr) && paramsArr.length > 0) {\r\n for (const keyword of paramsArr) {\r\n const dataNode = get(data, keyword);\r\n let nextParamsArr = paramsArr.slice(1); // 取下一个节点字段\r\n if (Array.isArray(dataNode)) {\r\n // 如果当前节点是数组,且下一个节点是数字,则取下标对应的值\r\n const idxRegex = /^\\[.*\\]$|^\\d+$/;\r\n if (idxRegex.test(nextParamsArr?.[0])) {\r\n const idxNum = nextParamsArr?.[0].replace(/\\[|\\]/g, '');\r\n if (dataNode?.[Number(idxNum)] instanceof Object) {\r\n return loopNodeByParamsPath(nextParamsArr.slice(1), dataNode?.[Number(idxNum)], escape);\r\n }\r\n return escape ? escapeString(dataNode?.[Number(idxNum)]) : dataNode?.[Number(idxNum)];\r\n }\r\n // 否则或缺中间节点,直接往下取值\r\n nextParamsArr = nextParamsArr.slice(1);\r\n if (nextParamsArr?.length >= 1) {\r\n return dataNode.map((item:any) => {\r\n // 如果数组节点是对象,则继续递归取值\r\n if (item instanceof Object && nextParamsArr?.length >= 1) {\r\n return loopNodeByParamsPath(nextParamsArr, item, escape);\r\n }\r\n // 否则直接返回数组值\r\n return escape ? escapeString(item) : item;\r\n });\r\n }\r\n return dataNode;\r\n } if (nextParamsArr?.length >= 1) {\r\n return loopNodeByParamsPath(nextParamsArr, dataNode, escape);\r\n }\r\n return escape ? escapeString(dataNode) : dataNode;\r\n }\r\n }\r\n return '';\r\n};\r\n\r\n\r\nexport const getParamsContentByParamKeys = (paramNames: string, data: {[key:string]: any} = {}) => {\r\n if (!paramNames || !data || Object.keys(data)?.length <= 0) {\r\n return undefined;\r\n }\r\n const escapeRegex = /\\$\\{\\{([^}]+)\\}\\}/gi; // 匹配${{}}格式的参数,属于需转义内容\r\n const paramNameList = getDataArr(paramNames);\r\n return loopNodeByParamsPath(paramNameList, data, escapeRegex.test(paramNames));\r\n};\r\n\r\n// 获取替换循环体内的参数值\r\nexport const replaceLoopBodyParamsValue = (\r\n contentStr: string,\r\n options: {\r\n loopParams: { [key: string]: any } // 循环体参数\r\n loopSourceArr: string[], // 循环体数据源\r\n loopData: {[key: string]: any}[], // 循环数据源数据\r\n parameters?: {[key: string]: any}, // 全量参数\r\n staticCodeMap?: {[key: string]: any}, // 静态数据\r\n },\r\n) => {\r\n const {\r\n loopParams = {},\r\n loopSourceArr = [],\r\n loopData = [],\r\n parameters = {},\r\n } = options || {};\r\n let nowTemp = '';\r\n if (typeof contentStr === 'string' && contentStr && loopParams) {\r\n nowTemp = contentStr.replace(/\\$\\{(.+?)\\}/gi, (match) => {\r\n const paramsPath = getDataArr(match).filter((itemKey) => !loopSourceArr.includes(itemKey));\r\n let filedVal:any = '';\r\n // 如果当前节点是数组,且下一个节点是数字,则取下标对应的值\r\n const idxRegex = /^\\[.*\\]$|^\\d+$/;\r\n if (idxRegex.test(paramsPath?.[0])) {\r\n const idxNum = paramsPath?.[0].replace(/\\[|\\]/g, '');\r\n if (loopData?.[Number(idxNum)] instanceof Object) {\r\n filedVal = loopNodeByParamsPath(paramsPath.slice(1), loopData?.[Number(idxNum)]);\r\n } else {\r\n filedVal = loopData?.[Number(idxNum)] || '';\r\n }\r\n } else {\r\n filedVal = loopNodeByParamsPath(paramsPath.slice(1), loopParams);\r\n\r\n // 循环体内查找不到,则从参数中取值,但忽略循环体本身\r\n if (!filedVal && parameters) {\r\n const _parameters = cloneDeep(parameters);\r\n if (Array.isArray(loopSourceArr) && loopSourceArr.length > 0) {\r\n loopSourceArr.forEach((sourceKey:string) => {\r\n delete _parameters[sourceKey];\r\n });\r\n }\r\n const paramNameList = getDataArr(match);\r\n filedVal = loopNodeByParamsPath(paramNameList, _parameters);\r\n }\r\n }\r\n return filedVal || '';\r\n });\r\n }\r\n return nowTemp;\r\n};\r\n\r\nexport const replaceParamsValue = (\r\n contentStr: string,\r\n pararms: { [key: string]: any } = {},\r\n isObject2String: boolean = false,\r\n) => {\r\n let nowContent:string = '';\r\n if (typeof contentStr === 'string' && contentStr && pararms) {\r\n nowContent = contentStr.replace(/\\$\\{\\{?[^{}]+}?\\}/g, (match) => {\r\n const filedVal = getParamsContentByParamKeys(match, pararms);\r\n if (isObject2String && typeof filedVal === 'object') {\r\n return JSON.stringify(filedVal);\r\n }\r\n return filedVal || '';\r\n });\r\n }\r\n return nowContent;\r\n};\r\n\r\n\r\n/** ======下面几个方法主要提供给事件参数使用 勿共用 ===== */\r\nconst splitStringWithTemplateLiteral = (input: string) => {\r\n // 正则表达式:匹配 ${...} 模式\r\n const templateRegex = /\\$\\{[^}]*\\}/;\r\n\r\n // 检查字符串是否包含 ${...}\r\n if (!templateRegex.test(input)) {\r\n return [input]; // 返回原始字符串\r\n }\r\n\r\n // 匹配所有 ${...} 模式\r\n const matches = input.match(templateRegex);\r\n\r\n if (!matches || matches.length === 0) {\r\n return [input]; // 返回原始字符串\r\n }\r\n\r\n // 分割字符串,同时保留 ${...} 模式\r\n const result = input.split(templateRegex).filter(Boolean); // 去掉空字符串\r\n\r\n // 将匹配到的 ${...} 模式重新插入到结果数组中\r\n matches.forEach((match, index) => {\r\n result.splice(index * 2 + 1, 0, match); // 插入到对应位置\r\n });\r\n\r\n return result;\r\n};\r\n\r\nconst getParamsContentByParamKeysForEvent = (\r\n paramNames: string,\r\n data: { [key: string]: any } = {},\r\n) => {\r\n let paramNameList: string[] = [];\r\n const regex = /\\$\\{(.+?)\\}/gi; // 变量正则表达式,${xxx}\r\n if (paramNames && typeof paramNames === 'string') {\r\n const matchs = regex.exec(paramNames);\r\n if (matchs?.[1]) {\r\n paramNameList = matchs?.[1]?.split('.');\r\n }\r\n }\r\n\r\n // 如果替换不成功,需要返回字符串原始的值\r\n return paramNameList.length > 0\r\n ? loopNodeByParamsPath(paramNameList, data) || ''\r\n : paramNames;\r\n};\r\n\r\n\r\n/**\r\n * 提供给事件参数转换那边的方法\r\n * 和replaceParamsValue 区别,\r\n * 1、不能去掉pageParams那一层\r\n * 2、字符串拼对象,需要把对象做JSON.stringify转换\r\n * 3、如果替换不成功,需要返回字符串原始的值\r\n * @param contentStr \"你好\" ,\"你$好, ${pageParams.userName}\" , \"${pageData}, ${pageParams.userList[0]}\"\r\n * @param data 数据\r\n */\r\nexport const replaceParamsValueForEvent = (\r\n contentStr: string,\r\n data: { [key: string]: any } = {},\r\n) => {\r\n if (!contentStr || !data || Object.keys(data)?.length <= 0) {\r\n return undefined;\r\n }\r\n\r\n const valueArr = splitStringWithTemplateLiteral(contentStr);\r\n // 单个字符串, 没有拼接\r\n if (valueArr.length === 1) {\r\n return getParamsContentByParamKeysForEvent(valueArr[0], data);\r\n }\r\n\r\n\r\n let nowTemp = '';\r\n if (typeof contentStr === 'string' && contentStr && data) {\r\n nowTemp = contentStr.replace(/\\$\\{(.+?)\\}/g, (match) => {\r\n const filedVal = getParamsContentByParamKeysForEvent(match, data);\r\n if (typeof filedVal === 'string') {\r\n return filedVal;\r\n }\r\n // 字符串拼对象,需要把对象做JSON.stringify转换\r\n try {\r\n return JSON.stringify(filedVal);\r\n } catch {\r\n return '';\r\n }\r\n });\r\n }\r\n return nowTemp;\r\n};\r\n\r\n/** ======上面几个方法主要提供给事件参数使用 勿共用 ===== */\r\n"],
5
5
  "mappings": "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",
6
6
  "names": ["escapeString"]
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;
@@ -1,19 +1,28 @@
1
+ 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); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ import { getDocument } from "./environment";
1
6
  var CookieUtils = {
2
7
  get: function get(name) {
8
+ var doc = getDocument();
9
+ if (!doc) return null;
3
10
  var cookieName = "".concat(encodeURIComponent(name), "=");
4
- var cookieStart = document.cookie.indexOf(cookieName);
11
+ var cookieStart = doc.cookie.indexOf(cookieName);
5
12
  var cookieValue = null;
6
13
  var cookieEnd;
7
14
  if (cookieStart > -1) {
8
- cookieEnd = document.cookie.indexOf(';', cookieStart);
15
+ cookieEnd = doc.cookie.indexOf(';', cookieStart);
9
16
  if (cookieEnd === -1) {
10
- cookieEnd = document.cookie.length;
17
+ cookieEnd = doc.cookie.length;
11
18
  }
12
- cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
19
+ cookieValue = decodeURIComponent(doc.cookie.substring(cookieStart + cookieName.length, cookieEnd));
13
20
  }
14
21
  return cookieValue;
15
22
  },
16
23
  set: function set(name, value, expires, path, domain, secure) {
24
+ var doc = getDocument();
25
+ if (!doc) return;
17
26
  var cookieText = "".concat(encodeURIComponent(name), "=").concat(encodeURIComponent(value));
18
27
  if (expires instanceof Date) {
19
28
  cookieText += "; expires=".concat(expires.toUTCString());
@@ -27,10 +36,53 @@ var CookieUtils = {
27
36
  if (secure) {
28
37
  cookieText += '; secure';
29
38
  }
30
- document.cookie = cookieText;
39
+ doc.cookie = cookieText;
31
40
  },
32
41
  unset: function unset(name, path, domain, secure) {
33
42
  this.set(name, '', new Date(0), path, domain, secure);
43
+ },
44
+ // React Native 异步版本
45
+ getAsync: function getAsync(name) {
46
+ var _this = this;
47
+ return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
48
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
49
+ while (1) switch (_context.prev = _context.next) {
50
+ case 0:
51
+ return _context.abrupt("return", _this.get(name));
52
+ case 1:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }, _callee);
57
+ }))();
58
+ },
59
+ setAsync: function setAsync(name, value, expires, path, domain, secure) {
60
+ var _this2 = this;
61
+ return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
62
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
63
+ while (1) switch (_context2.prev = _context2.next) {
64
+ case 0:
65
+ _this2.set(name, value, expires, path, domain, secure);
66
+ case 1:
67
+ case "end":
68
+ return _context2.stop();
69
+ }
70
+ }, _callee2);
71
+ }))();
72
+ },
73
+ unsetAsync: function unsetAsync(name, path, domain, secure) {
74
+ var _this3 = this;
75
+ return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
76
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
77
+ while (1) switch (_context3.prev = _context3.next) {
78
+ case 0:
79
+ _this3.unset(name, path, domain, secure);
80
+ case 1:
81
+ case "end":
82
+ return _context3.stop();
83
+ }
84
+ }, _callee3);
85
+ }))();
34
86
  }
35
87
  };
36
88
  export default CookieUtils;