@docusaurus/core 0.0.0-6110 → 0.0.0-6112

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.
@@ -33,6 +33,15 @@ process.env.NODE_ENV ??= 'development';
33
33
 
34
34
  await beforeCli();
35
35
 
36
+ /**
37
+ * @param {string} locale
38
+ * @param {string[]} locales
39
+ * @returns {string[]}
40
+ */
41
+ function concatLocaleOptions(locale, locales = []) {
42
+ return locales.concat(locale);
43
+ }
44
+
36
45
  cli.version(DOCUSAURUS_VERSION).usage('<command> [options]');
37
46
 
38
47
  cli
@@ -55,8 +64,9 @@ cli
55
64
  'path to docusaurus config file (default: `[siteDir]/docusaurus.config.js`)',
56
65
  )
57
66
  .option(
58
- '-l, --locale <locale>',
59
- 'build the site in a specified locale. Build all known locales otherwise',
67
+ '-l, --locale <locale...>',
68
+ 'build the site in the specified locale(s). Build all known locales otherwise',
69
+ concatLocaleOptions,
60
70
  )
61
71
  .option(
62
72
  '--no-minify',
@@ -101,7 +111,8 @@ cli
101
111
  .description('Deploy website to GitHub pages.')
102
112
  .option(
103
113
  '-l, --locale <locale>',
104
- 'deploy the site in a specified locale. Deploy all known locales otherwise',
114
+ 'deploy the site in the specified locale(s). Deploy all known locales otherwise',
115
+ concatLocaleOptions,
105
116
  )
106
117
  .option(
107
118
  '--out-dir <dir>',
@@ -5,5 +5,5 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import type { AppRenderer } from '../common';
8
- declare const render: AppRenderer;
8
+ declare const render: AppRenderer['render'];
9
9
  export default render;
@@ -4,8 +4,9 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { type LoadContextParams } from '../server/site';
8
- export type BuildCLIOptions = Pick<LoadContextParams, 'config' | 'locale' | 'outDir'> & {
7
+ import { type LoadContextParams } from '../../server/site';
8
+ export type BuildCLIOptions = Pick<LoadContextParams, 'config' | 'outDir'> & {
9
+ locale?: [string, ...string[]];
9
10
  bundleAnalyzer?: boolean;
10
11
  minify?: boolean;
11
12
  dev?: boolean;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Facebook, Inc. and its affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.build = build;
10
+ const tslib_1 = require("tslib");
11
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
12
+ const logger_1 = tslib_1.__importStar(require("@docusaurus/logger"));
13
+ const utils_1 = require("@docusaurus/utils");
14
+ const site_1 = require("../../server/site");
15
+ const i18n_1 = require("../../server/i18n");
16
+ const buildLocale_1 = require("./buildLocale");
17
+ async function build(siteDirParam = '.', cliOptions = {}) {
18
+ process.env.BABEL_ENV = 'production';
19
+ process.env.NODE_ENV = 'production';
20
+ process.env.DOCUSAURUS_CURRENT_LOCALE = cliOptions.locale?.[0];
21
+ if (cliOptions.dev) {
22
+ logger_1.default.info `Building in dev mode`;
23
+ process.env.BABEL_ENV = 'development';
24
+ process.env.NODE_ENV = 'development';
25
+ }
26
+ const siteDir = await fs_extra_1.default.realpath(siteDirParam);
27
+ ['SIGINT', 'SIGTERM'].forEach((sig) => {
28
+ process.on(sig, () => process.exit());
29
+ });
30
+ const locales = await logger_1.PerfLogger.async('Get locales to build', () => getLocalesToBuild({ siteDir, cliOptions }));
31
+ if (locales.length > 1) {
32
+ logger_1.default.info `Website will be built for all these locales: ${locales}`;
33
+ }
34
+ await logger_1.PerfLogger.async(`Build`, () => (0, utils_1.mapAsyncSequential)(locales, async (locale) => {
35
+ await tryToBuildLocale({ siteDir, locale, cliOptions });
36
+ }));
37
+ logger_1.default.info `Use code=${'npm run serve'} command to test your build locally.`;
38
+ }
39
+ // We need the default locale to always be the 1st in the list. If we build it
40
+ // last, it would "erase" the localized sites built in sub-folders
41
+ function orderLocales({ locales, defaultLocale, }) {
42
+ if (locales.includes(defaultLocale)) {
43
+ return [
44
+ defaultLocale,
45
+ ...locales.filter((locale) => locale !== defaultLocale),
46
+ ];
47
+ }
48
+ else {
49
+ return locales;
50
+ }
51
+ }
52
+ async function getLocalesToBuild({ siteDir, cliOptions, }) {
53
+ // We disable locale path localization if CLI has single "--locale" option
54
+ // yarn build --locale fr => baseUrl=/ instead of baseUrl=/fr/
55
+ const localizePath = cliOptions.locale?.length === 1 ? false : undefined;
56
+ const context = await (0, site_1.loadContext)({
57
+ siteDir,
58
+ outDir: cliOptions.outDir,
59
+ config: cliOptions.config,
60
+ localizePath,
61
+ });
62
+ const i18n = await (0, i18n_1.loadI18n)(context.siteConfig);
63
+ const locales = cliOptions.locale ?? i18n.locales;
64
+ return orderLocales({
65
+ locales: locales,
66
+ defaultLocale: i18n.defaultLocale,
67
+ });
68
+ }
69
+ async function tryToBuildLocale(params) {
70
+ try {
71
+ await logger_1.PerfLogger.async(`${logger_1.default.name(params.locale)}`, async () => {
72
+ // Note: I tried to run buildLocale in worker_threads (still sequentially)
73
+ // It didn't work and I got SIGSEGV / SIGBUS errors
74
+ // See https://x.com/sebastienlorber/status/1848413716372480338
75
+ await runBuildLocaleTask(params);
76
+ });
77
+ }
78
+ catch (err) {
79
+ throw new Error(logger_1.default.interpolate `Unable to build website for locale name=${params.locale}.`, {
80
+ cause: err,
81
+ });
82
+ }
83
+ }
84
+ async function runBuildLocaleTask(params) {
85
+ // Note: I tried to run buildLocale task in worker_threads (sequentially)
86
+ // It didn't work and I got SIGSEGV / SIGBUS errors
87
+ // Goal was to isolate memory of each localized site build
88
+ // See also https://x.com/sebastienlorber/status/1848413716372480338
89
+ //
90
+ // Running in child_process worked but is more complex and requires
91
+ // specifying the memory of the child process + weird logging issues to fix
92
+ //
93
+ // Note in the future we could try to enable concurrent localized site builds
94
+ await (0, buildLocale_1.buildLocale)(params);
95
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { BuildCLIOptions } from './build';
8
+ export type BuildLocaleParams = {
9
+ siteDir: string;
10
+ locale: string;
11
+ cliOptions: Partial<BuildCLIOptions>;
12
+ };
13
+ export declare function buildLocale({ siteDir, locale, cliOptions, }: BuildLocaleParams): Promise<void>;
@@ -6,81 +6,19 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.build = build;
9
+ exports.buildLocale = buildLocale;
10
10
  const tslib_1 = require("tslib");
11
11
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
12
12
  const path_1 = tslib_1.__importDefault(require("path"));
13
13
  const lodash_1 = tslib_1.__importDefault(require("lodash"));
14
14
  const bundler_1 = require("@docusaurus/bundler");
15
15
  const logger_1 = tslib_1.__importStar(require("@docusaurus/logger"));
16
- const utils_1 = require("@docusaurus/utils");
17
- const site_1 = require("../server/site");
18
- const brokenLinks_1 = require("../server/brokenLinks");
19
- const client_1 = require("../webpack/client");
20
- const server_1 = tslib_1.__importDefault(require("../webpack/server"));
21
- const configure_1 = require("../webpack/configure");
22
- const i18n_1 = require("../server/i18n");
23
- const ssgExecutor_1 = require("../ssg/ssgExecutor");
24
- async function build(siteDirParam = '.', cliOptions = {}) {
25
- process.env.BABEL_ENV = 'production';
26
- process.env.NODE_ENV = 'production';
27
- process.env.DOCUSAURUS_CURRENT_LOCALE = cliOptions.locale;
28
- if (cliOptions.dev) {
29
- logger_1.default.info `Building in dev mode`;
30
- process.env.BABEL_ENV = 'development';
31
- process.env.NODE_ENV = 'development';
32
- }
33
- const siteDir = await fs_extra_1.default.realpath(siteDirParam);
34
- ['SIGINT', 'SIGTERM'].forEach((sig) => {
35
- process.on(sig, () => process.exit());
36
- });
37
- async function tryToBuildLocale({ locale }) {
38
- try {
39
- await logger_1.PerfLogger.async(`${logger_1.default.name(locale)}`, () => buildLocale({
40
- siteDir,
41
- locale,
42
- cliOptions,
43
- }));
44
- }
45
- catch (err) {
46
- throw new Error(logger_1.default.interpolate `Unable to build website for locale name=${locale}.`, {
47
- cause: err,
48
- });
49
- }
50
- }
51
- const locales = await logger_1.PerfLogger.async('Get locales to build', () => getLocalesToBuild({ siteDir, cliOptions }));
52
- if (locales.length > 1) {
53
- logger_1.default.info `Website will be built for all these locales: ${locales}`;
54
- }
55
- await logger_1.PerfLogger.async(`Build`, () => (0, utils_1.mapAsyncSequential)(locales, async (locale) => {
56
- await tryToBuildLocale({ locale });
57
- }));
58
- logger_1.default.info `Use code=${'npm run serve'} command to test your build locally.`;
59
- }
60
- async function getLocalesToBuild({ siteDir, cliOptions, }) {
61
- if (cliOptions.locale) {
62
- return [cliOptions.locale];
63
- }
64
- const context = await (0, site_1.loadContext)({
65
- siteDir,
66
- outDir: cliOptions.outDir,
67
- config: cliOptions.config,
68
- locale: cliOptions.locale,
69
- localizePath: cliOptions.locale ? false : undefined,
70
- });
71
- const i18n = await (0, i18n_1.loadI18n)(context.siteConfig, {
72
- locale: cliOptions.locale,
73
- });
74
- if (i18n.locales.length > 1) {
75
- logger_1.default.info `Website will be built for all these locales: ${i18n.locales}`;
76
- }
77
- // We need the default locale to always be the 1st in the list. If we build it
78
- // last, it would "erase" the localized sites built in sub-folders
79
- return [
80
- i18n.defaultLocale,
81
- ...i18n.locales.filter((locale) => locale !== i18n.defaultLocale),
82
- ];
83
- }
16
+ const site_1 = require("../../server/site");
17
+ const brokenLinks_1 = require("../../server/brokenLinks");
18
+ const client_1 = require("../../webpack/client");
19
+ const server_1 = tslib_1.__importDefault(require("../../webpack/server"));
20
+ const configure_1 = require("../../webpack/configure");
21
+ const ssgExecutor_1 = require("../../ssg/ssgExecutor");
84
22
  async function buildLocale({ siteDir, locale, cliOptions, }) {
85
23
  // Temporary workaround to unlock the ability to translate the site config
86
24
  // We'll remove it if a better official API can be designed
@@ -92,7 +30,7 @@ async function buildLocale({ siteDir, locale, cliOptions, }) {
92
30
  outDir: cliOptions.outDir,
93
31
  config: cliOptions.config,
94
32
  locale,
95
- localizePath: cliOptions.locale ? false : undefined,
33
+ localizePath: cliOptions.locale?.length === 1 ? false : undefined,
96
34
  }));
97
35
  const { props } = site;
98
36
  const { outDir, plugins, siteConfig } = props;
@@ -5,7 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { type LoadContextParams } from '../server/site';
8
- export type DeployCLIOptions = Pick<LoadContextParams, 'config' | 'locale' | 'outDir'> & {
8
+ export type DeployCLIOptions = Pick<LoadContextParams, 'config' | 'outDir'> & {
9
+ locale?: [string, ...string[]];
9
10
  skipBuild?: boolean;
10
11
  targetDir?: string;
11
12
  };
@@ -15,7 +15,7 @@ const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
15
15
  const shelljs_1 = tslib_1.__importDefault(require("shelljs"));
16
16
  const utils_1 = require("@docusaurus/utils");
17
17
  const site_1 = require("../server/site");
18
- const build_1 = require("./build");
18
+ const build_1 = require("./build/build");
19
19
  // GIT_PASS env variable should not appear in logs
20
20
  function obfuscateGitPass(str) {
21
21
  const gitPass = process.env.GIT_PASS;
@@ -17,7 +17,7 @@ const serve_handler_1 = tslib_1.__importDefault(require("serve-handler"));
17
17
  const openBrowser_1 = tslib_1.__importDefault(require("react-dev-utils/openBrowser"));
18
18
  const utils_common_1 = require("@docusaurus/utils-common");
19
19
  const config_1 = require("../server/config");
20
- const build_1 = require("./build");
20
+ const build_1 = require("./build/build");
21
21
  const getHostPort_1 = require("../server/getHostPort");
22
22
  function redirect(res, location) {
23
23
  res.writeHead(302, {
package/lib/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- export { build } from './commands/build';
7
+ export { build } from './commands/build/build';
8
8
  export { clear } from './commands/clear';
9
9
  export { deploy } from './commands/deploy';
10
10
  export { externalCommand } from './commands/external';
package/lib/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.writeTranslations = exports.writeHeadingIds = exports.swizzle = exports.start = exports.serve = exports.externalCommand = exports.deploy = exports.clear = exports.build = void 0;
10
- var build_1 = require("./commands/build");
10
+ var build_1 = require("./commands/build/build");
11
11
  Object.defineProperty(exports, "build", { enumerable: true, get: function () { return build_1.build; } });
12
12
  var clear_1 = require("./commands/clear");
13
13
  Object.defineProperty(exports, "clear", { enumerable: true, get: function () { return clear_1.clear; } });
@@ -7,4 +7,4 @@
7
7
  import type { I18n, DocusaurusConfig, I18nLocaleConfig } from '@docusaurus/types';
8
8
  import type { LoadContextParams } from './site';
9
9
  export declare function getDefaultLocaleConfig(locale: string): I18nLocaleConfig;
10
- export declare function loadI18n(config: DocusaurusConfig, options: Pick<LoadContextParams, 'locale'>): Promise<I18n>;
10
+ export declare function loadI18n(config: DocusaurusConfig, options?: Pick<LoadContextParams, 'locale'>): Promise<I18n>;
@@ -74,7 +74,7 @@ function getDefaultLocaleConfig(locale) {
74
74
  }
75
75
  async function loadI18n(config, options) {
76
76
  const { i18n: i18nConfig } = config;
77
- const currentLocale = options.locale ?? i18nConfig.defaultLocale;
77
+ const currentLocale = options?.locale ?? i18nConfig.defaultLocale;
78
78
  if (!i18nConfig.locales.includes(currentLocale)) {
79
79
  logger_1.default.warn `The locale name=${currentLocale} was not found in your site configuration: Available locales are: ${i18nConfig.locales}
80
80
  Note: Docusaurus only support running one locale at a time.`;
package/lib/ssg/ssg.js CHANGED
@@ -11,19 +11,22 @@ exports.printSSGWarnings = printSSGWarnings;
11
11
  exports.generateStaticFiles = generateStaticFiles;
12
12
  const tslib_1 = require("tslib");
13
13
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
14
- const module_1 = require("module");
15
14
  const path_1 = tslib_1.__importDefault(require("path"));
16
15
  const lodash_1 = tslib_1.__importDefault(require("lodash"));
16
+ // TODO eval is archived / unmaintained: https://github.com/pierrec/node-eval
17
+ // We should internalize/modernize it
17
18
  const eval_1 = tslib_1.__importDefault(require("eval"));
18
19
  const p_map_1 = tslib_1.__importDefault(require("p-map"));
19
20
  const logger_1 = tslib_1.__importStar(require("@docusaurus/logger"));
20
21
  const bundler_1 = require("@docusaurus/bundler");
21
22
  const ssgTemplate_1 = require("./ssgTemplate");
22
23
  const ssgUtils_1 = require("./ssgUtils");
24
+ const ssgNodeRequire_1 = require("./ssgNodeRequire");
23
25
  async function loadAppRenderer({ serverBundlePath, }) {
24
26
  const source = await logger_1.PerfLogger.async(`Load server bundle`, () => fs_extra_1.default.readFile(serverBundlePath));
25
27
  logger_1.PerfLogger.log(`Server bundle size = ${(source.length / 1024000).toFixed(3)} MB`);
26
28
  const filename = path_1.default.basename(serverBundlePath);
29
+ const ssgRequire = (0, ssgNodeRequire_1.createSSGRequire)(serverBundlePath);
27
30
  const globals = {
28
31
  // When using "new URL('file.js', import.meta.url)", Webpack will emit
29
32
  // __filename, and this plugin will throw. not sure the __filename value
@@ -32,7 +35,7 @@ async function loadAppRenderer({ serverBundlePath, }) {
32
35
  __filename: '',
33
36
  // This uses module.createRequire() instead of very old "require-like" lib
34
37
  // See also: https://github.com/pierrec/node-eval/issues/33
35
- require: (0, module_1.createRequire)(serverBundlePath),
38
+ require: ssgRequire.require,
36
39
  };
37
40
  const serverEntry = await logger_1.PerfLogger.async(`Evaluate server bundle`, () => (0, eval_1.default)(source,
38
41
  /* filename: */ filename,
@@ -41,7 +44,13 @@ async function loadAppRenderer({ serverBundlePath, }) {
41
44
  if (!serverEntry?.default || typeof serverEntry.default !== 'function') {
42
45
  throw new Error(`Server bundle export from "${filename}" must be a function that renders the Docusaurus React app.`);
43
46
  }
44
- return serverEntry.default;
47
+ async function shutdown() {
48
+ ssgRequire.cleanup();
49
+ }
50
+ return {
51
+ render: serverEntry.default,
52
+ shutdown,
53
+ };
45
54
  }
46
55
  function printSSGWarnings(results) {
47
56
  // Escape hatch because SWC is quite aggressive to report errors
@@ -108,6 +117,7 @@ async function generateStaticFiles({ pathnames, params, }) {
108
117
  error: error,
109
118
  warnings: [],
110
119
  })), { concurrency: ssgUtils_1.SSGConcurrency });
120
+ await renderer.shutdown();
111
121
  printSSGWarnings(results);
112
122
  const [allSSGErrors, allSSGSuccesses] = lodash_1.default.partition(results, (result) => !!result.error);
113
123
  if (allSSGErrors.length > 0) {
@@ -129,7 +139,7 @@ async function generateStaticFiles({ pathnames, params, }) {
129
139
  async function generateStaticFile({ pathname, renderer, params, htmlMinifier, ssgTemplate, }) {
130
140
  try {
131
141
  // This only renders the app HTML
132
- const result = await renderer({
142
+ const result = await renderer.render({
133
143
  pathname,
134
144
  });
135
145
  // This renders the full page HTML, including head tags...
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export type SSGNodeRequire = {
8
+ require: NodeJS.Require;
9
+ cleanup: () => void;
10
+ };
11
+ export declare function createSSGRequire(serverBundlePath: string): SSGNodeRequire;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Facebook, Inc. and its affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createSSGRequire = createSSGRequire;
10
+ const module_1 = require("module");
11
+ // The eval/vm.Script used for running the server bundle need a require() impl
12
+ // This impl has to be relative to the server bundler path
13
+ // This enables the server bundle to resolve relative paths such as:
14
+ // - require('./assets/js/some-chunk.123456.js')
15
+ //
16
+ // Unfortunately, Node.js vm.Script doesn't isolate memory / require.cache
17
+ // This means that if we build multiple Docusaurus localized sites in a row
18
+ // The Node.js require cache will keep growing and retain in memory the JS
19
+ // assets of the former SSG builds
20
+ // We have to clean up the node require cache manually to avoid leaking memory!
21
+ // See also https://x.com/sebastienlorber/status/1848399310116831702
22
+ function createSSGRequire(serverBundlePath) {
23
+ const realRequire = (0, module_1.createRequire)(serverBundlePath);
24
+ const allRequiredIds = [];
25
+ const ssgRequireFunction = (id) => {
26
+ const module = realRequire(id);
27
+ allRequiredIds.push(id);
28
+ return module;
29
+ };
30
+ const cleanup = () => {
31
+ allRequiredIds.forEach((id) => {
32
+ delete realRequire.cache[realRequire.resolve(id)];
33
+ });
34
+ };
35
+ ssgRequireFunction.resolve = realRequire.resolve;
36
+ ssgRequireFunction.cache = realRequire.cache;
37
+ ssgRequireFunction.extensions = realRequire.extensions;
38
+ ssgRequireFunction.main = realRequire.main;
39
+ return { require: ssgRequireFunction, cleanup };
40
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@docusaurus/core",
3
3
  "description": "Easy to Maintain Open Source Documentation Websites",
4
- "version": "0.0.0-6110",
4
+ "version": "0.0.0-6112",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -33,13 +33,13 @@
33
33
  "url": "https://github.com/facebook/docusaurus/issues"
34
34
  },
35
35
  "dependencies": {
36
- "@docusaurus/babel": "0.0.0-6110",
37
- "@docusaurus/bundler": "0.0.0-6110",
38
- "@docusaurus/logger": "0.0.0-6110",
39
- "@docusaurus/mdx-loader": "0.0.0-6110",
40
- "@docusaurus/utils": "0.0.0-6110",
41
- "@docusaurus/utils-common": "0.0.0-6110",
42
- "@docusaurus/utils-validation": "0.0.0-6110",
36
+ "@docusaurus/babel": "0.0.0-6112",
37
+ "@docusaurus/bundler": "0.0.0-6112",
38
+ "@docusaurus/logger": "0.0.0-6112",
39
+ "@docusaurus/mdx-loader": "0.0.0-6112",
40
+ "@docusaurus/utils": "0.0.0-6112",
41
+ "@docusaurus/utils-common": "0.0.0-6112",
42
+ "@docusaurus/utils-validation": "0.0.0-6112",
43
43
  "boxen": "^6.2.1",
44
44
  "chalk": "^4.1.2",
45
45
  "chokidar": "^3.5.3",
@@ -78,8 +78,8 @@
78
78
  "webpack-merge": "^6.0.1"
79
79
  },
80
80
  "devDependencies": {
81
- "@docusaurus/module-type-aliases": "0.0.0-6110",
82
- "@docusaurus/types": "0.0.0-6110",
81
+ "@docusaurus/module-type-aliases": "0.0.0-6112",
82
+ "@docusaurus/types": "0.0.0-6112",
83
83
  "@total-typescript/shoehorn": "^0.1.2",
84
84
  "@types/detect-port": "^1.3.3",
85
85
  "@types/react-dom": "^18.2.7",
@@ -100,5 +100,5 @@
100
100
  "engines": {
101
101
  "node": ">=18.0"
102
102
  },
103
- "gitHead": "3e5c6c714c37c6d3592bfc2a0679dbff3d825b3e"
103
+ "gitHead": "dd7a8f35cefc9d93e08d19e6959c45c41a811739"
104
104
  }