@rsdoctor/components 1.5.4 → 1.5.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.
@@ -11,6 +11,7 @@ import { CrossChunksAlertCollapse } from "./collapse-cross-chunks.mjs";
11
11
  import { ModuleMixedChunksAlertCollapse } from "./collapse-module-mixed-chunks.mjs";
12
12
  import { SideEffectsOnlyImportsAlertCollapse } from "./collapse-side-effects-only-imports.mjs";
13
13
  import { CjsRequireAlertCollapse } from "./collapse-cjs-require.mjs";
14
+ import { EsmResolvedToCjsAlertCollapse } from "./collapse-esm-cjs.mjs";
14
15
  const BundleAlert = ({ title, dataSource, extraData })=>{
15
16
  const firstKeyWithData = [
16
17
  'E1001',
@@ -20,7 +21,8 @@ const BundleAlert = ({ title, dataSource, extraData })=>{
20
21
  'E1005',
21
22
  'E1006',
22
23
  'E1007',
23
- 'E1008'
24
+ 'E1008',
25
+ 'E1009'
24
26
  ].find((code)=>dataSource.some((d)=>d.code === code)) ?? 'E1001';
25
27
  const [activeKey, setActiveKey] = useState(firstKeyWithData);
26
28
  const tabData = [
@@ -63,6 +65,11 @@ const BundleAlert = ({ title, dataSource, extraData })=>{
63
65
  key: 'E1008',
64
66
  label: 'CJS Require Cannot Tree-Shake',
65
67
  data: []
68
+ },
69
+ {
70
+ key: 'E1009',
71
+ label: 'ESM Import Resolved to CJS',
72
+ data: []
66
73
  }
67
74
  ];
68
75
  dataSource.forEach((data)=>{
@@ -161,6 +168,12 @@ const BundleAlert = ({ title, dataSource, extraData })=>{
161
168
  extraData: extraData
162
169
  });
163
170
  break;
171
+ case 'E1009':
172
+ children = /*#__PURE__*/ jsx(EsmResolvedToCjsAlertCollapse, {
173
+ data: td.data,
174
+ extraData: extraData
175
+ });
176
+ break;
164
177
  default:
165
178
  children = null;
166
179
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"components/Alerts/bundle-alert.mjs","sources":["../../../src/components/Alerts/bundle-alert.tsx"],"sourcesContent":["import { Tabs, Empty, Tag } from 'antd';\n\nimport { Card } from '../Card';\nimport { ECMAVersionCheck } from '../Alert/ecma-version-check';\nimport { Overview } from '../Overall/overview';\nimport { AlertCollapse } from './collapse';\nimport { CommonList } from './list';\nimport { ViewMode } from '../../constants';\n\nimport { AlertProps } from '../Alert/types';\n\nimport type { Rule } from '@rsdoctor/types';\n\nimport styles from './bundle-alert.module.scss';\nimport { CSSProperties, useState } from 'react';\nimport { CrossChunksAlertCollapse } from './collapse-cross-chunks';\nimport { ModuleMixedChunksAlertCollapse } from './collapse-module-mixed-chunks';\nimport { SideEffectsOnlyImportsAlertCollapse } from './collapse-side-effects-only-imports';\nimport { CjsRequireAlertCollapse } from './collapse-cjs-require';\n\ninterface BundleAlertProps {\n title: string;\n cwd: string;\n dataSource: Rule.RuleStoreDataItem[];\n extraData: Omit<AlertProps, 'data'>;\n viewMode: ViewMode;\n setViewMode(mode: ViewMode): void;\n extraCom?: JSX.Element | undefined;\n}\n\nexport const BundleAlert: React.FC<BundleAlertProps> = ({\n title,\n dataSource,\n extraData,\n}) => {\n const firstKeyWithData =\n [\n 'E1001',\n 'E1002',\n 'E1003',\n 'E1004',\n 'E1005',\n 'E1006',\n 'E1007',\n 'E1008',\n ].find((code) => dataSource.some((d) => d.code === code)) ?? 'E1001';\n const [activeKey, setActiveKey] = useState(firstKeyWithData);\n const tabData: Array<{\n key: string;\n label: string;\n data: Array<Rule.RuleStoreDataItem>;\n }> = [\n {\n key: 'E1001',\n label: 'Duplicate Packages',\n data: [],\n },\n {\n key: 'E1002',\n label: 'Cross Chunks Package',\n data: [],\n },\n {\n key: 'E1003',\n label: 'Loader Performance Optimization',\n data: [],\n },\n {\n key: 'E1004',\n label: 'ECMA Version Check',\n data: [],\n },\n {\n key: 'E1005',\n label: 'Default Import Check',\n data: [],\n },\n {\n key: 'E1006',\n label: 'Module Mixed Chunks',\n data: [],\n },\n {\n key: 'E1007',\n label: 'Tree Shaking Side Effects Only',\n data: [],\n },\n {\n key: 'E1008',\n label: 'CJS Require Cannot Tree-Shake',\n data: [],\n },\n ];\n\n dataSource.forEach((data) => {\n const target = tabData.find((td) => td.key === data.code)?.data;\n target?.push(data);\n });\n\n tabData.sort(\n (a, b) => (b.data.length > 0 ? 1 : 0) - (a.data.length > 0 ? 1 : 0),\n );\n\n const tabItems = tabData.map((td) => {\n const tagStyle =\n activeKey === td.key\n ? ({\n border: '1px solid #91D5FF',\n backgroundColor: '#E6F7FF',\n } as CSSProperties)\n : {};\n\n const tagTextStyle =\n activeKey === td.key\n ? {\n color: '#1890FF',\n }\n : {};\n\n const LabelComponent = () => (\n <Overview\n style={{\n backgroundColor: 'transparent',\n paddingLeft: 0,\n paddingRight: 0,\n width: '100%',\n }}\n title={<span className={styles.labelTitle}>{td.label}</span>}\n description={\n <div className={styles.labelDescription}>\n <span>{td.data.length}</span>\n <Tag\n style={{ fontFamily: 'Menlo', borderRadius: '2px', ...tagStyle }}\n >\n <span style={{ ...tagTextStyle }}>{td.key}</span>\n </Tag>\n </div>\n }\n />\n );\n\n let children, description;\n switch (td.key) {\n case 'E1001':\n children = <AlertCollapse data={td.data} extraData={extraData} />;\n break;\n case 'E1002':\n children = (\n <CrossChunksAlertCollapse data={td.data} extraData={extraData} />\n );\n break;\n case 'E1003':\n children = <CommonList data={td.data} />;\n break;\n case 'E1004':\n description = (\n <span>\n No ECMA Version Check Rules were found. Please refer to\n 「https://rsdoctor.rs/guide/usage/rule-config」.\n </span>\n );\n children = <ECMAVersionCheck data={td.data} />;\n break;\n case 'E1005':\n children = <CommonList data={td.data} />;\n break;\n case 'E1006':\n children = (\n <ModuleMixedChunksAlertCollapse\n data={td.data}\n extraData={extraData}\n />\n );\n break;\n case 'E1007':\n children = (\n <SideEffectsOnlyImportsAlertCollapse\n data={td.data}\n extraData={extraData}\n />\n );\n break;\n case 'E1008':\n children = (\n <CjsRequireAlertCollapse data={td.data} extraData={extraData} />\n );\n break;\n default:\n children = null;\n break;\n }\n\n if (!td.data.length) {\n children = (\n <Empty description={description} image={Empty.PRESENTED_IMAGE_SIMPLE} />\n );\n }\n\n return {\n key: td.key,\n label: <LabelComponent />,\n children: (\n <Card\n className={styles.card}\n type=\"inner\"\n title={\n <>\n <Tag\n style={{\n fontFamily: 'Menlo',\n fontWeight: '700',\n fontSize: '13px',\n backgroundColor: '#EAEDF1',\n borderRadius: '2px',\n }}\n >\n {td.key}\n </Tag>\n <span>{td.label}</span>\n </>\n }\n >\n {children}\n </Card>\n ),\n };\n });\n\n return (\n <Card style={{ width: '100%', borderRadius: '12px' }}>\n <div className={styles.container}>\n <div className={styles.title}>{title}</div>\n {!dataSource.length ? (\n <div\n style={{\n minHeight: '480px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Empty\n description={'No Bundle Alerts Data'}\n image={Empty.PRESENTED_IMAGE_SIMPLE}\n />\n </div>\n ) : (\n <Tabs\n onChange={setActiveKey}\n tabBarGutter={10}\n type=\"card\"\n defaultActiveKey={tabData[0]?.key ?? 'E1001'}\n items={tabItems}\n />\n )}\n </div>\n </Card>\n );\n};\n"],"names":["BundleAlert","title","dataSource","extraData","firstKeyWithData","code","d","activeKey","setActiveKey","useState","tabData","data","target","td","a","b","tabItems","tagStyle","tagTextStyle","LabelComponent","Overview","styles","Tag","children","description","AlertCollapse","CrossChunksAlertCollapse","CommonList","ECMAVersionCheck","ModuleMixedChunksAlertCollapse","SideEffectsOnlyImportsAlertCollapse","CjsRequireAlertCollapse","Empty","Card","Tabs"],"mappings":"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"}
1
+ {"version":3,"file":"components/Alerts/bundle-alert.mjs","sources":["../../../src/components/Alerts/bundle-alert.tsx"],"sourcesContent":["import { Tabs, Empty, Tag } from 'antd';\n\nimport { Card } from '../Card';\nimport { ECMAVersionCheck } from '../Alert/ecma-version-check';\nimport { Overview } from '../Overall/overview';\nimport { AlertCollapse } from './collapse';\nimport { CommonList } from './list';\nimport { ViewMode } from '../../constants';\n\nimport { AlertProps } from '../Alert/types';\n\nimport type { Rule } from '@rsdoctor/types';\n\nimport styles from './bundle-alert.module.scss';\nimport { CSSProperties, useState } from 'react';\nimport { CrossChunksAlertCollapse } from './collapse-cross-chunks';\nimport { ModuleMixedChunksAlertCollapse } from './collapse-module-mixed-chunks';\nimport { SideEffectsOnlyImportsAlertCollapse } from './collapse-side-effects-only-imports';\nimport { CjsRequireAlertCollapse } from './collapse-cjs-require';\nimport { EsmResolvedToCjsAlertCollapse } from './collapse-esm-cjs';\n\ninterface BundleAlertProps {\n title: string;\n cwd: string;\n dataSource: Rule.RuleStoreDataItem[];\n extraData: Omit<AlertProps, 'data'>;\n viewMode: ViewMode;\n setViewMode(mode: ViewMode): void;\n extraCom?: JSX.Element | undefined;\n}\n\nexport const BundleAlert: React.FC<BundleAlertProps> = ({\n title,\n dataSource,\n extraData,\n}) => {\n const firstKeyWithData =\n [\n 'E1001',\n 'E1002',\n 'E1003',\n 'E1004',\n 'E1005',\n 'E1006',\n 'E1007',\n 'E1008',\n 'E1009',\n ].find((code) => dataSource.some((d) => d.code === code)) ?? 'E1001';\n const [activeKey, setActiveKey] = useState(firstKeyWithData);\n const tabData: Array<{\n key: string;\n label: string;\n data: Array<Rule.RuleStoreDataItem>;\n }> = [\n {\n key: 'E1001',\n label: 'Duplicate Packages',\n data: [],\n },\n {\n key: 'E1002',\n label: 'Cross Chunks Package',\n data: [],\n },\n {\n key: 'E1003',\n label: 'Loader Performance Optimization',\n data: [],\n },\n {\n key: 'E1004',\n label: 'ECMA Version Check',\n data: [],\n },\n {\n key: 'E1005',\n label: 'Default Import Check',\n data: [],\n },\n {\n key: 'E1006',\n label: 'Module Mixed Chunks',\n data: [],\n },\n {\n key: 'E1007',\n label: 'Tree Shaking Side Effects Only',\n data: [],\n },\n {\n key: 'E1008',\n label: 'CJS Require Cannot Tree-Shake',\n data: [],\n },\n {\n key: 'E1009',\n label: 'ESM Import Resolved to CJS',\n data: [],\n },\n ];\n\n dataSource.forEach((data) => {\n const target = tabData.find((td) => td.key === data.code)?.data;\n target?.push(data);\n });\n\n tabData.sort(\n (a, b) => (b.data.length > 0 ? 1 : 0) - (a.data.length > 0 ? 1 : 0),\n );\n\n const tabItems = tabData.map((td) => {\n const tagStyle =\n activeKey === td.key\n ? ({\n border: '1px solid #91D5FF',\n backgroundColor: '#E6F7FF',\n } as CSSProperties)\n : {};\n\n const tagTextStyle =\n activeKey === td.key\n ? {\n color: '#1890FF',\n }\n : {};\n\n const LabelComponent = () => (\n <Overview\n style={{\n backgroundColor: 'transparent',\n paddingLeft: 0,\n paddingRight: 0,\n width: '100%',\n }}\n title={<span className={styles.labelTitle}>{td.label}</span>}\n description={\n <div className={styles.labelDescription}>\n <span>{td.data.length}</span>\n <Tag\n style={{ fontFamily: 'Menlo', borderRadius: '2px', ...tagStyle }}\n >\n <span style={{ ...tagTextStyle }}>{td.key}</span>\n </Tag>\n </div>\n }\n />\n );\n\n let children, description;\n switch (td.key) {\n case 'E1001':\n children = <AlertCollapse data={td.data} extraData={extraData} />;\n break;\n case 'E1002':\n children = (\n <CrossChunksAlertCollapse data={td.data} extraData={extraData} />\n );\n break;\n case 'E1003':\n children = <CommonList data={td.data} />;\n break;\n case 'E1004':\n description = (\n <span>\n No ECMA Version Check Rules were found. Please refer to\n 「https://rsdoctor.rs/guide/usage/rule-config」.\n </span>\n );\n children = <ECMAVersionCheck data={td.data} />;\n break;\n case 'E1005':\n children = <CommonList data={td.data} />;\n break;\n case 'E1006':\n children = (\n <ModuleMixedChunksAlertCollapse\n data={td.data}\n extraData={extraData}\n />\n );\n break;\n case 'E1007':\n children = (\n <SideEffectsOnlyImportsAlertCollapse\n data={td.data}\n extraData={extraData}\n />\n );\n break;\n case 'E1008':\n children = (\n <CjsRequireAlertCollapse data={td.data} extraData={extraData} />\n );\n break;\n case 'E1009':\n children = (\n <EsmResolvedToCjsAlertCollapse data={td.data} extraData={extraData} />\n );\n break;\n default:\n children = null;\n break;\n }\n\n if (!td.data.length) {\n children = (\n <Empty description={description} image={Empty.PRESENTED_IMAGE_SIMPLE} />\n );\n }\n\n return {\n key: td.key,\n label: <LabelComponent />,\n children: (\n <Card\n className={styles.card}\n type=\"inner\"\n title={\n <>\n <Tag\n style={{\n fontFamily: 'Menlo',\n fontWeight: '700',\n fontSize: '13px',\n backgroundColor: '#EAEDF1',\n borderRadius: '2px',\n }}\n >\n {td.key}\n </Tag>\n <span>{td.label}</span>\n </>\n }\n >\n {children}\n </Card>\n ),\n };\n });\n\n return (\n <Card style={{ width: '100%', borderRadius: '12px' }}>\n <div className={styles.container}>\n <div className={styles.title}>{title}</div>\n {!dataSource.length ? (\n <div\n style={{\n minHeight: '480px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Empty\n description={'No Bundle Alerts Data'}\n image={Empty.PRESENTED_IMAGE_SIMPLE}\n />\n </div>\n ) : (\n <Tabs\n onChange={setActiveKey}\n tabBarGutter={10}\n type=\"card\"\n defaultActiveKey={tabData[0]?.key ?? 'E1001'}\n items={tabItems}\n />\n )}\n </div>\n </Card>\n );\n};\n"],"names":["BundleAlert","title","dataSource","extraData","firstKeyWithData","code","d","activeKey","setActiveKey","useState","tabData","data","target","td","a","b","tabItems","tagStyle","tagTextStyle","LabelComponent","Overview","styles","Tag","children","description","AlertCollapse","CrossChunksAlertCollapse","CommonList","ECMAVersionCheck","ModuleMixedChunksAlertCollapse","SideEffectsOnlyImportsAlertCollapse","CjsRequireAlertCollapse","EsmResolvedToCjsAlertCollapse","Empty","Card","Tabs"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Rule } from '@rsdoctor/types';
2
+ import type { AlertProps } from '../Alert/types.js';
3
+ export declare const EsmResolvedToCjsAlertCollapse: (props: {
4
+ data: Array<Rule.RuleStoreDataItem>;
5
+ extraData: Omit<AlertProps, "data">;
6
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,231 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Collapse, Space, Tag, Tooltip, Typography } from "antd";
3
+ import overview from "../Overall/overview.mjs";
4
+ import collapse_module from "./collapse.module.mjs";
5
+ import { beautifyPath } from "../../utils/file.mjs";
6
+ import { truncateMiddle } from "../../utils/string.mjs";
7
+ import { LabelComponent } from "./collapse-shared.mjs";
8
+ const { Text: Text } = Typography;
9
+ const EsmResolvedToCjsAlertCollapse = (props)=>{
10
+ const { data, extraData } = props;
11
+ const { cwd } = extraData;
12
+ const items = data.map((d)=>{
13
+ const item = d;
14
+ const { packageName, packageVersion, esmEntry, resolvedModule, issuers } = item;
15
+ const resolvedDisplayPath = beautifyPath(resolvedModule.path, cwd);
16
+ const esmDisplayPath = beautifyPath(esmEntry, cwd);
17
+ const ChildComponent = ()=>/*#__PURE__*/ jsx("div", {
18
+ className: collapse_module.collapseContainer,
19
+ children: /*#__PURE__*/ jsx(overview, {
20
+ style: {
21
+ backgroundColor: '#fff'
22
+ },
23
+ title: /*#__PURE__*/ jsxs(Space, {
24
+ align: "center",
25
+ wrap: true,
26
+ children: [
27
+ /*#__PURE__*/ jsx(Text, {
28
+ strong: true,
29
+ style: {
30
+ fontSize: 13
31
+ },
32
+ children: "Package:"
33
+ }),
34
+ /*#__PURE__*/ jsx(Tag, {
35
+ style: {
36
+ fontFamily: 'Menlo',
37
+ backgroundColor: '#EAEDF1',
38
+ borderRadius: '2px'
39
+ },
40
+ children: `${packageName}@${packageVersion}`
41
+ })
42
+ ]
43
+ }),
44
+ description: /*#__PURE__*/ jsxs("div", {
45
+ className: collapse_module.collapseChild,
46
+ style: {
47
+ flexDirection: 'column',
48
+ paddingTop: 16
49
+ },
50
+ children: [
51
+ /*#__PURE__*/ jsxs("div", {
52
+ style: {
53
+ display: 'flex',
54
+ marginBottom: 8,
55
+ alignItems: 'center'
56
+ },
57
+ children: [
58
+ /*#__PURE__*/ jsx("div", {
59
+ className: collapse_module.attribute,
60
+ style: {
61
+ color: '#52c41a',
62
+ minWidth: 100
63
+ },
64
+ children: /*#__PURE__*/ jsx(Tag, {
65
+ style: {
66
+ backgroundColor: '#f6ffed',
67
+ borderColor: '#b7eb8f',
68
+ color: '#389e0d',
69
+ borderRadius: '2px'
70
+ },
71
+ children: "ESM Entry"
72
+ })
73
+ }),
74
+ /*#__PURE__*/ jsxs("div", {
75
+ className: collapse_module.iconContainer,
76
+ children: [
77
+ /*#__PURE__*/ jsx(Tooltip, {
78
+ title: esmDisplayPath,
79
+ children: /*#__PURE__*/ jsx("span", {
80
+ className: collapse_module.data,
81
+ children: truncateMiddle(esmDisplayPath)
82
+ })
83
+ }),
84
+ /*#__PURE__*/ jsx(Tag, {
85
+ style: {
86
+ marginLeft: 8,
87
+ backgroundColor: '#f6ffed',
88
+ borderColor: '#b7eb8f',
89
+ color: '#389e0d',
90
+ borderRadius: '2px',
91
+ fontSize: 11
92
+ },
93
+ children: "declared in package.json"
94
+ })
95
+ ]
96
+ })
97
+ ]
98
+ }),
99
+ /*#__PURE__*/ jsxs("div", {
100
+ style: {
101
+ display: 'flex',
102
+ marginBottom: 16,
103
+ alignItems: 'center'
104
+ },
105
+ children: [
106
+ /*#__PURE__*/ jsx("div", {
107
+ className: collapse_module.attribute,
108
+ style: {
109
+ color: '#ff4d4f',
110
+ minWidth: 100
111
+ },
112
+ children: /*#__PURE__*/ jsx(Tag, {
113
+ style: {
114
+ backgroundColor: '#fff7e6',
115
+ borderColor: '#ffd591',
116
+ color: '#d46b08',
117
+ borderRadius: '2px'
118
+ },
119
+ children: "CJS Resolved"
120
+ })
121
+ }),
122
+ /*#__PURE__*/ jsxs("div", {
123
+ className: collapse_module.iconContainer,
124
+ children: [
125
+ /*#__PURE__*/ jsx(Tooltip, {
126
+ title: resolvedDisplayPath,
127
+ children: /*#__PURE__*/ jsx("span", {
128
+ className: collapse_module.data,
129
+ children: truncateMiddle(resolvedDisplayPath)
130
+ })
131
+ }),
132
+ /*#__PURE__*/ jsx(Tag, {
133
+ style: {
134
+ marginLeft: 8,
135
+ backgroundColor: '#fff1f0',
136
+ borderColor: '#ffa39e',
137
+ color: '#cf1322',
138
+ borderRadius: '2px',
139
+ fontSize: 11
140
+ },
141
+ children: "actually bundled"
142
+ })
143
+ ]
144
+ })
145
+ ]
146
+ }),
147
+ /*#__PURE__*/ jsx(Collapse, {
148
+ size: "small",
149
+ ghost: true,
150
+ items: [
151
+ {
152
+ key: 'issuers',
153
+ label: /*#__PURE__*/ jsx("span", {
154
+ style: {
155
+ fontWeight: 500,
156
+ color: 'rgba(28, 31, 35, 0.85)'
157
+ },
158
+ children: `ESM Importers (${issuers.length})`
159
+ }),
160
+ children: issuers.map((issuer, idx)=>/*#__PURE__*/ jsxs("div", {
161
+ style: {
162
+ display: 'flex',
163
+ marginBottom: 4,
164
+ alignItems: 'center'
165
+ },
166
+ children: [
167
+ /*#__PURE__*/ jsx("div", {
168
+ className: collapse_module.attribute,
169
+ children: "import"
170
+ }),
171
+ /*#__PURE__*/ jsxs("div", {
172
+ className: collapse_module.iconContainer,
173
+ children: [
174
+ /*#__PURE__*/ jsx("span", {
175
+ className: collapse_module.data,
176
+ children: beautifyPath(issuer.path, cwd)
177
+ }),
178
+ /*#__PURE__*/ jsx(Tag, {
179
+ style: {
180
+ marginLeft: 8,
181
+ backgroundColor: '#EAEDF1',
182
+ borderRadius: '2px',
183
+ fontSize: 11,
184
+ fontFamily: 'Menlo'
185
+ },
186
+ children: `'${issuer.request}'`
187
+ })
188
+ ]
189
+ })
190
+ ]
191
+ }, idx))
192
+ }
193
+ ]
194
+ })
195
+ ]
196
+ })
197
+ })
198
+ });
199
+ return {
200
+ key: `${packageName}::${resolvedModule.path}`,
201
+ label: /*#__PURE__*/ jsx(LabelComponent, {
202
+ title: /*#__PURE__*/ jsx(Space, {
203
+ size: 4,
204
+ align: "center",
205
+ children: /*#__PURE__*/ jsx(Tag, {
206
+ style: {
207
+ backgroundColor: '#EAEDF1',
208
+ borderRadius: '2px'
209
+ },
210
+ children: /*#__PURE__*/ jsx("span", {
211
+ className: collapse_module.pkgName,
212
+ children: `${packageName}@${packageVersion}`
213
+ })
214
+ })
215
+ }),
216
+ description: `has an ESM entry but was resolved to CJS by ${issuers.length} importer(s).`
217
+ }),
218
+ children: /*#__PURE__*/ jsx(ChildComponent, {})
219
+ };
220
+ });
221
+ return /*#__PURE__*/ jsx(Collapse, {
222
+ style: {
223
+ width: '100%'
224
+ },
225
+ defaultActiveKey: items.map((item)=>item.key),
226
+ items: items
227
+ });
228
+ };
229
+ export { EsmResolvedToCjsAlertCollapse };
230
+
231
+ //# sourceMappingURL=collapse-esm-cjs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components/Alerts/collapse-esm-cjs.mjs","sources":["../../../src/components/Alerts/collapse-esm-cjs.tsx"],"sourcesContent":["import { Collapse, Space, Tag, Tooltip, Typography } from 'antd';\n\nimport Overview from '../Overall/overview';\nimport styles from './collapse.module.scss';\nimport { beautifyPath } from '../../utils/file';\nimport { truncateMiddle } from '../../utils/string';\nimport { LabelComponent } from './collapse-shared';\n\nimport type { Rule } from '@rsdoctor/types';\nimport type { AlertProps } from '../Alert/types';\n\nconst { Text } = Typography;\n\nexport const EsmResolvedToCjsAlertCollapse = (props: {\n data: Array<Rule.RuleStoreDataItem>;\n extraData: Omit<AlertProps, 'data'>;\n}) => {\n const { data, extraData } = props;\n const { cwd } = extraData;\n\n const items = data.map((d) => {\n const item = d as Rule.EsmResolvedToCjsRuleStoreData;\n const { packageName, packageVersion, esmEntry, resolvedModule, issuers } =\n item;\n\n const resolvedDisplayPath = beautifyPath(resolvedModule.path, cwd);\n const esmDisplayPath = beautifyPath(esmEntry, cwd);\n\n const ChildComponent = () => (\n <div className={styles.collapseContainer}>\n <Overview\n style={{ backgroundColor: '#fff' }}\n title={\n <Space align=\"center\" wrap>\n <Text strong style={{ fontSize: 13 }}>\n Package:\n </Text>\n <Tag\n style={{\n fontFamily: 'Menlo',\n backgroundColor: '#EAEDF1',\n borderRadius: '2px',\n }}\n >\n {`${packageName}@${packageVersion}`}\n </Tag>\n </Space>\n }\n description={\n <div\n className={styles.collapseChild}\n style={{ flexDirection: 'column', paddingTop: 16 }}\n >\n {/* ESM entry that should have been used */}\n <div\n style={{\n display: 'flex',\n marginBottom: 8,\n alignItems: 'center',\n }}\n >\n <div\n className={styles.attribute}\n style={{ color: '#52c41a', minWidth: 100 }}\n >\n <Tag\n style={{\n backgroundColor: '#f6ffed',\n borderColor: '#b7eb8f',\n color: '#389e0d',\n borderRadius: '2px',\n }}\n >\n ESM Entry\n </Tag>\n </div>\n <div className={styles.iconContainer}>\n <Tooltip title={esmDisplayPath}>\n <span className={styles.data}>\n {truncateMiddle(esmDisplayPath)}\n </span>\n </Tooltip>\n <Tag\n style={{\n marginLeft: 8,\n backgroundColor: '#f6ffed',\n borderColor: '#b7eb8f',\n color: '#389e0d',\n borderRadius: '2px',\n fontSize: 11,\n }}\n >\n declared in package.json\n </Tag>\n </div>\n </div>\n\n {/* CJS file that was actually resolved */}\n <div\n style={{\n display: 'flex',\n marginBottom: 16,\n alignItems: 'center',\n }}\n >\n <div\n className={styles.attribute}\n style={{ color: '#ff4d4f', minWidth: 100 }}\n >\n <Tag\n style={{\n backgroundColor: '#fff7e6',\n borderColor: '#ffd591',\n color: '#d46b08',\n borderRadius: '2px',\n }}\n >\n CJS Resolved\n </Tag>\n </div>\n <div className={styles.iconContainer}>\n <Tooltip title={resolvedDisplayPath}>\n <span className={styles.data}>\n {truncateMiddle(resolvedDisplayPath)}\n </span>\n </Tooltip>\n <Tag\n style={{\n marginLeft: 8,\n backgroundColor: '#fff1f0',\n borderColor: '#ffa39e',\n color: '#cf1322',\n borderRadius: '2px',\n fontSize: 11,\n }}\n >\n actually bundled\n </Tag>\n </div>\n </div>\n\n {/* Issuers */}\n <Collapse\n size=\"small\"\n ghost\n items={[\n {\n key: 'issuers',\n label: (\n <span\n style={{\n fontWeight: 500,\n color: 'rgba(28, 31, 35, 0.85)',\n }}\n >\n {`ESM Importers (${issuers.length})`}\n </span>\n ),\n children: issuers.map((issuer, idx) => (\n <div\n key={idx}\n style={{\n display: 'flex',\n marginBottom: 4,\n alignItems: 'center',\n }}\n >\n <div className={styles.attribute}>import</div>\n <div className={styles.iconContainer}>\n <span className={styles.data}>\n {beautifyPath(issuer.path, cwd)}\n </span>\n <Tag\n style={{\n marginLeft: 8,\n backgroundColor: '#EAEDF1',\n borderRadius: '2px',\n fontSize: 11,\n fontFamily: 'Menlo',\n }}\n >\n {`'${issuer.request}'`}\n </Tag>\n </div>\n </div>\n )),\n },\n ]}\n />\n </div>\n }\n />\n </div>\n );\n\n return {\n key: `${packageName}::${resolvedModule.path}`,\n label: (\n <LabelComponent\n title={\n <Space size={4} align=\"center\">\n <Tag style={{ backgroundColor: '#EAEDF1', borderRadius: '2px' }}>\n <span\n className={styles.pkgName}\n >{`${packageName}@${packageVersion}`}</span>\n </Tag>\n </Space>\n }\n description={`has an ESM entry but was resolved to CJS by ${issuers.length} importer(s).`}\n />\n ),\n children: <ChildComponent />,\n };\n });\n\n return (\n <Collapse\n style={{ width: '100%' }}\n defaultActiveKey={items.map((item) => item.key)}\n items={items}\n />\n );\n};\n"],"names":["Text","Typography","EsmResolvedToCjsAlertCollapse","props","data","extraData","cwd","items","d","item","packageName","packageVersion","esmEntry","resolvedModule","issuers","resolvedDisplayPath","beautifyPath","esmDisplayPath","ChildComponent","styles","Overview","Space","Tag","Tooltip","truncateMiddle","Collapse","issuer","idx","LabelComponent"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare function ensurePrefix(str: string, prefix: string): string;
2
2
  export declare function removePrefix(str: string, prefix: string): string;
3
+ export declare function truncateMiddle(text: string, maxLength?: number): string;
@@ -6,6 +6,11 @@ function removePrefix(str, prefix) {
6
6
  while(res.slice(0, prefix.length) === prefix)res = res.slice(prefix.length);
7
7
  return res;
8
8
  }
9
- export { ensurePrefix, removePrefix };
9
+ function truncateMiddle(text, maxLength = 60) {
10
+ if (text.length <= maxLength) return text;
11
+ const half = Math.floor((maxLength - 3) / 2);
12
+ return `${text.slice(0, half)}...${text.slice(-half)}`;
13
+ }
14
+ export { ensurePrefix, removePrefix, truncateMiddle };
10
15
 
11
16
  //# sourceMappingURL=string.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils/string.mjs","sources":["../../src/utils/string.ts"],"sourcesContent":["export function ensurePrefix(str: string, prefix: string): string {\n return str.slice(0, prefix.length) === prefix ? str : `${str}${prefix}`;\n}\n\nexport function removePrefix(str: string, prefix: string): string {\n let res = str;\n\n while (res.slice(0, prefix.length) === prefix) {\n res = res.slice(prefix.length);\n }\n\n return res;\n}\n"],"names":["ensurePrefix","str","prefix","removePrefix","res"],"mappings":"AAAO,SAASA,aAAaC,GAAW,EAAEC,MAAc;IACtD,OAAOD,IAAI,KAAK,CAAC,GAAGC,OAAO,MAAM,MAAMA,SAASD,MAAM,GAAGA,MAAMC,QAAQ;AACzE;AAEO,SAASC,aAAaF,GAAW,EAAEC,MAAc;IACtD,IAAIE,MAAMH;IAEV,MAAOG,IAAI,KAAK,CAAC,GAAGF,OAAO,MAAM,MAAMA,OACrCE,MAAMA,IAAI,KAAK,CAACF,OAAO,MAAM;IAG/B,OAAOE;AACT"}
1
+ {"version":3,"file":"utils/string.mjs","sources":["../../src/utils/string.ts"],"sourcesContent":["export function ensurePrefix(str: string, prefix: string): string {\n return str.slice(0, prefix.length) === prefix ? str : `${str}${prefix}`;\n}\n\nexport function removePrefix(str: string, prefix: string): string {\n let res = str;\n\n while (res.slice(0, prefix.length) === prefix) {\n res = res.slice(prefix.length);\n }\n\n return res;\n}\n\nexport function truncateMiddle(text: string, maxLength = 60): string {\n if (text.length <= maxLength) return text;\n const half = Math.floor((maxLength - 3) / 2);\n return `${text.slice(0, half)}...${text.slice(-half)}`;\n}\n"],"names":["ensurePrefix","str","prefix","removePrefix","res","truncateMiddle","text","maxLength","half","Math"],"mappings":"AAAO,SAASA,aAAaC,GAAW,EAAEC,MAAc;IACtD,OAAOD,IAAI,KAAK,CAAC,GAAGC,OAAO,MAAM,MAAMA,SAASD,MAAM,GAAGA,MAAMC,QAAQ;AACzE;AAEO,SAASC,aAAaF,GAAW,EAAEC,MAAc;IACtD,IAAIE,MAAMH;IAEV,MAAOG,IAAI,KAAK,CAAC,GAAGF,OAAO,MAAM,MAAMA,OACrCE,MAAMA,IAAI,KAAK,CAACF,OAAO,MAAM;IAG/B,OAAOE;AACT;AAEO,SAASC,eAAeC,IAAY,EAAEC,YAAY,EAAE;IACzD,IAAID,KAAK,MAAM,IAAIC,WAAW,OAAOD;IACrC,MAAME,OAAOC,KAAK,KAAK,CAAEF,AAAAA,CAAAA,YAAY,KAAK;IAC1C,OAAO,GAAGD,KAAK,KAAK,CAAC,GAAGE,MAAM,GAAG,EAAEF,KAAK,KAAK,CAAC,CAACE,OAAO;AACxD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdoctor/components",
3
- "version": "1.5.4",
3
+ "version": "1.5.5",
4
4
  "license": "MIT",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": {
@@ -58,7 +58,7 @@
58
58
  "antd": "5.19.1",
59
59
  "axios": "^1.13.6",
60
60
  "clsx": "^2.1.1",
61
- "dayjs": "1.11.19",
61
+ "dayjs": "1.11.20",
62
62
  "echarts": "^5.6.0",
63
63
  "echarts-for-react": "^3.0.6",
64
64
  "es-toolkit": "^1.45.1",
@@ -74,9 +74,9 @@
74
74
  "react-markdown": "^9.1.0",
75
75
  "socket.io-client": "4.8.1",
76
76
  "url-parse": "1.5.10",
77
- "@rsdoctor/types": "1.5.4",
78
- "@rsdoctor/utils": "1.5.4",
79
- "@rsdoctor/graph": "1.5.4"
77
+ "@rsdoctor/types": "1.5.5",
78
+ "@rsdoctor/utils": "1.5.5",
79
+ "@rsdoctor/graph": "1.5.5"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "react": ">=18.3.1",