@modern-js/prod-server 2.48.5 → 2.49.0

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.
Files changed (174) hide show
  1. package/README.md +20 -16
  2. package/dist/cjs/{libs/route/route.js → error.js} +16 -17
  3. package/dist/cjs/index.js +18 -24
  4. package/dist/cjs/init.js +71 -0
  5. package/dist/cjs/{type.js → types.js} +2 -2
  6. package/dist/esm/error.js +15 -0
  7. package/dist/esm/index.js +53 -19
  8. package/dist/esm/init.js +73 -0
  9. package/dist/esm-node/error.js +14 -0
  10. package/dist/esm-node/index.js +16 -17
  11. package/dist/esm-node/init.js +47 -0
  12. package/dist/types/error.d.ts +6 -0
  13. package/dist/types/index.d.ts +8 -11
  14. package/dist/types/init.d.ts +4 -0
  15. package/dist/types/types.d.ts +14 -0
  16. package/package.json +23 -64
  17. package/dist/cjs/constants.js +0 -72
  18. package/dist/cjs/libs/context/context.js +0 -236
  19. package/dist/cjs/libs/context/index.js +0 -31
  20. package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
  21. package/dist/cjs/libs/hook-api/base.js +0 -96
  22. package/dist/cjs/libs/hook-api/index.js +0 -85
  23. package/dist/cjs/libs/hook-api/index.worker.js +0 -116
  24. package/dist/cjs/libs/hook-api/route.js +0 -44
  25. package/dist/cjs/libs/hook-api/template.js +0 -72
  26. package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
  27. package/dist/cjs/libs/loadConfig.js +0 -70
  28. package/dist/cjs/libs/metrics.js +0 -33
  29. package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
  30. package/dist/cjs/libs/preload/index.js +0 -24
  31. package/dist/cjs/libs/preload/parseLinks.js +0 -124
  32. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
  33. package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
  34. package/dist/cjs/libs/proxy.js +0 -99
  35. package/dist/cjs/libs/render/index.js +0 -109
  36. package/dist/cjs/libs/render/measure.js +0 -74
  37. package/dist/cjs/libs/render/ssr.js +0 -130
  38. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -51
  39. package/dist/cjs/libs/render/ssrCache/index.js +0 -90
  40. package/dist/cjs/libs/render/ssrCache/manager.js +0 -120
  41. package/dist/cjs/libs/render/static.js +0 -72
  42. package/dist/cjs/libs/render/type.js +0 -33
  43. package/dist/cjs/libs/render/utils.js +0 -41
  44. package/dist/cjs/libs/reporter.js +0 -39
  45. package/dist/cjs/libs/route/index.js +0 -83
  46. package/dist/cjs/libs/route/matcher.js +0 -113
  47. package/dist/cjs/libs/serveFile.js +0 -84
  48. package/dist/cjs/libs/serverTiming.js +0 -41
  49. package/dist/cjs/renderHtml.js +0 -65
  50. package/dist/cjs/server/index.js +0 -223
  51. package/dist/cjs/server/modernServer.js +0 -522
  52. package/dist/cjs/server/modernServerSplit.js +0 -67
  53. package/dist/cjs/utils.js +0 -164
  54. package/dist/cjs/workerServer.js +0 -260
  55. package/dist/esm/constants.js +0 -43
  56. package/dist/esm/libs/context/context.js +0 -260
  57. package/dist/esm/libs/context/index.js +0 -8
  58. package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
  59. package/dist/esm/libs/hook-api/base.js +0 -73
  60. package/dist/esm/libs/hook-api/index.js +0 -55
  61. package/dist/esm/libs/hook-api/index.worker.js +0 -99
  62. package/dist/esm/libs/hook-api/route.js +0 -26
  63. package/dist/esm/libs/hook-api/template.js +0 -56
  64. package/dist/esm/libs/hook-api/templateForStream.js +0 -35
  65. package/dist/esm/libs/loadConfig.js +0 -36
  66. package/dist/esm/libs/metrics.js +0 -9
  67. package/dist/esm/libs/preload/flushServerHeader.js +0 -50
  68. package/dist/esm/libs/preload/index.js +0 -2
  69. package/dist/esm/libs/preload/parseLinks.js +0 -172
  70. package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
  71. package/dist/esm/libs/preload/transformLinks2String.js +0 -140
  72. package/dist/esm/libs/proxy.js +0 -160
  73. package/dist/esm/libs/render/index.js +0 -175
  74. package/dist/esm/libs/render/measure.js +0 -69
  75. package/dist/esm/libs/render/ssr.js +0 -133
  76. package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -25
  77. package/dist/esm/libs/render/ssrCache/index.js +0 -170
  78. package/dist/esm/libs/render/ssrCache/manager.js +0 -178
  79. package/dist/esm/libs/render/static.js +0 -100
  80. package/dist/esm/libs/render/type.js +0 -9
  81. package/dist/esm/libs/render/utils.js +0 -16
  82. package/dist/esm/libs/reporter.js +0 -15
  83. package/dist/esm/libs/route/index.js +0 -82
  84. package/dist/esm/libs/route/matcher.js +0 -92
  85. package/dist/esm/libs/route/route.js +0 -17
  86. package/dist/esm/libs/serveFile.js +0 -68
  87. package/dist/esm/libs/serverTiming.js +0 -22
  88. package/dist/esm/renderHtml.js +0 -133
  89. package/dist/esm/server/index.js +0 -350
  90. package/dist/esm/server/modernServer.js +0 -884
  91. package/dist/esm/server/modernServerSplit.js +0 -113
  92. package/dist/esm/utils.js +0 -103
  93. package/dist/esm/workerServer.js +0 -352
  94. package/dist/esm-node/constants.js +0 -43
  95. package/dist/esm-node/libs/context/context.js +0 -202
  96. package/dist/esm-node/libs/context/index.js +0 -6
  97. package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
  98. package/dist/esm-node/libs/hook-api/base.js +0 -61
  99. package/dist/esm-node/libs/hook-api/index.js +0 -57
  100. package/dist/esm-node/libs/hook-api/index.worker.js +0 -89
  101. package/dist/esm-node/libs/hook-api/route.js +0 -20
  102. package/dist/esm-node/libs/hook-api/template.js +0 -47
  103. package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
  104. package/dist/esm-node/libs/loadConfig.js +0 -34
  105. package/dist/esm-node/libs/metrics.js +0 -9
  106. package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
  107. package/dist/esm-node/libs/preload/index.js +0 -2
  108. package/dist/esm-node/libs/preload/parseLinks.js +0 -90
  109. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
  110. package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
  111. package/dist/esm-node/libs/proxy.js +0 -74
  112. package/dist/esm-node/libs/render/index.js +0 -75
  113. package/dist/esm-node/libs/render/measure.js +0 -49
  114. package/dist/esm-node/libs/render/ssr.js +0 -96
  115. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -17
  116. package/dist/esm-node/libs/render/ssrCache/index.js +0 -66
  117. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -96
  118. package/dist/esm-node/libs/render/static.js +0 -38
  119. package/dist/esm-node/libs/render/type.js +0 -9
  120. package/dist/esm-node/libs/render/utils.js +0 -16
  121. package/dist/esm-node/libs/reporter.js +0 -15
  122. package/dist/esm-node/libs/route/index.js +0 -58
  123. package/dist/esm-node/libs/route/matcher.js +0 -89
  124. package/dist/esm-node/libs/route/route.js +0 -16
  125. package/dist/esm-node/libs/serveFile.js +0 -49
  126. package/dist/esm-node/libs/serverTiming.js +0 -17
  127. package/dist/esm-node/renderHtml.js +0 -73
  128. package/dist/esm-node/server/index.js +0 -189
  129. package/dist/esm-node/server/modernServer.js +0 -488
  130. package/dist/esm-node/server/modernServerSplit.js +0 -43
  131. package/dist/esm-node/utils.js +0 -132
  132. package/dist/esm-node/workerServer.js +0 -235
  133. package/dist/types/constants.d.ts +0 -30
  134. package/dist/types/libs/context/context.d.ts +0 -62
  135. package/dist/types/libs/context/index.d.ts +0 -7
  136. package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
  137. package/dist/types/libs/hook-api/base.d.ts +0 -53
  138. package/dist/types/libs/hook-api/index.d.ts +0 -6
  139. package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
  140. package/dist/types/libs/hook-api/route.d.ts +0 -9
  141. package/dist/types/libs/hook-api/template.d.ts +0 -22
  142. package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
  143. package/dist/types/libs/loadConfig.d.ts +0 -13
  144. package/dist/types/libs/metrics.d.ts +0 -3
  145. package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
  146. package/dist/types/libs/preload/index.d.ts +0 -2
  147. package/dist/types/libs/preload/parseLinks.d.ts +0 -13
  148. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
  149. package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
  150. package/dist/types/libs/proxy.d.ts +0 -13
  151. package/dist/types/libs/render/index.d.ts +0 -21
  152. package/dist/types/libs/render/measure.d.ts +0 -10
  153. package/dist/types/libs/render/ssr.d.ts +0 -12
  154. package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
  155. package/dist/types/libs/render/ssrCache/index.d.ts +0 -6
  156. package/dist/types/libs/render/ssrCache/manager.d.ts +0 -20
  157. package/dist/types/libs/render/static.d.ts +0 -3
  158. package/dist/types/libs/render/type.d.ts +0 -36
  159. package/dist/types/libs/render/utils.d.ts +0 -5
  160. package/dist/types/libs/reporter.d.ts +0 -2
  161. package/dist/types/libs/route/index.d.ts +0 -15
  162. package/dist/types/libs/route/matcher.d.ts +0 -15
  163. package/dist/types/libs/route/route.d.ts +0 -14
  164. package/dist/types/libs/serveFile.d.ts +0 -9
  165. package/dist/types/libs/serverTiming.d.ts +0 -13
  166. package/dist/types/renderHtml.d.ts +0 -23
  167. package/dist/types/server/index.d.ts +0 -55
  168. package/dist/types/server/modernServer.d.ts +0 -71
  169. package/dist/types/server/modernServerSplit.d.ts +0 -2
  170. package/dist/types/type.d.ts +0 -78
  171. package/dist/types/utils.d.ts +0 -24
  172. package/dist/types/workerServer.d.ts +0 -59
  173. /package/dist/esm/{type.js → types.js} +0 -0
  174. /package/dist/esm-node/{type.js → types.js} +0 -0
