@modern-js/prod-server 2.46.1 → 2.47.1-alpha.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 (169) hide show
  1. package/README.md +20 -16
  2. package/dist/cjs/{libs/hook-api/route.js → error.js} +16 -25
  3. package/dist/cjs/index.js +46 -24
  4. package/dist/esm/error.js +15 -0
  5. package/dist/esm/index.js +105 -19
  6. package/dist/esm-node/error.js +14 -0
  7. package/dist/esm-node/index.js +44 -17
  8. package/dist/types/error.d.ts +6 -0
  9. package/dist/types/index.d.ts +21 -11
  10. package/package.json +19 -93
  11. package/dist/cjs/constants.js +0 -72
  12. package/dist/cjs/libs/context/context.js +0 -240
  13. package/dist/cjs/libs/context/index.js +0 -31
  14. package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
  15. package/dist/cjs/libs/hook-api/base.js +0 -107
  16. package/dist/cjs/libs/hook-api/index.js +0 -85
  17. package/dist/cjs/libs/hook-api/index.worker.js +0 -119
  18. package/dist/cjs/libs/hook-api/template.js +0 -74
  19. package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
  20. package/dist/cjs/libs/loadConfig.js +0 -70
  21. package/dist/cjs/libs/metrics.js +0 -33
  22. package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
  23. package/dist/cjs/libs/preload/index.js +0 -24
  24. package/dist/cjs/libs/preload/parseLinks.js +0 -124
  25. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
  26. package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
  27. package/dist/cjs/libs/proxy.js +0 -99
  28. package/dist/cjs/libs/render/index.js +0 -97
  29. package/dist/cjs/libs/render/measure.js +0 -74
  30. package/dist/cjs/libs/render/ssr.js +0 -126
  31. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -56
  32. package/dist/cjs/libs/render/ssrCache/index.js +0 -81
  33. package/dist/cjs/libs/render/ssrCache/manager.js +0 -104
  34. package/dist/cjs/libs/render/static.js +0 -72
  35. package/dist/cjs/libs/render/type.js +0 -33
  36. package/dist/cjs/libs/render/utils.js +0 -41
  37. package/dist/cjs/libs/reporter.js +0 -39
  38. package/dist/cjs/libs/route/index.js +0 -85
  39. package/dist/cjs/libs/route/matcher.js +0 -117
  40. package/dist/cjs/libs/route/route.js +0 -49
  41. package/dist/cjs/libs/serveFile.js +0 -84
  42. package/dist/cjs/libs/serverTiming.js +0 -44
  43. package/dist/cjs/renderHtml.js +0 -72
  44. package/dist/cjs/server/index.js +0 -229
  45. package/dist/cjs/server/modernServer.js +0 -532
  46. package/dist/cjs/server/modernServerSplit.js +0 -67
  47. package/dist/cjs/type.js +0 -16
  48. package/dist/cjs/utils.js +0 -164
  49. package/dist/cjs/workerServer.js +0 -264
  50. package/dist/esm/constants.js +0 -43
  51. package/dist/esm/libs/context/context.js +0 -292
  52. package/dist/esm/libs/context/index.js +0 -8
  53. package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
  54. package/dist/esm/libs/hook-api/base.js +0 -108
  55. package/dist/esm/libs/hook-api/index.js +0 -55
  56. package/dist/esm/libs/hook-api/index.worker.js +0 -113
  57. package/dist/esm/libs/hook-api/route.js +0 -41
  58. package/dist/esm/libs/hook-api/template.js +0 -84
  59. package/dist/esm/libs/hook-api/templateForStream.js +0 -35
  60. package/dist/esm/libs/loadConfig.js +0 -36
  61. package/dist/esm/libs/metrics.js +0 -9
  62. package/dist/esm/libs/preload/flushServerHeader.js +0 -50
  63. package/dist/esm/libs/preload/index.js +0 -2
  64. package/dist/esm/libs/preload/parseLinks.js +0 -172
  65. package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
  66. package/dist/esm/libs/preload/transformLinks2String.js +0 -140
  67. package/dist/esm/libs/proxy.js +0 -160
  68. package/dist/esm/libs/render/index.js +0 -142
  69. package/dist/esm/libs/render/measure.js +0 -69
  70. package/dist/esm/libs/render/ssr.js +0 -129
  71. package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -33
  72. package/dist/esm/libs/render/ssrCache/index.js +0 -146
  73. package/dist/esm/libs/render/ssrCache/manager.js +0 -159
  74. package/dist/esm/libs/render/static.js +0 -100
  75. package/dist/esm/libs/render/type.js +0 -9
  76. package/dist/esm/libs/render/utils.js +0 -16
  77. package/dist/esm/libs/reporter.js +0 -15
  78. package/dist/esm/libs/route/index.js +0 -116
  79. package/dist/esm/libs/route/matcher.js +0 -128
  80. package/dist/esm/libs/route/route.js +0 -26
  81. package/dist/esm/libs/serveFile.js +0 -68
  82. package/dist/esm/libs/serverTiming.js +0 -30
  83. package/dist/esm/renderHtml.js +0 -150
  84. package/dist/esm/server/index.js +0 -426
  85. package/dist/esm/server/modernServer.js +0 -1018
  86. package/dist/esm/server/modernServerSplit.js +0 -138
  87. package/dist/esm/type.js +0 -0
  88. package/dist/esm/utils.js +0 -103
  89. package/dist/esm/workerServer.js +0 -347
  90. package/dist/esm-node/constants.js +0 -43
  91. package/dist/esm-node/libs/context/context.js +0 -206
  92. package/dist/esm-node/libs/context/index.js +0 -6
  93. package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
  94. package/dist/esm-node/libs/hook-api/base.js +0 -72
  95. package/dist/esm-node/libs/hook-api/index.js +0 -57
  96. package/dist/esm-node/libs/hook-api/index.worker.js +0 -92
  97. package/dist/esm-node/libs/hook-api/route.js +0 -24
  98. package/dist/esm-node/libs/hook-api/template.js +0 -49
  99. package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
  100. package/dist/esm-node/libs/loadConfig.js +0 -34
  101. package/dist/esm-node/libs/metrics.js +0 -9
  102. package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
  103. package/dist/esm-node/libs/preload/index.js +0 -2
  104. package/dist/esm-node/libs/preload/parseLinks.js +0 -90
  105. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
  106. package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
  107. package/dist/esm-node/libs/proxy.js +0 -74
  108. package/dist/esm-node/libs/render/index.js +0 -63
  109. package/dist/esm-node/libs/render/measure.js +0 -49
  110. package/dist/esm-node/libs/render/ssr.js +0 -92
  111. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -22
  112. package/dist/esm-node/libs/render/ssrCache/index.js +0 -57
  113. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -80
  114. package/dist/esm-node/libs/render/static.js +0 -38
  115. package/dist/esm-node/libs/render/type.js +0 -9
  116. package/dist/esm-node/libs/render/utils.js +0 -16
  117. package/dist/esm-node/libs/reporter.js +0 -15
  118. package/dist/esm-node/libs/route/index.js +0 -60
  119. package/dist/esm-node/libs/route/matcher.js +0 -93
  120. package/dist/esm-node/libs/route/route.js +0 -25
  121. package/dist/esm-node/libs/serveFile.js +0 -49
  122. package/dist/esm-node/libs/serverTiming.js +0 -20
  123. package/dist/esm-node/renderHtml.js +0 -80
  124. package/dist/esm-node/server/index.js +0 -195
  125. package/dist/esm-node/server/modernServer.js +0 -498
  126. package/dist/esm-node/server/modernServerSplit.js +0 -43
  127. package/dist/esm-node/type.js +0 -0
  128. package/dist/esm-node/utils.js +0 -132
  129. package/dist/esm-node/workerServer.js +0 -239
  130. package/dist/types/constants.d.ts +0 -30
  131. package/dist/types/libs/context/context.d.ts +0 -62
  132. package/dist/types/libs/context/index.d.ts +0 -7
  133. package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
  134. package/dist/types/libs/hook-api/base.d.ts +0 -53
  135. package/dist/types/libs/hook-api/index.d.ts +0 -6
  136. package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
  137. package/dist/types/libs/hook-api/route.d.ts +0 -9
  138. package/dist/types/libs/hook-api/template.d.ts +0 -22
  139. package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
  140. package/dist/types/libs/loadConfig.d.ts +0 -13
  141. package/dist/types/libs/metrics.d.ts +0 -3
  142. package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
  143. package/dist/types/libs/preload/index.d.ts +0 -2
  144. package/dist/types/libs/preload/parseLinks.d.ts +0 -13
  145. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
  146. package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
  147. package/dist/types/libs/proxy.d.ts +0 -13
  148. package/dist/types/libs/render/index.d.ts +0 -21
  149. package/dist/types/libs/render/measure.d.ts +0 -10
  150. package/dist/types/libs/render/ssr.d.ts +0 -12
  151. package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
  152. package/dist/types/libs/render/ssrCache/index.d.ts +0 -7
  153. package/dist/types/libs/render/ssrCache/manager.d.ts +0 -14
  154. package/dist/types/libs/render/static.d.ts +0 -3
  155. package/dist/types/libs/render/type.d.ts +0 -36
  156. package/dist/types/libs/render/utils.d.ts +0 -5
  157. package/dist/types/libs/reporter.d.ts +0 -2
  158. package/dist/types/libs/route/index.d.ts +0 -15
  159. package/dist/types/libs/route/matcher.d.ts +0 -15
  160. package/dist/types/libs/route/route.d.ts +0 -14
  161. package/dist/types/libs/serveFile.d.ts +0 -9
  162. package/dist/types/libs/serverTiming.d.ts +0 -13
  163. package/dist/types/renderHtml.d.ts +0 -23
  164. package/dist/types/server/index.d.ts +0 -55
  165. package/dist/types/server/modernServer.d.ts +0 -71
  166. package/dist/types/server/modernServerSplit.d.ts +0 -2
  167. package/dist/types/type.d.ts +0 -77
  168. package/dist/types/utils.d.ts +0 -24
  169. package/dist/types/workerServer.d.ts +0 -59
