@modern-js/prod-server 1.21.6 → 2.0.0-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 (132) hide show
  1. package/CHANGELOG.md +274 -13
  2. package/dist/js/modern/constants.js +32 -27
  3. package/dist/js/modern/index.js +11 -7
  4. package/dist/js/modern/libs/context/context.js +54 -132
  5. package/dist/js/modern/libs/context/index.js +5 -2
  6. package/dist/js/modern/libs/hook-api/index.js +134 -0
  7. package/dist/js/modern/libs/hook-api/route.js +13 -37
  8. package/dist/js/modern/libs/hook-api/template.js +41 -32
  9. package/dist/js/modern/libs/loadConfig.js +46 -32
  10. package/dist/js/modern/libs/metrics.js +6 -7
  11. package/dist/js/modern/libs/proxy.js +70 -44
  12. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -68
  13. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -225
  14. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
  15. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
  16. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
  17. package/dist/js/modern/libs/render/cache/index.js +93 -50
  18. package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
  19. package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -16
  20. package/dist/js/modern/libs/render/cache/spr.js +133 -167
  21. package/dist/js/modern/libs/render/cache/type.js +0 -1
  22. package/dist/js/modern/libs/render/cache/util.js +71 -45
  23. package/dist/js/modern/libs/render/index.js +76 -61
  24. package/dist/js/modern/libs/render/measure.js +42 -34
  25. package/dist/js/modern/libs/render/reader.js +68 -76
  26. package/dist/js/modern/libs/render/ssr.js +63 -33
  27. package/dist/js/modern/libs/render/static.js +51 -37
  28. package/dist/js/modern/libs/render/type.js +9 -7
  29. package/dist/js/modern/libs/route/index.js +12 -30
  30. package/dist/js/modern/libs/route/matcher.js +28 -50
  31. package/dist/js/modern/libs/route/route.js +9 -31
  32. package/dist/js/modern/libs/serve-file.js +40 -20
  33. package/dist/js/modern/server/index.js +152 -168
  34. package/dist/js/modern/server/modern-server-split.js +44 -60
  35. package/dist/js/modern/server/modern-server.js +416 -526
  36. package/dist/js/modern/type.js +0 -1
  37. package/dist/js/modern/utils.js +62 -58
  38. package/dist/js/modern/worker-server.js +54 -0
  39. package/dist/js/node/constants.js +53 -32
  40. package/dist/js/node/index.js +37 -67
  41. package/dist/js/node/libs/context/context.js +84 -150
  42. package/dist/js/node/libs/context/index.js +28 -16
  43. package/dist/js/node/libs/hook-api/index.js +164 -0
  44. package/dist/js/node/libs/hook-api/route.js +35 -45
  45. package/dist/js/node/libs/hook-api/template.js +64 -40
  46. package/dist/js/node/libs/loadConfig.js +74 -55
  47. package/dist/js/node/libs/metrics.js +28 -12
  48. package/dist/js/node/libs/proxy.js +90 -55
  49. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -61
  50. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -140
  51. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +65 -55
  52. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +58 -40
  53. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +105 -119
  54. package/dist/js/node/libs/render/cache/index.js +115 -65
  55. package/dist/js/node/libs/render/cache/page-caches/index.js +54 -16
  56. package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -26
  57. package/dist/js/node/libs/render/cache/spr.js +161 -188
  58. package/dist/js/node/libs/render/cache/type.js +15 -5
  59. package/dist/js/node/libs/render/cache/util.js +99 -63
  60. package/dist/js/node/libs/render/index.js +106 -87
  61. package/dist/js/node/libs/render/measure.js +61 -44
  62. package/dist/js/node/libs/render/reader.js +98 -100
  63. package/dist/js/node/libs/render/ssr.js +92 -58
  64. package/dist/js/node/libs/render/static.js +80 -53
  65. package/dist/js/node/libs/render/type.js +31 -13
  66. package/dist/js/node/libs/route/index.js +35 -44
  67. package/dist/js/node/libs/route/matcher.js +48 -65
  68. package/dist/js/node/libs/route/route.js +29 -37
  69. package/dist/js/node/libs/serve-file.js +74 -37
  70. package/dist/js/node/server/index.js +170 -203
  71. package/dist/js/node/server/modern-server-split.js +70 -73
  72. package/dist/js/node/server/modern-server.js +432 -577
  73. package/dist/js/node/type.js +15 -3
  74. package/dist/js/node/utils.js +87 -93
  75. package/dist/js/node/worker-server.js +77 -0
  76. package/dist/js/treeshaking/constants.js +29 -0
  77. package/dist/js/treeshaking/index.js +13 -0
  78. package/dist/js/treeshaking/libs/context/context.js +274 -0
  79. package/dist/js/treeshaking/libs/context/index.js +5 -0
  80. package/dist/js/treeshaking/libs/hook-api/index.js +281 -0
  81. package/dist/js/treeshaking/libs/hook-api/route.js +68 -0
  82. package/dist/js/treeshaking/libs/hook-api/template.js +127 -0
  83. package/dist/js/treeshaking/libs/loadConfig.js +82 -0
  84. package/dist/js/treeshaking/libs/metrics.js +6 -0
  85. package/dist/js/treeshaking/libs/proxy.js +244 -0
  86. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +291 -0
  87. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +781 -0
  88. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +67 -0
  89. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -0
  90. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +147 -0
  91. package/dist/js/treeshaking/libs/render/cache/index.js +346 -0
  92. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +154 -0
  93. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +84 -0
  94. package/dist/js/treeshaking/libs/render/cache/spr.js +492 -0
  95. package/dist/js/treeshaking/libs/render/cache/type.js +1 -0
  96. package/dist/js/treeshaking/libs/render/cache/util.js +280 -0
  97. package/dist/js/treeshaking/libs/render/index.js +233 -0
  98. package/dist/js/treeshaking/libs/render/measure.js +146 -0
  99. package/dist/js/treeshaking/libs/render/reader.js +339 -0
  100. package/dist/js/treeshaking/libs/render/ssr.js +223 -0
  101. package/dist/js/treeshaking/libs/render/static.js +216 -0
  102. package/dist/js/treeshaking/libs/render/type.js +7 -0
  103. package/dist/js/treeshaking/libs/route/index.js +130 -0
  104. package/dist/js/treeshaking/libs/route/matcher.js +138 -0
  105. package/dist/js/treeshaking/libs/route/route.js +40 -0
  106. package/dist/js/treeshaking/libs/serve-file.js +184 -0
  107. package/dist/js/treeshaking/server/index.js +505 -0
  108. package/dist/js/treeshaking/server/modern-server-split.js +360 -0
  109. package/dist/js/treeshaking/server/modern-server.js +1083 -0
  110. package/dist/js/treeshaking/type.js +1 -0
  111. package/dist/js/treeshaking/utils.js +147 -0
  112. package/dist/js/treeshaking/worker-server.js +177 -0
  113. package/dist/types/libs/context/context.d.ts +1 -1
  114. package/dist/types/libs/hook-api/index.d.ts +5 -0
  115. package/dist/types/libs/hook-api/route.d.ts +9 -14
  116. package/dist/types/libs/hook-api/template.d.ts +19 -9
  117. package/dist/types/libs/render/cache/index.d.ts +4 -2
  118. package/dist/types/libs/render/type.d.ts +3 -1
  119. package/dist/types/libs/route/route.d.ts +0 -1
  120. package/dist/types/libs/serve-file.d.ts +2 -1
  121. package/dist/types/server/index.d.ts +2 -0
  122. package/dist/types/server/modern-server.d.ts +11 -11
  123. package/dist/types/type.d.ts +8 -10
  124. package/dist/types/utils.d.ts +3 -4
  125. package/dist/types/worker-server.d.ts +15 -0
  126. package/package.json +31 -45
  127. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  128. package/dist/js/modern/libs/render/modern/index.js +0 -48
  129. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  130. package/dist/js/node/libs/render/modern/index.js +0 -64
  131. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  132. package/dist/types/libs/render/modern/index.d.ts +0 -3
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.21.6",
14
+ "version": "2.0.0-alpha.0",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -25,26 +25,45 @@
25
25
  "require": "./dist/js/node/index.js"
