@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.
- package/dist/index.js +238 -236
- 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
|
-
|
55
|
-
__webpack_require__.
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
external_node_path_default
|
63
|
-
|
64
|
-
const
|
65
|
-
const
|
66
|
-
const
|
67
|
-
|
68
|
-
|
69
|
-
const
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
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
|
-
|
155
|
-
|
156
|
-
const
|
157
|
-
const
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
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
|
-
|
186
|
-
|
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
|
-
|
189
|
-
|
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
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
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, ' ');
|
233
|
+
return `|${[
|
234
|
+
name,
|
235
|
+
formattedDescription,
|
236
|
+
getType(),
|
237
|
+
getDefaultValue()
|
238
|
+
].map((str)=>str.replace(/(?<!\\)\|/g, '|')).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
|
-
|
246
|
-
}
|
247
|
-
function pluginApiDocgen(options) {
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
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.
|
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.
|
25
|
+
"@rspress/shared": "1.40.2"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"@microsoft/api-extractor": "^7.49.1",
|
29
|
-
"@rslib/core": "0.
|
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.
|
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.
|
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"
|