dumi 2.0.0-beta.0 → 2.0.0-beta.10
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/assetParsers/atom.d.ts +21 -0
- package/dist/assetParsers/atom.js +112 -0
- package/dist/assetParsers/block.d.ts +1 -4
- package/dist/assetParsers/block.js +2 -12
- package/dist/client/theme-api/DumiDemo.js +2 -1
- package/dist/client/theme-api/DumiDemoGrid.js +2 -1
- package/dist/client/theme-api/DumiPage.d.ts +4 -0
- package/dist/client/theme-api/DumiPage.js +60 -0
- package/dist/client/theme-api/context.d.ts +7 -0
- package/dist/client/theme-api/context.js +5 -1
- package/dist/client/theme-api/index.d.ts +5 -1
- package/dist/client/theme-api/index.js +6 -2
- package/dist/client/theme-api/types.d.ts +48 -3
- package/dist/client/theme-api/useAtomAssets.d.ts +4 -0
- package/dist/client/theme-api/useAtomAssets.js +9 -0
- package/dist/client/theme-api/useLocale.d.ts +2 -1
- package/dist/client/theme-api/useNavData.js +2 -2
- package/dist/client/theme-api/useRouteMeta.js +4 -3
- package/dist/client/theme-api/useSidebarData.d.ts +3 -2
- package/dist/client/theme-api/useSidebarData.js +4 -2
- package/dist/client/theme-api/useSiteSearch.d.ts +23 -0
- package/dist/client/theme-api/useSiteSearch.js +347 -0
- package/dist/client/theme-api/useTabMeta.d.ts +4 -0
- package/dist/client/theme-api/useTabMeta.js +47 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.js +11 -0
- package/dist/features/assets.d.ts +12 -0
- package/dist/features/assets.js +67 -0
- package/dist/features/compile.js +12 -2
- package/dist/features/configPlugins/index.js +1 -1
- package/dist/features/configPlugins/schema.js +7 -4
- package/dist/features/exports.d.ts +5 -0
- package/dist/features/exports.js +23 -2
- package/dist/features/locales.js +19 -7
- package/dist/features/meta.d.ts +2 -0
- package/dist/features/meta.js +86 -31
- package/dist/features/parser.d.ts +3 -0
- package/dist/features/parser.js +70 -0
- package/dist/features/routes.js +42 -20
- package/dist/features/tabs.d.ts +14 -0
- package/dist/features/tabs.js +128 -0
- package/dist/features/theme/index.js +27 -5
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -1
- package/dist/loaders/markdown/index.d.ts +3 -2
- package/dist/loaders/markdown/index.js +68 -37
- package/dist/loaders/markdown/transformer/index.d.ts +9 -5
- package/dist/loaders/markdown/transformer/index.js +6 -6
- package/dist/loaders/markdown/transformer/rehypeDemo.js +22 -8
- package/dist/loaders/markdown/transformer/rehypeEnhancedTag.js +9 -1
- package/dist/loaders/markdown/transformer/rehypeImg.d.ts +6 -0
- package/dist/loaders/markdown/transformer/rehypeImg.js +57 -0
- package/dist/loaders/markdown/transformer/rehypeJsxify.js +18 -2
- package/dist/loaders/markdown/transformer/rehypeSlug.d.ts +2 -2
- package/dist/loaders/markdown/transformer/rehypeSlug.js +21 -57
- package/dist/loaders/markdown/transformer/rehypeText.d.ts +4 -0
- package/dist/loaders/markdown/transformer/rehypeText.js +110 -0
- package/dist/loaders/markdown/transformer/remarkEmbed.d.ts +4 -0
- package/dist/loaders/markdown/transformer/remarkEmbed.js +89 -0
- package/dist/loaders/markdown/transformer/remarkMeta.js +7 -2
- package/dist/loaders/page/index.d.ts +1 -0
- package/dist/loaders/page/index.js +42 -0
- package/dist/preset.js +4 -1
- package/dist/registerMethods.js +6 -1
- package/dist/types.d.ts +25 -3
- package/dist/utils.d.ts +14 -0
- package/dist/utils.js +34 -2
- package/index.d.ts +11 -0
- package/package.json +21 -15
- package/theme-default/builtins/API/index.d.ts +5 -0
- package/theme-default/builtins/API/index.js +58 -0
- package/theme-default/builtins/Previewer/index.js +1 -0
- package/theme-default/builtins/Table/index.d.ts +6 -0
- package/theme-default/builtins/Table/index.js +59 -0
- package/theme-default/builtins/Table/index.less +61 -0
- package/theme-default/layouts/DocLayout/index.js +3 -1
- package/theme-default/layouts/DocLayout/index.less +10 -4
- package/theme-default/locales/en-US.json +10 -1
- package/theme-default/locales/zh-CN.json +10 -1
- package/theme-default/slots/Content/index.less +20 -2
- package/theme-default/slots/ContentTabs/index.d.ts +11 -0
- package/theme-default/slots/ContentTabs/index.js +35 -0
- package/theme-default/slots/ContentTabs/index.less +57 -0
- package/theme-default/slots/Features/index.d.ts +4 -0
- package/theme-default/slots/Features/index.js +28 -0
- package/theme-default/slots/Features/index.less +49 -0
- package/theme-default/slots/Header/index.js +9 -2
- package/theme-default/slots/Header/index.less +19 -3
- package/theme-default/slots/Hero/index.d.ts +4 -0
- package/theme-default/slots/Hero/index.js +35 -0
- package/theme-default/slots/Hero/index.less +65 -0
- package/theme-default/slots/HeroTitle/index.d.ts +6 -0
- package/theme-default/slots/HeroTitle/index.js +10 -0
- package/theme-default/slots/HeroTitle/index.less +23 -0
- package/theme-default/slots/LangSwitch/index.js +33 -16
- package/theme-default/slots/LangSwitch/index.less +23 -0
- package/theme-default/slots/Logo/index.less +1 -1
- package/theme-default/slots/SearchBar/index.js +69 -9
- package/theme-default/slots/SearchBar/index.less +37 -4
- package/theme-default/slots/SearchResult/index.d.ts +9 -0
- package/theme-default/slots/SearchResult/index.js +168 -0
- package/theme-default/slots/SearchResult/index.less +119 -0
- package/theme-default/slots/Sidebar/index.less +4 -1
- package/theme-default/slots/Toc/index.js +68 -20
- package/theme-default/styles/variables.less +2 -0
- package/dist/client/tsconfig.json +0 -13
- package/dist/loaders/markdown/transformer/rehypeEmbed.d.ts +0 -12
- package/dist/loaders/markdown/transformer/rehypeEmbed.js +0 -87
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
|
|
9
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
12
|
+
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
|
|
15
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
16
|
+
|
|
17
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
18
|
+
|
|
19
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
20
|
+
|
|
21
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
22
|
+
|
|
23
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
24
|
+
|
|
25
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
26
|
+
|
|
27
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
28
|
+
|
|
29
|
+
import { useNavData, useSiteData } from 'dumi';
|
|
30
|
+
import { findAll } from 'highlight-words-core';
|
|
31
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
32
|
+
import { TAB_QUERY_KEY } from "./useTabMeta";
|
|
33
|
+
import { useLocaleDocRoutes } from "./utils";
|
|
34
|
+
|
|
35
|
+
function createMetadataSection(rawTitle, title, link, texts, tocIndex) {
|
|
36
|
+
var allowEmptyParas = tocIndex !== undefined;
|
|
37
|
+
var paragraphs = texts.reduce(function (acc, text) {
|
|
38
|
+
if (text.tocIndex === tocIndex) {
|
|
39
|
+
acc[text.paraId] = (acc[text.paraId] || '').concat(text.value);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return acc;
|
|
43
|
+
}, []).filter(Boolean);
|
|
44
|
+
return Boolean(paragraphs.length) || allowEmptyParas ? {
|
|
45
|
+
rawTitle: rawTitle,
|
|
46
|
+
title: title,
|
|
47
|
+
link: link,
|
|
48
|
+
paragraphs: texts.reduce(function (acc, text) {
|
|
49
|
+
if (text.tocIndex === tocIndex) {
|
|
50
|
+
var _text$paraId, _acc$_text$paraId;
|
|
51
|
+
|
|
52
|
+
(_acc$_text$paraId = acc[_text$paraId = text.paraId]) !== null && _acc$_text$paraId !== void 0 ? _acc$_text$paraId : acc[_text$paraId] = '';
|
|
53
|
+
acc[text.paraId] += text.value;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return acc;
|
|
57
|
+
}, []).filter(Boolean)
|
|
58
|
+
} : null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function generateSearchMetadata(routes, demos, nav) {
|
|
62
|
+
var metadata = []; // generate demos mapping by route.id
|
|
63
|
+
|
|
64
|
+
var demosMapping = Object.values(demos).reduce(function (acc, demo) {
|
|
65
|
+
if (demo.asset) {
|
|
66
|
+
var _demo$routeId, _acc$_demo$routeId;
|
|
67
|
+
|
|
68
|
+
(_acc$_demo$routeId = acc[_demo$routeId = demo.routeId]) !== null && _acc$_demo$routeId !== void 0 ? _acc$_demo$routeId : acc[_demo$routeId] = [];
|
|
69
|
+
acc[demo.routeId].push(demo);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return acc;
|
|
73
|
+
}, {});
|
|
74
|
+
Object.values(routes).forEach(function (route) {
|
|
75
|
+
// only process content route
|
|
76
|
+
if ('meta' in route && !('isLayout' in route)) {
|
|
77
|
+
var _demosMapping$route$i;
|
|
78
|
+
|
|
79
|
+
var routeMeta = route.meta;
|
|
80
|
+
var routeAbsPath = route.path.replace(/^([^/])/, '/$1') || '/';
|
|
81
|
+
var routeNav = nav.find(function (item) {
|
|
82
|
+
return routeAbsPath === item.link || routeAbsPath.startsWith("".concat(item.activePath, "/"));
|
|
83
|
+
});
|
|
84
|
+
var demoIds = (demosMapping[route.id] || []).map(function (demo) {
|
|
85
|
+
var _demo$asset;
|
|
86
|
+
|
|
87
|
+
return (_demo$asset = demo.asset) === null || _demo$asset === void 0 ? void 0 : _demo$asset.id;
|
|
88
|
+
});
|
|
89
|
+
var orphanSection = createMetadataSection('', routeMeta.frontmatter.title, routeAbsPath, routeMeta.texts);
|
|
90
|
+
var tocSections = routeMeta.toc.reduce(function (acc, toc, i) {
|
|
91
|
+
// exclude demo id, to avoid duplicate
|
|
92
|
+
if (!demoIds.includes(toc.id) && toc.depth > 1) {
|
|
93
|
+
acc.push(createMetadataSection(toc.title, "".concat(routeMeta.frontmatter.title, " - ").concat(toc.title), "".concat(routeAbsPath, "#").concat(toc.id), routeMeta.texts, i));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return acc;
|
|
97
|
+
}, []);
|
|
98
|
+
var tabSections = (routeMeta.tabs || []).reduce(function (acc, _ref) {
|
|
99
|
+
var key = _ref.key,
|
|
100
|
+
meta = _ref.meta;
|
|
101
|
+
// collect orphan section that not in toc
|
|
102
|
+
var tabOrphanSection = createMetadataSection('', "".concat(routeMeta.frontmatter.title, " - ").concat(meta.frontmatter.title), "".concat(routeAbsPath, "?").concat(TAB_QUERY_KEY, "=").concat(key), meta.texts);
|
|
103
|
+
if (tabOrphanSection) acc.push(tabOrphanSection); // collect sections by toc
|
|
104
|
+
|
|
105
|
+
acc.push.apply(acc, _toConsumableArray(meta.toc.map(function (toc, i) {
|
|
106
|
+
return createMetadataSection(toc.title, "".concat(routeMeta.frontmatter.title, " - ").concat(meta.frontmatter.title, " - ").concat(toc.title), "".concat(routeAbsPath, "?").concat(TAB_QUERY_KEY, "=").concat(key, "#").concat(toc.id), meta.texts, i);
|
|
107
|
+
})));
|
|
108
|
+
return acc;
|
|
109
|
+
}, []);
|
|
110
|
+
metadata.push({
|
|
111
|
+
navTitle: routeNav === null || routeNav === void 0 ? void 0 : routeNav.title,
|
|
112
|
+
navOrder: routeNav ? nav.indexOf(routeNav) : Infinity,
|
|
113
|
+
title: routeMeta.frontmatter.title,
|
|
114
|
+
link: routeAbsPath,
|
|
115
|
+
sections: [].concat(_toConsumableArray(orphanSection ? [orphanSection] : []), _toConsumableArray(tocSections), _toConsumableArray(tabSections)),
|
|
116
|
+
demos: ((_demosMapping$route$i = demosMapping[route.id]) === null || _demosMapping$route$i === void 0 ? void 0 : _demosMapping$route$i.map(function (demo) {
|
|
117
|
+
return {
|
|
118
|
+
link: "".concat(routeAbsPath, "#").concat(demo.asset.id),
|
|
119
|
+
rawTitle: demo.asset.title || '',
|
|
120
|
+
title: demo.asset.title || routeMeta.frontmatter.title,
|
|
121
|
+
description: demo.asset.description || '',
|
|
122
|
+
keywords: demo.asset.keywords || []
|
|
123
|
+
};
|
|
124
|
+
})) || []
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
return metadata;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function generateHighlightTexts() {
|
|
132
|
+
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
133
|
+
var keywords = arguments.length > 1 ? arguments[1] : undefined;
|
|
134
|
+
var chunks = findAll({
|
|
135
|
+
textToHighlight: str,
|
|
136
|
+
searchWords: keywords,
|
|
137
|
+
autoEscape: true
|
|
138
|
+
}); // save matched keywords
|
|
139
|
+
|
|
140
|
+
var matchedMapping = {};
|
|
141
|
+
return [chunks.map(function (_ref2, i) {
|
|
142
|
+
var start = _ref2.start,
|
|
143
|
+
end = _ref2.end,
|
|
144
|
+
highlight = _ref2.highlight;
|
|
145
|
+
var highlightText = {
|
|
146
|
+
text: str.slice(start, end)
|
|
147
|
+
}; // omit long str before the first highlighted text
|
|
148
|
+
|
|
149
|
+
if (i === 0 && !highlight && chunks.length > 1 && highlightText.text.length > 20) {
|
|
150
|
+
highlightText.text = "...".concat(highlightText.text.slice(-20));
|
|
151
|
+
} // mark highlight
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
if (highlight) {
|
|
155
|
+
highlightText.highlighted = true;
|
|
156
|
+
matchedMapping[keywords.find(function (k) {
|
|
157
|
+
return highlightText.text.includes(k);
|
|
158
|
+
})] = true;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return highlightText;
|
|
162
|
+
}), matchedMapping];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function generateSearchResult(metadata, keywordsStr) {
|
|
166
|
+
var keywords = keywordsStr.split(' ');
|
|
167
|
+
var matchReg = new RegExp(keywordsStr.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').replace(' ', '|'), 'gi');
|
|
168
|
+
var resultMapping = {}; // traverse metadata from all routes
|
|
169
|
+
|
|
170
|
+
metadata.forEach(function (data) {
|
|
171
|
+
var hints = []; // find content & section hints
|
|
172
|
+
|
|
173
|
+
data.sections.forEach(function (sec) {
|
|
174
|
+
// find matched keywords in paragraph
|
|
175
|
+
var _iterator = _createForOfIteratorHelper(sec.paragraphs),
|
|
176
|
+
_step;
|
|
177
|
+
|
|
178
|
+
try {
|
|
179
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
180
|
+
var p = _step.value;
|
|
181
|
+
|
|
182
|
+
if (matchReg.test(p)) {
|
|
183
|
+
var _generateHighlightTex3 = generateHighlightTexts(sec.title, keywords),
|
|
184
|
+
_generateHighlightTex4 = _slicedToArray(_generateHighlightTex3, 2),
|
|
185
|
+
_highlightTitleTexts = _generateHighlightTex4[0],
|
|
186
|
+
_titleMatchMapping = _generateHighlightTex4[1];
|
|
187
|
+
|
|
188
|
+
var _generateHighlightTex5 = generateHighlightTexts(p, keywords),
|
|
189
|
+
_generateHighlightTex6 = _slicedToArray(_generateHighlightTex5, 2),
|
|
190
|
+
highlightTexts = _generateHighlightTex6[0],
|
|
191
|
+
matchMapping = _generateHighlightTex6[1];
|
|
192
|
+
|
|
193
|
+
hints.push({
|
|
194
|
+
type: 'content',
|
|
195
|
+
link: sec.link,
|
|
196
|
+
priority: Object.keys(_objectSpread(_objectSpread({}, _titleMatchMapping), matchMapping)).length,
|
|
197
|
+
highlightTitleTexts: _highlightTitleTexts,
|
|
198
|
+
highlightTexts: highlightTexts
|
|
199
|
+
}); // match at most once in the same section
|
|
200
|
+
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
} // find matched keywords in section title
|
|
204
|
+
|
|
205
|
+
} catch (err) {
|
|
206
|
+
_iterator.e(err);
|
|
207
|
+
} finally {
|
|
208
|
+
_iterator.f();
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (matchReg.test(sec.rawTitle)) {
|
|
212
|
+
var _generateHighlightTex = generateHighlightTexts(sec.title, keywords),
|
|
213
|
+
_generateHighlightTex2 = _slicedToArray(_generateHighlightTex, 2),
|
|
214
|
+
highlightTitleTexts = _generateHighlightTex2[0],
|
|
215
|
+
titleMatchMapping = _generateHighlightTex2[1];
|
|
216
|
+
|
|
217
|
+
hints.push({
|
|
218
|
+
type: 'title',
|
|
219
|
+
link: sec.link,
|
|
220
|
+
priority: Object.keys(titleMatchMapping).length,
|
|
221
|
+
highlightTitleTexts: highlightTitleTexts,
|
|
222
|
+
highlightTexts: generateHighlightTexts(sec.paragraphs[0] || '', keywords)[0]
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}); // find demo hints
|
|
226
|
+
|
|
227
|
+
data.demos.forEach(function (demo) {
|
|
228
|
+
if (matchReg.test(demo.rawTitle) || matchReg.test(demo.description)) {
|
|
229
|
+
var _generateHighlightTex7 = generateHighlightTexts(demo.title, keywords),
|
|
230
|
+
_generateHighlightTex8 = _slicedToArray(_generateHighlightTex7, 2),
|
|
231
|
+
highlightTitleTexts = _generateHighlightTex8[0],
|
|
232
|
+
titleMatchMapping = _generateHighlightTex8[1];
|
|
233
|
+
|
|
234
|
+
var _generateHighlightTex9 = generateHighlightTexts(demo.description, keywords),
|
|
235
|
+
_generateHighlightTex10 = _slicedToArray(_generateHighlightTex9, 2),
|
|
236
|
+
highlightTexts = _generateHighlightTex10[0],
|
|
237
|
+
matchMapping = _generateHighlightTex10[1];
|
|
238
|
+
|
|
239
|
+
hints.push({
|
|
240
|
+
type: 'demo',
|
|
241
|
+
link: demo.link,
|
|
242
|
+
priority: Object.keys(_objectSpread(_objectSpread({}, titleMatchMapping), matchMapping)).length,
|
|
243
|
+
highlightTitleTexts: highlightTitleTexts,
|
|
244
|
+
highlightTexts: highlightTexts
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}); // find page hints
|
|
248
|
+
|
|
249
|
+
if (matchReg.test(data.title)) {
|
|
250
|
+
var _data$sections$;
|
|
251
|
+
|
|
252
|
+
var _generateHighlightTex11 = generateHighlightTexts(data.title, keywords),
|
|
253
|
+
_generateHighlightTex12 = _slicedToArray(_generateHighlightTex11, 2),
|
|
254
|
+
highlightTitleTexts = _generateHighlightTex12[0],
|
|
255
|
+
titleMatchMapping = _generateHighlightTex12[1];
|
|
256
|
+
|
|
257
|
+
hints.push({
|
|
258
|
+
type: 'page',
|
|
259
|
+
link: data.link,
|
|
260
|
+
priority: Object.keys(titleMatchMapping).length,
|
|
261
|
+
highlightTitleTexts: highlightTitleTexts,
|
|
262
|
+
highlightTexts: generateHighlightTexts(((_data$sections$ = data.sections[0]) === null || _data$sections$ === void 0 ? void 0 : _data$sections$.paragraphs[0]) || '', keywords)[0]
|
|
263
|
+
});
|
|
264
|
+
} // create nav result if there has any hint
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
if (hints.length) {
|
|
268
|
+
var _resultMapping$key, _resultMapping$key$hi;
|
|
269
|
+
|
|
270
|
+
var key = data.navTitle || '$ROOT';
|
|
271
|
+
(_resultMapping$key = resultMapping[key]) !== null && _resultMapping$key !== void 0 ? _resultMapping$key : resultMapping[key] = {
|
|
272
|
+
title: data.navTitle,
|
|
273
|
+
priority: data.navOrder,
|
|
274
|
+
hints: []
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
(_resultMapping$key$hi = resultMapping[key].hints).push.apply(_resultMapping$key$hi, hints);
|
|
278
|
+
}
|
|
279
|
+
}); // sort hints
|
|
280
|
+
|
|
281
|
+
Object.values(resultMapping).forEach(function (_ref3) {
|
|
282
|
+
var hints = _ref3.hints;
|
|
283
|
+
hints.sort(function (prev, next) {
|
|
284
|
+
return next.priority - prev.priority;
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
return Object.values(resultMapping).sort(function (prev, next) {
|
|
288
|
+
return next.priority - prev.priority;
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export var useSiteSearch = function useSiteSearch() {
|
|
293
|
+
var debounceTimer = useRef();
|
|
294
|
+
var routes = useLocaleDocRoutes();
|
|
295
|
+
|
|
296
|
+
var _useSiteData = useSiteData(),
|
|
297
|
+
demos = _useSiteData.demos;
|
|
298
|
+
|
|
299
|
+
var _useState = useState(false),
|
|
300
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
301
|
+
loading = _useState2[0],
|
|
302
|
+
setLoading = _useState2[1];
|
|
303
|
+
|
|
304
|
+
var _useState3 = useState(''),
|
|
305
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
306
|
+
keywords = _useState4[0],
|
|
307
|
+
setKeywords = _useState4[1];
|
|
308
|
+
|
|
309
|
+
var navData = useNavData();
|
|
310
|
+
|
|
311
|
+
var _useState5 = useState([]),
|
|
312
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
313
|
+
metadata = _useState6[0],
|
|
314
|
+
setMetadata = _useState6[1];
|
|
315
|
+
|
|
316
|
+
var _useState7 = useState([]),
|
|
317
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
318
|
+
result = _useState8[0],
|
|
319
|
+
setResult = _useState8[1];
|
|
320
|
+
|
|
321
|
+
var setter = useCallback(function (val) {
|
|
322
|
+
setLoading(true);
|
|
323
|
+
setKeywords(val);
|
|
324
|
+
}, []);
|
|
325
|
+
useEffect(function () {
|
|
326
|
+
setMetadata(generateSearchMetadata(routes, demos, navData));
|
|
327
|
+
}, [routes, demos, navData]);
|
|
328
|
+
useEffect(function () {
|
|
329
|
+
var str = keywords.trim();
|
|
330
|
+
|
|
331
|
+
if (str) {
|
|
332
|
+
clearTimeout(debounceTimer.current);
|
|
333
|
+
debounceTimer.current = window.setTimeout(function () {
|
|
334
|
+
setResult(generateSearchResult(metadata, str));
|
|
335
|
+
setLoading(false);
|
|
336
|
+
}, 100);
|
|
337
|
+
} else {
|
|
338
|
+
setResult([]);
|
|
339
|
+
}
|
|
340
|
+
}, [keywords, metadata]);
|
|
341
|
+
return {
|
|
342
|
+
keywords: keywords,
|
|
343
|
+
setKeywords: setter,
|
|
344
|
+
result: result,
|
|
345
|
+
loading: loading
|
|
346
|
+
};
|
|
347
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
import { history, useLocation, useRouteMeta, useSearchParams } from 'dumi';
|
|
14
|
+
import { useCallback } from 'react';
|
|
15
|
+
export var TAB_QUERY_KEY = 'tab';
|
|
16
|
+
export var useTabQueryState = function useTabQueryState() {
|
|
17
|
+
var _useLocation = useLocation(),
|
|
18
|
+
pathname = _useLocation.pathname;
|
|
19
|
+
|
|
20
|
+
var _useSearchParams = useSearchParams(),
|
|
21
|
+
_useSearchParams2 = _slicedToArray(_useSearchParams, 1),
|
|
22
|
+
params = _useSearchParams2[0];
|
|
23
|
+
|
|
24
|
+
var setTabQueryState = useCallback(function (val) {
|
|
25
|
+
if (val) params.set(TAB_QUERY_KEY, val);else params.delete(TAB_QUERY_KEY);
|
|
26
|
+
history.push({
|
|
27
|
+
pathname: pathname,
|
|
28
|
+
search: params.toString()
|
|
29
|
+
});
|
|
30
|
+
}, [params]);
|
|
31
|
+
return [params.get(TAB_QUERY_KEY), setTabQueryState];
|
|
32
|
+
};
|
|
33
|
+
export var useTabMeta = function useTabMeta() {
|
|
34
|
+
var _tabs$find;
|
|
35
|
+
|
|
36
|
+
var _useRouteMeta = useRouteMeta(),
|
|
37
|
+
tabs = _useRouteMeta.tabs;
|
|
38
|
+
|
|
39
|
+
var _useTabQueryState = useTabQueryState(),
|
|
40
|
+
_useTabQueryState2 = _slicedToArray(_useTabQueryState, 1),
|
|
41
|
+
tabKey = _useTabQueryState2[0];
|
|
42
|
+
|
|
43
|
+
return tabs === null || tabs === void 0 ? void 0 : (_tabs$find = tabs.find(function (_ref) {
|
|
44
|
+
var key = _ref.key;
|
|
45
|
+
return tabKey === key;
|
|
46
|
+
})) === null || _tabs$find === void 0 ? void 0 : _tabs$find.meta;
|
|
47
|
+
};
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
export declare const LOCAL_THEME_DIR = ".dumi/theme";
|
|
2
2
|
export declare const THEME_PREFIX = "dumi-theme-";
|
|
3
3
|
export declare const SP_ROUTE_PREFIX = "~";
|
|
4
|
+
export declare const PICKED_PKG_FIELDS: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
version: string;
|
|
8
|
+
license: string;
|
|
9
|
+
repository: string;
|
|
10
|
+
author: string;
|
|
11
|
+
authors: string;
|
|
12
|
+
};
|
package/dist/constants.js
CHANGED
|
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
var constants_exports = {};
|
|
21
21
|
__export(constants_exports, {
|
|
22
22
|
LOCAL_THEME_DIR: () => LOCAL_THEME_DIR,
|
|
23
|
+
PICKED_PKG_FIELDS: () => PICKED_PKG_FIELDS,
|
|
23
24
|
SP_ROUTE_PREFIX: () => SP_ROUTE_PREFIX,
|
|
24
25
|
THEME_PREFIX: () => THEME_PREFIX
|
|
25
26
|
});
|
|
@@ -27,9 +28,19 @@ module.exports = __toCommonJS(constants_exports);
|
|
|
27
28
|
var LOCAL_THEME_DIR = ".dumi/theme";
|
|
28
29
|
var THEME_PREFIX = "dumi-theme-";
|
|
29
30
|
var SP_ROUTE_PREFIX = "~";
|
|
31
|
+
var PICKED_PKG_FIELDS = {
|
|
32
|
+
name: "",
|
|
33
|
+
description: "",
|
|
34
|
+
version: "",
|
|
35
|
+
license: "",
|
|
36
|
+
repository: "",
|
|
37
|
+
author: "",
|
|
38
|
+
authors: ""
|
|
39
|
+
};
|
|
30
40
|
// Annotate the CommonJS export names for ESM import in node:
|
|
31
41
|
0 && (module.exports = {
|
|
32
42
|
LOCAL_THEME_DIR,
|
|
43
|
+
PICKED_PKG_FIELDS,
|
|
33
44
|
SP_ROUTE_PREFIX,
|
|
34
45
|
THEME_PREFIX
|
|
35
46
|
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IApi } from "../types";
|
|
2
|
+
import type { ExampleAsset } from 'dumi-assets-types';
|
|
3
|
+
declare const examples: ExampleAsset[];
|
|
4
|
+
/**
|
|
5
|
+
* internal function to add example assets
|
|
6
|
+
*/
|
|
7
|
+
export declare function addExampleAssets(data: typeof examples): void;
|
|
8
|
+
/**
|
|
9
|
+
* plugin for generate assets.json
|
|
10
|
+
*/
|
|
11
|
+
declare const _default: (api: IApi) => void;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
|
|
22
|
+
// src/features/assets.ts
|
|
23
|
+
var assets_exports = {};
|
|
24
|
+
__export(assets_exports, {
|
|
25
|
+
addExampleAssets: () => addExampleAssets,
|
|
26
|
+
default: () => assets_default
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(assets_exports);
|
|
29
|
+
var import_fs = __toESM(require("fs"));
|
|
30
|
+
var import_path = __toESM(require("path"));
|
|
31
|
+
var import_plugin_utils = require("umi/plugin-utils");
|
|
32
|
+
var examples = [];
|
|
33
|
+
function addExampleAssets(data) {
|
|
34
|
+
examples.push(...data);
|
|
35
|
+
}
|
|
36
|
+
var assets_default = (api) => {
|
|
37
|
+
api.describe({
|
|
38
|
+
config: {
|
|
39
|
+
schema: (Joi) => Joi.object()
|
|
40
|
+
},
|
|
41
|
+
enableBy: ({ env }) => env === "production" && Boolean(api.args.assets)
|
|
42
|
+
});
|
|
43
|
+
api.onBuildComplete(async () => {
|
|
44
|
+
const { components } = await api.service.atomParser.parse();
|
|
45
|
+
const assets = await api.applyPlugins({
|
|
46
|
+
key: "modifyAssetsMetadata",
|
|
47
|
+
initialValue: {
|
|
48
|
+
name: api.config.themeConfig.title || api.pkg.name,
|
|
49
|
+
npmPackageName: api.pkg.name,
|
|
50
|
+
version: api.pkg.version,
|
|
51
|
+
description: api.pkg.description,
|
|
52
|
+
logo: api.config.themeConfig.logo,
|
|
53
|
+
homepage: api.pkg.homepage,
|
|
54
|
+
repository: api.pkg.repository,
|
|
55
|
+
assets: {
|
|
56
|
+
atoms: Object.values(components),
|
|
57
|
+
examples: import_plugin_utils.lodash.uniqBy(examples, "id")
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
import_fs.default.writeFileSync(import_path.default.join(api.cwd, "assets.json"), JSON.stringify(assets, null, 2), "utf-8");
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
65
|
+
0 && (module.exports = {
|
|
66
|
+
addExampleAssets
|
|
67
|
+
});
|
package/dist/features/compile.js
CHANGED
|
@@ -26,6 +26,7 @@ __export(compile_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(compile_exports);
|
|
28
28
|
var import_react = __toESM(require("../techStacks/react"));
|
|
29
|
+
var import_assets = require("./assets");
|
|
29
30
|
var compile_default = (api) => {
|
|
30
31
|
api.register({
|
|
31
32
|
key: "registerTechStack",
|
|
@@ -50,13 +51,22 @@ var compile_default = (api) => {
|
|
|
50
51
|
extraRemarkPlugins: api.config.extraRemarkPlugins,
|
|
51
52
|
extraRehypePlugins: api.config.extraRehypePlugins
|
|
52
53
|
};
|
|
53
|
-
memo.module.rule("dumi-md").type("javascript/auto").test(/\.md$/).oneOf("md-meta").resourceQuery(/meta$/).use("md-meta-loader").loader(loaderPath).options({
|
|
54
|
+
memo.module.rule("dumi-md").type("javascript/auto").test(/\.md$/).oneOf("md-meta").resourceQuery(/meta$/).use("babel-loader").loader(babelInUmi.loader).options(babelInUmi.options).end().use("md-meta-loader").loader(loaderPath).options({
|
|
54
55
|
...loaderBaseOpts,
|
|
55
|
-
mode: "meta"
|
|
56
|
+
mode: "meta",
|
|
57
|
+
onResolveDemos(demos) {
|
|
58
|
+
const assets = demos.reduce((ret, demo) => {
|
|
59
|
+
if ("asset" in demo)
|
|
60
|
+
ret.push(demo.asset);
|
|
61
|
+
return ret;
|
|
62
|
+
}, []);
|
|
63
|
+
(0, import_assets.addExampleAssets)(assets);
|
|
64
|
+
}
|
|
56
65
|
}).end().end().oneOf("md").use("babel-loader").loader(babelInUmi.loader).options(babelInUmi.options).end().use("md-loader").loader(loaderPath).options({
|
|
57
66
|
...loaderBaseOpts,
|
|
58
67
|
builtins: api.service.themeData.builtins
|
|
59
68
|
});
|
|
69
|
+
memo.module.rule("dumi-page").type("javascript/auto").test(/\.(j|t)sx?$/).resourceQuery(/meta$/).use("page-meta-loader").loader(require.resolve("../loaders/page"));
|
|
60
70
|
memo.module.rule("dumi-demo").type("javascript/auto").test(/\..+$/).enforce("pre").resourceQuery(/techStack/).use("demo-loader").loader(require.resolve("../loaders/demo")).options({ techStacks, cwd: api.cwd });
|
|
61
71
|
memo.module.rule("dumi-raw").resourceQuery(/raw/).use("raw-loader").loader(require.resolve("raw-loader"));
|
|
62
72
|
if (api.env === "development") {
|
|
@@ -28,13 +28,16 @@ function getUnifiedPluginSchema(Joi) {
|
|
|
28
28
|
function getSchemas() {
|
|
29
29
|
return {
|
|
30
30
|
resolve: (Joi) => Joi.object({
|
|
31
|
-
docDirs: Joi.array().items(Joi.string()).optional(),
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
docDirs: Joi.array().items(Joi.alternatives(Joi.string(), Joi.object({ dir: Joi.string(), type: Joi.string().optional() }))).optional(),
|
|
32
|
+
atomDirs: Joi.array().items(Joi.object({ type: Joi.string(), dir: Joi.string() })).optional(),
|
|
33
|
+
entityDirs: Joi.forbidden().error(new Error("`entityDirs` is already deprecated, please rename it to `atomDirs` in `.umirc.ts` or `config/config.ts`")),
|
|
34
|
+
codeBlockMode: Joi.string().valid("active", "passive").optional(),
|
|
35
|
+
entryFile: Joi.string().optional()
|
|
34
36
|
}).optional(),
|
|
35
37
|
extraRemarkPlugins: getUnifiedPluginSchema,
|
|
36
38
|
extraRehypePlugins: getUnifiedPluginSchema,
|
|
37
|
-
themeConfig: (Joi) => Joi.object().optional()
|
|
39
|
+
themeConfig: (Joi) => Joi.object().optional(),
|
|
40
|
+
logo: (Joi) => Joi.string()
|
|
38
41
|
};
|
|
39
42
|
}
|
|
40
43
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import type { IApi } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* exclude pre-compiling modules in mfsu mode
|
|
4
|
+
* and make sure there has no multiple instances problem (such as react)
|
|
5
|
+
*/
|
|
6
|
+
export declare function safeExcludeInMFSU(api: IApi, excludes: RegExp[]): void;
|
|
2
7
|
declare const _default: (api: IApi) => void;
|
|
3
8
|
export default _default;
|
package/dist/features/exports.js
CHANGED
|
@@ -22,12 +22,31 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
22
22
|
// src/features/exports.ts
|
|
23
23
|
var exports_exports = {};
|
|
24
24
|
__export(exports_exports, {
|
|
25
|
-
default: () => exports_default
|
|
25
|
+
default: () => exports_default,
|
|
26
|
+
safeExcludeInMFSU: () => safeExcludeInMFSU
|
|
26
27
|
});
|
|
27
28
|
module.exports = __toCommonJS(exports_exports);
|
|
28
29
|
var import_plugin_utils = require("umi/plugin-utils");
|
|
30
|
+
function safeExcludeInMFSU(api, excludes) {
|
|
31
|
+
if (api.userConfig.mfsu !== false) {
|
|
32
|
+
api.modifyDefaultConfig((memo) => {
|
|
33
|
+
memo.mfsu ?? (memo.mfsu = {});
|
|
34
|
+
memo.mfsu.exclude = (0, import_plugin_utils.deepmerge)(memo.mfsu.exclude || [], excludes);
|
|
35
|
+
memo.extraBabelIncludes ?? (memo.extraBabelIncludes = []);
|
|
36
|
+
memo.extraBabelIncludes.push(...excludes);
|
|
37
|
+
return memo;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
29
41
|
var exports_default = (api) => {
|
|
30
42
|
api.describe({ key: void 0 });
|
|
43
|
+
safeExcludeInMFSU(api, [new RegExp("dumi/dist/client")]);
|
|
44
|
+
api.modifyDefaultConfig((memo) => {
|
|
45
|
+
if (api.userConfig.mfsu !== false) {
|
|
46
|
+
memo.mfsu = { strategy: "normal" };
|
|
47
|
+
}
|
|
48
|
+
return memo;
|
|
49
|
+
});
|
|
31
50
|
api.modifyConfig((memo) => {
|
|
32
51
|
memo.alias["dumi$"] = "@@/dumi/exports";
|
|
33
52
|
return memo;
|
|
@@ -42,4 +61,6 @@ export * from '${(0, import_plugin_utils.winPath)(require.resolve("../client/the
|
|
|
42
61
|
});
|
|
43
62
|
};
|
|
44
63
|
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
-
0 && (module.exports = {
|
|
64
|
+
0 && (module.exports = {
|
|
65
|
+
safeExcludeInMFSU
|
|
66
|
+
});
|