@rspress/plugin-api-docgen 1.40.0 → 1.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +238 -236
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -51,251 +51,253 @@ function __webpack_require__(moduleId) {
51
51
  };
52
52
  })();
53
53
  var __webpack_exports__ = {};
54
- __webpack_require__.r(__webpack_exports__);
55
- __webpack_require__.d(__webpack_exports__, {
56
- pluginApiDocgen: ()=>pluginApiDocgen
57
- });
58
- const external_node_fs_namespaceObject = require("node:fs");
59
- var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
60
- const external_node_path_namespaceObject = require("node:path");
61
- var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
62
- external_node_path_default().join(__dirname, '..');
63
- const apiDocMap = {};
64
- const shared_namespaceObject = require("@rspress/shared");
65
- const logger_namespaceObject = require("@rspress/shared/logger");
66
- const external_chokidar_namespaceObject = require("chokidar");
67
- var external_chokidar_default = /*#__PURE__*/ __webpack_require__.n(external_chokidar_namespaceObject);
68
- const external_react_docgen_typescript_namespaceObject = require("react-docgen-typescript");
69
- const locales = {
70
- zh: {
71
- copy: '复制',
72
- copied: '复制成功',
73
- expand: '展开代码',
74
- collapse: '收起代码',
75
- className: '节点类名',
76
- style: '节点样式',
77
- children: '子节点',
78
- disabled: '是否禁用',
79
- required: '必填',
80
- property: '属性',
81
- description: '说明',
82
- type: '类型',
83
- defaultValue: '默认值',
84
- overview: '概览'
85
- },
86
- en: {
87
- copy: 'Copy',
88
- copied: 'Copied Success!',
89
- expand: 'Expand Code',
90
- collapse: 'Collapse Code',
91
- className: 'Additional css class',
92
- style: 'Additional style',
93
- children: 'Children',
94
- disabled: 'Whether to disable ',
95
- required: 'Required',
96
- property: 'Property',
97
- description: 'Description',
98
- type: 'Type',
99
- defaultValue: 'Default Value',
100
- overview: 'Overview'
101
- }
102
- };
103
- const isToolEntries = (obj)=>obj.documentation || obj['react-docgen-typescript'];
104
- const docgen = async ({ entries, languages, apiParseTool, appDir, parseToolOptions, isProd })=>{
105
- const watchFileMap = {};
106
- const genApiDoc = async (entry, tool)=>{
107
- if (0 === Object.keys(entry).length) return;
108
- await Promise.all(Object.entries(entry).map(async ([key, value])=>{
109
- const moduleSourceFilePath = external_node_path_default().resolve(appDir, value);
110
- watchFileMap[moduleSourceFilePath] = {
111
- apiParseTool,
112
- moduleName: key
113
- };
114
- try {
115
- if ('documentation' === tool) {
116
- var _parseToolOptions_documentation;
117
- const documentation = await Promise.resolve().then(__webpack_require__.bind(__webpack_require__, "documentation"));
118
- const documentationRes = await documentation.build([
119
- moduleSourceFilePath
120
- ], {
121
- ...parseToolOptions.documentation
122
- });
123
- const apiDoc = await documentation.formats.md(documentationRes, {
124
- noReferenceLinks: (null === (_parseToolOptions_documentation = parseToolOptions.documentation) || void 0 === _parseToolOptions_documentation ? void 0 : _parseToolOptions_documentation.noReferenceLinks) ?? true
125
- });
126
- apiDocMap[key] = apiDoc;
127
- } else {
128
- const { tsconfigPath, compilerOptions, ...restOptions } = (null == parseToolOptions ? void 0 : parseToolOptions['react-docgen-typescript']) ?? {};
129
- const parserOpts = {
130
- propFilter: (prop)=>{
131
- if (void 0 !== prop.declarations && prop.declarations.length > 0) {
132
- const hasPropAdditionalDescription = prop.declarations.find((declaration)=>!declaration.fileName.includes('node_modules'));
133
- return Boolean(hasPropAdditionalDescription);
134
- }
135
- return true;
136
- },
137
- ...restOptions
138
- };
139
- let fileParser = (0, external_react_docgen_typescript_namespaceObject.withDefaultConfig)(parserOpts);
140
- if (null == tsconfigPath ? void 0 : tsconfigPath[key]) fileParser = (0, external_react_docgen_typescript_namespaceObject.withCustomConfig)(tsconfigPath[key], parserOpts);
141
- else if (null == compilerOptions ? void 0 : compilerOptions[key]) fileParser = (0, external_react_docgen_typescript_namespaceObject.withCompilerOptions)(compilerOptions[key], parserOpts);
142
- const componentDoc = fileParser.parse(moduleSourceFilePath);
143
- if (0 === componentDoc.length) logger_namespaceObject.logger.warn('[module-doc-plugin]', `Unable to parse API document in ${moduleSourceFilePath}`);
144
- if (languages.length > 0) languages.forEach((language)=>{
145
- apiDocMap[`${key}-${language}`] = generateTable(componentDoc, language);
146
- });
147
- else apiDocMap[key] = generateTable(componentDoc, 'en');
148
- }
149
- } catch (e) {
150
- if (e instanceof Error) logger_namespaceObject.logger.error('[module-doc-plugin]', `Generate API table error: ${e.message}`);
151
- }
152
- }));
54
+ (()=>{
55
+ __webpack_require__.r(__webpack_exports__);
56
+ __webpack_require__.d(__webpack_exports__, {
57
+ pluginApiDocgen: ()=>pluginApiDocgen
58
+ });
59
+ const external_node_fs_namespaceObject = require("node:fs");
60
+ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
61
+ const external_node_path_namespaceObject = require("node:path");
62
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
63
+ external_node_path_default().join(__dirname, '..');
64
+ const apiDocMap = {};
65
+ const shared_namespaceObject = require("@rspress/shared");
66
+ const logger_namespaceObject = require("@rspress/shared/logger");
67
+ const external_chokidar_namespaceObject = require("chokidar");
68
+ var external_chokidar_default = /*#__PURE__*/ __webpack_require__.n(external_chokidar_namespaceObject);
69
+ const external_react_docgen_typescript_namespaceObject = require("react-docgen-typescript");
70
+ const locales = {
71
+ zh: {
72
+ copy: '复制',
73
+ copied: '复制成功',
74
+ expand: '展开代码',
75
+ collapse: '收起代码',
76
+ className: '节点类名',
77
+ style: '节点样式',
78
+ children: '子节点',
79
+ disabled: '是否禁用',
80
+ required: '必填',
81
+ property: '属性',
82
+ description: '说明',
83
+ type: '类型',
84
+ defaultValue: '默认值',
85
+ overview: '概览'
86
+ },
87
+ en: {
88
+ copy: 'Copy',
89
+ copied: 'Copied Success!',
90
+ expand: 'Expand Code',
91
+ collapse: 'Collapse Code',
92
+ className: 'Additional css class',
93
+ style: 'Additional style',
94
+ children: 'Children',
95
+ disabled: 'Whether to disable ',
96
+ required: 'Required',
97
+ property: 'Property',
98
+ description: "Description",
99
+ type: 'Type',
100
+ defaultValue: 'Default Value',
101
+ overview: 'Overview'
102
+ }
153
103
  };
154
- logger_namespaceObject.logger.info('[module-doc-plugin]', 'Start to generate API table...');
155
- if (isToolEntries(entries)) {
156
- const reactEntries = entries['react-docgen-typescript'];
157
- const documentationEntries = entries.documentation;
158
- await Promise.all([
159
- genApiDoc(reactEntries, 'react-docgen-typescript'),
160
- genApiDoc(documentationEntries, 'documentation')
161
- ]);
162
- } else await genApiDoc(entries, apiParseTool);
163
- if (!isProd) {
164
- const watcher = external_chokidar_default().watch(Object.keys(watchFileMap), {
165
- ignoreInitial: true,
166
- ignorePermissionErrors: true,
167
- ignored: [
168
- /node_modules/
169
- ]
170
- });
171
- let isUpdate = false;
172
- watcher.on('change', (changed)=>{
173
- if (isUpdate) return;
174
- isUpdate = true;
175
- logger_namespaceObject.logger.info('[module-doc-plugin]', 'updating API');
176
- const watchFileInfo = watchFileMap[changed];
177
- if (watchFileInfo) {
178
- const { apiParseTool, moduleName } = watchFileInfo;
179
- const updateSiteData = ()=>{
180
- const siteDataPath = external_node_path_default().join(process.cwd(), 'node_modules', shared_namespaceObject.RSPRESS_TEMP_DIR, 'runtime', 'virtual-site-data.mjs');
181
- import(siteDataPath).then((siteData)=>{
182
- const data = {
183
- ...siteData.default
104
+ const isToolEntries = (obj)=>obj.documentation || obj["react-docgen-typescript"];
105
+ const docgen = async ({ entries, languages, apiParseTool, appDir, parseToolOptions, isProd })=>{
106
+ const watchFileMap = {};
107
+ const genApiDoc = async (entry, tool)=>{
108
+ if (0 === Object.keys(entry).length) return;
109
+ await Promise.all(Object.entries(entry).map(async ([key, value])=>{
110
+ const moduleSourceFilePath = external_node_path_default().resolve(appDir, value);
111
+ watchFileMap[moduleSourceFilePath] = {
112
+ apiParseTool,
113
+ moduleName: key
114
+ };
115
+ try {
116
+ if ('documentation' === tool) {
117
+ var _parseToolOptions_documentation;
118
+ const documentation = await Promise.resolve().then(__webpack_require__.bind(__webpack_require__, "documentation"));
119
+ const documentationRes = await documentation.build([
120
+ moduleSourceFilePath
121
+ ], {
122
+ ...parseToolOptions.documentation
123
+ });
124
+ const apiDoc = await documentation.formats.md(documentationRes, {
125
+ noReferenceLinks: (null === (_parseToolOptions_documentation = parseToolOptions.documentation) || void 0 === _parseToolOptions_documentation ? void 0 : _parseToolOptions_documentation.noReferenceLinks) ?? true
126
+ });
127
+ apiDocMap[key] = apiDoc;
128
+ } else {
129
+ const { tsconfigPath, compilerOptions, ...restOptions } = (null == parseToolOptions ? void 0 : parseToolOptions["react-docgen-typescript"]) ?? {};
130
+ const parserOpts = {
131
+ propFilter: (prop)=>{
132
+ if (void 0 !== prop.declarations && prop.declarations.length > 0) {
133
+ const hasPropAdditionalDescription = prop.declarations.find((declaration)=>!declaration.fileName.includes('node_modules'));
134
+ return Boolean(hasPropAdditionalDescription);
135
+ }
136
+ return true;
137
+ },
138
+ ...restOptions
184
139
  };
185
- data.pages.forEach((page)=>{
186
- page.apiDocMap = apiDocMap;
140
+ let fileParser = (0, external_react_docgen_typescript_namespaceObject.withDefaultConfig)(parserOpts);
141
+ if (null == tsconfigPath ? void 0 : tsconfigPath[key]) fileParser = (0, external_react_docgen_typescript_namespaceObject.withCustomConfig)(tsconfigPath[key], parserOpts);
142
+ else if (null == compilerOptions ? void 0 : compilerOptions[key]) fileParser = (0, external_react_docgen_typescript_namespaceObject.withCompilerOptions)(compilerOptions[key], parserOpts);
143
+ const componentDoc = fileParser.parse(moduleSourceFilePath);
144
+ if (0 === componentDoc.length) logger_namespaceObject.logger.warn('[module-doc-plugin]', `Unable to parse API document in ${moduleSourceFilePath}`);
145
+ if (languages.length > 0) languages.forEach((language)=>{
146
+ apiDocMap[`${key}-${language}`] = generateTable(componentDoc, language);
187
147
  });
188
- external_node_fs_default().writeFileSync(siteDataPath, `export default ${JSON.stringify(data)}`);
189
- isUpdate = false;
190
- });
191
- };
192
- genApiDoc({
193
- [moduleName]: changed
194
- }, apiParseTool).then(updateSiteData);
195
- }
196
- });
197
- }
198
- logger_namespaceObject.logger.success('[module-doc-plugin]', 'Generate API table successfully!');
199
- };
200
- function generateTable(componentDoc, language) {
201
- return componentDoc.map((param)=>{
202
- const { props } = param;
203
- const t = locales[language];
204
- const PROP_TABLE_HEADER = `|${t.property}|${t.description}|${t.type}|${t.defaultValue}|\n|:---:|:---:|:---:|:---:|`;
205
- const tableContent = Object.keys(props).filter((propName)=>{
206
- const { name, description } = props[propName];
207
- return description || [
208
- 'className',
209
- 'style',
210
- 'disabled',
211
- 'children'
212
- ].indexOf(name) > -1;
213
- }).map((propName)=>{
214
- const { defaultValue, description, name, required, type } = props[propName];
215
- const getType = ()=>`\`${type.name.replace(/\|/g, '\\|')}\`${required ? ` **(${t.required})**` : ''}`;
216
- const getDefaultValue = ()=>`\`${(null == defaultValue ? void 0 : defaultValue.value) || '-'}\``;
217
- const getDescription = ()=>{
218
- switch(name){
219
- case 'className':
220
- return description || t.className;
221
- case 'style':
222
- return description || t.style;
223
- case 'children':
224
- return description || t.children;
225
- case 'disabled':
226
- return description || t.disabled;
227
- default:
228
- return description;
148
+ else apiDocMap[key] = generateTable(componentDoc, 'en');
149
+ }
150
+ } catch (e) {
151
+ if (e instanceof Error) logger_namespaceObject.logger.error('[module-doc-plugin]', `Generate API table error: ${e.message}`);
229
152
  }
230
- };
231
- const formattedDescription = getDescription().replace(/\n/g, '
');
232
- return `|${[
233
- name,
234
- formattedDescription,
235
- getType(),
236
- getDefaultValue()
237
- ].map((str)=>str.replace(/(?<!\\)\|/g, '&#124;')).join('|')}|`;
238
- });
239
- return `
153
+ }));
154
+ };
155
+ logger_namespaceObject.logger.info('[module-doc-plugin]', 'Start to generate API table...');
156
+ if (isToolEntries(entries)) {
157
+ const reactEntries = entries["react-docgen-typescript"];
158
+ const documentationEntries = entries.documentation;
159
+ await Promise.all([
160
+ genApiDoc(reactEntries, "react-docgen-typescript"),
161
+ genApiDoc(documentationEntries, 'documentation')
162
+ ]);
163
+ } else await genApiDoc(entries, apiParseTool);
164
+ if (!isProd) {
165
+ const watcher = external_chokidar_default().watch(Object.keys(watchFileMap), {
166
+ ignoreInitial: true,
167
+ ignorePermissionErrors: true,
168
+ ignored: [
169
+ /node_modules/
170
+ ]
171
+ });
172
+ let isUpdate = false;
173
+ watcher.on('change', (changed)=>{
174
+ if (isUpdate) return;
175
+ isUpdate = true;
176
+ logger_namespaceObject.logger.info('[module-doc-plugin]', 'updating API');
177
+ const watchFileInfo = watchFileMap[changed];
178
+ if (watchFileInfo) {
179
+ const { apiParseTool, moduleName } = watchFileInfo;
180
+ const updateSiteData = ()=>{
181
+ const siteDataPath = external_node_path_default().join(process.cwd(), 'node_modules', shared_namespaceObject.RSPRESS_TEMP_DIR, 'runtime', 'virtual-site-data.mjs');
182
+ import(siteDataPath).then((siteData)=>{
183
+ const data = {
184
+ ...siteData.default
185
+ };
186
+ data.pages.forEach((page)=>{
187
+ page.apiDocMap = apiDocMap;
188
+ });
189
+ external_node_fs_default().writeFileSync(siteDataPath, `export default ${JSON.stringify(data)}`);
190
+ isUpdate = false;
191
+ });
192
+ };
193
+ genApiDoc({
194
+ [moduleName]: changed
195
+ }, apiParseTool).then(updateSiteData);
196
+ }
197
+ });
198
+ }
199
+ logger_namespaceObject.logger.success('[module-doc-plugin]', 'Generate API table successfully!');
200
+ };
201
+ function generateTable(componentDoc, language) {
202
+ return componentDoc.map((param)=>{
203
+ const { props } = param;
204
+ const t = locales[language];
205
+ const PROP_TABLE_HEADER = `|${t.property}|${t.description}|${t.type}|${t.defaultValue}|\n|:---:|:---:|:---:|:---:|`;
206
+ const tableContent = Object.keys(props).filter((propName)=>{
207
+ const { name, description } = props[propName];
208
+ return description || [
209
+ 'className',
210
+ 'style',
211
+ 'disabled',
212
+ 'children'
213
+ ].indexOf(name) > -1;
214
+ }).map((propName)=>{
215
+ const { defaultValue, description, name, required, type } = props[propName];
216
+ const getType = ()=>`\`${type.name.replace(/\|/g, '\\|')}\`${required ? ` **(${t.required})**` : ''}`;
217
+ const getDefaultValue = ()=>`\`${(null == defaultValue ? void 0 : defaultValue.value) || '-'}\``;
218
+ const getDescription = ()=>{
219
+ switch(name){
220
+ case 'className':
221
+ return description || t.className;
222
+ case 'style':
223
+ return description || t.style;
224
+ case 'children':
225
+ return description || t.children;
226
+ case 'disabled':
227
+ return description || t.disabled;
228
+ default:
229
+ return description;
230
+ }
231
+ };
232
+ const formattedDescription = getDescription().replace(/\n/g, '&#10;');
233
+ return `|${[
234
+ name,
235
+ formattedDescription,
236
+ getType(),
237
+ getDefaultValue()
238
+ ].map((str)=>str.replace(/(?<!\\)\|/g, '&#124;')).join('|')}|`;
239
+ });
240
+ return `
240
241
  ${param.displayName ? `### ${param.displayName}\n` : ''}
241
242
  ${param.description ? `**${param.description}**\n` : ''}
242
243
  ${PROP_TABLE_HEADER}
243
244
  ${tableContent.join('\n')}
244
245
  `;
245
- }).join('\n');
246
- }
247
- function pluginApiDocgen(options) {
248
- const { entries = {}, apiParseTool = 'react-docgen-typescript', appDir = process.cwd(), parseToolOptions = {} } = options || {};
249
- return {
250
- name: '@modern-js/doc-plugin-api-docgen',
251
- config (config) {
252
- config.markdown = config.markdown || {};
253
- config.markdown.mdxRs = false;
254
- return config;
255
- },
256
- async beforeBuild (config, isProd) {
257
- var _config_themeConfig_locales, _config_themeConfig, _config_locales;
258
- const languages = ((null === (_config_themeConfig = config.themeConfig) || void 0 === _config_themeConfig ? void 0 : null === (_config_themeConfig_locales = _config_themeConfig.locales) || void 0 === _config_themeConfig_locales ? void 0 : _config_themeConfig_locales.map((locale)=>locale.lang)) || (null === (_config_locales = config.locales) || void 0 === _config_locales ? void 0 : _config_locales.map((locale)=>locale.lang)) || [
259
- config.lang
260
- ]).filter((lang)=>'zh' === lang || 'en' === lang);
261
- await docgen({
262
- entries,
263
- apiParseTool,
264
- languages,
265
- appDir,
266
- parseToolOptions,
267
- isProd
268
- });
269
- },
270
- async modifySearchIndexData (pages) {
271
- const apiCompRegExp = /(<API\s+moduleName=['"](\S+)['"]\s*(.*)?\/>)|(<API\s+moduleName=['"](\S+)['"]\s*(.*)?>(.*)?<\/API>)/;
272
- await Promise.all(pages.map(async (page)=>{
273
- const { _filepath, lang } = page;
274
- let content = await external_node_fs_default().promises.readFile(_filepath, 'utf-8');
275
- let matchResult = new RegExp(apiCompRegExp).exec(content);
276
- if (!matchResult) return;
277
- while(null !== matchResult){
278
- const matchContent = matchResult[0];
279
- const moduleName = matchResult[2] ?? matchResult[5] ?? '';
280
- const apiDoc = apiDocMap[moduleName] ?? apiDocMap[`${moduleName}-${lang}`] ?? '';
281
- content = content.replace(matchContent, apiDoc);
282
- matchResult = new RegExp(apiCompRegExp).exec(content);
283
- }
284
- page.content = content;
285
- }));
286
- },
287
- extendPageData (pageData) {
288
- pageData.apiDocMap = {
289
- ...apiDocMap
290
- };
291
- },
292
- markdown: {
293
- globalComponents: [
294
- external_node_path_default().join(__dirname, '..', 'static', 'global-components', 'API.tsx')
295
- ]
296
- }
297
- };
298
- }
246
+ }).join('\n');
247
+ }
248
+ function pluginApiDocgen(options) {
249
+ const { entries = {}, apiParseTool = "react-docgen-typescript", appDir = process.cwd(), parseToolOptions = {} } = options || {};
250
+ return {
251
+ name: '@modern-js/doc-plugin-api-docgen',
252
+ config (config) {
253
+ config.markdown = config.markdown || {};
254
+ config.markdown.mdxRs = false;
255
+ return config;
256
+ },
257
+ async beforeBuild (config, isProd) {
258
+ var _config_themeConfig_locales, _config_themeConfig, _config_locales;
259
+ const languages = ((null === (_config_themeConfig = config.themeConfig) || void 0 === _config_themeConfig ? void 0 : null === (_config_themeConfig_locales = _config_themeConfig.locales) || void 0 === _config_themeConfig_locales ? void 0 : _config_themeConfig_locales.map((locale)=>locale.lang)) || (null === (_config_locales = config.locales) || void 0 === _config_locales ? void 0 : _config_locales.map((locale)=>locale.lang)) || [
260
+ config.lang
261
+ ]).filter((lang)=>'zh' === lang || 'en' === lang);
262
+ await docgen({
263
+ entries,
264
+ apiParseTool,
265
+ languages,
266
+ appDir,
267
+ parseToolOptions,
268
+ isProd
269
+ });
270
+ },
271
+ async modifySearchIndexData (pages) {
272
+ const apiCompRegExp = /(<API\s+moduleName=['"](\S+)['"]\s*(.*)?\/>)|(<API\s+moduleName=['"](\S+)['"]\s*(.*)?>(.*)?<\/API>)/;
273
+ await Promise.all(pages.map(async (page)=>{
274
+ const { _filepath, lang } = page;
275
+ let content = await external_node_fs_default().promises.readFile(_filepath, 'utf-8');
276
+ let matchResult = new RegExp(apiCompRegExp).exec(content);
277
+ if (!matchResult) return;
278
+ while(null !== matchResult){
279
+ const matchContent = matchResult[0];
280
+ const moduleName = matchResult[2] ?? matchResult[5] ?? '';
281
+ const apiDoc = apiDocMap[moduleName] ?? apiDocMap[`${moduleName}-${lang}`] ?? '';
282
+ content = content.replace(matchContent, apiDoc);
283
+ matchResult = new RegExp(apiCompRegExp).exec(content);
284
+ }
285
+ page.content = content;
286
+ }));
287
+ },
288
+ extendPageData (pageData) {
289
+ pageData.apiDocMap = {
290
+ ...apiDocMap
291
+ };
292
+ },
293
+ markdown: {
294
+ globalComponents: [
295
+ external_node_path_default().join(__dirname, '..', 'static', 'global-components', 'API.tsx')
296
+ ]
297
+ }
298
+ };
299
+ }
300
+ })();
299
301
  var __webpack_export_target__ = exports;
300
302
  for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
301
303
  if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rspress/plugin-api-docgen",
3
- "version": "1.40.0",
3
+ "version": "1.40.2",
4
4
  "description": "A plugin for rspress to generate api doc.",
5
5
  "bugs": "https://github.com/web-infra-dev/rspress/issues",
6
6
  "repository": {
@@ -22,24 +22,24 @@
22
22
  "react-docgen-typescript": "2.2.2",
23
23
  "react-markdown": "8.0.7",
24
24
  "remark-gfm": "3.0.1",
25
- "@rspress/shared": "1.40.0"
25
+ "@rspress/shared": "1.40.2"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@microsoft/api-extractor": "^7.49.1",
29
- "@rslib/core": "0.2.2",
29
+ "@rslib/core": "0.3.2",
30
30
  "@types/mdast": "^3.0.15",
31
31
  "@types/node": "^18.11.17",
32
32
  "@types/react": "^18.3.18",
33
33
  "@types/react-dom": "^18.3.5",
34
34
  "react": "^18.3.1",
35
35
  "react-dom": "^18.3.1",
36
- "react-router-dom": "^6.28.1",
36
+ "react-router-dom": "^6.28.2",
37
37
  "typescript": "^5.5.3",
38
38
  "unified": "^10.1.2",
39
39
  "unist-util-visit": "^4.1.2"
40
40
  },
41
41
  "peerDependencies": {
42
- "@rspress/core": "^1.40.0",
42
+ "@rspress/core": "^1.40.2",
43
43
  "react": ">=17.0.0",
44
44
  "react-router-dom": "^6.8.1",
45
45
  "typescript": "^5.5.3"