@docusaurus/core 4.0.0-canary-6965 → 4.0.0-canary-6967

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.
@@ -112,9 +112,9 @@ async function createCLIProgram({ cli, cliArgs, siteDir, config, }) {
112
112
  .option('--no-open', 'do not open page in the browser (default: false)')
113
113
  .option('--poll [interval]', 'use polling rather than watching for reload (default: false). Can specify a poll interval in milliseconds', normalizePollValue)
114
114
  .option('--no-minify', 'build website without minimizing JS bundles (default: false)')
115
- .option('--https', 'serve the dev site over HTTPS using a self-signed cert (default: false). Preferred over the HTTPS=true env var. Implied when both --ssl-cert and --ssl-key are provided.')
116
- .option('--ssl-cert <path>', 'path to a TLS certificate file (implies HTTPS). Preferred over the SSL_CRT_FILE env var; CLI takes precedence if both are set.')
117
- .option('--ssl-key <path>', 'path to a TLS private key file (implies HTTPS). Preferred over the SSL_KEY_FILE env var; CLI takes precedence if both are set.')
115
+ .option('--https', 'serve the dev site over HTTPS using a self-signed cert (default: false). Implied when both --ssl-cert and --ssl-key are provided. Takes precedence over the DOCUSAURUS_HTTPS env var.')
116
+ .option('--ssl-cert <path>', 'path to a TLS certificate file (implies HTTPS). Takes precedence over the DOCUSAURUS_SSL_CRT_FILE env var.')
117
+ .option('--ssl-key <path>', 'path to a TLS private key file (implies HTTPS). Takes precedence over the DOCUSAURUS_SSL_KEY_FILE env var.')
118
118
  .action(start_1.start);
119
119
  cli
120
120
  .command('serve [siteDir]')
@@ -5,16 +5,21 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import _ from 'lodash';
8
+ import { type HttpsConfig } from '../../webpack/utils/getHttpsConfig';
8
9
  import type { StartCLIOptions } from './start';
9
10
  import type { LoadedPlugin, RouterType } from '@docusaurus/types';
10
11
  export type OpenUrlContext = {
11
12
  host: string;
12
13
  port: number;
14
+ httpsConfig: HttpsConfig;
13
15
  getOpenUrl: ({ baseUrl, router, }: {
14
16
  baseUrl: string;
15
17
  router: RouterType;
16
18
  }) => string;
17
19
  };
20
+ export declare function createOpenUrlContext({ cliOptions, }: {
21
+ cliOptions: StartCLIOptions;
22
+ }): Promise<OpenUrlContext>;
18
23
  type StartParams = {
19
24
  siteDirParam: string;
20
25
  cliOptions: Partial<StartCLIOptions>;
@@ -6,6 +6,7 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createOpenUrlContext = createOpenUrlContext;
9
10
  exports.createReloadableSite = createReloadableSite;
10
11
  const tslib_1 = require("tslib");
11
12
  const node_url_1 = tslib_1.__importDefault(require("node:url"));
@@ -14,6 +15,7 @@ const utils_1 = require("@docusaurus/utils");
14
15
  const logger_1 = tslib_1.__importStar(require("@docusaurus/logger"));
15
16
  const fs_1 = require("@docusaurus/fs");
16
17
  const getHostPort_1 = require("../../server/getHostPort");
18
+ const getHttpsConfig_1 = tslib_1.__importDefault(require("../../webpack/utils/getHttpsConfig"));
17
19
  const site_1 = require("../../server/site");
18
20
  const pluginsUtils_1 = require("../../server/plugins/pluginsUtils");
19
21
  // This code was historically in CRA/react-dev-utils (deprecated in 2025)
@@ -32,7 +34,12 @@ function getOpenUrlOrigin(protocol, host, port) {
32
34
  return localUrlForBrowser;
33
35
  }
34
36
  async function createOpenUrlContext({ cliOptions, }) {
35
- const protocol = process.env.HTTPS === 'true' ? 'https' : 'http';
37
+ const httpsConfig = await (0, getHttpsConfig_1.default)({
38
+ https: cliOptions.https,
39
+ sslCert: cliOptions.sslCert,
40
+ sslKey: cliOptions.sslKey,
41
+ });
42
+ const protocol = httpsConfig ? 'https' : 'http';
36
43
  const { host, port } = await (0, getHostPort_1.getHostPort)(cliOptions);
37
44
  if (port === null) {
38
45
  return process.exit();
@@ -44,7 +51,7 @@ async function createOpenUrlContext({ cliOptions, }) {
44
51
  baseUrl,
45
52
  ]);
46
53
  };
47
- return { host, port, getOpenUrl };
54
+ return { host, port, httpsConfig, getOpenUrl };
48
55
  }
49
56
  async function createLoadSiteParams({ siteDirParam, cliOptions, }) {
50
57
  const siteDir = await (0, fs_1.realpath)(siteDirParam);
@@ -13,7 +13,6 @@ const webpack_merge_1 = tslib_1.__importDefault(require("webpack-merge"));
13
13
  const bundler_1 = require("@docusaurus/bundler");
14
14
  const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
15
15
  const watcher_1 = require("./watcher");
16
- const getHttpsConfig_1 = tslib_1.__importDefault(require("../../webpack/utils/getHttpsConfig"));
17
16
  const configure_1 = require("../../webpack/configure");
18
17
  const client_1 = require("../../webpack/client");
19
18
  // E2E_TEST=true docusaurus start
@@ -36,14 +35,9 @@ function registerWebpackE2ETestHook(compiler) {
36
35
  }
37
36
  });
