@rsdoctor/components 1.3.4 → 1.3.5

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 (85) hide show
  1. package/dist/components/Alert/ecma-version-check.mjs +2 -2
  2. package/dist/components/Alert/ecma-version-check.mjs.map +1 -1
  3. package/dist/components/Alert/package-relation.mjs +2 -4
  4. package/dist/components/Alert/package-relation.mjs.map +1 -1
  5. package/dist/components/Alert/view.mjs +2 -3
  6. package/dist/components/Alert/view.mjs.map +1 -1
  7. package/dist/components/Alerts/bundle-alert.mjs +2 -4
  8. package/dist/components/Alerts/bundle-alert.mjs.map +1 -1
  9. package/dist/components/Charts/TimelineCharts/index.mjs +3 -4
  10. package/dist/components/Charts/TimelineCharts/index.mjs.map +1 -1
  11. package/dist/components/Charts/TreeMap.mjs +2 -3
  12. package/dist/components/Charts/TreeMap.mjs.map +1 -1
  13. package/dist/components/Charts/index.mjs +1 -1
  14. package/dist/components/Charts/index.mjs.map +1 -1
  15. package/dist/components/Charts/loader.mjs +2 -2
  16. package/dist/components/Charts/loader.mjs.map +1 -1
  17. package/dist/components/FileTree/index.mjs +2 -2
  18. package/dist/components/FileTree/index.mjs.map +1 -1
  19. package/dist/components/Loader/Analysis/files.mjs +32 -36
  20. package/dist/components/Loader/Analysis/files.mjs.map +1 -1
  21. package/dist/components/Loader/executions.mjs +1 -2
  22. package/dist/components/Loader/executions.mjs.map +1 -1
  23. package/dist/components/Overall/bundle_module.css +1 -0
  24. package/dist/components/Overall/bundle_module.css.map +1 -1
  25. package/dist/components/Overall/compile.mjs +1 -2
  26. package/dist/components/Overall/compile.mjs.map +1 -1
  27. package/dist/components/Overall/help-center_module.css +2 -0
  28. package/dist/components/Overall/help-center_module.css.map +1 -1
  29. package/dist/components/Overall/list_module.css +2 -12
  30. package/dist/components/Overall/list_module.css.map +1 -1
  31. package/dist/components/Overall/project_module.css +1 -0
  32. package/dist/components/Overall/project_module.css.map +1 -1
  33. package/dist/components/Select/index.mjs +1 -1
  34. package/dist/components/Select/index.mjs.map +1 -1
  35. package/dist/components/base/CodeViewer/index.mjs +1 -2
  36. package/dist/components/base/CodeViewer/index.mjs.map +1 -1
  37. package/dist/components/base/CodeViewer/utils.mjs +1 -1
  38. package/dist/components/base/CodeViewer/utils.mjs.map +1 -1
  39. package/dist/components/base/DiffViewer/index.mjs +1 -2
  40. package/dist/components/base/DiffViewer/index.mjs.map +1 -1
  41. package/dist/pages/BundleSize/components/asset.mjs +5 -12
  42. package/dist/pages/BundleSize/components/asset.mjs.map +1 -1
  43. package/dist/pages/BundleSize/components/cards.mjs +2 -2
  44. package/dist/pages/BundleSize/components/cards.mjs.map +1 -1
  45. package/dist/pages/BundleSize/components/index_module.css +2 -6
  46. package/dist/pages/BundleSize/components/index_module.css.map +1 -1
  47. package/dist/pages/BundleSize/components/search-modal.mjs +5 -5
  48. package/dist/pages/BundleSize/components/search-modal.mjs.map +1 -1
  49. package/dist/pages/ModuleAnalyze/chunks.mjs +1 -1
  50. package/dist/pages/ModuleAnalyze/chunks.mjs.map +1 -1
  51. package/dist/pages/ModuleAnalyze/components/fileTreeCom.mjs +1 -2
  52. package/dist/pages/ModuleAnalyze/components/fileTreeCom.mjs.map +1 -1
  53. package/dist/pages/ModuleAnalyze/fileTree.mjs +1 -2
  54. package/dist/pages/ModuleAnalyze/fileTree.mjs.map +1 -1
  55. package/dist/pages/ModuleAnalyze/utils/hooks.mjs +5 -8
  56. package/dist/pages/ModuleAnalyze/utils/hooks.mjs.map +1 -1
  57. package/dist/pages/ModuleAnalyze/utils/index.mjs +2 -4
  58. package/dist/pages/ModuleAnalyze/utils/index.mjs.map +1 -1
  59. package/dist/pages/Resources/BundleDiff/DiffContainer/assets.mjs +4 -7
  60. package/dist/pages/Resources/BundleDiff/DiffContainer/assets.mjs.map +1 -1
  61. package/dist/pages/Resources/BundleDiff/DiffContainer/modules.mjs +13 -16
  62. package/dist/pages/Resources/BundleDiff/DiffContainer/modules.mjs.map +1 -1
  63. package/dist/pages/Resources/BundleDiff/DiffContainer/row.mjs +15 -35
  64. package/dist/pages/Resources/BundleDiff/DiffContainer/row.mjs.map +1 -1
  65. package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs +3 -4
  66. package/dist/pages/Resources/BundleDiff/DiffServerAPIProvider/index.mjs.map +1 -1
  67. package/dist/pages/TreeShaking/editor.mjs +2 -4
  68. package/dist/pages/TreeShaking/editor.mjs.map +1 -1
  69. package/dist/pages/TreeShaking/index.css +4 -28
  70. package/dist/pages/TreeShaking/index.css.map +1 -1
  71. package/dist/pages/TreeShaking/index.mjs +1 -1
  72. package/dist/pages/TreeShaking/index.mjs.map +1 -1
  73. package/dist/pages/TreeShaking/table.mjs +3 -3
  74. package/dist/pages/TreeShaking/table.mjs.map +1 -1
  75. package/dist/utils/file.mjs +8 -9
  76. package/dist/utils/file.mjs.map +1 -1
  77. package/dist/utils/hooks.mjs +1 -5
  78. package/dist/utils/hooks.mjs.map +1 -1
  79. package/dist/utils/loader.mjs +1 -1
  80. package/dist/utils/loader.mjs.map +1 -1
  81. package/dist/utils/request.mjs +1 -2
  82. package/dist/utils/request.mjs.map +1 -1
  83. package/dist/utils/url.mjs +2 -2
  84. package/dist/utils/url.mjs.map +1 -1
  85. package/package.json +6 -6
@@ -4,10 +4,10 @@ import { Space, message } from "antd";
4
4
  import { FileOutlined, FolderOpenTwoTone, FolderTwoTone, RightOutlined } from "@ant-design/icons";
5
5
  import { getFileCom } from "../components/FileTree/index.mjs";
6
6
  const rootDirname = (file, sep = '/')=>{
7
- const idx = null == file ? void 0 : file.indexOf(sep);
7
+ const idx = file?.indexOf(sep);
8
8
  if (-1 === idx) return null;
9
- if (0 === idx) return sep + (rootDirname(null == file ? void 0 : file.slice(1)) || '');
10
- return null == file ? void 0 : file.slice(0, idx);
9
+ if (0 === idx) return sep + (rootDirname(file?.slice(1)) || '');
10
+ return file?.slice(0, idx);
11
11
  };
