@modern-js/prod-server 2.20.0 → 2.21.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @modern-js/prod-server
2
2
 
3
+ ## 2.21.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 78e3ac8: fix(prod-server): worker ssr should pass baseUrl & url by request.
8
+ fix(prod-server): worker ssr 通过 request 应该传递 baseUrl & url .
9
+ - 2728724: fix(prod-server): the ssr render maybe get invalid url, like `http:///`
10
+ fix(prod-server): ssr 渲染函数可能获得非法 url, 类似 `http:///`
11
+ - @modern-js/server-core@2.21.1
12
+ - @modern-js/utils@2.21.1
13
+
14
+ ## 2.21.0
15
+
16
+ ### Patch Changes
17
+
18
+ - cfc5bda: feat: ssr mode support async entry
19
+ feat: ssr 模式支持异步入口
20
+ - 26dcf3a: chore: bump typescript to v5 in devDependencies
21
+
22
+ chore: 升级 devDependencies 中的 typescript 版本到 v5
23
+
24
+ - 43b4e83: feat: support security.nonce for add nonce attribute on script tag
25
+ feat: 支持 security.nonce 配置,为 script 标签添加 nonce 属性
26
+ - Updated dependencies [e81eeaf]
27
+ - Updated dependencies [26dcf3a]
28
+ - Updated dependencies [056627f]
29
+ - Updated dependencies [0fc15ca]
30
+ - Updated dependencies [43b4e83]
31
+ - Updated dependencies [ad78387]
32
+ - @modern-js/utils@2.21.0
33
+ - @modern-js/server-core@2.21.0
34
+
3
35
  ## 2.20.0
4
36
 
5
37
  ### Patch Changes
@@ -104,7 +104,7 @@ class ModernServerContext {
104
104
  if (!host) {
105
105
  host = this.getReqHeader("Host");
106
106
  }
107
- return host.split(/\s*,\s*/, 1)[0] || "";
107
+ return host.split(/\s*,\s*/, 1)[0] || "undefined";
108
108
  }