38
37
  }
39
- async function createDevServerConfig({ cliOptions, props, host, port, }) {
38
+ function createDevServerConfig({ cliOptions, props, host, port, httpsConfig, }) {
40
39
  const { baseUrl, siteDir, siteConfig } = props;
41
40
  const pollingOptions = (0, watcher_1.createPollingOptions)(cliOptions);
42
- const httpsConfig = await (0, getHttpsConfig_1.default)({
43
- https: cliOptions.https,
44
- sslCert: cliOptions.sslCert,
45
- sslKey: cliOptions.sslKey,
46
- });
47
41
  // https://webpack.js.org/configuration/dev-server
48
42
  return {
49
43
  hot: cliOptions.hotOnly ? 'only' : true,
@@ -122,11 +116,12 @@ async function createWebpackDevServer({ props, cliOptions, openUrlContext, }) {
122
116
  });
123
117
  const compiler = props.currentBundler.instance(config);
124
118
  registerWebpackE2ETestHook(compiler);
125
- const defaultDevServerConfig = await createDevServerConfig({
119
+ const defaultDevServerConfig = createDevServerConfig({
126
120
  cliOptions,
127
121
  props,
128
122
  host: openUrlContext.host,
129
123
  port: openUrlContext.port,
124
+ httpsConfig: openUrlContext.httpsConfig,
130
125
  });
131
126
  // Allow plugin authors to customize/override devServer config
132
127
  const devServerConfig = (0, webpack_merge_1.default)([defaultDevServerConfig, config.devServer].filter(Boolean));
@@ -9,8 +9,9 @@ type HttpsConfigOptions = {
9
9
  sslCert: string;
10
10
  sslKey: string;
11
11
  };
12
- export default function getHttpsConfig(options?: Partial<HttpsConfigOptions>): Promise<boolean | {
12
+ export type HttpsConfig = boolean | {
13
13
  cert: Buffer;
14
14
  key: Buffer;
15
- }>;
15
+ };
16
+ export default function getHttpsConfig(options?: Partial<HttpsConfigOptions>): Promise<HttpsConfig>;
16
17
  export {};
@@ -41,9 +41,6 @@ function getExplicitHttps(options) {
41
41
  return (options.https ??
42
42
  (typeof process.env.DOCUSAURUS_HTTPS !== 'undefined'
43
43
  ? process.env.DOCUSAURUS_HTTPS == 'true'
44
- : undefined) ??
45
- (typeof process.env.HTTPS !== 'undefined'
46
- ? process.env.HTTPS == 'true'
47
44
  : undefined));
48
45
  }
49
46
  async function readCryptoFile(filepath, source) {
@@ -68,9 +65,6 @@ function getCert(options, cwd) {
68
65
  if (process.env.DOCUSAURUS_SSL_CRT_FILE) {
69
66
  return readCryptoFile(node_path_1.default.resolve(cwd, process.env.DOCUSAURUS_SSL_CRT_FILE), 'env DOCUSAURUS_SSL_CRT_FILE');
70
67
  }
71
- if (process.env.SSL_CRT_FILE) {
72
- return readCryptoFile(node_path_1.default.resolve(cwd, process.env.SSL_CRT_FILE), 'env SSL_CRT_FILE');
73
- }
74
68
  return null;
75
69
  }
76
70
  function getKeyFile(options, cwd) {
@@ -80,9 +74,6 @@ function getKeyFile(options, cwd) {
80
74
  if (process.env.DOCUSAURUS_SSL_KEY_FILE) {
81
75
  return readCryptoFile(node_path_1.default.resolve(cwd, process.env.DOCUSAURUS_SSL_KEY_FILE), 'env DOCUSAURUS_SSL_KEY_FILE');
82
76
  }
83
- if (process.env.SSL_KEY_FILE) {
84
- return readCryptoFile(node_path_1.default.resolve(cwd, process.env.SSL_KEY_FILE), 'env SSL_KEY_FILE');
85
- }
86
77
  return null;
87
78
  }
88
79
  function ensureCertKeyBothProvided(cert, key) {
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": "4.0.0-canary-6965",
4
+ "version": "4.0.0-canary-6967",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -27,15 +27,15 @@
27
27
  "url": "https://github.com/facebook/docusaurus/issues"
28
28
  },
29
29
  "dependencies": {
30
- "@docusaurus/babel": "4.0.0-canary-6965",
31
- "@docusaurus/bundler": "4.0.0-canary-6965",
32
- "@docusaurus/fs": "4.0.0-canary-6965",
33
- "@docusaurus/glob": "4.0.0-canary-6965",
34
- "@docusaurus/logger": "4.0.0-canary-6965",
35
- "@docusaurus/mdx-loader": "4.0.0-canary-6965",
36
- "@docusaurus/utils": "4.0.0-canary-6965",
37
- "@docusaurus/utils-common": "4.0.0-canary-6965",
38
- "@docusaurus/utils-validation": "4.0.0-canary-6965",
30
+ "@docusaurus/babel": "4.0.0-canary-6967",
31
+ "@docusaurus/bundler": "4.0.0-canary-6967",
32
+ "@docusaurus/fs": "4.0.0-canary-6967",
33
+ "@docusaurus/glob": "4.0.0-canary-6967",
34
+ "@docusaurus/logger": "4.0.0-canary-6967",
35
+ "@docusaurus/mdx-loader": "4.0.0-canary-6967",
36
+ "@docusaurus/utils": "4.0.0-canary-6967",
37
+ "@docusaurus/utils-common": "4.0.0-canary-6967",
38
+ "@docusaurus/utils-validation": "4.0.0-canary-6967",
39
39
  "@rspack/core": "^2.2.3",
40
40
  "@rspack/dev-server": "^2.2.1",
41
41
  "boxen": "^9.0.0",
@@ -68,8 +68,8 @@
68
68
  "webpack-merge": "^6.0.1"
69
69
  },
70
70
  "devDependencies": {
71
- "@docusaurus/module-type-aliases": "4.0.0-canary-6965",
72
- "@docusaurus/types": "4.0.0-canary-6965",
71
+ "@docusaurus/module-type-aliases": "4.0.0-canary-6967",
72
+ "@docusaurus/types": "4.0.0-canary-6967",
73
73
  "@total-typescript/shoehorn": "^0.1.2",
74
74
  "@types/escape-html": "^1.0.4",
75
75
  "@types/history": "^4.7.11",