package/package.json CHANGED
@@ -15,94 +15,53 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.48.5",
18
+ "version": "2.49.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
22
- "module": "./dist/esm/index.js",
22
+ "module": "./dist/es/index.js",
23
23
  "exports": {
24
24
  ".": {
25
25
  "types": "./dist/types/index.d.ts",
26
- "node": {
27
- "jsnext:source": "./src/index.ts",
28
- "import": "./dist/esm-node/index.js",
29
- "require": "./dist/cjs/index.js"
30
- },
31
- "default": "./dist/esm/index.js"
32
- },
33
- "./worker": {
34
- "types": "./dist/types/workerServer.d.ts",
35
- "node": {
36
- "jsnext:source": "./src/workerServer.ts",
37
- "import": "./dist/esm-node/workerServer.js",
38
- "require": "./dist/cjs/workerServer.js"
39
- },
40
- "default": "./dist/esm/workerServer.js"
41
- },
42
- "./renderHtml": {
43
- "types": "./dist/types/renderHtml.d.ts",
44
- "node": {
45
- "jsnext:source": "./src/renderHtml.ts",
46
- "import": "./dist/esm-node/renderHtml.js",
47
- "require": "./dist/cjs/renderHtml.js"
48
- },
49
- "default": "./dist/esm/renderHtml.js"
26
+ "jsnext:source": "./src/index.ts",
27
+ "default": "./dist/cjs/index.js"
50
28
  }
51
29
  },
