@modern-js/prod-server 2.0.0-beta.3 → 2.0.0-beta.6
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 +139 -0
- package/dist/js/modern/constants.js +32 -25
- package/dist/js/modern/index.js +11 -6
- package/dist/js/modern/libs/context/context.js +52 -84
- package/dist/js/modern/libs/context/index.js +5 -2
- package/dist/js/modern/libs/hook-api/index.js +44 -35
- package/dist/js/modern/libs/hook-api/route.js +6 -7
- package/dist/js/modern/libs/hook-api/template.js +20 -34
- package/dist/js/modern/libs/loadConfig.js +45 -24
- package/dist/js/modern/libs/metrics.js +3 -4
- package/dist/js/modern/libs/proxy.js +68 -37
- package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -67
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -216
- package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
- package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
- package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
- package/dist/js/modern/libs/render/cache/index.js +88 -54
- package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
- package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -6
- package/dist/js/modern/libs/render/cache/spr.js +133 -117
- package/dist/js/modern/libs/render/cache/type.js +0 -1
- package/dist/js/modern/libs/render/cache/util.js +71 -39
- package/dist/js/modern/libs/render/index.js +76 -56
- package/dist/js/modern/libs/render/measure.js +38 -27
- package/dist/js/modern/libs/render/reader.js +65 -62
- package/dist/js/modern/libs/render/ssr.js +50 -32
- package/dist/js/modern/libs/render/static.js +50 -33
- package/dist/js/modern/libs/render/type.js +9 -6
- package/dist/js/modern/libs/route/index.js +8 -15
- package/dist/js/modern/libs/route/matcher.js +20 -34
- package/dist/js/modern/libs/route/route.js +9 -18
- package/dist/js/modern/libs/serve-file.js +33 -20
- package/dist/js/modern/server/index.js +150 -145
- package/dist/js/modern/server/modern-server-split.js +46 -12
- package/dist/js/modern/server/modern-server.js +384 -422
- package/dist/js/modern/type.js +0 -1
- package/dist/js/modern/utils.js +62 -43
- package/dist/js/modern/worker-server.js +34 -14
- package/dist/js/node/constants.js +53 -30
- package/dist/js/node/index.js +37 -57
- package/dist/js/node/libs/context/context.js +83 -94
- package/dist/js/node/libs/context/index.js +28 -13
- package/dist/js/node/libs/hook-api/index.js +76 -48
- package/dist/js/node/libs/hook-api/route.js +26 -11
- package/dist/js/node/libs/hook-api/template.js +41 -39
- package/dist/js/node/libs/loadConfig.js +73 -35
- package/dist/js/node/libs/metrics.js +25 -9
- package/dist/js/node/libs/proxy.js +89 -44
- package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -56
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -128
- package/dist/js/node/libs/render/cache/__tests__/cacheable.js +65 -55
- package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +58 -40
- package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +105 -119
- package/dist/js/node/libs/render/cache/index.js +110 -64
- package/dist/js/node/libs/render/cache/page-caches/index.js +54 -14
- package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -12
- package/dist/js/node/libs/render/cache/spr.js +161 -129
- package/dist/js/node/libs/render/cache/type.js +15 -5
- package/dist/js/node/libs/render/cache/util.js +99 -45
- package/dist/js/node/libs/render/index.js +106 -67
- package/dist/js/node/libs/render/measure.js +58 -31
- package/dist/js/node/libs/render/reader.js +95 -70
- package/dist/js/node/libs/render/ssr.js +80 -47
- package/dist/js/node/libs/render/static.js +79 -40
- package/dist/js/node/libs/render/type.js +31 -12
- package/dist/js/node/libs/route/index.js +31 -26
- package/dist/js/node/libs/route/matcher.js +40 -41
- package/dist/js/node/libs/route/route.js +29 -22
- package/dist/js/node/libs/serve-file.js +66 -32
- package/dist/js/node/server/index.js +168 -160
- package/dist/js/node/server/modern-server-split.js +72 -22
- package/dist/js/node/server/modern-server.js +403 -445
- package/dist/js/node/type.js +15 -3
- package/dist/js/node/utils.js +85 -52
- package/dist/js/node/worker-server.js +57 -21
- package/dist/js/treeshaking/constants.js +26 -25
- package/dist/js/treeshaking/index.js +10 -10
- package/dist/js/treeshaking/libs/context/context.js +268 -237
- package/dist/js/treeshaking/libs/context/index.js +3 -3
- package/dist/js/treeshaking/libs/hook-api/index.js +267 -143
- package/dist/js/treeshaking/libs/hook-api/route.js +65 -30
- package/dist/js/treeshaking/libs/hook-api/template.js +121 -85
- package/dist/js/treeshaking/libs/loadConfig.js +80 -37
- package/dist/js/treeshaking/libs/metrics.js +4 -10
- package/dist/js/treeshaking/libs/proxy.js +240 -76
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +288 -121
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +772 -455
- package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +65 -51
- package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -35
- package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +144 -118
- package/dist/js/treeshaking/libs/render/cache/index.js +337 -175
- package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +151 -27
- package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +80 -42
- package/dist/js/treeshaking/libs/render/cache/spr.js +470 -340
- package/dist/js/treeshaking/libs/render/cache/type.js +1 -1
- package/dist/js/treeshaking/libs/render/cache/util.js +271 -92
- package/dist/js/treeshaking/libs/render/index.js +228 -95
- package/dist/js/treeshaking/libs/render/measure.js +142 -57
- package/dist/js/treeshaking/libs/render/reader.js +325 -177
- package/dist/js/treeshaking/libs/render/ssr.js +220 -95
- package/dist/js/treeshaking/libs/render/static.js +210 -78
- package/dist/js/treeshaking/libs/render/type.js +7 -6
- package/dist/js/treeshaking/libs/route/index.js +125 -89
- package/dist/js/treeshaking/libs/route/matcher.js +132 -107
- package/dist/js/treeshaking/libs/route/route.js +40 -26
- package/dist/js/treeshaking/libs/serve-file.js +177 -68
- package/dist/js/treeshaking/server/index.js +493 -327
- package/dist/js/treeshaking/server/modern-server-split.js +352 -144
- package/dist/js/treeshaking/server/modern-server.js +1048 -909
- package/dist/js/treeshaking/type.js +1 -1
- package/dist/js/treeshaking/utils.js +138 -81
- package/dist/js/treeshaking/worker-server.js +176 -55
- package/dist/types/index.d.ts +2 -0
- package/dist/types/libs/context/context.d.ts +4 -1
- package/dist/types/libs/loadConfig.d.ts +1 -0
- package/dist/types/libs/render/cache/index.d.ts +2 -0
- package/dist/types/libs/render/cache/spr.d.ts +2 -0
- package/dist/types/libs/route/route.d.ts +0 -1
- package/dist/types/server/index.d.ts +3 -0
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/worker-server.d.ts +1 -2
- package/package.json +7 -14
- package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
- package/dist/js/modern/libs/render/modern/index.js +0 -37
- package/dist/js/node/libs/render/modern/browser-list.js +0 -14
- package/dist/js/node/libs/render/modern/index.js +0 -46
- package/dist/js/treeshaking/libs/render/modern/browser-list.js +0 -7
- package/dist/js/treeshaking/libs/render/modern/index.js +0 -39
- package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
- package/dist/types/libs/render/modern/index.d.ts +0 -3
|
@@ -1,72 +1,70 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var context_exports = {};
|
|
25
|
+
__export(context_exports, {
|
|
26
|
+
ModernServerContext: () => ModernServerContext
|
|
5
27
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
28
|
+
module.exports = __toCommonJS(context_exports);
|
|
29
|
+
var import_url = require("url");
|
|
30
|
+
var import_querystring = __toESM(require("querystring"));
|
|
31
|
+
var import_buffer = require("buffer");
|
|
32
|
+
var import_etag = __toESM(require("etag"));
|
|
33
|
+
var import_fresh = __toESM(require("fresh"));
|
|
34
|
+
var import_utils = require("../../utils");
|
|
15
35
|
class ModernServerContext {
|
|
16
|
-
/**
|
|
17
|
-
* http request
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* http response
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* url params
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
get logger() {
|
|
29
|
-
return this.req.logger;
|
|
30
|
-
}
|
|
31
|
-
get metrics() {
|
|
32
|
-
return this.req.metrics;
|
|
33
|
-
}
|
|
34
36
|
constructor(req, res, options) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
_defineProperty(this, "params", {});
|
|
38
|
-
_defineProperty(this, "serverData", void 0);
|
|
39
|
-
_defineProperty(this, "options", {});
|
|
37
|
+
this.params = {};
|
|
38
|
+
this.options = {};
|
|
40
39
|
this.req = req;
|
|
41
40
|
this.res = res;
|
|
42
41
|
this.options = options || {};
|
|
43
42
|
this.serverData = {};
|
|
44
43
|
this.bind();
|
|
45
44
|
}
|
|
45
|
+
get logger() {
|
|
46
|
+
return this.req.logger;
|
|
47
|
+
}
|
|
48
|
+
get metrics() {
|
|
49
|
+
return this.req.metrics;
|
|
50
|
+
}
|
|
46
51
|
bind() {
|
|
47
|
-
const {
|
|
48
|
-
|
|
49
|
-
res
|
|
50
|
-
} = this;
|
|
51
|
-
req.get = key => this.getReqHeader(key);
|
|
52
|
+
const { req, res } = this;
|
|
53
|
+
req.get = (key) => this.getReqHeader(key);
|
|
52
54
|
res.set = (key, value) => this.res.setHeader(key, value);
|
|
53
|
-
res.send = body => {
|
|
55
|
+
res.send = (body) => {
|
|
54
56
|
this.send(body);
|
|
55
57
|
};
|
|
56
58
|
}
|
|
57
|
-
|
|
58
|
-
// compat express res.send, only support etag now
|
|
59
59
|
send(body) {
|
|
60
60
|
try {
|
|
61
|
-
const generateETag = !this.res.getHeader(
|
|
62
|
-
if (body !==
|
|
63
|
-
const encoding = typeof body ===
|
|
64
|
-
const buf = !
|
|
65
|
-
const etag = (0,
|
|
66
|
-
weak: true
|
|
67
|
-
});
|
|
61
|
+
const generateETag = !this.res.getHeader("ETag") && this.options.etag;
|
|
62
|
+
if (body !== void 0 && generateETag) {
|
|
63
|
+
const encoding = typeof body === "string" ? "utf-8" : void 0;
|
|
64
|
+
const buf = !import_buffer.Buffer.isBuffer(body) ? import_buffer.Buffer.from(body, encoding) : body;
|
|
65
|
+
const etag = (0, import_etag.default)(buf, { weak: true });
|
|
68
66
|
if (etag) {
|
|
69
|
-
this.res.setHeader(
|
|
67
|
+
this.res.setHeader("ETag", etag);
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
70
|
if (this.fresh) {
|
|
@@ -84,39 +82,29 @@ class ModernServerContext {
|
|
|
84
82
|
this.serverData[key] = value;
|
|
85
83
|
}
|
|
86
84
|
getReqHeader(key) {
|
|
87
|
-
const {
|
|
88
|
-
req
|
|
89
|
-
} = this;
|
|
85
|
+
const { req } = this;
|
|
90
86
|
const field = key.toLowerCase();
|
|
91
87
|
switch (field) {
|
|
92
|
-
case
|
|
93
|
-
case
|
|
94
|
-
return req.headers.referrer || req.headers.referer ||
|
|
88
|
+
case "referer":
|
|
89
|
+
case "referrer":
|
|
90
|
+
return req.headers.referrer || req.headers.referer || "";
|
|
95
91
|
default:
|
|
96
|
-
return req.headers[field] ||
|
|
92
|
+
return req.headers[field] || "";
|
|
97
93
|
}
|
|
98
94
|
}
|
|
99
95
|
get fresh() {
|
|
100
|
-
const {
|
|
101
|
-
|
|
102
|
-
res,
|
|
103
|
-
method
|
|
104
|
-
} = this;
|
|
105
|
-
|
|
106
|
-
// GET or HEAD for weak freshness validation only
|
|
107
|
-
if ('GET' !== method && 'HEAD' !== method) {
|
|
96
|
+
const { status, res, method } = this;
|
|
97
|
+
if ("GET" !== method && "HEAD" !== method) {
|
|
108
98
|
return false;
|
|
109
99
|
}
|
|
110
100
|
if (status >= 200 && status < 300 || 304 === status) {
|
|
111
|
-
return (0,
|
|
112
|
-
etag: res.getHeader(
|
|
113
|
-
|
|
101
|
+
return (0, import_fresh.default)(this.headers, {
|
|
102
|
+
etag: res.getHeader("ETag"),
|
|
103
|
+
"last-modified": res.getHeader("Last-Modified")
|
|
114
104
|
});
|
|
115
105
|
}
|
|
116
106
|
return false;
|
|
117
107
|
}
|
|
118
|
-
|
|
119
|
-
/* request property */
|
|
120
108
|
get headers() {
|
|
121
109
|
return this.req.headers;
|
|
122
110
|
}
|
|
@@ -124,24 +112,24 @@ class ModernServerContext {
|
|
|
124
112
|
return this.req.method;
|
|
125
113
|
}
|
|
126
114
|
get url() {
|
|
127
|
-
return this.req.url ||
|
|
115
|
+
return this.req.url || "";
|
|
128
116
|
}
|
|
129
117
|
set url(val) {
|
|
130
118
|
this.req.url = val;
|
|
131
119
|
}
|
|
132
120
|
get host() {
|
|
133
|
-
let host = this.getReqHeader(
|
|
121
|
+
let host = this.getReqHeader("X-Forwarded-Host");
|
|
134
122
|
if (!host) {
|
|
135
|
-
host = this.getReqHeader(
|
|
123
|
+
host = this.getReqHeader("Host");
|
|
136
124
|
}
|
|
137
|
-
return host.split(/\s*,\s*/, 1)[0] ||
|
|
125
|
+
return host.split(/\s*,\s*/, 1)[0] || "";
|
|
138
126
|
}
|
|
139
127
|
get protocol() {
|
|
140
128
|
if (this.req.socket.encrypted) {
|
|
141
|
-
return
|
|
129
|
+
return "https";
|
|
142
130
|
}
|
|
143
|
-
const proto = this.getReqHeader(
|
|
144
|
-
return proto ? proto.split(/\s*,\s*/, 1)[0] :
|
|
131
|
+
const proto = this.getReqHeader("X-Forwarded-Proto");
|
|
132
|
+
return proto ? proto.split(/\s*,\s*/, 1)[0] : "http";
|
|
145
133
|
}
|
|
146
134
|
get origin() {
|
|
147
135
|
return `${this.protocol}://${this.host}`;
|
|
@@ -150,15 +138,14 @@ class ModernServerContext {
|
|
|
150
138
|
return this.origin + this.url;
|
|
151
139
|
}
|
|
152
140
|
get parsedURL() {
|
|
153
|
-
const url = new
|
|
141
|
+
const url = new import_url.URL(this.req.url, this.origin);
|
|
154
142
|
return url;
|
|
155
143
|
}
|
|
156
144
|
get path() {
|
|
157
145
|
return this.parsedURL.pathname;
|
|
158
146
|
}
|
|
159
147
|
set path(p) {
|
|
160
|
-
const url = new
|
|
161
|
-
// this should never happened
|
|
148
|
+
const url = new import_url.URL(this.req.url, this.origin);
|
|
162
149
|
if (!url || !p) {
|
|
163
150
|
return;
|
|
164
151
|
}
|
|
@@ -170,31 +157,33 @@ class ModernServerContext {
|
|
|
170
157
|
}
|
|
171
158
|
get querystring() {
|
|
172
159
|
if (!this.req) {
|
|
173
|
-
return
|
|
160
|
+
return "";
|
|
174
161
|
}
|
|
175
|
-
return this.parsedURL.search.replace(/^\?/,
|
|
162
|
+
return this.parsedURL.search.replace(/^\?/, "") || "";
|
|
176
163
|
}
|
|
177
164
|
get query() {
|
|
178
165
|
const str = this.querystring;
|
|
179
|
-
return
|
|
166
|
+
return import_querystring.default.parse(str);
|
|
180
167
|
}
|
|
181
|
-
|
|
182
|
-
/* response property */
|
|
183
168
|
get status() {
|
|
184
169
|
return this.res.statusCode;
|
|
185
170
|
}
|
|
186
171
|
set status(statusCode) {
|
|
187
172
|
this.res.statusCode = statusCode;
|
|
188
173
|
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* 判断链接是否已经关闭
|
|
192
|
-
*/
|
|
193
174
|
resHasHandled() {
|
|
194
175
|
return this.res.writableEnded;
|
|
195
176
|
}
|
|
196
|
-
error(dig, e =
|
|
197
|
-
this.logger.error(
|
|
177
|
+
error(dig, e = "") {
|
|
178
|
+
this.logger.error(
|
|
179
|
+
`Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`,
|
|
180
|
+
e instanceof Error ? e.stack || e.message : e,
|
|
181
|
+
this.path,
|
|
182
|
+
(0, import_utils.headersWithoutCookie)(this.headers)
|
|
183
|
+
);
|
|
198
184
|
}
|
|
199
185
|
}
|
|
200
|
-
|
|
186
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
187
|
+
0 && (module.exports = {
|
|
188
|
+
ModernServerContext
|
|
189
|
+
});
|
|
@@ -1,15 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
14
|
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var context_exports = {};
|
|
19
|
+
__export(context_exports, {
|
|
20
|
+
ModernServerContext: () => import_context.ModernServerContext,
|
|
21
|
+
createContext: () => createContext
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(context_exports);
|
|
24
|
+
var import_context = require("./context");
|
|
25
|
+
const createContext = (req, res, options) => new import_context.ModernServerContext(req, res, options);
|
|
26
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
27
|
+
0 && (module.exports = {
|
|
28
|
+
ModernServerContext,
|
|
29
|
+
createContext
|
|
11
30
|
});
|
|
12
|
-
exports.createContext = void 0;
|
|
13
|
-
var _context = require("./context");
|
|
14
|
-
const createContext = (req, res, options) => new _context.ModernServerContext(req, res, options);
|
|
15
|
-
exports.createContext = createContext;
|
|
@@ -1,23 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __export = (target, all) => {
|
|
25
|
+
for (var name in all)
|
|
26
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
+
};
|
|
28
|
+
var __copyProps = (to, from, except, desc) => {
|
|
29
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
+
for (let key of __getOwnPropNames(from))
|
|
31
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
38
|
+
mod
|
|
39
|
+
));
|
|
40
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
+
var hook_api_exports = {};
|
|
42
|
+
__export(hook_api_exports, {
|
|
43
|
+
base: () => base,
|
|
44
|
+
createAfterMatchContext: () => createAfterMatchContext,
|
|
45
|
+
createAfterRenderContext: () => createAfterRenderContext,
|
|
46
|
+
createMiddlewareContext: () => createMiddlewareContext
|
|
5
47
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
13
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
48
|
+
module.exports = __toCommonJS(hook_api_exports);
|
|
49
|
+
var import_cookie = __toESM(require("cookie"));
|
|
50
|
+
var import_route = require("./route");
|
|
51
|
+
var import_template = require("./template");
|
|
14
52
|
class Response {
|
|
15
53
|
constructor(res) {
|
|
16
|
-
_defineProperty(this, "cookies", void 0);
|
|
17
|
-
_defineProperty(this, "res", void 0);
|
|
18
|
-
_defineProperty(this, "_cookie", void 0);
|
|
19
54
|
this.res = res;
|
|
20
|
-
this._cookie =
|
|
55
|
+
this._cookie = import_cookie.default.parse(res.getHeader("set-cookie") || "");
|
|
21
56
|
this.cookies = {
|
|
22
57
|
get: this.getCookie.bind(this),
|
|
23
58
|
set: this.setCookie.bind(this),
|
|
@@ -51,18 +86,16 @@ class Response {
|
|
|
51
86
|
}
|
|
52
87
|
applyCookie() {
|
|
53
88
|
const str = Object.entries(this._cookie).map(([key, value]) => {
|
|
54
|
-
return
|
|
55
|
-
}).join(
|
|
89
|
+
return import_cookie.default.serialize(key, value);
|
|
90
|
+
}).join("; ");
|
|
56
91
|
if (str) {
|
|
57
|
-
this.res.setHeader(
|
|
92
|
+
this.res.setHeader("set-cookie", str);
|
|
58
93
|
} else {
|
|
59
|
-
this.res.removeHeader(
|
|
94
|
+
this.res.removeHeader("set-cookie");
|
|
60
95
|
}
|
|
61
96
|
}
|
|
62
|
-
raw(body, {
|
|
63
|
-
status,
|
|
64
|
-
headers
|
|
65
|
-
}) {
|
|
97
|
+
raw(body, options) {
|
|
98
|
+
const { status, headers = {} } = options || {};
|
|
66
99
|
Object.entries(headers).forEach(([key, value]) => {
|
|
67
100
|
this.res.setHeader(key, value);
|
|
68
101
|
});
|
|
@@ -74,19 +107,13 @@ class Response {
|
|
|
74
107
|
}
|
|
75
108
|
class Request {
|
|
76
109
|
constructor(ctx) {
|
|
77
|
-
|
|
78
|
-
_defineProperty(this, "pathname", void 0);
|
|
79
|
-
_defineProperty(this, "query", void 0);
|
|
80
|
-
_defineProperty(this, "headers", void 0);
|
|
81
|
-
_defineProperty(this, "cookie", void 0);
|
|
82
|
-
_defineProperty(this, "cookies", void 0);
|
|
83
|
-
_defineProperty(this, "_cookie", void 0);
|
|
110
|
+
this.url = ctx.url;
|
|
84
111
|
this.host = ctx.host;
|
|
85
112
|
this.pathname = ctx.path;
|
|
86
113
|
this.query = ctx.query;
|
|
87
114
|
this.headers = ctx.headers;
|
|
88
|
-
this.cookie = ctx.headers.cookie ||
|
|
89
|
-
this._cookie =
|
|
115
|
+
this.cookie = ctx.headers.cookie || "";
|
|
116
|
+
this._cookie = import_cookie.default.parse(this.cookie);
|
|
90
117
|
this.cookies = {
|
|
91
118
|
get: this.getCookie.bind(this)
|
|
92
119
|
};
|
|
@@ -95,10 +122,8 @@ class Request {
|
|
|
95
122
|
return this._cookie[key];
|
|
96
123
|
}
|
|
97
124
|
}
|
|
98
|
-
const base = context => {
|
|
99
|
-
const {
|
|
100
|
-
res
|
|
101
|
-
} = context;
|
|
125
|
+
const base = (context) => {
|
|
126
|
+
const { res } = context;
|
|
102
127
|
return {
|
|
103
128
|
response: new Response(res),
|
|
104
129
|
request: new Request(context),
|
|
@@ -106,25 +131,22 @@ const base = context => {
|
|
|
106
131
|
metrics: context.metrics
|
|
107
132
|
};
|
|
108
133
|
};
|
|
109
|
-
exports.base = base;
|
|
110
134
|
const createAfterMatchContext = (context, entryName) => {
|
|
111
135
|
const baseContext = base(context);
|
|
112
|
-
return
|
|
113
|
-
router: new
|
|
136
|
+
return __spreadProps(__spreadValues({}, baseContext), {
|
|
137
|
+
router: new import_route.RouteAPI(entryName)
|
|
114
138
|
});
|
|
115
139
|
};
|
|
116
|
-
exports.createAfterMatchContext = createAfterMatchContext;
|
|
117
140
|
const createAfterRenderContext = (context, content) => {
|
|
118
141
|
const baseContext = base(context);
|
|
119
|
-
return
|
|
120
|
-
template: new
|
|
142
|
+
return __spreadProps(__spreadValues({}, baseContext), {
|
|
143
|
+
template: new import_template.TemplateAPI(content)
|
|
121
144
|
});
|
|
122
145
|
};
|
|
123
|
-
|
|
124
|
-
const createMiddlewareContext = context => {
|
|
146
|
+
const createMiddlewareContext = (context) => {
|
|
125
147
|
const baseContext = base(context);
|
|
126
|
-
return
|
|
127
|
-
response:
|
|
148
|
+
return __spreadProps(__spreadValues({}, baseContext), {
|
|
149
|
+
response: __spreadProps(__spreadValues({}, baseContext.response), {
|
|
128
150
|
locals: context.res.locals || {}
|
|
129
151
|
}),
|
|
130
152
|
source: {
|
|
@@ -133,4 +155,10 @@ const createMiddlewareContext = context => {
|
|
|
133
155
|
}
|
|
134
156
|
});
|
|
135
157
|
};
|
|
136
|
-
|
|
158
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
159
|
+
0 && (module.exports = {
|
|
160
|
+
base,
|
|
161
|
+
createAfterMatchContext,
|
|
162
|
+
createAfterRenderContext,
|
|
163
|
+
createMiddlewareContext
|
|
164
|
+
});
|
|
@@ -1,18 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var route_exports = {};
|
|
19
|
+
__export(route_exports, {
|
|
20
|
+
RouteAPI: () => RouteAPI
|
|
5
21
|
});
|
|
6
|
-
exports
|
|
7
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
22
|
+
module.exports = __toCommonJS(route_exports);
|
|
8
23
|
class RouteAPI {
|
|
9
24
|
constructor(entryName) {
|
|
10
|
-
_defineProperty(this, "current", void 0);
|
|
11
|
-
_defineProperty(this, "status", void 0);
|
|
12
|
-
_defineProperty(this, "url", void 0);
|
|
13
25
|
this.current = entryName;
|
|
14
26
|
this.status = 200;
|
|
15
|
-
this.url =
|
|
27
|
+
this.url = "";
|
|
16
28
|
}
|
|
17
29
|
redirect(url, status = 302) {
|
|
18
30
|
this.url = url;
|
|
@@ -25,4 +37,7 @@ class RouteAPI {
|
|
|
25
37
|
this.rewrite(entryName);
|
|
26
38
|
}
|
|
27
39
|
}
|
|
28
|
-
|
|
40
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
+
0 && (module.exports = {
|
|
42
|
+
RouteAPI
|
|
43
|
+
});
|
|
@@ -1,24 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var template_exports = {};
|
|
19
|
+
__export(template_exports, {
|
|
20
|
+
TemplateAPI: () => TemplateAPI,
|
|
21
|
+
templateInjectableStream: () => templateInjectableStream
|
|
5
22
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
+
module.exports = __toCommonJS(template_exports);
|
|
24
|
+
var import_stream = require("stream");
|
|
9
25
|
const RegList = {
|
|
10
26
|
before: {
|
|
11
|
-
head:
|
|
12
|
-
body:
|
|
27
|
+
head: "<head>",
|
|
28
|
+
body: "<body>"
|
|
13
29
|
},
|
|
14
30
|
after: {
|
|
15
|
-
head:
|
|
16
|
-
body:
|
|
31
|
+
head: "</head>",
|
|
32
|
+
body: "</body>"
|
|
17
33
|
}
|
|
18
34
|
};
|
|
19
35
|
class TemplateAPI {
|
|
20
36
|
constructor(content) {
|
|
21
|
-
_defineProperty(this, "content", void 0);
|
|
22
37
|
this.content = content;
|
|
23
38
|
}
|
|
24
39
|
get() {
|
|
@@ -28,68 +43,55 @@ class TemplateAPI {
|
|
|
28
43
|
this.content = content;
|
|
29
44
|
}
|
|
30
45
|
prependHead(fragment) {
|
|
31
|
-
const {
|
|
32
|
-
head
|
|
33
|
-
} = RegList.before;
|
|
46
|
+
const { head } = RegList.before;
|
|
34
47
|
return this.replace(head, `${head}${fragment}`);
|
|
35
48
|
}
|
|
36
49
|
appendHead(fragment) {
|
|
37
|
-
const {
|
|
38
|
-
head
|
|
39
|
-
} = RegList.after;
|
|
50
|
+
const { head } = RegList.after;
|
|
40
51
|
return this.replace(head, `${fragment}${head}`);
|
|
41
52
|
}
|
|
42
53
|
prependBody(fragment) {
|
|
43
|
-
const {
|
|
44
|
-
body
|
|
45
|
-
} = RegList.before;
|
|
54
|
+
const { body } = RegList.before;
|
|
46
55
|
return this.replace(body, `${body}${fragment}`);
|
|
47
56
|
}
|
|
48
57
|
appendBody(fragment) {
|
|
49
|
-
const {
|
|
50
|
-
body
|
|
51
|
-
} = RegList.after;
|
|
58
|
+
const { body } = RegList.after;
|
|
52
59
|
return this.replace(body, `${fragment}${body}`);
|
|
53
60
|
}
|
|
54
61
|
replace(reg, text) {
|
|
55
62
|
this.content = this.content.replace(reg, text);
|
|
56
63
|
}
|
|
57
64
|
}
|
|
58
|
-
exports.TemplateAPI = TemplateAPI;
|
|
59
65
|
const templateInjectableStream = ({
|
|
60
66
|
prependHead,
|
|
61
67
|
appendHead,
|
|
62
68
|
prependBody,
|
|
63
69
|
appendBody
|
|
64
|
-
}) => new
|
|
70
|
+
}) => new import_stream.Transform({
|
|
65
71
|
write(chunk, _, callback) {
|
|
66
72
|
let chunk_str = chunk.toString();
|
|
67
73
|
if (prependHead) {
|
|
68
|
-
const {
|
|
69
|
-
head
|
|
70
|
-
} = RegList.before;
|
|
74
|
+
const { head } = RegList.before;
|
|
71
75
|
chunk_str = chunk_str.replace(head, `${head}${prependHead}`);
|
|
72
76
|
}
|
|
73
77
|
if (appendHead) {
|
|
74
|
-
const {
|
|
75
|
-
head
|
|
76
|
-
} = RegList.after;
|
|
78
|
+
const { head } = RegList.after;
|
|
77
79
|
chunk_str = chunk_str.replace(head, `${appendHead}${head}`);
|
|
78
80
|
}
|
|
79
81
|
if (prependBody) {
|
|
80
|
-
const {
|
|
81
|
-
body
|
|
82
|
-
} = RegList.before;
|
|
82
|
+
const { body } = RegList.before;
|
|
83
83
|
chunk_str = chunk_str.replace(body, `${body}${prependBody}`);
|
|
84
84
|
}
|
|
85
85
|
if (appendBody) {
|
|
86
|
-
const {
|
|
87
|
-
body
|
|
88
|
-
} = RegList.after;
|
|
86
|
+
const { body } = RegList.after;
|
|
89
87
|
chunk_str = chunk_str.replace(body, `${appendBody}${body}`);
|
|
90
88
|
}
|
|
91
89
|
this.push(chunk_str);
|
|
92
90
|
callback();
|
|
93
91
|
}
|
|
94
92
|
});
|
|
95
|
-
|
|
93
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
94
|
+
0 && (module.exports = {
|
|
95
|
+
TemplateAPI,
|
|
96
|
+
templateInjectableStream
|
|
97
|
+
});
|