26
26
  },
27
27
  "default": "./dist/js/treeshaking/index.js"
28
+ },
29
+ "./worker": {
30
+ "node": {
31
+ "jsnext:source": "./src/worker-server.ts",
32
+ "import": "./dist/js/modern/worker-server.js",
33
+ "require": "./dist/js/node/worker-server.js"
34
+ },
35
+ "default": "./dist/js/treeshaking/worker-server.js"
36
+ }
37
+ },
38
+ "typesVersions": {
39
+ "*": {
40
+ ".": [
41
+ "./dist/types/index.d.ts"
42
+ ],
43
+ "worker": [
44
+ "./dist/types/worker-server.d.ts"
45
+ ]
28
46
  }
29
47
  },
30
48
  "dependencies": {
31
- "@babel/compat-data": "^7.17.10",
49
+ "@modern-js/utils": "2.0.0-beta.4",
50
+ "@modern-js/server-core": "2.0.0-beta.4",
32
51
  "axios": "^0.24.0",
33
52
  "etag": "^1.8.1",
34
53
  "fresh": "^0.5.2",
35
- "compare-versions": "^3.6.0",
36
54
  "cookie": "^0.4.2",
37
55
  "http-proxy-middleware": "^2.0.1",
38
56
  "ignore-styles": "^5.0.1",
39
57
  "lru-cache": "^6.0.0",
40
58
  "merge-deep": "^3.0.3",
41
59
  "path-to-regexp": "^6.2.0",
42
- "serve-static": "^1.14.1",
43
- "ua-parser-js": "^0.7.28",
44
- "@modern-js/utils": "1.21.6",
45
- "@modern-js/server-core": "1.21.6"
60
+ "serve-static": "^1.14.1"
46
61
  },