52
30
  "typesVersions": {
53
31
  "*": {
54
32
  ".": [
55
33
  "./dist/types/index.d.ts"
56
- ],
57
- "worker": [
58
- "./dist/types/workerServer.d.ts"
59
- ],
60
- "renderHtml": [
61
- "./dist/types/renderHtml.d.ts"
62
34
  ]
63
35
  }
64
36
  },
65
37
  "dependencies": {
66
- "isbot": "^3.8.0",
67
38
  "@swc/helpers": "0.5.3",
68
- "cookie": "0.5.0",
69
- "etag": "^1.8.1",
70
- "fresh": "^0.5.2",
71
- "http-proxy-middleware": "^2.0.4",
72
- "ignore-styles": "^5.0.1",
73
- "merge-deep": "^3.0.3",
74
- "node-html-parser": "^6.1.5",
75
- "path-to-regexp": "^6.2.0",
76
- "serve-static": "^1.14.1",
77
- "@modern-js/plugin": "2.48.5",
78
- "@modern-js/server-core": "2.48.5",
79
- "@modern-js/runtime-utils": "2.48.5",
80
- "@modern-js/utils": "2.48.5"
39
+ "@modern-js/server-core": "2.49.0",
40
+ "@modern-js/runtime-utils": "2.49.0"
81
41
  },