@@ -1,52 +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 templateForStream_exports = {};
20
- __export(templateForStream_exports, {
21
- templateInjectableStream: () => templateInjectableStream
22
- });
23
- module.exports = __toCommonJS(templateForStream_exports);
24
- var import_stream = require("stream");
25
- var import_template = require("./template");
26
- const templateInjectableStream = ({ prependHead, appendHead, prependBody, appendBody }) => new import_stream.Transform({
27
- write(chunk, _, callback) {
28
- let chunk_str = chunk.toString();
29
- if (prependHead) {
30
- const { head } = import_template.RegList.before;
31
- chunk_str = chunk_str.replace(new RegExp(head), (beforeHead) => `${beforeHead}${prependHead}`);
32
- }
33
- if (appendHead) {
34
- const { head } = import_template.RegList.after;
35
- chunk_str = chunk_str.replace(head, `${appendHead}${head}`);
36
- }
37
- if (prependBody) {
38
- const { body } = import_template.RegList.before;
39
- chunk_str = chunk_str.replace(new RegExp(body), (beforeBody) => `${beforeBody}${prependBody}`);
40
- }
41
- if (appendBody) {
42
- const { body } = import_template.RegList.after;
43
- chunk_str = chunk_str.replace(body, `${appendBody}${body}`);
44
- }
45
- this.push(chunk_str);
46
- callback();
47
- }
48
- });
49
- // Annotate the CommonJS export names for ESM import in node:
50
- 0 && (module.exports = {
51
- templateInjectableStream
52
- });
@@ -1,70 +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 loadConfig_exports = {};
30
- __export(loadConfig_exports, {
31
- getServerConfigPath: () => getServerConfigPath,
32
- loadConfig: () => loadConfig,
33
- requireConfig: () => requireConfig
34
- });
35
- module.exports = __toCommonJS(loadConfig_exports);
36
- var path = __toESM(require("path"));
37
- var import_utils = require("@modern-js/utils");
38
- var import_merge_deep = __toESM(require("merge-deep"));
39
- const getServerConfigPath = (distDirectory, serverConfigFile = import_utils.DEFAULT_SERVER_CONFIG) => {
40
- const serverConfigPath = path.join(distDirectory, serverConfigFile);
41
- return `${serverConfigPath}.js`;
42
- };
43
- const requireConfig = (serverConfigPath) => {
44
- if (import_utils.fs.pathExistsSync(serverConfigPath)) {
45
- return (0, import_utils.compatRequire)(serverConfigPath);
46
- }
47
- return {};
48
- };
49
- const loadConfig = ({ cliConfig, serverConfig, resolvedConfigPath }) => {
50
- let config = null;
51
- if (process.env.NODE_ENV === "production") {
52
- const resolvedConfig = requireConfig(resolvedConfigPath);
53
- config = (0, import_merge_deep.default)({
54
- ...resolvedConfig,
55
- plugins: []
56
- }, serverConfig, cliConfig);
57
- } else {
58
- config = (0, import_merge_deep.default)({
59
- ...cliConfig,
60
- plugins: []
61
- }, serverConfig);
62
- }
63
- return config;
64
- };
65
- // Annotate the CommonJS export names for ESM import in node:
66
- 0 && (module.exports = {
67
- getServerConfigPath,
68
- loadConfig,
69
- requireConfig
70
- });
@@ -1,33 +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 metrics_exports = {};
20
- __export(metrics_exports, {
21
- metrics: () => metrics
22
- });
23
- module.exports = __toCommonJS(metrics_exports);
24
- const metrics = {
25
- emitCounter() {
26
- },
27
- emitTimer() {
28
- }
29
- };
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
32
- metrics
33
- });
@@ -1,49 +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 flushServerHeader_exports = {};
20
- __export(flushServerHeader_exports, {
21
- flushServerHeader: () => flushServerHeader
22
- });
23
- module.exports = __toCommonJS(flushServerHeader_exports);
24
- var import_parseLinks = require("./parseLinks");
25
- var import_transformLinks2String = require("./transformLinks2String");
26
- async function flushServerHeader({ serverConf, ctx, distDir, template, headers }) {
27
- const { ssr: ssrConf } = serverConf || {};
28
- if (typeof ssrConf !== "object") {
29
- return;
30
- }
31
- const { res } = ctx;
32
- const links = await (0, import_parseLinks.parseLinks)({
33
- template,
34
- distDir,
35
- pathname: ctx.path
36
- });
37
- const link = (0, import_transformLinks2String.transformLinks2String)(links, ssrConf.preload);
38
- res.set("link", link);
39
- for (const key in headers || {}) {
40
- const value = headers === null || headers === void 0 ? void 0 : headers[key];
41
- value && res.set(key, value);
42
- }
43
- res.flushHeaders();
44
- res.modernFlushedHeaders = true;
45
- }
46
- // Annotate the CommonJS export names for ESM import in node:
47
- 0 && (module.exports = {
48
- flushServerHeader
49
- });
@@ -1,24 +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 __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var preload_exports = {};
17
- module.exports = __toCommonJS(preload_exports);
18
- __reExport(preload_exports, require("./parseLinks"), module.exports);
19
- __reExport(preload_exports, require("./flushServerHeader"), module.exports);
20
- // Annotate the CommonJS export names for ESM import in node:
21
- 0 && (module.exports = {
22
- ...require("./parseLinks"),
23
- ...require("./flushServerHeader")
24
- });
@@ -1,124 +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 parseLinks_exports = {};
30
- __export(parseLinks_exports, {
31
- parseLinks: () => parseLinks
32
- });
33
- module.exports = __toCommonJS(parseLinks_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_utils = require("@modern-js/utils");
36
- var import_node_html_parser = require("node-html-parser");
37
- var import_remix_router = require("@modern-js/runtime-utils/remix-router");
38
- var import_node = require("@modern-js/runtime-utils/node");
39
- async function parseLinks({ pathname, distDir, template }) {
40
- const links = await parseLinksFromRoutes(pathname, distDir);
41
- return links.concat(parseLinksFromHtml(template));
42
- }
43
- function parseLinksFromHtml(html) {
44
- const root = (0, import_node_html_parser.parse)(html);
45
- const scripts = root.querySelectorAll("script").filter((elem) => Boolean(elem.getAttribute("src")));
46
- const css = root.querySelectorAll("link").filter((elem) => {
47
- const href = elem.getAttribute("href");
48
- const rel = elem.getAttribute("rel");
49
- return href && rel === "stylesheet";
50
- });
51
- const images = root.querySelectorAll("img").filter((elem) => Boolean(elem.getAttribute("src")));
52
- return scripts.map((elem) => {
53
- const src = elem.getAttribute("src");
54
- return {
55
- uri: src,
56
- as: "script"
57
- };
58
- }).concat(css.map((elem) => {
59
- const href = elem.getAttribute("href");
60
- return {
61
- uri: href,
62
- as: "style"
63
- };
64
- })).concat(images.map((elem) => {
65
- const src = elem.getAttribute("src");
66
- return {
67
- uri: src,
68
- as: "image"
69
- };
70
- }));
71
- }
72
- async function parseLinksFromRoutes(pathname, distDir) {
73
- const noopLinks = [];
74
- const nestedRoutesSpec = import_path.default.join(distDir, import_utils.NESTED_ROUTE_SPEC_FILE);
75
- const routesJsonPath = import_path.default.join(distDir, import_utils.ROUTE_SPEC_FILE);
76
- const routeManifestPath = import_path.default.join(distDir, import_utils.ROUTE_MANIFEST_FILE);
77
- if (!import_utils.fs.existsSync(nestedRoutesSpec) || !import_utils.fs.existsSync(routesJsonPath) || !import_utils.fs.existsSync(routeManifestPath)) {
78
- return noopLinks;
79
- }
80
- const routesJson = await Promise.resolve().then(() => __toESM(require(routesJsonPath)));
81
- const serverRoutes = routesJson.routes;
82
- const entry = (0, import_node.matchEntry)(pathname, serverRoutes);
83
- if (entry) {
84
- var _routeAssets_entryName, _assets_filter, _assets_filter1;
85
- const routes = await Promise.resolve().then(() => __toESM(require(nestedRoutesSpec)));
86
- const { entryName } = entry;
87
- if (!entryName) {
88
- return noopLinks;
89
- }
90
- const entryRoutes = routes[entryName];
91
- if (!entryRoutes) {
92
- return noopLinks;
93
- }
94
- const routesManifest = await Promise.resolve().then(() => __toESM(require(routeManifestPath)));
95
- const { routeAssets } = routesManifest;
96
- const matches = (0, import_remix_router.matchRoutes)(entryRoutes, pathname, entry.urlPath);
97
- const entryAssets = (_routeAssets_entryName = routeAssets[entryName]) === null || _routeAssets_entryName === void 0 ? void 0 : _routeAssets_entryName.assets;
98
- const assets = matches === null || matches === void 0 ? void 0 : matches.reduce((acc, match) => {
99
- const routeId = match.route.id;
100
- if (routeId) {
101
- const matchedManifest = routeAssets[routeId];
102
- const assets2 = matchedManifest === null || matchedManifest === void 0 ? void 0 : matchedManifest.assets;
103
- if (Array.isArray(assets2)) {
104
- acc.push(...assets2);
105
- }
106
- }
107
- return acc;
108
- }, []).concat(entryAssets || []);
109
- const cssLinks = assets === null || assets === void 0 ? void 0 : (_assets_filter = assets.filter((asset) => asset.endsWith(".css"))) === null || _assets_filter === void 0 ? void 0 : _assets_filter.map((uri) => ({
110
- uri,
111
- as: "style"
112
- }));
113
- const scriptLinks = assets === null || assets === void 0 ? void 0 : (_assets_filter1 = assets.filter((asset) => asset.endsWith(".js"))) === null || _assets_filter1 === void 0 ? void 0 : _assets_filter1.map((uri) => ({
114
- uri,
115
- as: "script"
116
- }));
117
- return (cssLinks || []).concat(scriptLinks || []);
118
- }
119
- return noopLinks;
120
- }
121
- // Annotate the CommonJS export names for ESM import in node:
122
- 0 && (module.exports = {
123
- parseLinks
124
- });
@@ -1,52 +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 shouldFlushServerHeader_exports = {};
20
- __export(shouldFlushServerHeader_exports, {
21
- shouldFlushServerHeader: () => shouldFlushServerHeader,
22
- transformToRegExp: () => transformToRegExp
23
- });
24
- module.exports = __toCommonJS(shouldFlushServerHeader_exports);
25
- function transformToRegExp(input) {
26
- if (typeof input === "string") {
27
- return new RegExp(input);
28
- }
29
- return input;
30
- }
31
- function shouldFlushServerHeader(serverConf, userAgent, disablePreload) {
32
- const { ssr: ssrConf } = serverConf || {};
33
- if (disablePreload) {
34
- return false;
35
- }
36
- if (typeof ssrConf === "object" && ssrConf.preload) {
37
- if (typeof ssrConf.preload === "object") {
38
- const { userAgentFilter } = ssrConf.preload;
39
- if (userAgentFilter && userAgent) {
40
- return !transformToRegExp(userAgentFilter).test(userAgent);
41
- }
42
- return true;
43
- }
44
- return true;
45
- }
46
- return false;
47
- }
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- shouldFlushServerHeader,
51
- transformToRegExp
52
- });
@@ -1,150 +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 transformLinks2String_exports = {};
20
- __export(transformLinks2String_exports, {
21
- transformLinks2String: () => transformLinks2String
22
- });
23
- module.exports = __toCommonJS(transformLinks2String_exports);
24
- var import_shouldFlushServerHeader = require("./shouldFlushServerHeader");
25
- function transformLinks2String(links, preload) {
26
- if (typeof preload === "boolean") {
27
- return transformLinkToString(dedup(links));
28
- }
29
- const { include, exclude, attributes } = preload;
30
- const resolveLinks = transformLinkToString(addAttributes(dedup(removeExclude(addInclude(links, include), exclude)), attributes));
31
- return resolveLinks;
32
- }
33
- function addInclude(links, include) {
34
- const images = [
35
- "gif",
36
- "jpg",
37
- "jpeg",
38
- "png",
39
- "webp",
40
- "bmp",
41
- "tiff",
42
- "anpg",
43
- "ico"
44
- ];
45
- const videos = [
46
- "mp4",
47
- "webm",
48
- "ogm",
49
- "ogv",
50
- "ogg"
51
- ];
52
- const fonts = [
53
- "woff",
54
- "woff2",
55
- "eot",
56
- "ttf",
57
- "otf"
58
- ];
59
- const includes = (include === null || include === void 0 ? void 0 : include.map((item) => {
60
- if (typeof item === "string") {
61
- const type = (() => {
62
- if (item.endsWith(".js")) {
63
- return "script";
64
- }
65
- if (item.endsWith(".css")) {
66
- return "style";
67
- }
68
- if (images.some((image) => item.endsWith(`.${image}`))) {
69
- return "image";
70
- }
71
- if (videos.some((video) => item.endsWith(`.${video}`))) {
72
- return "video";
73
- }
74
- if (fonts.some((font) => item.endsWith(`.${font}`))) {
75
- return "font";
76
- }
77
- })();
78
- return {
79
- uri: item,
80
- as: type
81
- };
82
- }
83
- return {
84
- uri: item.url,
85
- as: item.as,
86
- rel: item.rel
87
- };
88
- })) || [];
89
- return links.concat(includes);
90
- }
91
- function removeExclude(links, exclude) {
92
- return exclude ? links.filter(({ uri }) => !(0, import_shouldFlushServerHeader.transformToRegExp)(exclude).test(uri)) : links;
93
- }
94
- function addAttributes(links, attributes) {
95
- const parseAttributes = (_attributes) => {
96
- return Object.entries(_attributes || {}).reduce((results, [key, value]) => {
97
- if (typeof value === "boolean") {
98
- value && results.push(`; ${key}`);
99
- return results;
100
- }
101
- results.push(`; ${key}=${value}`);
102
- return results;
103
- }, []).join("");
104
- };
105
- return links.map((link) => {
106
- const { as } = link;
107
- if (as) {
108
- const attributesStr = (() => {
109
- const { style, script, image, font } = attributes || {};
110
- switch (as) {
111
- case "script":
112
- return parseAttributes(script);
113
- case "style":
114
- return parseAttributes(style);
115
- case "image":
116
- return parseAttributes(image);
117
- case "font":
118
- return parseAttributes(font);
119
- default:
120
- return "";
121
- }
122
- })();
123
- return {
124
- ...link,
125
- rest: attributesStr
126
- };
127
- }
128
- return link;
129
- });
130
- }
131
- function dedup(links) {
132
- const set = /* @__PURE__ */ new Set();
133
- return links.filter(({ uri }) => {
134
- if (set.has(uri)) {
135
- return false;
136
- }
137
- set.add(uri);
138
- return true;
139
- });
140
- }
141
- function transformLinkToString(links) {
142
- return links.map(({ uri, as, rel: originalRel, rest }) => {
143
- const rel = originalRel || "preload";
144
- return as ? `<${uri}>; rel=${rel}; as=${as}${rest || ""}` : `<${uri}>; rel=${rel}${rest || ""}`;
145
- }).join(", ");
146
- }
147
- // Annotate the CommonJS export names for ESM import in node:
148
- 0 && (module.exports = {
149
- transformLinks2String
150
- });
@@ -1,99 +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 proxy_exports = {};
20
- __export(proxy_exports, {
21
- createProxyHandler: () => createProxyHandler,
22
- formatProxyOptions: () => formatProxyOptions
23
- });
24
- module.exports = __toCommonJS(proxy_exports);
25
- var import_http_proxy_middleware = require("http-proxy-middleware/dist/http-proxy-middleware");
26
- var import_utils = require("../utils");
27
- function formatProxyOptions(proxyOptions) {
28
- const ret = [];
29
- if (Array.isArray(proxyOptions)) {
30
- ret.push(...proxyOptions);
31
- } else if ("target" in proxyOptions) {
32
- ret.push(proxyOptions);
33
- } else {
34
- for (const [context, options] of Object.entries(proxyOptions)) {
35
- const opts = {
36
- context,
37
- changeOrigin: true,
38
- logLevel: "warn"
39
- };
40
- if (typeof options === "string") {
41
- opts.target = options;
42
- } else {
43
- Object.assign(opts, options);
44
- }
45
- ret.push(opts);
46
- }
47
- }
48
- const handleError = (err, _req, _res, _target) => {
49
- console.error(err);
50
- };
51
- for (const opts of ret) {
52
- var _opts;
53
- var _onError;
54
- (_onError = (_opts = opts).onError) !== null && _onError !== void 0 ? _onError : _opts.onError = handleError;
55
- }
56
- return ret;
57
- }
58
- const createProxyHandler = (proxyOptions) => {
59
- (0, import_utils.debug)("createProxyHandler", proxyOptions);
60
- const formattedOptionsList = formatProxyOptions(proxyOptions);
61
- const proxies = [];
62
- const handlers = [];
63
- for (const opts of formattedOptionsList) {
64
- const proxy = new import_http_proxy_middleware.HttpProxyMiddleware(opts.context, opts);
65
- const handler = async (ctx, next) => {
66
- const { req, res } = ctx;
67
- const bypassUrl = typeof opts.bypass === "function" ? opts.bypass(req, res, opts) : null;
68
- if (typeof bypassUrl === "boolean") {
69
- ctx.status = 404;
70
- next();
71
- } else if (typeof bypassUrl === "string") {
72
- ctx.url = bypassUrl;
73
- next();
74
- } else {
75
- proxy.middleware(req, res, next);
76
- }
77
- };
78
- proxies.push(proxy);
79
- handlers.push(handler);
80
- }
81
- const handleUpgrade = (server) => {
82
- for (const proxy of proxies) {
83
- const raw = proxy;
84
- if (raw.proxyOptions.ws === true && !raw.wsInternalSubscribed) {
85
- server.on("upgrade", raw.handleUpgrade);
86
- raw.wsInternalSubscribed = true;
87
- }
88
- }
89
- };
90
- return {
91
- handlers,
92
- handleUpgrade
93
- };
94
- };
95
- // Annotate the CommonJS export names for ESM import in node:
96
- 0 && (module.exports = {
97
- createProxyHandler,
98
- formatProxyOptions
99
- });