109
109
  get protocol() {
110
110
  if (this.req.socket.encrypted) {
@@ -15,7 +15,7 @@ const _static = require("./static");
15
15
  const _reader = require("./reader");
16
16
  const _ssr = /* @__PURE__ */ _interop_require_wildcard._(require("./ssr"));
17
17
  const _utils1 = require("./utils");
18
- const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async function render({ ctx, route, runner }) {
18
+ const createRenderHandler = ({ distDir, staticGenerate, forceCSR, nonce }) => async function render({ ctx, route, runner }) {
19
19
  if (ctx.resHasHandled()) {
20
20
  return null;
21
21
  }
@@ -42,7 +42,8 @@ const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async fun
42
42
  urlPath: route.urlPath,
43
43
  bundle: route.bundle,
44
44
  template: content.toString(),
45
- staticGenerate
45
+ staticGenerate,
46
+ nonce
46
47
  }, runner);
47
48
  return result;
48
49
  } catch (err) {
@@ -14,7 +14,7 @@ const _measure = require("./measure");
14
14
  const _utils1 = require("./utils");
15
15
  const render = async (ctx, renderOptions, runner) => {
16
16
  var _ctx_res;
17
- const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false } = renderOptions;
17
+ const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false, nonce } = renderOptions;
18
18
  const bundleJS = _path.default.join(distDir, bundle);
19
19
  const loadableUri = _path.default.join(distDir, _utils.LOADABLE_STATS_FILE);
20
20
  const loadableStats = _utils.fs.existsSync(loadableUri) ? require(loadableUri) : "";
@@ -49,12 +49,14 @@ const render = async (ctx, renderOptions, runner) => {
49
49
  metrics: void 0,
50
50
  req: ctx.req,
51
51
  res: ctx.res,
52
- enableUnsafeCtx
52
+ enableUnsafeCtx,
53
+ nonce
53
54
  };
54
55
  context.logger = (0, _measure.createLogger)(context, ctx.logger);
55
56
  context.metrics = (0, _measure.createMetrics)(context, ctx.metrics);
56
57
  runner.extendSSRContext(context);
57
- const serverRender = require(bundleJS)[_utils.SERVER_RENDER_FUNCTION_NAME];
58
+ const bundleJSContent = await Promise.resolve(require(bundleJS));
59
+ const serverRender = bundleJSContent[_utils.SERVER_RENDER_FUNCTION_NAME];
58
60
  const content = await (0, _cache.default)(serverRender, ctx)(context);
59
61
  const { url, status = 302 } = context.redirection;
60
62
  if (url) {
@@ -25,7 +25,7 @@ const SERVER_DIR = "./server";
25
25
  class ModernServer {
26
26
  // server prepare
27
27
  async onInit(runner, app) {
28
- var _conf_bff, _this_conf_server, _this_conf_output;
28
+ var _conf_bff, _this_conf_server, _conf_security, _this_conf_output;
29
29
  this.runner = runner;
30
30
  const { distDir, staticGenerate, conf } = this;
31
31
  (0, _utils1.debug)("final server conf", this.conf);
@@ -49,7 +49,8 @@ class ModernServer {
49
49
  this.routeRenderHandler = (0, _render.createRenderHandler)({
50
50
  distDir,
51
51
  staticGenerate,
52
- forceCSR
52
+ forceCSR,
53
+ nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
53
54
  });
54
55
  await this.setupBeforeProdMiddleware();
55
56
  this.addHandler(this.setupStaticMiddleware((_this_conf_output = this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
@@ -85,8 +85,9 @@ const createHandler = (manifest) => {
85
85
  }
86
86
  };
87
87
  const params = pageMatch.parseURLParams(url.pathname) || {};
88
+ const { urlPath: baseUrl } = pageMatch;
88
89
  const serverRenderContext = {
89
- request: createServerRequest(url, request, params),
90
+ request: createServerRequest(url, baseUrl, request, params),
90
91
  response: responseLike,
91
92
  loadableStats,
92
93
  routeManifest,
@@ -111,7 +112,7 @@ const createHandler = (manifest) => {
111
112
  }
112
113
  console.warn(`Can't not page(${pageMatch.spec.urlPath}) serverRender`);
113
114
  return createResponse(page.template);
114
- function createServerRequest(url2, request2, params) {
115
+ function createServerRequest(url2, baseUrl, request2, params) {
115
116
  const { pathname, host, searchParams } = url2;
116
117
  const { headers: rawHeaders } = request2;
117
118
  const headers = {};
@@ -120,6 +121,8 @@ const createHandler = (manifest) => {
120
121
  });
121
122
  const query = Object.fromEntries(searchParams);
122
123
  return {
124
+ url: url2.href,
125
+ baseUrl,
123
126
  pathname,
124
127
  host,
125
128
  headers,
@@ -160,7 +160,7 @@ export var ModernServerContext = /* @__PURE__ */ function() {
160
160
  if (!host) {
161
161
  host = this.getReqHeader("Host");
162
162
  }
163
- return host.split(/\s*,\s*/, 1)[0] || "";
163
+ return host.split(/\s*,\s*/, 1)[0] || "undefined";
164
164
  }
165
165
  },
166
166
  {
@@ -8,7 +8,7 @@ import { readFile } from "./reader";
8
8
  import * as ssr from "./ssr";
9
9
  import { injectServerData } from "./utils";
10
10
  export var createRenderHandler = function(param) {
11
- var distDir = param.distDir, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR;
11
+ var distDir = param.distDir, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR, nonce = param.nonce;
12
12
  return function() {
13
13
  var _render = _async_to_generator(function(param2) {
14
14
  var ctx, route, runner, entryPath, urlPath, entry, result, templatePath, content, useCSR, result1, err;
@@ -78,7 +78,8 @@ export var createRenderHandler = function(param) {
78
78
  urlPath: route.urlPath,
79
79
  bundle: route.bundle,
80
80
  template: content.toString(),
81
- staticGenerate: staticGenerate
81
+ staticGenerate: staticGenerate,
82
+ nonce: nonce
82
83
  }, runner)
83
84
  ];
84
85
  case 5:
@@ -7,11 +7,11 @@ import { createLogger, createMetrics } from "./measure";
7
7
  import { injectServerDataStream, injectServerData } from "./utils";
8
8
  export var render = function() {
9
9
  var _ref = _async_to_generator(function(ctx, renderOptions, runner) {
10
- var _ctx_res, urlPath, bundle, distDir, template, entryName, staticGenerate, _renderOptions_enableUnsafeCtx, enableUnsafeCtx, bundleJS, loadableUri, loadableStats, routesManifestUri, routeManifest, context, serverRender, content, _context_redirection, url, _context_redirection_status, status;
10
+ var _ctx_res, urlPath, bundle, distDir, template, entryName, staticGenerate, _renderOptions_enableUnsafeCtx, enableUnsafeCtx, nonce, bundleJS, loadableUri, loadableStats, routesManifestUri, routeManifest, context, bundleJSContent, serverRender, content, _context_redirection, url, _context_redirection_status, status;
11
11
  return _ts_generator(this, function(_state) {
12
12
  switch (_state.label) {
13
13
  case 0:
14
- urlPath = renderOptions.urlPath, bundle = renderOptions.bundle, distDir = renderOptions.distDir, template = renderOptions.template, entryName = renderOptions.entryName, staticGenerate = renderOptions.staticGenerate, _renderOptions_enableUnsafeCtx = renderOptions.enableUnsafeCtx, enableUnsafeCtx = _renderOptions_enableUnsafeCtx === void 0 ? false : _renderOptions_enableUnsafeCtx;
14
+ urlPath = renderOptions.urlPath, bundle = renderOptions.bundle, distDir = renderOptions.distDir, template = renderOptions.template, entryName = renderOptions.entryName, staticGenerate = renderOptions.staticGenerate, _renderOptions_enableUnsafeCtx = renderOptions.enableUnsafeCtx, enableUnsafeCtx = _renderOptions_enableUnsafeCtx === void 0 ? false : _renderOptions_enableUnsafeCtx, nonce = renderOptions.nonce;
15
15
  bundleJS = path.join(distDir, bundle);
16
16
  loadableUri = path.join(distDir, LOADABLE_STATS_FILE);
17
17
  loadableStats = fs.existsSync(loadableUri) ? require(loadableUri) : "";
@@ -46,17 +46,24 @@ export var render = function() {
46
46
  metrics: void 0,
47
47
  req: ctx.req,
48
48
  res: ctx.res,
49
- enableUnsafeCtx: enableUnsafeCtx
49
+ enableUnsafeCtx: enableUnsafeCtx,
50
+ nonce: nonce
50
51
  };
51
52
  context.logger = createLogger(context, ctx.logger);
52
53
  context.metrics = createMetrics(context, ctx.metrics);
53
54
  runner.extendSSRContext(context);
54
- serverRender = require(bundleJS)[SERVER_RENDER_FUNCTION_NAME];
55
55
  return [
56
56
  4,
57
- cache(serverRender, ctx)(context)
57
+ Promise.resolve(require(bundleJS))
58
58
  ];
59
59
  case 1:
60
+ bundleJSContent = _state.sent();
61
+ serverRender = bundleJSContent[SERVER_RENDER_FUNCTION_NAME];
62
+ return [
63
+ 4,
64
+ cache(serverRender, ctx)(context)
65
+ ];
66
+ case 2:
60
67
  content = _state.sent();
61
68
  _context_redirection = context.redirection, url = _context_redirection.url, _context_redirection_status = _context_redirection.status, status = _context_redirection_status === void 0 ? 302 : _context_redirection_status;
62
69
  if (url) {
@@ -65,7 +65,7 @@ export var ModernServer = /* @__PURE__ */ function() {
65
65
  function onInit(runner, app) {
66
66
  var _this = this;
67
67
  return _async_to_generator(function() {
68
- var _conf_bff, _this_conf_server, _this_conf_output, distDir, staticGenerate, conf, usageRoutes, ssrConfig, forceCSR;
68
+ var _conf_bff, _this_conf_server, _conf_security, _this_conf_output, distDir, staticGenerate, conf, usageRoutes, ssrConfig, forceCSR;
69
69
  return _ts_generator(this, function(_state) {
70
70
  switch (_state.label) {
71
71
  case 0:
@@ -102,7 +102,8 @@ export var ModernServer = /* @__PURE__ */ function() {
102
102
  _this.routeRenderHandler = createRenderHandler({
103
103
  distDir: distDir,
104
104
  staticGenerate: staticGenerate,
105
- forceCSR: forceCSR
105
+ forceCSR: forceCSR,
106
+ nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
106
107
  });
107
108
  return [
108
109
  4,
@@ -71,8 +71,8 @@ export var createHandler = function(manifest) {
71
71
  routeMgr.reset(routes);
72
72
  return function() {
73
73
  var _ref = _async_to_generator(function(options) {
74
- var request, loadableStats, routeManifest, url, pageMatch, page, responseLike, params, serverRenderContext, body, e;
75
- function createServerRequest(url2, request2, params2) {
74
+ var request, loadableStats, routeManifest, url, pageMatch, page, responseLike, params, baseUrl, serverRenderContext, body, e;
75
+ function createServerRequest(url2, baseUrl2, request2, params2) {
76
76
  var pathname = url2.pathname, host = url2.host, searchParams = url2.searchParams;
77
77
  var rawHeaders = request2.headers;
78
78
  var headers = {};
@@ -81,6 +81,8 @@ export var createHandler = function(manifest) {
81
81
  });
82
82
  var query = Object.fromEntries(searchParams);
83
83
  return {
84
+ url: url2.href,
85
+ baseUrl: baseUrl2,
84
86
  pathname: pathname,
85
87
  host: host,
86
88
  headers: headers,
@@ -126,8 +128,9 @@ export var createHandler = function(manifest) {
126
128
  }
127
129
  };
128
130
  params = pageMatch.parseURLParams(url.pathname) || {};
131
+ baseUrl = pageMatch.urlPath;
129
132
  serverRenderContext = {
130
- request: createServerRequest(url, request, params),
133
+ request: createServerRequest(url, baseUrl, request, params),
131
134
  response: responseLike,
132
135
  loadableStats: loadableStats,
133
136
  routeManifest: routeManifest,
@@ -95,7 +95,7 @@ export class ModernServerContext {
95
95
  if (!host) {
96
96
  host = this.getReqHeader("Host");
97
97
  }
98
- return host.split(/\s*,\s*/, 1)[0] || "";
98
+ return host.split(/\s*,\s*/, 1)[0] || "undefined";
99
99
  }
100
100
  get protocol() {
101
101
  if (this.req.socket.encrypted) {
@@ -5,7 +5,7 @@ import { handleDirectory } from "./static";
5
5
  import { readFile } from "./reader";
6
6
  import * as ssr from "./ssr";
7
7
  import { injectServerData } from "./utils";
8
- export const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async function render({ ctx, route, runner }) {
8
+ export const createRenderHandler = ({ distDir, staticGenerate, forceCSR, nonce }) => async function render({ ctx, route, runner }) {
9
9
  if (ctx.resHasHandled()) {
10
10
  return null;
11
11
  }
@@ -32,7 +32,8 @@ export const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => as
32
32
  urlPath: route.urlPath,
33
33
  bundle: route.bundle,
34
34
  template: content.toString(),
35
- staticGenerate
35
+ staticGenerate,
36
+ nonce
36
37
  }, runner);
37
38
  return result;
38
39
  } catch (err) {
@@ -5,7 +5,7 @@ import { createLogger, createMetrics } from "./measure";
5
5
  import { injectServerDataStream, injectServerData } from "./utils";
6
6
  export const render = async (ctx, renderOptions, runner) => {
7
7
  var _ctx_res;
8
- const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false } = renderOptions;
8
+ const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false, nonce } = renderOptions;
9
9
  const bundleJS = path.join(distDir, bundle);
10
10
  const loadableUri = path.join(distDir, LOADABLE_STATS_FILE);
11
11
  const loadableStats = fs.existsSync(loadableUri) ? require(loadableUri) : "";
@@ -40,12 +40,14 @@ export const render = async (ctx, renderOptions, runner) => {
40
40
  metrics: void 0,
41
41
  req: ctx.req,
42
42
  res: ctx.res,
43
- enableUnsafeCtx
43
+ enableUnsafeCtx,
44
+ nonce
44
45
  };
45
46
  context.logger = createLogger(context, ctx.logger);
46
47
  context.metrics = createMetrics(context, ctx.metrics);
47
48
  runner.extendSSRContext(context);
48
- const serverRender = require(bundleJS)[SERVER_RENDER_FUNCTION_NAME];
49
+ const bundleJSContent = await Promise.resolve(require(bundleJS));
50
+ const serverRender = bundleJSContent[SERVER_RENDER_FUNCTION_NAME];
49
51
  const content = await cache(serverRender, ctx)(context);
50
52
  const { url, status = 302 } = context.redirection;
51
53
  if (url) {
@@ -15,7 +15,7 @@ const SERVER_DIR = "./server";
15
15
  export class ModernServer {
16
16
  // server prepare
17
17
  async onInit(runner, app) {
18
- var _conf_bff, _this_conf_server, _this_conf_output;
18
+ var _conf_bff, _this_conf_server, _conf_security, _this_conf_output;
19
19
  this.runner = runner;
20
20
  const { distDir, staticGenerate, conf } = this;
21
21
  debug("final server conf", this.conf);
@@ -39,7 +39,8 @@ export class ModernServer {
39
39
  this.routeRenderHandler = createRenderHandler({
40
40
  distDir,
41
41
  staticGenerate,
42
- forceCSR
42
+ forceCSR,
43
+ nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
43
44
  });
44
45
  await this.setupBeforeProdMiddleware();
45
46
  this.addHandler(this.setupStaticMiddleware((_this_conf_output = this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
@@ -70,8 +70,9 @@ export const createHandler = (manifest) => {
70
70
  }
71
71
  };
72
72
  const params = pageMatch.parseURLParams(url.pathname) || {};
73
+ const { urlPath: baseUrl } = pageMatch;
73
74
  const serverRenderContext = {
74
- request: createServerRequest(url, request, params),
75
+ request: createServerRequest(url, baseUrl, request, params),
75
76
  response: responseLike,
76
77
  loadableStats,
77
78
  routeManifest,
@@ -96,7 +97,7 @@ export const createHandler = (manifest) => {
96
97
  }
97
98
  console.warn(`Can't not page(${pageMatch.spec.urlPath}) serverRender`);
98
99
  return createResponse(page.template);
99
- function createServerRequest(url2, request2, params) {
100
+ function createServerRequest(url2, baseUrl, request2, params) {
100
101
  const { pathname, host, searchParams } = url2;
101
102
  const { headers: rawHeaders } = request2;
102
103
  const headers = {};
@@ -105,6 +106,8 @@ export const createHandler = (manifest) => {
105
106
  });
106
107
  const query = Object.fromEntries(searchParams);
107
108
  return {
109
+ url: url2.href,
110
+ baseUrl,
108
111
  pathname,
109
112
  host,
110
113
  headers,
@@ -6,7 +6,5 @@ export { ModernServer } from './server/modernServer';
6
6
  export { createProxyHandler } from './libs/proxy';
7
7
  export * from './type';
8
8
  export * from './constants';
9
-
10
9
  declare const _default: (options: ModernServerOptions) => Promise<Server>;
11
-
12
10
  export default _default;
@@ -2,7 +2,7 @@
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
4
  /// <reference types="node/http" />
5
- /// <reference types=".dts-temp/fH4DiwP0xq-KSokd2lFla/src/type" />
5
+ /// <reference types=".dts-temp/tNQNz5diNrmZleL5wsuCm/src/type" />
6
6
  import { IncomingMessage, ServerResponse } from 'http';
7
7
  import qs from 'querystring';
8
8
  import type { ModernServerContext as ModernServerContextInterface } from '@modern-js/types';
@@ -18,12 +18,10 @@ export declare class ModernServerContext implements ModernServerContextInterface
18
18
  /**
19
19
  * http response
20
20
  */
21
-
22
21
  res: ServerResponse;
23
22
  /**
24
23
  * url params
25
24
  */
26
-
27
25
  params: Record<string, string>;
28
26
  get logger(): import("@modern-js/types").Logger;
29
27
  get metrics(): import("@modern-js/types").Metrics;
@@ -54,7 +52,6 @@ export declare class ModernServerContext implements ModernServerContextInterface
54
52
  /**
55
53
  * 判断链接是否已经关闭
56
54
  */
57
-
58
55
  resHasHandled(): boolean;
59
56
  error(dig: string, e?: Error | string): void;
60
57
  }
@@ -6,7 +6,6 @@ export declare const requireConfig: (serverConfigPath: string) => any;
6
6
  * 生产环境下,resolvedConfig 与 serverConfig 进行深合并
7
7
  * resolvedConfigPath: 构建序列化后的 modern.config.js 文件路径
8
8
  */
9
-
10
9
  export declare const loadConfig: ({
11
10
  cliConfig,
12
11
  serverConfig,
@@ -44,7 +44,6 @@ declare const LOG_TYPES: {
44
44
  level: string;
45
45
  };
46
46
  };
47
-
48
47
  declare class Logger {
49
48
  private readonly level;
50
49
  private readonly config;
@@ -55,7 +54,6 @@ declare class Logger {
55
54
  private _log;
56
55
  private getLongestLabel;
57
56
  }
58
-
59
57
  type LoggerInterface = { [key in keyof typeof LOG_TYPES]: LoggerFunction };
60
58
  declare const logger: Logger & LoggerInterface;
61
59
  export { Logger };
@@ -2,7 +2,5 @@
2
2
  import { Readable } from 'stream';
3
3
  import type { ModernServerContext } from '@modern-js/types';
4
4
  import { RenderFunction, SSRServerContext } from '../type';
5
-
6
5
  declare const _default: (renderFn: RenderFunction, ctx: ModernServerContext) => (context: SSRServerContext) => Promise<string | Readable>;
7
-
8
6
  export default _default;
@@ -1,6 +1,5 @@
1
1
  import LRUCache from 'lru-cache';
2
2
  import { CacheContent, CacheManagerOptions, CacheResult, CacheContext, CacheConfig } from './type';
3
-
4
3
  declare class CacheManager {
5
4
  cache: LRUCache<string, CacheContent>;
6
5
  cacheOptions: CacheManagerOptions;
@@ -18,7 +17,6 @@ declare class CacheManager {
18
17
  set(context: CacheContext, html: string, cacheConfig: CacheConfig, sync?: boolean): Promise<any>;
19
18
  del(context: CacheContext, cacheHash: string): Promise<void>;
20
19
  }
21
-
22
20
  export declare function createCache(): CacheManager;
23
21
  export declare function destroyCache(): void;
24
22
  export {};
@@ -4,11 +4,13 @@ import { ModernRoute } from '../route';
4
4
  export declare const createRenderHandler: ({
5
5
  distDir,
6
6
  staticGenerate,
7
- forceCSR
7
+ forceCSR,
8
+ nonce
8
9
  }: {
9
10
  distDir: string;
10
11
  staticGenerate: boolean;
11
12
  forceCSR?: boolean | undefined;
13
+ nonce?: string | undefined;
12
14
  }) => ({
13
15
  ctx,
14
16
  route,
@@ -8,4 +8,5 @@ export declare const render: (ctx: ModernServerContext, renderOptions: {
8
8
  entryName: string;
9
9
  staticGenerate: boolean;
10
10
  enableUnsafeCtx?: boolean;
11
+ nonce?: string;
11
12
  }, runner: ServerHookRunner) => Promise<RenderResult>;
@@ -26,14 +26,12 @@ export declare class Server {
26
26
  * - 执行 prepare hook
27
27
  * - 执行 server init
28
28
  */
29
-
30
29
  init(): Promise<this>;
31
30
  /**
32
31
  * Execute config hooks
33
32
  * @param runner
34
33
  * @param options
35
34
  */
36
-
37
35
  private runConfigHook;
38
36
  private runPrepareHook;
39
37
  private initServerConfig;
@@ -41,7 +39,6 @@ export declare class Server {
41
39
  *
42
40
  * merge cliConfig and serverConfig
43
41
  */
44
-
45
42
  private initConfig;
46
43
  close(): Promise<void>;
47
44
  listen<T extends number | ListenOptions | undefined>(options: T, listener: any): void;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node/http" />
3
- /// <reference types=".dts-temp/fH4DiwP0xq-KSokd2lFla/src/type" />
3
+ /// <reference types=".dts-temp/tNQNz5diNrmZleL5wsuCm/src/type" />
4
4
  import { IncomingMessage } from 'http';
5
5
  import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '@modern-js/server-core';
6
6
  export declare const debug: any;
@@ -19,7 +19,6 @@ export declare class ReturnResponse {
19
19
  * @param headers
20
20
  * @returns
21
21
  */
22
-
23
22
  appendHeaders(headers: Record<string, any>): this;
24
23
  /**
25
24
  * Iterate a Object
@@ -30,11 +29,11 @@ export declare class ReturnResponse {
30
29
  * @param headers
31
30
  * @returns
32
31
  */
33
-
34
32
  setHeaders(headers: Record<string, any>): this;
35
33
  }
36
34
  export type Manifest = {
37
- pages: Record<string, // path
35
+ pages: Record<string,
36
+ // path
38
37
  {
39
38
  entryName: string;
40
39
  template: string;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.20.0",
18
+ "version": "2.21.1",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -61,8 +61,8 @@
61
61
  "path-to-regexp": "^6.2.0",
62
62
  "serve-static": "^1.14.1",
63
63
  "@swc/helpers": "0.5.1",
64
- "@modern-js/utils": "2.20.0",
65
- "@modern-js/server-core": "2.20.0"
64
+ "@modern-js/utils": "2.21.1",
65
+ "@modern-js/server-core": "2.21.1"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@types/cookie": "^0.4.1",
@@ -77,11 +77,11 @@
77
77
  "jest": "^29",
78
78
  "node-mocks-http": "^1.11.0",
79
79
  "portfinder": "^1.0.28",
80
- "typescript": "^4",
81
- "@modern-js/types": "2.20.0",
82
- "@modern-js/server-core": "2.20.0",
83
- "@scripts/jest-config": "2.20.0",
84
- "@scripts/build": "2.20.0"
80
+ "typescript": "^5",
81
+ "@modern-js/types": "2.21.1",
82
+ "@modern-js/server-core": "2.21.1",
83
+ "@scripts/jest-config": "2.21.1",
84
+ "@scripts/build": "2.21.1"
85
85
  },
86
86
  "sideEffects": false,
87
87
  "publishConfig": {