82
42
  "devDependencies": {
83
- "@types/cookie": "0.5.1",
84
- "@types/etag": "^1.8.1",
85
- "@types/fresh": "^0.5.0",
86
- "@types/jest": "^29",
87
43
  "@types/merge-deep": "^3.0.0",
88
- "@types/node": "^14",
89
- "@types/serve-static": "^1.13.10",
90
- "@types/ws": "^8.5.5",
91
- "axios": "^1.6.0",
44
+ "@types/node": "~16.11.7",
45
+ "husky": "^8.0.0",
92
46
  "jest": "^29",
93
- "memfs": "^3.5.1",
94
- "node-mocks-http": "^1.11.0",
95
- "portfinder": "^1.0.28",
96
- "typescript": "^5",
97
- "ws": "^8.13.0",
98
- "@modern-js/types": "2.48.5",
99
- "@scripts/jest-config": "2.48.5",
100
- "@scripts/build": "2.48.5"
47
+ "lint-staged": "~13.1.0",
48
+ "prettier": "^2.8.1",
49
+ "rimraf": "^3.0.2",
50
+ "tsx": "^3.12.7",
51
+ "@types/jest": "^29",
52
+ "typescript": "~5.0.4",
53
+ "@modern-js/eslint-config": "2.49.0",
54
+ "@scripts/build": "2.49.0",
55
+ "@modern-js/types": "2.49.0",
56
+ "@modern-js/utils": "2.49.0",
57
+ "@scripts/jest-config": "2.49.0"
58
+ },
59
+ "sideEffects": [],
60
+ "engines": {
61
+ "node": ">=16.2.0"
101
62
  },
102
- "sideEffects": false,
103
63
  "publishConfig": {
104
64
  "access": "public",
105
- "provenance": true,
106
65
  "registry": "https://registry.npmjs.org/"
107
66
  },