47
62
  "devDependencies": {
63
+ "@modern-js/types": "2.0.0-beta.4",
64
+ "@modern-js/server-core": "2.0.0-beta.4",
65
+ "@scripts/jest-config": "2.0.0-beta.4",
66
+ "@scripts/build": "2.0.0-beta.4",
48
67
  "@types/cookie": "^0.4.1",
49
68
  "@types/jest": "^27",
50
69
  "@types/lru-cache": "^5.1.1",
@@ -53,53 +72,20 @@
53
72
  "@types/etag": "^1.8.1",
54
73
  "@types/fresh": "^0.5.0",
55
74
  "@types/serve-static": "^1.13.10",
56
- "@types/ua-parser-js": "^0.7.36",
57
75
  "jest": "^27",
58
76
  "node-mocks-http": "^1.11.0",
59
77
  "portfinder": "^1.0.28",
60
- "typescript": "^4",
61
- "@modern-js/types": "1.21.6",
62
- "@modern-js/core": "1.21.6",
63
- "@scripts/jest-config": "1.21.6",
64
- "@scripts/build": "1.21.6"
78
+ "typescript": "^4"
65
79
  },
66
80
  "sideEffects": false,
67
- "modernConfig": {
68
- "output": {
69
- "packageMode": "node-js"
70
- }
71
- },
72
81
  "publishConfig": {
73
82
  "access": "public",
74
83
  "registry": "https://registry.npmjs.org/"
75
84
  },
76
- "wireit": {
77
- "build": {
78
- "command": "modern build",
79
- "files": [
80
- "src/**/*",
81
- "tsconfig.json",
82
- "package.json"
83
- ],
84
- "output": [
85
- "dist/**/*"
86
- ]
87
- },
88
- "test": {
89
- "command": "jest",
90
- "files": [
91
- "src/**/*",
92
- "tsconfig.json",
93
- "package.json",
94
- "tests/**/*"
95
- ],
96
- "output": []
97
- }
98
- },
99
85
  "scripts": {
100
- "new": "modern new",
101
- "build": "wireit",
102
- "dev": "modern build --watch",
103
- "test": "wireit"
86
+ "new": "modern-lib new",
87
+ "build": "modern-lib build",
88
+ "dev": "modern-lib build --watch",
89
+ "test": "jest"
104
90
  }
105
91
  }