12
12
  function mapFileKey(arr, depth = 2, filter = ()=>true) {
13
13
  let d = 0;
@@ -53,7 +53,7 @@ function createFileStructures({ files, sep = '/', inlinedResourcePathKey = '__RE
53
53
  const sepRegexp = new RegExp(sep);
54
54
  const res = files.reduce((t, file)=>{
55
55
  let dir = rootDirname(file, sep);
56
- let basename = dir ? null == file ? void 0 : file.slice(dir.length + 1) : file;
56
+ let basename = dir ? file?.slice(dir.length + 1) : file;
57
57
  let parent = t;
58
58
  while(dir){
59
59
  let exist = parent.children.find((e)=>e.title === dir);
@@ -139,7 +139,7 @@ function beautifyModulePath(modulePath, cwd) {
139
139
  function getFileIcon(props, addRowIcon = true) {
140
140
  const { data } = props;
141
141
  const expanded = props.expanded;
142
- if (null == data ? void 0 : data.children) return /*#__PURE__*/ jsxs(Space, {
142
+ if (data?.children) return /*#__PURE__*/ jsxs(Space, {
143
143
  children: [
144
144
  addRowIcon ? /*#__PURE__*/ jsx(RightOutlined, {
145
145
  className: `file-tree-switcher-arrow ${expanded ? 'file-tree-switcher-arrow-expand' : ''}`
@@ -162,14 +162,13 @@ function buildTreemapData(modules, rootName = 'dist') {
162
162
  for(let i = 0; i < parts.length; i++){
163
163
  const part = parts[i];
164
164
  if (i === parts.length - 1) {
165
- var _mod_size, _mod_size1, _mod_size2;
166
165
  if (!current.children) current.children = [];
167
166
  current.children.push({
168
167
  name: part,
169
168
  path: mod.path,
170
- sourceSize: (null == (_mod_size = mod.size) ? void 0 : _mod_size.sourceSize) ?? 0,
171
- bundledSize: (null == (_mod_size1 = mod.size) ? void 0 : _mod_size1.parsedSize) ?? 0,
172
- gzipSize: (null == (_mod_size2 = mod.size) ? void 0 : _mod_size2.gzipSize) ?? 0
169
+ sourceSize: mod.size?.sourceSize ?? 0,
170
+ bundledSize: mod.size?.parsedSize ?? 0,
171
+ gzipSize: mod.size?.gzipSize ?? 0
173
172
  });
174
173
  } else {
175
174
  if (!current._map) current._map = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"utils/file.mjs","sources":["webpack://@rsdoctor/components/./src/utils/file.tsx"],"sourcesContent":["import { get } from 'es-toolkit/compat';\nimport { Common, SDK } from '@rsdoctor/types';\nimport { message, Space, TreeNodeProps, UploadFile } from 'antd';\nimport { FieldDataNode } from 'rc-tree';\nimport {\n FolderOpenTwoTone,\n FolderTwoTone,\n FileOutlined,\n RightOutlined,\n} from '@ant-design/icons';\nimport { getFileCom } from 'src/components/FileTree';\n\nexport type DataNode = FieldDataNode<{\n key: string | number;\n title?: React.ReactNode | ((data: DataNode) => React.ReactNode);\n}> & { __BASENAME__?: any; __RESOURCEPATH__?: any; children?: DataNode[] };\n\nexport const rootDirname = (file: string, sep = '/'): string | null => {\n const idx = file?.indexOf(sep);\n if (idx === -1) {\n return null;\n }\n if (idx === 0) {\n return sep + (rootDirname(file?.slice(1)) || '');\n }\n return file?.slice(0, idx);\n};\n\nexport function mapFileKey(\n arr: DataNode[],\n depth = 2,\n filter: (node: DataNode) => boolean = () => true,\n): DataNode['key'][] {\n let d = 0;\n const res: DataNode['key'][] = [];\n let parent: DataNode[] = arr;\n while (d < depth) {\n parent.filter(filter).forEach((e) => {\n if (!e.isLeaf) {\n res.push(e.key);\n }\n });\n parent = parent.reduce<DataNode[]>(\n (t, e) => t.concat(e.children || []),\n [],\n );\n if (!parent.length) break;\n d++;\n }\n return res;\n}\n\nconst basenameKey = '__BASENAME__';\n\nexport function flattenDirectory(\n n: DataNode,\n parent: DataNode,\n sep = '/',\n inlinedResourcePathKey: keyof DataNode,\n dirTitle = (_dir: DataNode, defaultTitle: string): JSX.Element | string =>\n defaultTitle,\n) {\n if (n.isLeaf) return;\n if (parent.children && parent.children.length === 1) {\n const defaultTitle = [parent[basenameKey], n[basenameKey]].join(sep);\n parent[inlinedResourcePathKey] = n[inlinedResourcePathKey];\n parent[basenameKey] = defaultTitle;\n parent.key = [parent.key, n.key].join('-');\n parent.children = n.children;\n parent.title = dirTitle(parent, defaultTitle);\n\n n.children &&\n n.children.forEach((c) => {\n flattenDirectory(c, parent, sep, inlinedResourcePathKey, dirTitle);\n });\n } else {\n // parent has more than 1 child.\n n.title = dirTitle(n, n[basenameKey]);\n\n n.children &&\n n.children.forEach((c) => {\n flattenDirectory(c, n, sep, inlinedResourcePathKey, dirTitle);\n });\n }\n}\n\nexport function createFileStructures({\n files,\n sep = '/',\n inlinedResourcePathKey = '__RESOURCEPATH__',\n fileTitle = (_file: string, basename: string) => basename,\n dirTitle = (_dir: DataNode, defaultTitle: string) => defaultTitle,\n page = 'other',\n}: {\n files: string[];\n cwd?: string;\n sep?: string;\n inlinedResourcePathKey?: keyof DataNode;\n dirTitle?(dir: DataNode, defaultTitle: string): JSX.Element | string;\n fileTitle?(file: string, basename: string): JSX.Element | string;\n page?: 'bundle' | 'other';\n}): DataNode[] {\n const sepRegexp = new RegExp(sep);\n\n const res = files.reduce<DataNode>(\n (t, file) => {\n let dir = rootDirname(file, sep);\n let basename = dir ? file?.slice(dir.length + 1) : file;\n let parent: DataNode = t;\n\n while (dir) {\n // find the match directory.\n let exist = parent.children!.find((e) => e.title === dir) as DataNode;\n if (!exist) {\n const p = [parent[inlinedResourcePathKey], dir]\n .filter(Boolean)\n .join(sep);\n exist = {\n title: dir,\n icon:\n page === 'bundle'\n ? (props) => getFileIcon(props as TreeNodeProps, false)\n : null,\n // key: [parent.key, parent.children!.length].join('-'),\n key: p,\n children: [],\n [inlinedResourcePathKey]: p,\n [basenameKey]: dir,\n };\n parent.children!.push(exist);\n }\n\n parent = exist;\n dir = rootDirname(basename);\n basename = dir\n ? basename.slice(dir.length).replace(sepRegexp, '')\n : basename;\n }\n\n // uniq\n if (parent.children!.some((e) => get(e, inlinedResourcePathKey) === file))\n return t;\n\n parent.children!.push({\n title() {\n return fileTitle(file, basename);\n },\n icon:\n page === 'bundle'\n ? (props) => getFileIcon(props as TreeNodeProps)\n : null,\n key: file,\n isLeaf: true,\n [inlinedResourcePathKey]: file,\n [basenameKey]: basename,\n });\n\n return t;\n },\n { key: '0', children: [] },\n ).children!;\n\n res.forEach((e) => {\n e.children &&\n e.children.forEach((item) =>\n flattenDirectory(item, e, sep, inlinedResourcePathKey, dirTitle),\n );\n });\n\n return res;\n}\n\nexport function beautifyPath(path: string, cwd: string) {\n if (path.startsWith(cwd)) {\n return path.replace(cwd, '.');\n }\n\n return path;\n}\n\nexport function readJSONByFileReader<T extends Common.PlainObject>(\n file: UploadFile,\n): Promise<T>;\nexport function readJSONByFileReader<T extends Common.PlainObject>(\n file: Blob,\n): Promise<T>;\nexport function readJSONByFileReader<T extends Common.PlainObject>(\n file: unknown,\n): Promise<T> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n const { result } = reader;\n console.log('reader result: ', result);\n try {\n const json = JSON.parse(result!.toString());\n resolve(json);\n } catch (err) {\n message.error('json parse error');\n reject(err);\n }\n };\n reader.onerror = () => {\n const msg = 'upload json file error, please try again.';\n message.error(msg);\n reject(new Error(msg));\n };\n reader.readAsText(((file as UploadFile).originFileObj || file) as Blob);\n });\n}\n\n/**\n * beautify module path, will replace cwd & last 'node_modules'\n */\nexport function beautifyModulePath(modulePath: string, cwd: string) {\n const res = beautifyPath(modulePath, cwd);\n\n const str = '/node_modules/';\n\n const idx = res.lastIndexOf(str);\n\n if (idx > -1) {\n return {\n alias: res.slice(idx + str.length),\n inNodeModules: true,\n };\n }\n\n return {\n alias: res,\n inNodeModules: false,\n };\n}\n\nexport function getFileIcon(props: TreeNodeProps, addRowIcon = true) {\n const { data } = props;\n const expanded = props.expanded;\n if (data?.children) {\n return (\n <Space>\n {addRowIcon ? (\n <RightOutlined\n className={`file-tree-switcher-arrow ${expanded ? 'file-tree-switcher-arrow-expand' : ''}`}\n />\n ) : (\n <></>\n )}\n {expanded ? <FolderOpenTwoTone /> : <FolderTwoTone />}\n </Space>\n );\n }\n if (props.eventKey && typeof props.eventKey === 'string') {\n return getFileCom(props.eventKey);\n }\n return <FileOutlined />;\n}\n\ntype TreeNode = {\n name: string;\n value?: number;\n children?: TreeNode[];\n path?: string;\n sourceSize?: number;\n bundledSize?: number;\n gzipSize?: number;\n // Internal helper, not exported\n _map?: Map<string, TreeNode>;\n};\n\nexport function buildTreemapData(\n modules: SDK.ModuleData[],\n rootName = 'dist',\n): TreeNode {\n const root: TreeNode = { name: rootName, children: [], _map: new Map() };\n\n for (const mod of modules) {\n const parts = mod.path.split(/[\\\\/]/).filter(Boolean);\n let current = root;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n if (i === parts.length - 1) {\n // File node\n if (!current.children) current.children = [];\n current.children.push({\n name: part,\n path: mod.path,\n sourceSize: mod.size?.sourceSize ?? 0,\n bundledSize: mod.size?.parsedSize ?? 0,\n gzipSize: mod.size?.gzipSize ?? 0,\n });\n } else {\n // Directory node\n if (!current._map) current._map = new Map();\n let child = current._map.get(part);\n if (!child) {\n child = { name: part, children: [], _map: new Map() };\n current.children!.push(child);\n current._map.set(part, child);\n }\n current = child;\n }\n }\n }\n\n // Clean up _map property\n function clean(node: TreeNode) {\n delete node._map;\n if (node.children) node.children.forEach(clean);\n }\n clean(root);\n\n return root;\n}\n\nfunction flattenSingleChildDirs(node: TreeNode): TreeNode {\n // Return directly if leaf node\n if (!node.children || node.children.length === 0) return node;\n\n let current = node;\n // As long as children has only one child and it's not a leaf, merge\n while (\n current.children &&\n current.children.length === 1 &&\n !current.children[0].sourceSize // Not a leaf\n ) {\n current = {\n name: current.name + '/' + current.children[0].name,\n children: current.children[0].children,\n };\n }\n\n // Recursively process all child nodes\n if (current.children) {\n current.children = current.children.map(flattenSingleChildDirs);\n }\n return current;\n}\n\nfunction sumDirValue(node: TreeNode): {\n sourceSize: number;\n bundledSize: number;\n gzipSize: number;\n} {\n if (!node.children || node.children.length === 0) {\n // Leaf node, just return value\n return {\n sourceSize: node.sourceSize ?? 0,\n bundledSize: node.bundledSize ?? 0,\n gzipSize: node.gzipSize ?? 0,\n };\n }\n // Recursively sum all child nodes\n let sourceSum = 0;\n let bundledSum = 0;\n let gzipSum = 0;\n for (const child of node.children) {\n const { sourceSize, bundledSize, gzipSize } = sumDirValue(child);\n sourceSum += sourceSize;\n bundledSum += bundledSize;\n gzipSum += gzipSize;\n }\n node.sourceSize = sourceSum;\n node.bundledSize = bundledSum;\n node.gzipSize = gzipSum;\n return { sourceSize: sourceSum, bundledSize: bundledSum, gzipSize: gzipSum };\n}\n\nexport function flattenTreemapData(\n modules: SDK.ModuleData[],\n rootName = 'dist',\n): TreeNode {\n const rawTree = buildTreemapData(modules, rootName);\n const flattenedTree = flattenSingleChildDirs(rawTree);\n sumDirValue(flattenedTree); // Recursive sum\n return flattenedTree;\n}\n"],"names":["rootDirname","file","sep","idx","mapFileKey","arr","depth","filter","d","res","parent","e","t","basenameKey","flattenDirectory","n","inlinedResourcePathKey","dirTitle","_dir","defaultTitle","c","createFileStructures","files","fileTitle","_file","basename","page","sepRegexp","RegExp","dir","exist","p","Boolean","props","getFileIcon","get","item","beautifyPath","path","cwd","readJSONByFileReader","Promise","resolve","reject","reader","FileReader","result","console","json","JSON","err","message","msg","Error","beautifyModulePath","modulePath","str","addRowIcon","data","expanded","Space","RightOutlined","FolderOpenTwoTone","FolderTwoTone","getFileCom","FileOutlined","buildTreemapData","modules","rootName","root","Map","mod","parts","current","i","part","_mod_size","_mod_size1","_mod_size2","child","clean","node","flattenSingleChildDirs","sumDirValue","sourceSum","bundledSum","gzipSum","sourceSize","bundledSize","gzipSize","flattenTreemapData","rawTree","flattenedTree"],"mappings":"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"}
1
+ {"version":3,"file":"utils/file.mjs","sources":["webpack://@rsdoctor/components/./src/utils/file.tsx"],"sourcesContent":["import { get } from 'es-toolkit/compat';\nimport { Common, SDK } from '@rsdoctor/types';\nimport { message, Space, TreeNodeProps, UploadFile } from 'antd';\nimport { FieldDataNode } from 'rc-tree';\nimport {\n FolderOpenTwoTone,\n FolderTwoTone,\n FileOutlined,\n RightOutlined,\n} from '@ant-design/icons';\nimport { getFileCom } from 'src/components/FileTree';\n\nexport type DataNode = FieldDataNode<{\n key: string | number;\n title?: React.ReactNode | ((data: DataNode) => React.ReactNode);\n}> & { __BASENAME__?: any; __RESOURCEPATH__?: any; children?: DataNode[] };\n\nexport const rootDirname = (file: string, sep = '/'): string | null => {\n const idx = file?.indexOf(sep);\n if (idx === -1) {\n return null;\n }\n if (idx === 0) {\n return sep + (rootDirname(file?.slice(1)) || '');\n }\n return file?.slice(0, idx);\n};\n\nexport function mapFileKey(\n arr: DataNode[],\n depth = 2,\n filter: (node: DataNode) => boolean = () => true,\n): DataNode['key'][] {\n let d = 0;\n const res: DataNode['key'][] = [];\n let parent: DataNode[] = arr;\n while (d < depth) {\n parent.filter(filter).forEach((e) => {\n if (!e.isLeaf) {\n res.push(e.key);\n }\n });\n parent = parent.reduce<DataNode[]>(\n (t, e) => t.concat(e.children || []),\n [],\n );\n if (!parent.length) break;\n d++;\n }\n return res;\n}\n\nconst basenameKey = '__BASENAME__';\n\nexport function flattenDirectory(\n n: DataNode,\n parent: DataNode,\n sep = '/',\n inlinedResourcePathKey: keyof DataNode,\n dirTitle = (_dir: DataNode, defaultTitle: string): JSX.Element | string =>\n defaultTitle,\n) {\n if (n.isLeaf) return;\n if (parent.children && parent.children.length === 1) {\n const defaultTitle = [parent[basenameKey], n[basenameKey]].join(sep);\n parent[inlinedResourcePathKey] = n[inlinedResourcePathKey];\n parent[basenameKey] = defaultTitle;\n parent.key = [parent.key, n.key].join('-');\n parent.children = n.children;\n parent.title = dirTitle(parent, defaultTitle);\n\n n.children &&\n n.children.forEach((c) => {\n flattenDirectory(c, parent, sep, inlinedResourcePathKey, dirTitle);\n });\n } else {\n // parent has more than 1 child.\n n.title = dirTitle(n, n[basenameKey]);\n\n n.children &&\n n.children.forEach((c) => {\n flattenDirectory(c, n, sep, inlinedResourcePathKey, dirTitle);\n });\n }\n}\n\nexport function createFileStructures({\n files,\n sep = '/',\n inlinedResourcePathKey = '__RESOURCEPATH__',\n fileTitle = (_file: string, basename: string) => basename,\n dirTitle = (_dir: DataNode, defaultTitle: string) => defaultTitle,\n page = 'other',\n}: {\n files: string[];\n cwd?: string;\n sep?: string;\n inlinedResourcePathKey?: keyof DataNode;\n dirTitle?(dir: DataNode, defaultTitle: string): JSX.Element | string;\n fileTitle?(file: string, basename: string): JSX.Element | string;\n page?: 'bundle' | 'other';\n}): DataNode[] {\n const sepRegexp = new RegExp(sep);\n\n const res = files.reduce<DataNode>(\n (t, file) => {\n let dir = rootDirname(file, sep);\n let basename = dir ? file?.slice(dir.length + 1) : file;\n let parent: DataNode = t;\n\n while (dir) {\n // find the match directory.\n let exist = parent.children!.find((e) => e.title === dir) as DataNode;\n if (!exist) {\n const p = [parent[inlinedResourcePathKey], dir]\n .filter(Boolean)\n .join(sep);\n exist = {\n title: dir,\n icon:\n page === 'bundle'\n ? (props) => getFileIcon(props as TreeNodeProps, false)\n : null,\n // key: [parent.key, parent.children!.length].join('-'),\n key: p,\n children: [],\n [inlinedResourcePathKey]: p,\n [basenameKey]: dir,\n };\n parent.children!.push(exist);\n }\n\n parent = exist;\n dir = rootDirname(basename);\n basename = dir\n ? basename.slice(dir.length).replace(sepRegexp, '')\n : basename;\n }\n\n // uniq\n if (parent.children!.some((e) => get(e, inlinedResourcePathKey) === file))\n return t;\n\n parent.children!.push({\n title() {\n return fileTitle(file, basename);\n },\n icon:\n page === 'bundle'\n ? (props) => getFileIcon(props as TreeNodeProps)\n : null,\n key: file,\n isLeaf: true,\n [inlinedResourcePathKey]: file,\n [basenameKey]: basename,\n });\n\n return t;\n },\n { key: '0', children: [] },\n ).children!;\n\n res.forEach((e) => {\n e.children &&\n e.children.forEach((item) =>\n flattenDirectory(item, e, sep, inlinedResourcePathKey, dirTitle),\n );\n });\n\n return res;\n}\n\nexport function beautifyPath(path: string, cwd: string) {\n if (path.startsWith(cwd)) {\n return path.replace(cwd, '.');\n }\n\n return path;\n}\n\nexport function readJSONByFileReader<T extends Common.PlainObject>(\n file: UploadFile,\n): Promise<T>;\nexport function readJSONByFileReader<T extends Common.PlainObject>(\n file: Blob,\n): Promise<T>;\nexport function readJSONByFileReader<T extends Common.PlainObject>(\n file: unknown,\n): Promise<T> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n const { result } = reader;\n console.log('reader result: ', result);\n try {\n const json = JSON.parse(result!.toString());\n resolve(json);\n } catch (err) {\n message.error('json parse error');\n reject(err);\n }\n };\n reader.onerror = () => {\n const msg = 'upload json file error, please try again.';\n message.error(msg);\n reject(new Error(msg));\n };\n reader.readAsText(((file as UploadFile).originFileObj || file) as Blob);\n });\n}\n\n/**\n * beautify module path, will replace cwd & last 'node_modules'\n */\nexport function beautifyModulePath(modulePath: string, cwd: string) {\n const res = beautifyPath(modulePath, cwd);\n\n const str = '/node_modules/';\n\n const idx = res.lastIndexOf(str);\n\n if (idx > -1) {\n return {\n alias: res.slice(idx + str.length),\n inNodeModules: true,\n };\n }\n\n return {\n alias: res,\n inNodeModules: false,\n };\n}\n\nexport function getFileIcon(props: TreeNodeProps, addRowIcon = true) {\n const { data } = props;\n const expanded = props.expanded;\n if (data?.children) {\n return (\n <Space>\n {addRowIcon ? (\n <RightOutlined\n className={`file-tree-switcher-arrow ${expanded ? 'file-tree-switcher-arrow-expand' : ''}`}\n />\n ) : (\n <></>\n )}\n {expanded ? <FolderOpenTwoTone /> : <FolderTwoTone />}\n </Space>\n );\n }\n if (props.eventKey && typeof props.eventKey === 'string') {\n return getFileCom(props.eventKey);\n }\n return <FileOutlined />;\n}\n\ntype TreeNode = {\n name: string;\n value?: number;\n children?: TreeNode[];\n path?: string;\n sourceSize?: number;\n bundledSize?: number;\n gzipSize?: number;\n // Internal helper, not exported\n _map?: Map<string, TreeNode>;\n};\n\nexport function buildTreemapData(\n modules: SDK.ModuleData[],\n rootName = 'dist',\n): TreeNode {\n const root: TreeNode = { name: rootName, children: [], _map: new Map() };\n\n for (const mod of modules) {\n const parts = mod.path.split(/[\\\\/]/).filter(Boolean);\n let current = root;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n if (i === parts.length - 1) {\n // File node\n if (!current.children) current.children = [];\n current.children.push({\n name: part,\n path: mod.path,\n sourceSize: mod.size?.sourceSize ?? 0,\n bundledSize: mod.size?.parsedSize ?? 0,\n gzipSize: mod.size?.gzipSize ?? 0,\n });\n } else {\n // Directory node\n if (!current._map) current._map = new Map();\n let child = current._map.get(part);\n if (!child) {\n child = { name: part, children: [], _map: new Map() };\n current.children!.push(child);\n current._map.set(part, child);\n }\n current = child;\n }\n }\n }\n\n // Clean up _map property\n function clean(node: TreeNode) {\n delete node._map;\n if (node.children) node.children.forEach(clean);\n }\n clean(root);\n\n return root;\n}\n\nfunction flattenSingleChildDirs(node: TreeNode): TreeNode {\n // Return directly if leaf node\n if (!node.children || node.children.length === 0) return node;\n\n let current = node;\n // As long as children has only one child and it's not a leaf, merge\n while (\n current.children &&\n current.children.length === 1 &&\n !current.children[0].sourceSize // Not a leaf\n ) {\n current = {\n name: current.name + '/' + current.children[0].name,\n children: current.children[0].children,\n };\n }\n\n // Recursively process all child nodes\n if (current.children) {\n current.children = current.children.map(flattenSingleChildDirs);\n }\n return current;\n}\n\nfunction sumDirValue(node: TreeNode): {\n sourceSize: number;\n bundledSize: number;\n gzipSize: number;\n} {\n if (!node.children || node.children.length === 0) {\n // Leaf node, just return value\n return {\n sourceSize: node.sourceSize ?? 0,\n bundledSize: node.bundledSize ?? 0,\n gzipSize: node.gzipSize ?? 0,\n };\n }\n // Recursively sum all child nodes\n let sourceSum = 0;\n let bundledSum = 0;\n let gzipSum = 0;\n for (const child of node.children) {\n const { sourceSize, bundledSize, gzipSize } = sumDirValue(child);\n sourceSum += sourceSize;\n bundledSum += bundledSize;\n gzipSum += gzipSize;\n }\n node.sourceSize = sourceSum;\n node.bundledSize = bundledSum;\n node.gzipSize = gzipSum;\n return { sourceSize: sourceSum, bundledSize: bundledSum, gzipSize: gzipSum };\n}\n\nexport function flattenTreemapData(\n modules: SDK.ModuleData[],\n rootName = 'dist',\n): TreeNode {\n const rawTree = buildTreemapData(modules, rootName);\n const flattenedTree = flattenSingleChildDirs(rawTree);\n sumDirValue(flattenedTree); // Recursive sum\n return flattenedTree;\n}\n"],"names":["rootDirname","file","sep","idx","mapFileKey","arr","depth","filter","d","res","parent","e","t","basenameKey","flattenDirectory","n","inlinedResourcePathKey","dirTitle","_dir","defaultTitle","c","createFileStructures","files","fileTitle","_file","basename","page","sepRegexp","RegExp","dir","exist","p","Boolean","props","getFileIcon","get","item","beautifyPath","path","cwd","readJSONByFileReader","Promise","resolve","reject","reader","FileReader","result","console","json","JSON","err","message","msg","Error","beautifyModulePath","modulePath","str","addRowIcon","data","expanded","Space","RightOutlined","FolderOpenTwoTone","FolderTwoTone","getFileCom","FileOutlined","buildTreemapData","modules","rootName","root","Map","mod","parts","current","i","part","child","clean","node","flattenSingleChildDirs","sumDirValue","sourceSum","bundledSum","gzipSum","sourceSize","bundledSize","gzipSize","flattenTreemapData","rawTree","flattenedTree"],"mappings":"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"}
@@ -76,11 +76,7 @@ function useChunkGraphByManifest(manifest) {
76
76
  });
77
77
  }
78
78
  function useConfigOutputFileNameByManifest(manifest) {
79
- var _manifest_data_configs__config_output, _manifest_data_configs__config, _manifest_data_configs_, _manifest_data_configs;
80
- if ('string' == typeof (null == (_manifest_data_configs = manifest.data.configs) ? void 0 : null == (_manifest_data_configs_ = _manifest_data_configs[0]) ? void 0 : null == (_manifest_data_configs__config = _manifest_data_configs_.config) ? void 0 : null == (_manifest_data_configs__config_output = _manifest_data_configs__config.output) ? void 0 : _manifest_data_configs__config_output.filename)) {
81
- var _manifest_data_configs__config_output1, _manifest_data_configs__config1, _manifest_data_configs_1, _manifest_data_configs1;
82
- return null == (_manifest_data_configs1 = manifest.data.configs) ? void 0 : null == (_manifest_data_configs_1 = _manifest_data_configs1[0]) ? void 0 : null == (_manifest_data_configs__config1 = _manifest_data_configs_1.config) ? void 0 : null == (_manifest_data_configs__config_output1 = _manifest_data_configs__config1.output) ? void 0 : _manifest_data_configs__config_output1.filename;
83
- }
79
+ if ('string' == typeof manifest.data.configs?.[0]?.config?.output?.filename) return manifest.data.configs?.[0]?.config?.output?.filename;
84
80
  return '';
85
81
  }
86
82
  function useModuleGraphByManifest(manifest) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils/hooks.mjs","sources":["webpack://@rsdoctor/components/./src/utils/hooks.ts"],"sourcesContent":["import { Algorithm } from '@rsdoctor/utils/common';\nimport { Client, Manifest, Rule, SDK } from '@rsdoctor/types';\nimport { uniqBy, defaults } from 'es-toolkit/compat';\nimport { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport parse from 'url-parse';\n\nimport './i18n';\nimport { Language } from '../constants';\nimport { setLocaleToStorage } from './storage';\n\nconst route = Client.RsdoctorClientRoutes.RuleIndex;\n\nexport const useI18n: typeof useTranslation = () => {\n const { i18n, ...rest } = useTranslation();\n\n return {\n ...rest,\n i18n: {\n ...i18n,\n changeLanguage(lng, callback) {\n return i18n.changeLanguage(lng, (error, t) => {\n if (!error) {\n setLocaleToStorage(lng as Language);\n }\n callback && callback(error, t);\n });\n },\n },\n };\n};\n\nexport function useRuleIndexNavigate(code: string, link?: string | undefined) {\n const navigate = useNavigate();\n\n if (link) {\n return () => window.open(link, '__blank');\n }\n\n return () => {\n navigate(\n `${route}?${Rule.RsdoctorRuleClientConstant.UrlQueryForErrorCode}=${code}`,\n );\n };\n}\n\nexport function useUrlQuery() {\n const search = useLocation().search || location.search;\n const { query } = parse(search, true);\n return query;\n}\n\nexport function useLoading(defaultLoading = false) {\n const [loading, setLoading] = useState<boolean>(defaultLoading);\n\n return {\n loading,\n setLoading,\n async withLoading(\n func: (...args: unknown[]) => Promise<unknown> | unknown,\n ) {\n try {\n setLoading(true);\n await func();\n } finally {\n setLoading(false);\n }\n },\n };\n}\n\nexport function useProjectRootByManifest(manifest: Manifest.RsdoctorManifest) {\n return manifest.data.root;\n}\n\nexport function useHashByManifest(manifest: Manifest.RsdoctorManifest) {\n return manifest.data.hash;\n}\n\nexport function useCloudManifestUrlByManifest(\n manifest:\n | Manifest.RsdoctorManifest\n | Manifest.RsdoctorManifestWithShardingFiles\n | void,\n) {\n if (!manifest) return;\n}\n\nfunction ensurePlainObject<T extends object>(value: T, dfts: T): T {\n if (value && typeof value === 'object') {\n if (Array.isArray(value)) {\n return dfts;\n }\n return defaults(value, dfts);\n }\n\n return dfts;\n}\n\nexport function useChunkGraphByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.chunkGraph;\n if (typeof prev === 'string') {\n manifest.data.chunkGraph = JSON.parse(\n Algorithm.decompressText(prev as string),\n );\n }\n\n return ensurePlainObject(manifest.data.chunkGraph, {\n assets: [],\n chunks: [],\n entrypoints: [],\n });\n}\n\nexport function useConfigOutputFileNameByManifest(\n manifest: Manifest.RsdoctorManifest,\n) {\n if (\n typeof manifest.data.configs?.[0]?.config?.output?.filename === 'string'\n ) {\n return manifest.data.configs?.[0]?.config?.output?.filename;\n }\n return '';\n}\n\nexport function useModuleGraphByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.moduleGraph;\n if (typeof prev === 'string') {\n manifest.data.moduleGraph = JSON.parse(\n Algorithm.decompressText(prev as string),\n );\n }\n\n return ensurePlainObject(manifest.data.moduleGraph, {\n dependencies: [],\n modules: [],\n moduleGraphModules: [],\n exports: [],\n sideEffects: [],\n variables: [],\n });\n}\n\nexport function useModuleGraph(moduleGraph: SDK.ModuleGraphData) {\n const prev = moduleGraph;\n if (typeof prev === 'string') {\n moduleGraph = JSON.parse(Algorithm.decompressText(prev as string));\n }\n\n return ensurePlainObject(moduleGraph, {\n dependencies: [],\n modules: [],\n moduleGraphModules: [],\n exports: [],\n sideEffects: [],\n variables: [],\n });\n}\n\nexport function usePackageGraphByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.packageGraph;\n if (typeof prev === 'string') {\n manifest.data.packageGraph = JSON.parse(\n Algorithm.decompressText(prev as string),\n );\n }\n return ensurePlainObject(manifest.data.packageGraph, {\n packages: [],\n dependencies: [],\n });\n}\n\nexport function useUniqModulesByManifest(manifest: Manifest.RsdoctorManifest) {\n return uniqBy(useModuleGraphByManifest(manifest).modules, (e) => e.path);\n}\n\nexport function useUniqModules(modules: SDK.ModuleData[]) {\n return uniqBy(modules, (e) => e.path);\n}\n\nexport function useErrorsByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.errors;\n if (typeof prev === 'string') {\n manifest.data.errors = JSON.parse(Algorithm.decompressText(prev as string));\n }\n return manifest.data.errors || [];\n}\n\nexport function useBundleAlertsByManifest(manifest: Manifest.RsdoctorManifest) {\n const errors = useErrorsByManifest(manifest);\n return useBundleAlertsByErrors(errors);\n}\n\nexport function useDuplicatePackagesByManifest(\n manifest: Manifest.RsdoctorManifest,\n): Rule.PackageRelationDiffRuleStoreData[] {\n const alerts = useBundleAlertsByManifest(manifest);\n return useDuplicatePackagesByErrors(alerts);\n}\n\nexport function useCompileAlertsByErrors(\n errors: Manifest.RsdoctorManifestData['errors'],\n) {\n if (Array.isArray(errors)) {\n return errors.filter(\n (e) =>\n e.category === Rule.RuleMessageCategory.Compile &&\n e.code !== Rule.RuleMessageCodeEnumerated.Overlay,\n );\n }\n return [];\n}\n\nexport function useBundleAlertsByErrors(\n errors: Manifest.RsdoctorManifestData['errors'],\n) {\n if (Array.isArray(errors)) {\n return errors.filter(\n (e) =>\n e.category === Rule.RuleMessageCategory.Bundle &&\n e.code !== Rule.RuleMessageCodeEnumerated.Overlay,\n );\n }\n return [];\n}\n\nexport function useDuplicatePackagesByErrors(\n errors: Manifest.RsdoctorManifestData['errors'],\n) {\n return useBundleAlertsByErrors(errors).filter(\n (e) => e.code === Rule.RuleErrorMap.E1001.code,\n ) as Rule.PackageRelationDiffRuleStoreData[];\n}\n\nexport function useWebpackConfigurationByConfigs(configs: SDK.ConfigData = []) {\n if (Array.isArray(configs)) {\n return configs.find((e) => e.name === 'webpack' || e.name === 'rspack');\n }\n return null;\n}\n\nexport function useDetectIfCloudIdeEnv() {\n if (\n window.location.protocol === 'https:' &&\n window.location.href.indexOf('ide-proxy') > 0\n ) {\n return true;\n }\n return false;\n}\n\nexport function useWindowWidth() {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n\n useEffect(() => {\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n return windowWidth;\n}\n"],"names":["route","Client","useI18n","i18n","rest","useTranslation","lng","callback","error","t","setLocaleToStorage","useRuleIndexNavigate","code","link","navigate","useNavigate","window","Rule","useUrlQuery","search","useLocation","location","query","parse","useLoading","defaultLoading","loading","setLoading","useState","func","useProjectRootByManifest","manifest","useHashByManifest","useCloudManifestUrlByManifest","ensurePlainObject","value","dfts","Array","defaults","useChunkGraphByManifest","prev","JSON","Algorithm","useConfigOutputFileNameByManifest","_manifest_data_configs__config_output","_manifest_data_configs__config_output1","useModuleGraphByManifest","useModuleGraph","moduleGraph","usePackageGraphByManifest","useUniqModulesByManifest","uniqBy","e","useUniqModules","modules","useErrorsByManifest","useBundleAlertsByManifest","errors","useBundleAlertsByErrors","useDuplicatePackagesByManifest","alerts","useDuplicatePackagesByErrors","useCompileAlertsByErrors","useWebpackConfigurationByConfigs","configs","useDetectIfCloudIdeEnv","useWindowWidth","windowWidth","setWindowWidth","useEffect","handleResize"],"mappings":"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"}
1
+ {"version":3,"file":"utils/hooks.mjs","sources":["webpack://@rsdoctor/components/./src/utils/hooks.ts"],"sourcesContent":["import { Algorithm } from '@rsdoctor/utils/common';\nimport { Client, Manifest, Rule, SDK } from '@rsdoctor/types';\nimport { uniqBy, defaults } from 'es-toolkit/compat';\nimport { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport parse from 'url-parse';\n\nimport './i18n';\nimport { Language } from '../constants';\nimport { setLocaleToStorage } from './storage';\n\nconst route = Client.RsdoctorClientRoutes.RuleIndex;\n\nexport const useI18n: typeof useTranslation = () => {\n const { i18n, ...rest } = useTranslation();\n\n return {\n ...rest,\n i18n: {\n ...i18n,\n changeLanguage(lng, callback) {\n return i18n.changeLanguage(lng, (error, t) => {\n if (!error) {\n setLocaleToStorage(lng as Language);\n }\n callback && callback(error, t);\n });\n },\n },\n };\n};\n\nexport function useRuleIndexNavigate(code: string, link?: string | undefined) {\n const navigate = useNavigate();\n\n if (link) {\n return () => window.open(link, '__blank');\n }\n\n return () => {\n navigate(\n `${route}?${Rule.RsdoctorRuleClientConstant.UrlQueryForErrorCode}=${code}`,\n );\n };\n}\n\nexport function useUrlQuery() {\n const search = useLocation().search || location.search;\n const { query } = parse(search, true);\n return query;\n}\n\nexport function useLoading(defaultLoading = false) {\n const [loading, setLoading] = useState<boolean>(defaultLoading);\n\n return {\n loading,\n setLoading,\n async withLoading(\n func: (...args: unknown[]) => Promise<unknown> | unknown,\n ) {\n try {\n setLoading(true);\n await func();\n } finally {\n setLoading(false);\n }\n },\n };\n}\n\nexport function useProjectRootByManifest(manifest: Manifest.RsdoctorManifest) {\n return manifest.data.root;\n}\n\nexport function useHashByManifest(manifest: Manifest.RsdoctorManifest) {\n return manifest.data.hash;\n}\n\nexport function useCloudManifestUrlByManifest(\n manifest:\n | Manifest.RsdoctorManifest\n | Manifest.RsdoctorManifestWithShardingFiles\n | void,\n) {\n if (!manifest) return;\n}\n\nfunction ensurePlainObject<T extends object>(value: T, dfts: T): T {\n if (value && typeof value === 'object') {\n if (Array.isArray(value)) {\n return dfts;\n }\n return defaults(value, dfts);\n }\n\n return dfts;\n}\n\nexport function useChunkGraphByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.chunkGraph;\n if (typeof prev === 'string') {\n manifest.data.chunkGraph = JSON.parse(\n Algorithm.decompressText(prev as string),\n );\n }\n\n return ensurePlainObject(manifest.data.chunkGraph, {\n assets: [],\n chunks: [],\n entrypoints: [],\n });\n}\n\nexport function useConfigOutputFileNameByManifest(\n manifest: Manifest.RsdoctorManifest,\n) {\n if (\n typeof manifest.data.configs?.[0]?.config?.output?.filename === 'string'\n ) {\n return manifest.data.configs?.[0]?.config?.output?.filename;\n }\n return '';\n}\n\nexport function useModuleGraphByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.moduleGraph;\n if (typeof prev === 'string') {\n manifest.data.moduleGraph = JSON.parse(\n Algorithm.decompressText(prev as string),\n );\n }\n\n return ensurePlainObject(manifest.data.moduleGraph, {\n dependencies: [],\n modules: [],\n moduleGraphModules: [],\n exports: [],\n sideEffects: [],\n variables: [],\n });\n}\n\nexport function useModuleGraph(moduleGraph: SDK.ModuleGraphData) {\n const prev = moduleGraph;\n if (typeof prev === 'string') {\n moduleGraph = JSON.parse(Algorithm.decompressText(prev as string));\n }\n\n return ensurePlainObject(moduleGraph, {\n dependencies: [],\n modules: [],\n moduleGraphModules: [],\n exports: [],\n sideEffects: [],\n variables: [],\n });\n}\n\nexport function usePackageGraphByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.packageGraph;\n if (typeof prev === 'string') {\n manifest.data.packageGraph = JSON.parse(\n Algorithm.decompressText(prev as string),\n );\n }\n return ensurePlainObject(manifest.data.packageGraph, {\n packages: [],\n dependencies: [],\n });\n}\n\nexport function useUniqModulesByManifest(manifest: Manifest.RsdoctorManifest) {\n return uniqBy(useModuleGraphByManifest(manifest).modules, (e) => e.path);\n}\n\nexport function useUniqModules(modules: SDK.ModuleData[]) {\n return uniqBy(modules, (e) => e.path);\n}\n\nexport function useErrorsByManifest(manifest: Manifest.RsdoctorManifest) {\n const prev = manifest.data.errors;\n if (typeof prev === 'string') {\n manifest.data.errors = JSON.parse(Algorithm.decompressText(prev as string));\n }\n return manifest.data.errors || [];\n}\n\nexport function useBundleAlertsByManifest(manifest: Manifest.RsdoctorManifest) {\n const errors = useErrorsByManifest(manifest);\n return useBundleAlertsByErrors(errors);\n}\n\nexport function useDuplicatePackagesByManifest(\n manifest: Manifest.RsdoctorManifest,\n): Rule.PackageRelationDiffRuleStoreData[] {\n const alerts = useBundleAlertsByManifest(manifest);\n return useDuplicatePackagesByErrors(alerts);\n}\n\nexport function useCompileAlertsByErrors(\n errors: Manifest.RsdoctorManifestData['errors'],\n) {\n if (Array.isArray(errors)) {\n return errors.filter(\n (e) =>\n e.category === Rule.RuleMessageCategory.Compile &&\n e.code !== Rule.RuleMessageCodeEnumerated.Overlay,\n );\n }\n return [];\n}\n\nexport function useBundleAlertsByErrors(\n errors: Manifest.RsdoctorManifestData['errors'],\n) {\n if (Array.isArray(errors)) {\n return errors.filter(\n (e) =>\n e.category === Rule.RuleMessageCategory.Bundle &&\n e.code !== Rule.RuleMessageCodeEnumerated.Overlay,\n );\n }\n return [];\n}\n\nexport function useDuplicatePackagesByErrors(\n errors: Manifest.RsdoctorManifestData['errors'],\n) {\n return useBundleAlertsByErrors(errors).filter(\n (e) => e.code === Rule.RuleErrorMap.E1001.code,\n ) as Rule.PackageRelationDiffRuleStoreData[];\n}\n\nexport function useWebpackConfigurationByConfigs(configs: SDK.ConfigData = []) {\n if (Array.isArray(configs)) {\n return configs.find((e) => e.name === 'webpack' || e.name === 'rspack');\n }\n return null;\n}\n\nexport function useDetectIfCloudIdeEnv() {\n if (\n window.location.protocol === 'https:' &&\n window.location.href.indexOf('ide-proxy') > 0\n ) {\n return true;\n }\n return false;\n}\n\nexport function useWindowWidth() {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n\n useEffect(() => {\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n return windowWidth;\n}\n"],"names":["route","Client","useI18n","i18n","rest","useTranslation","lng","callback","error","t","setLocaleToStorage","useRuleIndexNavigate","code","link","navigate","useNavigate","window","Rule","useUrlQuery","search","useLocation","location","query","parse","useLoading","defaultLoading","loading","setLoading","useState","func","useProjectRootByManifest","manifest","useHashByManifest","useCloudManifestUrlByManifest","ensurePlainObject","value","dfts","Array","defaults","useChunkGraphByManifest","prev","JSON","Algorithm","useConfigOutputFileNameByManifest","useModuleGraphByManifest","useModuleGraph","moduleGraph","usePackageGraphByManifest","useUniqModulesByManifest","uniqBy","e","useUniqModules","modules","useErrorsByManifest","useBundleAlertsByManifest","errors","useBundleAlertsByErrors","useDuplicatePackagesByManifest","alerts","useDuplicatePackagesByErrors","useCompileAlertsByErrors","useWebpackConfigurationByConfigs","configs","useDetectIfCloudIdeEnv","useWindowWidth","windowWidth","setWindowWidth","useEffect","handleResize"],"mappings":"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"}
@@ -11,7 +11,7 @@ function filterLoader(resourcePath, loader, keyword, loaderNames, resorceLayer,
11
11
  if (-1 === resourcePath.indexOf(keyword)) return false;
12
12
  }
13
13
  if (resorceLayer && layer && resorceLayer !== layer) return false;
14
- if (null == loaderNames ? void 0 : loaderNames.length) {
14
+ if (loaderNames?.length) {
15
15
  if (!loaderNames.includes(loader)) return false;
16
16
  }
17
17
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"utils/loader.mjs","sources":["webpack://@rsdoctor/components/./src/utils/loader.ts"],"sourcesContent":["import { Loader } from '@rsdoctor/utils/common';\nimport { SDK } from '@rsdoctor/types';\n\nconst { findLoaderTotalTiming, getLoaderCosts } = Loader;\nexport { findLoaderTotalTiming, getLoaderCosts };\n\nexport function flattenLoaderData(loaderData: SDK.LoaderData) {\n return loaderData.flatMap((e) => e.loaders);\n}\n\nexport function filterLoaders(\n loaderData: SDK.ResourceLoaderData,\n keyword: string,\n loaderNames: string[],\n layer?: string,\n) {\n return loaderData.loaders.filter((item) => {\n return filterLoader(\n loaderData.resource.path,\n item.loader,\n keyword,\n loaderNames,\n loaderData.resource.layer,\n layer,\n );\n });\n}\n\nexport function filterLoader(\n resourcePath: string,\n loader: string,\n keyword: string,\n loaderNames: string[],\n resorceLayer?: string,\n layer?: string,\n) {\n if (keyword) {\n if (resourcePath.indexOf(keyword) === -1) return false;\n }\n\n if (resorceLayer && layer && resorceLayer !== layer) {\n return false;\n }\n\n if (loaderNames?.length) {\n if (!loaderNames.includes(loader)) return false;\n }\n\n return true;\n}\n"],"names":["findLoaderTotalTiming","getLoaderCosts","Loader","flattenLoaderData","loaderData","e","filterLoaders","keyword","loaderNames","layer","item","filterLoader","resourcePath","loader","resorceLayer"],"mappings":";AAGA,MAAM,EAAEA,qBAAqB,EAAEC,cAAc,EAAE,GAAGC;AAG3C,SAASC,kBAAkBC,UAA0B;IAC1D,OAAOA,WAAW,OAAO,CAAC,CAACC,IAAMA,EAAE,OAAO;AAC5C;AAEO,SAASC,cACdF,UAAkC,EAClCG,OAAe,EACfC,WAAqB,EACrBC,KAAc;IAEd,OAAOL,WAAW,OAAO,CAAC,MAAM,CAAC,CAACM,OACzBC,aACLP,WAAW,QAAQ,CAAC,IAAI,EACxBM,KAAK,MAAM,EACXH,SACAC,aACAJ,WAAW,QAAQ,CAAC,KAAK,EACzBK;AAGN;AAEO,SAASE,aACdC,YAAoB,EACpBC,MAAc,EACdN,OAAe,EACfC,WAAqB,EACrBM,YAAqB,EACrBL,KAAc;IAEd,IAAIF,SACF;QAAA,IAAIK,AAAkC,OAAlCA,aAAa,OAAO,CAACL,UAAiB,OAAO;IAAK;IAGxD,IAAIO,gBAAgBL,SAASK,iBAAiBL,OAC5C,OAAO;IAGT,IAAID,QAAAA,cAAAA,KAAAA,IAAAA,YAAa,MAAM,EACrB;QAAA,IAAI,CAACA,YAAY,QAAQ,CAACK,SAAS,OAAO;IAAK;IAGjD,OAAO;AACT"}
1
+ {"version":3,"file":"utils/loader.mjs","sources":["webpack://@rsdoctor/components/./src/utils/loader.ts"],"sourcesContent":["import { Loader } from '@rsdoctor/utils/common';\nimport { SDK } from '@rsdoctor/types';\n\nconst { findLoaderTotalTiming, getLoaderCosts } = Loader;\nexport { findLoaderTotalTiming, getLoaderCosts };\n\nexport function flattenLoaderData(loaderData: SDK.LoaderData) {\n return loaderData.flatMap((e) => e.loaders);\n}\n\nexport function filterLoaders(\n loaderData: SDK.ResourceLoaderData,\n keyword: string,\n loaderNames: string[],\n layer?: string,\n) {\n return loaderData.loaders.filter((item) => {\n return filterLoader(\n loaderData.resource.path,\n item.loader,\n keyword,\n loaderNames,\n loaderData.resource.layer,\n layer,\n );\n });\n}\n\nexport function filterLoader(\n resourcePath: string,\n loader: string,\n keyword: string,\n loaderNames: string[],\n resorceLayer?: string,\n layer?: string,\n) {\n if (keyword) {\n if (resourcePath.indexOf(keyword) === -1) return false;\n }\n\n if (resorceLayer && layer && resorceLayer !== layer) {\n return false;\n }\n\n if (loaderNames?.length) {\n if (!loaderNames.includes(loader)) return false;\n }\n\n return true;\n}\n"],"names":["findLoaderTotalTiming","getLoaderCosts","Loader","flattenLoaderData","loaderData","e","filterLoaders","keyword","loaderNames","layer","item","filterLoader","resourcePath","loader","resorceLayer"],"mappings":";AAGA,MAAM,EAAEA,qBAAqB,EAAEC,cAAc,EAAE,GAAGC;AAG3C,SAASC,kBAAkBC,UAA0B;IAC1D,OAAOA,WAAW,OAAO,CAAC,CAACC,IAAMA,EAAE,OAAO;AAC5C;AAEO,SAASC,cACdF,UAAkC,EAClCG,OAAe,EACfC,WAAqB,EACrBC,KAAc;IAEd,OAAOL,WAAW,OAAO,CAAC,MAAM,CAAC,CAACM,OACzBC,aACLP,WAAW,QAAQ,CAAC,IAAI,EACxBM,KAAK,MAAM,EACXH,SACAC,aACAJ,WAAW,QAAQ,CAAC,KAAK,EACzBK;AAGN;AAEO,SAASE,aACdC,YAAoB,EACpBC,MAAc,EACdN,OAAe,EACfC,WAAqB,EACrBM,YAAqB,EACrBL,KAAc;IAEd,IAAIF,SACF;QAAA,IAAIK,AAAkC,OAAlCA,aAAa,OAAO,CAACL,UAAiB,OAAO;IAAK;IAGxD,IAAIO,gBAAgBL,SAASK,iBAAiBL,OAC5C,OAAO;IAGT,IAAID,aAAa,QACf;QAAA,IAAI,CAACA,YAAY,QAAQ,CAACK,SAAS,OAAO;IAAK;IAGjD,OAAO;AACT"}
@@ -65,9 +65,8 @@ async function fetchManifest(url = getManifestUrl()) {
65
65
  }
66
66
  if ('development' === process.env.NODE_ENV) {
67
67
  if (getAPILoaderModeFromStorage() === APILoaderMode4Dev.Local) axios.interceptors.request.use((c)=>{
68
- var _c_url;
69
68
  c.withCredentials = false;
70
- if (null == (_c_url = c.url) ? void 0 : _c_url.startsWith('/')) {
69
+ if (c.url?.startsWith('/')) {
71
70
  if (c.url === manifestUrlForDev) c.url = SDK.ServerAPI.API.Manifest;
72
71
  const url = new URL(location.href);
73
72
  url.port = String(process.env.LOCAL_CLI_PORT);
@@ -1 +1 @@
1
- {"version":3,"file":"utils/request.mjs","sources":["webpack://@rsdoctor/components/./src/utils/request.ts"],"sourcesContent":["import axios from 'axios';\nimport { Manifest, SDK } from '@rsdoctor/types';\nimport { Manifest as ManifestMethod, Url } from '@rsdoctor/utils/common';\nimport { APILoaderMode4Dev } from '../constants';\nimport { getManifestUrlFromUrlQuery } from './url';\nimport { getAPILoaderModeFromStorage } from './storage';\n\nfunction random() {\n return `${Date.now()}${Math.floor(Math.random() * 10000)}`;\n}\n\nexport async function fetchShardingFile(url: string): Promise<string> {\n if (Url.isUrl(url)) {\n return axios\n .get(url, { timeout: 999999, responseType: 'text' })\n .then((e) => e.data);\n }\n // json string\n return url;\n}\n\nexport async function loadManifestByUrl(url: string) {\n const json = await fetchJSONByUrl(url);\n\n const res = await parseManifest(json);\n return res;\n}\n\nexport async function fetchJSONByUrl(url: string) {\n let json: Manifest.RsdoctorManifestWithShardingFiles = await axios\n .get(url, { timeout: 30000 })\n .then((e) => e.data);\n\n if (typeof json === 'string') {\n json = JSON.parse(json);\n }\n\n console.log('[json] ', url, json);\n\n return json;\n}\n\nexport function fetchJSONByUrls(urls: string[]) {\n return Promise.all(urls.map((url) => fetchJSONByUrl(url)));\n}\n\nexport async function parseManifest(\n json: Manifest.RsdoctorManifestWithShardingFiles,\n) {\n let transformedData: Manifest.RsdoctorManifestData;\n\n try {\n // try to load cloud data first\n if (json.cloudData) {\n try {\n transformedData = await ManifestMethod.fetchShardingFiles(\n json.cloudData,\n fetchShardingFile,\n );\n } catch (error) {\n console.log('cloudData load error: ', error);\n }\n } else {\n transformedData = await ManifestMethod.fetchShardingFiles(\n json.data,\n fetchShardingFile,\n );\n }\n } catch (error) {\n transformedData = await ManifestMethod.fetchShardingFiles(\n json.data,\n fetchShardingFile,\n );\n }\n\n return {\n ...json,\n data: transformedData!,\n };\n}\n\nconst manifestUrlForDev = '/manifest.json';\n\nexport function getManifestUrl(): string {\n let file: string | void;\n\n if (\n (window as { [key: string]: any })[\n Manifest.RsdoctorManifestClientConstant.WindowPropertyForManifestUrl\n ]\n ) {\n // load from window property\n file = (window as { [key: string]: any })[\n Manifest.RsdoctorManifestClientConstant.WindowPropertyForManifestUrl\n ];\n } else {\n // load from url query\n file = getManifestUrlFromUrlQuery();\n }\n\n if (!file) {\n file = SDK.ServerAPI.API.Manifest;\n }\n\n return file;\n}\n\nconst pool = new Map<\n string,\n Promise<Manifest.RsdoctorManifestWithShardingFiles>\n>();\n\nexport async function fetchManifest(url = getManifestUrl()) {\n if (!pool.has(url)) {\n pool.set(\n url,\n fetchJSONByUrl(url).catch((err) => {\n pool.delete(url);\n throw err;\n }),\n );\n }\n\n const res = await pool.get(url)!;\n\n return res;\n}\n\n// test for cli\nif (process.env.NODE_ENV === 'development') {\n if (getAPILoaderModeFromStorage() === APILoaderMode4Dev.Local) {\n axios.interceptors.request.use((c) => {\n c.withCredentials = false;\n if (c.url?.startsWith('/')) {\n if (c.url === manifestUrlForDev) {\n c.url = SDK.ServerAPI.API.Manifest;\n }\n const url = new URL(location.href);\n url.port = String(process.env.LOCAL_CLI_PORT!);\n return {\n ...c,\n url: `${url.origin}${c.url}`,\n };\n }\n\n return c;\n });\n }\n}\n\nexport async function postServerAPI<\n T extends SDK.ServerAPI.API,\n B extends\n SDK.ServerAPI.InferRequestBodyType<T> = SDK.ServerAPI.InferRequestBodyType<T>,\n R extends\n SDK.ServerAPI.InferResponseType<T> = SDK.ServerAPI.InferResponseType<T>,\n>(...args: B extends void ? [api: T] : [api: T, body: B]): Promise<R> {\n const [api, body] = args;\n const timeout = process.env.NODE_ENV === 'development' ? 10000 : 60000;\n const { data } = await axios.post<SDK.ServerAPI.InferResponseType<T>>(\n `${api}?_t=${random()}`,\n body,\n { timeout },\n );\n return data as R;\n}\n"],"names":["random","Date","Math","fetchShardingFile","url","Url","axios","e","loadManifestByUrl","json","fetchJSONByUrl","res","parseManifest","JSON","console","fetchJSONByUrls","urls","Promise","transformedData","ManifestMethod","error","manifestUrlForDev","getManifestUrl","file","window","Manifest","getManifestUrlFromUrlQuery","SDK","pool","Map","fetchManifest","err","process","getAPILoaderModeFromStorage","APILoaderMode4Dev","c","_c_url","URL","location","String","postServerAPI","args","api","body","timeout","data"],"mappings":";;;;;;AAOA,SAASA;IACP,OAAO,GAAGC,KAAK,GAAG,KAAKC,KAAK,KAAK,CAACA,AAAgB,QAAhBA,KAAK,MAAM,KAAa;AAC5D;AAEO,eAAeC,kBAAkBC,GAAW;IACjD,IAAIC,IAAI,KAAK,CAACD,MACZ,OAAOE,MAAAA,GACD,CAACF,KAAK;QAAE,SAAS;QAAQ,cAAc;IAAO,GACjD,IAAI,CAAC,CAACG,IAAMA,EAAE,IAAI;IAGvB,OAAOH;AACT;AAEO,eAAeI,kBAAkBJ,GAAW;IACjD,MAAMK,OAAO,MAAMC,eAAeN;IAElC,MAAMO,MAAM,MAAMC,cAAcH;IAChC,OAAOE;AACT;AAEO,eAAeD,eAAeN,GAAW;IAC9C,IAAIK,OAAmD,MAAMH,MAAAA,GACvD,CAACF,KAAK;QAAE,SAAS;IAAM,GAC1B,IAAI,CAAC,CAACG,IAAMA,EAAE,IAAI;IAErB,IAAI,AAAgB,YAAhB,OAAOE,MACTA,OAAOI,KAAK,KAAK,CAACJ;IAGpBK,QAAQ,GAAG,CAAC,WAAWV,KAAKK;IAE5B,OAAOA;AACT;AAEO,SAASM,gBAAgBC,IAAc;IAC5C,OAAOC,QAAQ,GAAG,CAACD,KAAK,GAAG,CAAC,CAACZ,MAAQM,eAAeN;AACtD;AAEO,eAAeQ,cACpBH,IAAgD;IAEhD,IAAIS;IAEJ,IAAI;QAEF,IAAIT,KAAK,SAAS,EAChB,IAAI;YACFS,kBAAkB,MAAMC,gBAAAA,kBAAiC,CACvDV,KAAK,SAAS,EACdN;QAEJ,EAAE,OAAOiB,OAAO;YACdN,QAAQ,GAAG,CAAC,0BAA0BM;QACxC;aAEAF,kBAAkB,MAAMC,gBAAAA,kBAAiC,CACvDV,KAAK,IAAI,EACTN;IAGN,EAAE,OAAOiB,OAAO;QACdF,kBAAkB,MAAMC,gBAAAA,kBAAiC,CACvDV,KAAK,IAAI,EACTN;IAEJ;IAEA,OAAO;QACL,GAAGM,IAAI;QACP,MAAMS;IACR;AACF;AAEA,MAAMG,oBAAoB;AAEnB,SAASC;IACd,IAAIC;IAQFA,OALCC,MAAiC,CAChCC,SAAS,8BAA8B,CAAC,4BAA4B,CACrE,GAGOD,MAAiC,CACvCC,SAAS,8BAA8B,CAAC,4BAA4B,CACrE,GAGMC;IAGT,IAAI,CAACH,MACHA,OAAOI,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ;IAGnC,OAAOJ;AACT;AAEA,MAAMK,OAAO,IAAIC;AAKV,eAAeC,cAAc1B,MAAMkB,gBAAgB;IACxD,IAAI,CAACM,KAAK,GAAG,CAACxB,MACZwB,KAAK,GAAG,CACNxB,KACAM,eAAeN,KAAK,KAAK,CAAC,CAAC2B;QACzBH,KAAK,MAAM,CAACxB;QACZ,MAAM2B;IACR;IAIJ,MAAMpB,MAAM,MAAMiB,KAAK,GAAG,CAACxB;IAE3B,OAAOO;AACT;AAGA,IAAIqB,AAAyB,kBAAzBA,QAAQ,GAAG,CAAC,QAAQ,EACtB;IAAA,IAAIC,kCAAkCC,kBAAkB,KAAK,EAC3D5B,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC6B;YAE1BC;QADJD,EAAE,eAAe,GAAG;QACpB,IAAI,QAAAC,CAAAA,SAAAA,EAAE,GAAG,AAAD,IAAJA,KAAAA,IAAAA,OAAO,UAAU,CAAC,MAAM;YAC1B,IAAID,EAAE,GAAG,KAAKd,mBACZc,EAAE,GAAG,GAAGR,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ;YAEpC,MAAMvB,MAAM,IAAIiC,IAAIC,SAAS,IAAI;YACjClC,IAAI,IAAI,GAAGmC,OAAOP,QAAQ,GAAG,CAAC,cAAc;YAC5C,OAAO;gBACL,GAAGG,CAAC;gBACJ,KAAK,GAAG/B,IAAI,MAAM,GAAG+B,EAAE,GAAG,EAAE;YAC9B;QACF;QAEA,OAAOA;IACT;AACF;AAGK,eAAeK,cAMpB,GAAGC,IAAmD;IACtD,MAAM,CAACC,KAAKC,KAAK,GAAGF;IACpB,MAAMG,UAAUZ,AAAyB,kBAAzBA,QAAQ,GAAG,CAAC,QAAQ,GAAqB,QAAQ;IACjE,MAAM,EAAEa,IAAI,EAAE,GAAG,MAAMvC,MAAM,IAAI,CAC/B,GAAGoC,IAAI,IAAI,EAAE1C,UAAU,EACvB2C,MACA;QAAEC;IAAQ;IAEZ,OAAOC;AACT"}
1
+ {"version":3,"file":"utils/request.mjs","sources":["webpack://@rsdoctor/components/./src/utils/request.ts"],"sourcesContent":["import axios from 'axios';\nimport { Manifest, SDK } from '@rsdoctor/types';\nimport { Manifest as ManifestMethod, Url } from '@rsdoctor/utils/common';\nimport { APILoaderMode4Dev } from '../constants';\nimport { getManifestUrlFromUrlQuery } from './url';\nimport { getAPILoaderModeFromStorage } from './storage';\n\nfunction random() {\n return `${Date.now()}${Math.floor(Math.random() * 10000)}`;\n}\n\nexport async function fetchShardingFile(url: string): Promise<string> {\n if (Url.isUrl(url)) {\n return axios\n .get(url, { timeout: 999999, responseType: 'text' })\n .then((e) => e.data);\n }\n // json string\n return url;\n}\n\nexport async function loadManifestByUrl(url: string) {\n const json = await fetchJSONByUrl(url);\n\n const res = await parseManifest(json);\n return res;\n}\n\nexport async function fetchJSONByUrl(url: string) {\n let json: Manifest.RsdoctorManifestWithShardingFiles = await axios\n .get(url, { timeout: 30000 })\n .then((e) => e.data);\n\n if (typeof json === 'string') {\n json = JSON.parse(json);\n }\n\n console.log('[json] ', url, json);\n\n return json;\n}\n\nexport function fetchJSONByUrls(urls: string[]) {\n return Promise.all(urls.map((url) => fetchJSONByUrl(url)));\n}\n\nexport async function parseManifest(\n json: Manifest.RsdoctorManifestWithShardingFiles,\n) {\n let transformedData: Manifest.RsdoctorManifestData;\n\n try {\n // try to load cloud data first\n if (json.cloudData) {\n try {\n transformedData = await ManifestMethod.fetchShardingFiles(\n json.cloudData,\n fetchShardingFile,\n );\n } catch (error) {\n console.log('cloudData load error: ', error);\n }\n } else {\n transformedData = await ManifestMethod.fetchShardingFiles(\n json.data,\n fetchShardingFile,\n );\n }\n } catch (error) {\n transformedData = await ManifestMethod.fetchShardingFiles(\n json.data,\n fetchShardingFile,\n );\n }\n\n return {\n ...json,\n data: transformedData!,\n };\n}\n\nconst manifestUrlForDev = '/manifest.json';\n\nexport function getManifestUrl(): string {\n let file: string | void;\n\n if (\n (window as { [key: string]: any })[\n Manifest.RsdoctorManifestClientConstant.WindowPropertyForManifestUrl\n ]\n ) {\n // load from window property\n file = (window as { [key: string]: any })[\n Manifest.RsdoctorManifestClientConstant.WindowPropertyForManifestUrl\n ];\n } else {\n // load from url query\n file = getManifestUrlFromUrlQuery();\n }\n\n if (!file) {\n file = SDK.ServerAPI.API.Manifest;\n }\n\n return file;\n}\n\nconst pool = new Map<\n string,\n Promise<Manifest.RsdoctorManifestWithShardingFiles>\n>();\n\nexport async function fetchManifest(url = getManifestUrl()) {\n if (!pool.has(url)) {\n pool.set(\n url,\n fetchJSONByUrl(url).catch((err) => {\n pool.delete(url);\n throw err;\n }),\n );\n }\n\n const res = await pool.get(url)!;\n\n return res;\n}\n\n// test for cli\nif (process.env.NODE_ENV === 'development') {\n if (getAPILoaderModeFromStorage() === APILoaderMode4Dev.Local) {\n axios.interceptors.request.use((c) => {\n c.withCredentials = false;\n if (c.url?.startsWith('/')) {\n if (c.url === manifestUrlForDev) {\n c.url = SDK.ServerAPI.API.Manifest;\n }\n const url = new URL(location.href);\n url.port = String(process.env.LOCAL_CLI_PORT!);\n return {\n ...c,\n url: `${url.origin}${c.url}`,\n };\n }\n\n return c;\n });\n }\n}\n\nexport async function postServerAPI<\n T extends SDK.ServerAPI.API,\n B extends\n SDK.ServerAPI.InferRequestBodyType<T> = SDK.ServerAPI.InferRequestBodyType<T>,\n R extends\n SDK.ServerAPI.InferResponseType<T> = SDK.ServerAPI.InferResponseType<T>,\n>(...args: B extends void ? [api: T] : [api: T, body: B]): Promise<R> {\n const [api, body] = args;\n const timeout = process.env.NODE_ENV === 'development' ? 10000 : 60000;\n const { data } = await axios.post<SDK.ServerAPI.InferResponseType<T>>(\n `${api}?_t=${random()}`,\n body,\n { timeout },\n );\n return data as R;\n}\n"],"names":["random","Date","Math","fetchShardingFile","url","Url","axios","e","loadManifestByUrl","json","fetchJSONByUrl","res","parseManifest","JSON","console","fetchJSONByUrls","urls","Promise","transformedData","ManifestMethod","error","manifestUrlForDev","getManifestUrl","file","window","Manifest","getManifestUrlFromUrlQuery","SDK","pool","Map","fetchManifest","err","process","getAPILoaderModeFromStorage","APILoaderMode4Dev","c","URL","location","String","postServerAPI","args","api","body","timeout","data"],"mappings":"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"}
@@ -70,11 +70,11 @@ function getDemoUrl() {
70
70
  return null;
71
71
  }
72
72
  const getShortPath = (path)=>{
73
- if ((null == path ? void 0 : path.indexOf('node_modules')) >= 0) {
73
+ if (path?.indexOf('node_modules') >= 0) {
74
74
  const pathArr = path.split('node_modules');
75
75
  return `node_modules${pathArr[pathArr.length - 1]}`;
76
76
  }
77
- if (null == path ? void 0 : path.length) return `${null == path ? void 0 : path.split('/').slice(-4).join('/')}`;
77
+ if (path?.length) return `${path?.split('/').slice(-4).join('/')}`;
78
78
  return path;
79
79
  };
80
80
  function isDef(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils/url.mjs","sources":["webpack://@rsdoctor/components/./src/utils/url.ts"],"sourcesContent":["import parse from 'url-parse';\nimport { Constants, Client } from '@rsdoctor/types';\n\nfunction setDefaultUrl(url: parse<Record<string, string | undefined>>) {\n if (process.env.NODE_ENV !== 'development') {\n const uri = parse(Constants.RsdoctorClientUrl, true);\n url.set('origin', uri.origin);\n url.set('protocol', uri.protocol);\n url.set('host', uri.host);\n url.set('pathname', uri.pathname);\n }\n}\n\nfunction setUploaderHash(url: parse<Record<string, string | undefined>>) {\n if (url.hash.endsWith(Client.RsdoctorClientRoutes.Uploader)) {\n url.set('hash', Client.RsdoctorClientRoutes.Overall);\n }\n}\n\nexport function isJsDataUrl(path: string) {\n return path.startsWith('data:text/javascript;');\n}\n\nexport function getManifestUrlFromUrlQuery(): string | void {\n const { query } = parse(location.href, true);\n const url = query[Client.RsdoctorClientUrlQuery.ManifestFile];\n if (url) {\n return decodeURIComponent(url);\n }\n}\n\nexport function getEnableRoutesFromUrlQuery(): string[] | void {\n const { query } = parse(location.href, true);\n let enableRoutesStr = query[Client.RsdoctorClientUrlQuery.EnableRoutes];\n\n if (!enableRoutesStr && location.hash) {\n const hashUrl = parse(location.hash, true);\n enableRoutesStr = hashUrl.query[Client.RsdoctorClientUrlQuery.EnableRoutes];\n }\n\n // If still not found, try manual parsing of hash fragment\n if (!enableRoutesStr && location.hash) {\n const hashFragment = location.hash;\n const queryIndex = hashFragment.indexOf('?');\n if (queryIndex !== -1) {\n const queryString = hashFragment.substring(queryIndex + 1);\n const urlParams = new URLSearchParams(queryString);\n enableRoutesStr =\n urlParams.get(Client.RsdoctorClientUrlQuery.EnableRoutes) || undefined;\n }\n }\n\n if (enableRoutesStr) {\n try {\n const result = JSON.parse(decodeURIComponent(enableRoutesStr));\n return result;\n } catch (err) {\n console.warn('Failed to parse enableRoutes from URL query:', err);\n return undefined;\n }\n }\n return undefined;\n}\n\nexport function changeOrigin(origin: string) {\n const url = parse(location.href, true);\n const newUrl = parse(origin, true);\n\n setUploaderHash(url);\n\n url.set('origin', origin);\n url.set('protocol', newUrl.protocol);\n url.set('host', newUrl.host);\n url.set('port', newUrl.port);\n\n return url.toString();\n}\n\nexport function getSharingUrl(\n manifestCloudUrl: string,\n enableRoutes?: string[],\n) {\n const url = parse(location.href, true);\n\n setDefaultUrl(url);\n setUploaderHash(url);\n\n const query: Record<string, string> = {\n ...url.query,\n [Client.RsdoctorClientUrlQuery.ManifestFile]: manifestCloudUrl,\n };\n\n // Add enableRoutes to query if provided\n if (enableRoutes && enableRoutes.length > 0) {\n query[Client.RsdoctorClientUrlQuery.EnableRoutes] =\n JSON.stringify(enableRoutes);\n }\n\n url.set('query', query);\n\n return url.toString();\n}\n\nexport function getDemoUrl() {\n if (process.env.OFFICIAL_DEMO_MANIFEST_PATH) {\n return getSharingUrl(process.env.OFFICIAL_DEMO_MANIFEST_PATH);\n }\n return null;\n}\n\nexport const getShortPath = (path: string) => {\n if (path?.indexOf('node_modules') >= 0) {\n const pathArr = path.split('node_modules');\n return `node_modules${pathArr[pathArr.length - 1]}`;\n }\n if (path?.length) {\n return `${path?.split('/').slice(-4).join('/')}`;\n }\n return path;\n};\n\nexport function isDef<E = unknown>(data: E): data is NonNullable<E> {\n return data !== undefined && data !== null;\n}\n"],"names":["setDefaultUrl","url","process","uri","parse","Constants","setUploaderHash","Client","isJsDataUrl","path","getManifestUrlFromUrlQuery","query","location","decodeURIComponent","getEnableRoutesFromUrlQuery","enableRoutesStr","hashUrl","hashFragment","queryIndex","queryString","urlParams","URLSearchParams","undefined","result","JSON","err","console","changeOrigin","origin","newUrl","getSharingUrl","manifestCloudUrl","enableRoutes","getDemoUrl","getShortPath","pathArr","isDef","data"],"mappings":"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"}
1
+ {"version":3,"file":"utils/url.mjs","sources":["webpack://@rsdoctor/components/./src/utils/url.ts"],"sourcesContent":["import parse from 'url-parse';\nimport { Constants, Client } from '@rsdoctor/types';\n\nfunction setDefaultUrl(url: parse<Record<string, string | undefined>>) {\n if (process.env.NODE_ENV !== 'development') {\n const uri = parse(Constants.RsdoctorClientUrl, true);\n url.set('origin', uri.origin);\n url.set('protocol', uri.protocol);\n url.set('host', uri.host);\n url.set('pathname', uri.pathname);\n }\n}\n\nfunction setUploaderHash(url: parse<Record<string, string | undefined>>) {\n if (url.hash.endsWith(Client.RsdoctorClientRoutes.Uploader)) {\n url.set('hash', Client.RsdoctorClientRoutes.Overall);\n }\n}\n\nexport function isJsDataUrl(path: string) {\n return path.startsWith('data:text/javascript;');\n}\n\nexport function getManifestUrlFromUrlQuery(): string | void {\n const { query } = parse(location.href, true);\n const url = query[Client.RsdoctorClientUrlQuery.ManifestFile];\n if (url) {\n return decodeURIComponent(url);\n }\n}\n\nexport function getEnableRoutesFromUrlQuery(): string[] | void {\n const { query } = parse(location.href, true);\n let enableRoutesStr = query[Client.RsdoctorClientUrlQuery.EnableRoutes];\n\n if (!enableRoutesStr && location.hash) {\n const hashUrl = parse(location.hash, true);\n enableRoutesStr = hashUrl.query[Client.RsdoctorClientUrlQuery.EnableRoutes];\n }\n\n // If still not found, try manual parsing of hash fragment\n if (!enableRoutesStr && location.hash) {\n const hashFragment = location.hash;\n const queryIndex = hashFragment.indexOf('?');\n if (queryIndex !== -1) {\n const queryString = hashFragment.substring(queryIndex + 1);\n const urlParams = new URLSearchParams(queryString);\n enableRoutesStr =\n urlParams.get(Client.RsdoctorClientUrlQuery.EnableRoutes) || undefined;\n }\n }\n\n if (enableRoutesStr) {\n try {\n const result = JSON.parse(decodeURIComponent(enableRoutesStr));\n return result;\n } catch (err) {\n console.warn('Failed to parse enableRoutes from URL query:', err);\n return undefined;\n }\n }\n return undefined;\n}\n\nexport function changeOrigin(origin: string) {\n const url = parse(location.href, true);\n const newUrl = parse(origin, true);\n\n setUploaderHash(url);\n\n url.set('origin', origin);\n url.set('protocol', newUrl.protocol);\n url.set('host', newUrl.host);\n url.set('port', newUrl.port);\n\n return url.toString();\n}\n\nexport function getSharingUrl(\n manifestCloudUrl: string,\n enableRoutes?: string[],\n) {\n const url = parse(location.href, true);\n\n setDefaultUrl(url);\n setUploaderHash(url);\n\n const query: Record<string, string> = {\n ...url.query,\n [Client.RsdoctorClientUrlQuery.ManifestFile]: manifestCloudUrl,\n };\n\n // Add enableRoutes to query if provided\n if (enableRoutes && enableRoutes.length > 0) {\n query[Client.RsdoctorClientUrlQuery.EnableRoutes] =\n JSON.stringify(enableRoutes);\n }\n\n url.set('query', query);\n\n return url.toString();\n}\n\nexport function getDemoUrl() {\n if (process.env.OFFICIAL_DEMO_MANIFEST_PATH) {\n return getSharingUrl(process.env.OFFICIAL_DEMO_MANIFEST_PATH);\n }\n return null;\n}\n\nexport const getShortPath = (path: string) => {\n if (path?.indexOf('node_modules') >= 0) {\n const pathArr = path.split('node_modules');\n return `node_modules${pathArr[pathArr.length - 1]}`;\n }\n if (path?.length) {\n return `${path?.split('/').slice(-4).join('/')}`;\n }\n return path;\n};\n\nexport function isDef<E = unknown>(data: E): data is NonNullable<E> {\n return data !== undefined && data !== null;\n}\n"],"names":["setDefaultUrl","url","process","uri","parse","Constants","setUploaderHash","Client","isJsDataUrl","path","getManifestUrlFromUrlQuery","query","location","decodeURIComponent","getEnableRoutesFromUrlQuery","enableRoutesStr","hashUrl","hashFragment","queryIndex","queryString","urlParams","URLSearchParams","undefined","result","JSON","err","console","changeOrigin","origin","newUrl","getSharingUrl","manifestCloudUrl","enableRoutes","getDemoUrl","getShortPath","pathArr","isDef","data"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdoctor/components",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "license": "MIT",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": {
@@ -38,7 +38,7 @@
38
38
  }
39
39
  },
40
40
  "devDependencies": {
41
- "@rsbuild/plugin-check-syntax": "1.4.0",
41
+ "@rsbuild/plugin-check-syntax": "1.5.0",
42
42
  "@rsbuild/plugin-react": "^1.4.1",
43
43
  "@rsbuild/plugin-sass": "^1.4.0",
44
44
  "@rsbuild/plugin-svgr": "^1.2.2",
@@ -60,7 +60,7 @@
60
60
  "dayjs": "1.11.18",
61
61
  "echarts": "^5.6.0",
62
62
  "echarts-for-react": "^3.0.3",
63
- "es-toolkit": "^1.40.0",
63
+ "es-toolkit": "^1.41.0",
64
64
  "i18next": "22.0.4",
65
65
  "monaco-editor": "0.49.0",
66
66
  "path-browserify": "1.0.1",
@@ -74,9 +74,9 @@
74
74
  "react-router-dom": "6.4.3",
75
75
  "socket.io-client": "4.8.1",
76
76
  "url-parse": "1.5.10",
77
- "@rsdoctor/utils": "1.3.4",
78
- "@rsdoctor/graph": "1.3.4",
79
- "@rsdoctor/types": "1.3.4"
77
+ "@rsdoctor/graph": "1.3.5",
78
+ "@rsdoctor/types": "1.3.5",
79
+ "@rsdoctor/utils": "1.3.5"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "react": ">=18.3.1",