108
67
  "scripts": {
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var constants_exports = {};
20
- __export(constants_exports, {
21
- AGGRED_DIR: () => AGGRED_DIR,
22
- ApiServerMode: () => ApiServerMode,
23
- ERROR_DIGEST: () => ERROR_DIGEST,
24
- ERROR_PAGE_TEXT: () => ERROR_PAGE_TEXT,
25
- RUN_MODE: () => RUN_MODE,
26
- ServerReportTimings: () => ServerReportTimings
27
- });
28
- module.exports = __toCommonJS(constants_exports);
29
- const AGGRED_DIR = {
30
- mock: "config/mock",
31
- server: "server",
32
- api: "api",
33
- shared: "shared",
34
- lambda: "lambda"
35
- };
36
- var ApiServerMode;
37
- (function(ApiServerMode2) {
38
- ApiServerMode2["func"] = "function";
39
- ApiServerMode2["frame"] = "framework";
40
- })(ApiServerMode || (ApiServerMode = {}));
41
- const ERROR_DIGEST = {
42
- INIT: "Server init error",
43
- ENOTF: "Page could not be found",
44
- WARMUP: "SSR warmup failed",
45
- EINTER: "Internal server error",
46
- ERENDER: "SSR render failed",
47
- EMICROINJ: "Get micro-frontend info failed"
48
- };
49
- const ERROR_PAGE_TEXT = {
50
- 404: "This page could not be found.",
51
- 500: "Internal Server Error."
52
- };
53
- const RUN_MODE = {
54
- FULL: "full",
55
- TYPE: "type"
56
- };
57
- var ServerReportTimings;
58
- (function(ServerReportTimings2) {
59
- ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
60
- ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
61
- ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
62
- ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
63
- })(ServerReportTimings || (ServerReportTimings = {}));
64
- // Annotate the CommonJS export names for ESM import in node:
65
- 0 && (module.exports = {
66
- AGGRED_DIR,
67
- ApiServerMode,
68
- ERROR_DIGEST,
69
- ERROR_PAGE_TEXT,
70
- RUN_MODE,
71
- ServerReportTimings
72
- });
@@ -1,236 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var context_exports = {};
30
- __export(context_exports, {
31
- ModernServerContext: () => ModernServerContext
32
- });
33
- module.exports = __toCommonJS(context_exports);
34
- var import_class_private_field_get = require("@swc/helpers/_/_class_private_field_get");
35
- var import_class_private_field_init = require("@swc/helpers/_/_class_private_field_init");
36
- var import_class_private_field_set = require("@swc/helpers/_/_class_private_field_set");
37
- var import_url = require("url");
38
- var import_querystring = __toESM(require("querystring"));
39
- var import_buffer = require("buffer");
40
- var import_etag = __toESM(require("etag"));
41
- var import_fresh = __toESM(require("fresh"));
42
- var import_utils = require("@modern-js/utils");
43
- var import_serverTiming = require("../serverTiming");
44
- var import_reporter = require("../reporter");
45
- var import_utils2 = require("../../utils");
46
- const MOCK_URL_BASE = "https://modernjs.dev/";
47
- var _urls = /* @__PURE__ */ new WeakMap(), _queries = /* @__PURE__ */ new WeakMap();
48
- class ModernServerContext {
49
- get logger() {
50
- return this.req.logger;
51
- }
52
- get metrics() {
53
- return this.req.metrics;
54
- }
55
- get parsedURL() {
56
- try {
57
- let url = (0, import_class_private_field_get._)(this, _urls).get(this.req.url);
58
- if (!url) {
59
- url = new import_url.URL(this.req.url, MOCK_URL_BASE);
60
- (0, import_class_private_field_get._)(this, _urls).set(this.req.url, url);
61
- }
62
- return url;
63
- } catch (e) {
64
- this.logger.error("Parse URL error", e.stack || e.message);
65
- return new import_url.URL("/_modern_mock_path", MOCK_URL_BASE);
66
- }
67
- }
68
- bind() {
69
- const { req, res } = this;
70
- req.get = (key) => this.getReqHeader(key);
71
- res.set = (key, value) => {
72
- if (!res.headersSent) {
73
- res.setHeader(key, value);
74
- }
75
- return res;
76
- };
77
- res.send = (body) => {
78
- this.send(body);
79
- };
80
- }
81
- // compat express res.send, only support etag now
82
- send(body) {
83
- try {
84
- const generateETag = !this.res.getHeader("ETag") && this.options.etag;
85
- if (body !== void 0 && generateETag) {
86
- const encoding = typeof body === "string" ? "utf-8" : void 0;
87
- const buf = !import_buffer.Buffer.isBuffer(body) ? import_buffer.Buffer.from(body, encoding) : body;
88
- const etag = (0, import_etag.default)(buf, {
89
- weak: true
90
- });
91
- if (etag) {
92
- this.res.setHeader("ETag", etag);
93
- }
94
- }
95
- if (this.fresh) {
96
- this.status = 304;
97
- }
98
- } catch (e) {
99
- this.logger.error(e.message);
100
- }
101
- this.res.end(body);
102
- }
103
- setParams(params) {
104
- this.params = params;
105
- }
106
- setServerData(key, value) {
107
- this.serverData[key] = value;
108
- }
109
- getReqHeader(key) {
110
- const { req } = this;
111
- const field = key.toLowerCase();
112
- switch (field) {
113
- case "referer":
114
- case "referrer":
115
- return req.headers.referrer || req.headers.referer || "";
116
- default:
117
- return req.headers[field] || "";
118
- }
119
- }
120
- get fresh() {
121
- const { status, res, method } = this;
122
- if ("GET" !== method && "HEAD" !== method) {
123
- return false;
124
- }
125
- if (status >= 200 && status < 300 || 304 === status) {
126
- return (0, import_fresh.default)(this.headers, {
127
- etag: res.getHeader("ETag"),
128
- "last-modified": res.getHeader("Last-Modified")
129
- });
130
- }
131
- return false;
132
- }
133
- /* request property */
134
- get headers() {
135
- return this.req.headers;
136
- }
137
- get method() {
138
- return this.req.method;
139
- }
140
- get url() {
141
- return this.req.url || "";
142
- }
143
- set url(val) {
144
- this.req.url = val;
145
- }
146
- get host() {
147
- let host = this.getReqHeader("X-Forwarded-Host");
148
- if (!host) {
149
- host = this.getReqHeader("Host");
150
- }
151
- host = host.split(/\s*,\s*/, 1)[0] || "undefined";
152
- return host;
153
- }
154
- get protocol() {
155
- if (this.req.socket.encrypted) {
156
- return "https";
157
- }
158
- const proto = this.getReqHeader("X-Forwarded-Proto");
159
- return proto ? proto.split(/\s*,\s*/, 1)[0] : "http";
160
- }
161
- get origin() {
162
- return `${this.protocol}://${this.host}`;
163
- }
164
- get href() {
165
- return this.origin + this.url;
166
- }
167
- get path() {
168
- return this.parsedURL.pathname;
169
- }
170
- set path(p) {
171
- if (!p) {
172
- return;
173
- }
174
- if (this.path === p) {
175
- return;
176
- }
177
- this.url = p + this.parsedURL.search;
178
- }
179
- get querystring() {
180
- if (!this.req) {
181
- return "";
182
- }
183
- return this.parsedURL.search.replace(/^\?/, "") || "";
184
- }
185
- get query() {
186
- const str = this.querystring;
187
- let query = (0, import_class_private_field_get._)(this, _queries).get(str);
188
- if (!query) {
189
- query = import_querystring.default.parse(str);
190
- (0, import_class_private_field_get._)(this, _queries).set(str, query);
191
- }
192
- return query;
193
- }
194
- /* response property */
195
- get status() {
196
- return this.res.statusCode;
197
- }
198
- set status(statusCode) {
199
- this.res.statusCode = statusCode;
200
- }
201
- /**
202
- * 判断链接是否已经关闭
203
- */
204
- resHasHandled() {
205
- return this.res.writableEnded;
206
- }
207
- error(dig, e = "") {
208
- this.logger.error(`Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, this.path, (0, import_utils2.headersWithoutCookie)(this.headers));
209
- }
210
- constructor(req, res, options) {
211
- (0, import_class_private_field_init._)(this, _urls, {
212
- writable: true,
213
- value: void 0
214
- });
215
- (0, import_class_private_field_init._)(this, _queries, {
216
- writable: true,
217
- value: void 0
218
- });
219
- this.params = {};
220
- this.reporter = import_reporter.defaultReporter;
221
- this.serverData = {};
222
- this.options = {};
223
- this.req = req;
224
- this.res = res;
225
- this.options = options || {};
226
- this.bind();
227
- (0, import_class_private_field_set._)(this, _urls, /* @__PURE__ */ new Map());
228
- (0, import_class_private_field_set._)(this, _queries, /* @__PURE__ */ new Map());
229
- this.serverTiming = new import_serverTiming.ServerTiming(this.res, (0, import_utils.cutNameByHyphen)((options === null || options === void 0 ? void 0 : options.metaName) || "modern-js"));
230
- req.reporter && (this.reporter = req.reporter);
231
- }
232
- }
233
- // Annotate the CommonJS export names for ESM import in node:
234
- 0 && (module.exports = {
235
- ModernServerContext
236
- });
@@ -1,31 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var context_exports = {};
20
- __export(context_exports, {
21
- ModernServerContext: () => import_context.ModernServerContext,
22
- createContext: () => createContext
23
- });
24
- module.exports = __toCommonJS(context_exports);
25
- var import_context = require("./context");
26
- const createContext = (req, res, options) => new import_context.ModernServerContext(req, res, options);
27
- // Annotate the CommonJS export names for ESM import in node:
28
- 0 && (module.exports = {
29
- ModernServerContext,
30
- createContext
31
- });
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var afterRenderForStream_exports = {};
20
- __export(afterRenderForStream_exports, {
21
- afterRenderInjectableStream: () => afterRenderInjectableStream
22
- });
23
- module.exports = __toCommonJS(afterRenderForStream_exports);
24
- var import_stream = require("stream");
25
- const afterRenderInjectableStream = (fn) => new import_stream.Transform({
26
- async write(chunk, _, callback) {
27
- this.push(await fn(chunk.toString()));
28
- callback();
29
- }
30
- });
31
- // Annotate the CommonJS export names for ESM import in node:
32
- 0 && (module.exports = {
33
- afterRenderInjectableStream
34
- });
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var base_exports = {};
30
- __export(base_exports, {
31
- BaseRequest: () => BaseRequest,
32
- BaseResponse: () => BaseResponse
33
- });
34
- module.exports = __toCommonJS(base_exports);
35
- var import_cookie = __toESM(require("cookie"));
36
- class BaseResponse {
37
- get(key) {
38
- return this.res.getHeader(key);
39
- }
40
- set(key, value) {
41
- return this.res.setHeader(key, value);
42
- }
43
- status(code) {
44
- this.res.statusCode = code;
45
- }
46
- setCookie(key, value, options) {
47
- const cookieValue = this.res.getHeader("set-cookie") || "";
48
- const fmt = Array.isArray(cookieValue) ? cookieValue : [
49
- cookieValue
50
- ].filter(Boolean);
51
- fmt.push(import_cookie.default.serialize(key, value, options));
52
- this.res.setHeader("set-cookie", fmt.length === 1 ? fmt[0] : fmt);
53
- }
54
- clearCookie() {
55
- this.res.removeHeader("set-cookie");
56
- }
57
- raw(body, options) {
58
- const { status, headers = {} } = options || {};
59
- Object.entries(headers).forEach(([key, value]) => {
60
- this.res.setHeader(key, value);
61
- });
62
- if (status) {
63
- this.res.statusCode = status;
64
- }
65
- this.res.end(body);
66
- }
67
- constructor(res) {
68
- this.res = res;
69
- this.cookies = {
70
- set: this.setCookie.bind(this),
71
- clear: this.clearCookie.bind(this)
72
- };
73
- }
74
- }
75
- class BaseRequest {
76
- getCookie(key) {
77
- return this._cookie[key];
78
- }
79
- constructor(request) {
80
- this.url = request.url;
81
- this.host = request.host;
82
- this.pathname = request.path;
83
- this.query = request.query;
84
- this.headers = request.headers;
85
- this.cookie = request.headers.cookie || "";
86
- this._cookie = import_cookie.default.parse(this.cookie);
87
- this.cookies = {
88
- get: this.getCookie.bind(this)
89
- };
90
- }
91
- }
92
- // Annotate the CommonJS export names for ESM import in node:
93
- 0 && (module.exports = {
94
- BaseRequest,
95
- BaseResponse
96
- });
@@ -1,85 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var hook_api_exports = {};
20
- __export(hook_api_exports, {
21
- base: () => base,
22
- createAfterMatchContext: () => createAfterMatchContext,
23
- createAfterRenderContext: () => createAfterRenderContext,
24
- createAfterStreamingRenderContext: () => createAfterStreamingRenderContext,
25
- createMiddlewareContext: () => createMiddlewareContext
26
- });
27
- module.exports = __toCommonJS(hook_api_exports);
28
- var import_route = require("./route");
29
- var import_template = require("./template");
30
- var import_base = require("./base");
31
- const base = (context) => {
32
- const { res } = context;
33
- return {
34
- response: new import_base.BaseResponse(res),
35
- request: new import_base.BaseRequest(context),
36
- logger: context.logger,
37
- metrics: context.metrics
38
- };
39
- };
40
- const createAfterMatchContext = (context, entryName) => {
41
- const baseContext = base(context);
42
- return {
43
- ...baseContext,
44
- router: new import_route.RouteAPI(entryName)
45
- };
46
- };
47
- const createAfterRenderContext = (context, route, content) => {
48
- const baseContext = base(context);
49
- return {
50
- ...baseContext,
51
- route,
52
- template: new import_template.TemplateAPI(content)
53
- };
54
- };
55
- const createAfterStreamingRenderContext = (context, route) => {
56
- const baseContext = base(context);
57
- return (chunk) => {
58
- return {
59
- ...baseContext,
60
- route,
61
- chunk
62
- };
63
- };
64
- };
65
- const createMiddlewareContext = (context) => {
66
- const baseContext = base(context);
67
- baseContext.response.locals = context.res.locals || {};
68
- return {
69
- ...baseContext,
70
- response: baseContext.response,
71
- reporter: context.reporter,
72
- source: {
73
- req: context.req,
74
- res: context.res
75
- }
76
- };
77
- };
78
- // Annotate the CommonJS export names for ESM import in node:
79
- 0 && (module.exports = {
80
- base,
81
- createAfterMatchContext,
82
- createAfterRenderContext,
83
- createAfterStreamingRenderContext,
84
- createMiddlewareContext
85
- });