@@ -1,7 +0,0 @@
1
- export const NativeModuleNameMap = {
2
- Chrome: 'chrome',
3
- 'Mobile Safari': 'ios_saf',
4
- Safari: 'safari',
5
- Edge: 'edge',
6
- Firefox: 'firefox'
7
- };
@@ -1,48 +0,0 @@
1
- import Parser from 'ua-parser-js';
2
- import compareVersions from 'compare-versions';
3
- import { NativeModuleNameMap } from "./browser-list";
4
-
5
- const nativeModules = require('@babel/compat-data/native-modules');
6
-
7
- export const supportModern = context => {
8
- var _context$query;
9
-
10
- if ((_context$query = context.query) !== null && _context$query !== void 0 && _context$query.modern_es6) {
11
- return true;
12
- } // no ua in request headers
13
-
14
-
15
- const userAgent = context.headers['user-agent'];
16
-
17
- if (!userAgent || typeof userAgent !== 'string') {
18
- return false;
19
- }
20
-
21
- const parsedUA = Parser(userAgent);
22
- const browserName = parsedUA.browser.name;
23
- const browserVersion = parsedUA.browser.version;
24
-
25
- if (!browserName || !browserVersion) {
26
- return false;
27
- }
28
-
29
- const nativeUAName = NativeModuleNameMap[browserName];
30
-
31
- if (!nativeUAName) {
32
- return false;
33
- }
34
-
35
- const version = nativeModules['es6.module'][nativeUAName];
36
-
37
- if (!version) {
38
- return false;
39
- }
40
-
41
- try {
42
- const result = compareVersions(browserVersion, version);
43
- return result >= 0;
44
- } catch (err) {
45
- return false;
46
- }
47
- };
48
- export const getModernEntry = filepath => filepath.replace(/\.html$/, '-es6.html');
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.NativeModuleNameMap = void 0;
7
- const NativeModuleNameMap = {
8
- Chrome: 'chrome',
9
- 'Mobile Safari': 'ios_saf',
10
- Safari: 'safari',
11
- Edge: 'edge',
12
- Firefox: 'firefox'
13
- };
14
- exports.NativeModuleNameMap = NativeModuleNameMap;
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.supportModern = exports.getModernEntry = void 0;
7
-
8
- var _uaParserJs = _interopRequireDefault(require("ua-parser-js"));
9
-
10
- var _compareVersions = _interopRequireDefault(require("compare-versions"));
11
-
12
- var _browserList = require("./browser-list");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- const nativeModules = require('@babel/compat-data/native-modules');
17
-
18
- const supportModern = context => {
19
- var _context$query;
20
-
21
- if ((_context$query = context.query) !== null && _context$query !== void 0 && _context$query.modern_es6) {
22
- return true;
23
- } // no ua in request headers
24
-
25
-
26
- const userAgent = context.headers['user-agent'];
27
-
28
- if (!userAgent || typeof userAgent !== 'string') {
29
- return false;
30
- }
31
-
32
- const parsedUA = (0, _uaParserJs.default)(userAgent);
33
- const browserName = parsedUA.browser.name;
34
- const browserVersion = parsedUA.browser.version;
35
-
36
- if (!browserName || !browserVersion) {
37
- return false;
38
- }
39
-
40
- const nativeUAName = _browserList.NativeModuleNameMap[browserName];
41
-
42
- if (!nativeUAName) {
43
- return false;
44
- }
45
-
46
- const version = nativeModules['es6.module'][nativeUAName];
47
-
48
- if (!version) {
49
- return false;
50
- }
51
-
52
- try {
53
- const result = (0, _compareVersions.default)(browserVersion, version);
54
- return result >= 0;
55
- } catch (err) {
56
- return false;
57
- }
58
- };
59
-
60
- exports.supportModern = supportModern;
61
-
62
- const getModernEntry = filepath => filepath.replace(/\.html$/, '-es6.html');
63
-
64
- exports.getModernEntry = getModernEntry;
@@ -1 +0,0 @@
1
- export declare const NativeModuleNameMap: Record<string, string>;
@@ -1,3 +0,0 @@
1
- import { ModernServerContext } from '@modern-js/types';
2
- export declare const supportModern: (context: ModernServerContext) => boolean;
3
- export declare const getModernEntry: (filepath: string) => string;