@modern-js/server-core 2.47.1-alpha.0 → 2.48.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.
- package/dist/cjs/index.js +4 -6
- package/dist/cjs/{core/loadPlugins.js → loadPlugins.js} +1 -1
- package/dist/cjs/{core/plugin.js → plugin.js} +3 -1
- package/dist/esm/index.js +2 -3
- package/dist/esm/{core/loadPlugins.js → loadPlugins.js} +1 -1
- package/dist/esm/{core/plugin.js → plugin.js} +3 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/{core/loadPlugins.d.ts → loadPlugins.d.ts} +1 -1
- package/dist/types/{core/plugin.d.ts → plugin.d.ts} +35 -32
- package/package.json +6 -29
- package/dist/cjs/base/adapters/node/bff.js +0 -69
- package/dist/cjs/base/adapters/node/hono.js +0 -62
- package/dist/cjs/base/adapters/node/index.js +0 -32
- package/dist/cjs/base/adapters/node/loadServer.js +0 -56
- package/dist/cjs/base/adapters/node/middlewares/index.js +0 -26
- package/dist/cjs/base/adapters/node/middlewares/mock.js +0 -113
- package/dist/cjs/base/adapters/node/middlewares/serverStatic.js +0 -105
- package/dist/cjs/base/adapters/node/middlewares/templates.js +0 -65
- package/dist/cjs/base/adapters/node/node.js +0 -121
- package/dist/cjs/base/adapters/node/polyfills/index.js +0 -24
- package/dist/cjs/base/adapters/node/polyfills/install.js +0 -57
- package/dist/cjs/base/adapters/node/polyfills/stream.js +0 -159
- package/dist/cjs/base/constants.js +0 -55
- package/dist/cjs/base/index.js +0 -73
- package/dist/cjs/base/middlewares/customServer/base.js +0 -115
- package/dist/cjs/base/middlewares/customServer/context.js +0 -78
- package/dist/cjs/base/middlewares/customServer/index.js +0 -138
- package/dist/cjs/base/middlewares/customServer/routerApi.js +0 -48
- package/dist/cjs/base/middlewares/customServer/template.js +0 -60
- package/dist/cjs/base/middlewares/dataHandler.js +0 -69
- package/dist/cjs/base/middlewares/faviconFallback.js +0 -34
- package/dist/cjs/base/middlewares/index.js +0 -28
- package/dist/cjs/base/middlewares/monitor.js +0 -75
- package/dist/cjs/base/middlewares/renderHandler/index.js +0 -92
- package/dist/cjs/base/middlewares/renderHandler/render.js +0 -90
- package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +0 -43
- package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +0 -173
- package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +0 -183
- package/dist/cjs/base/serverBase.js +0 -167
- package/dist/cjs/base/utils/debug.js +0 -29
- package/dist/cjs/base/utils/entry.js +0 -30
- package/dist/cjs/base/utils/env.js +0 -45
- package/dist/cjs/base/utils/error.js +0 -65
- package/dist/cjs/base/utils/index.js +0 -40
- package/dist/cjs/base/utils/middlewareCollector.js +0 -54
- package/dist/cjs/base/utils/path.js +0 -46
- package/dist/cjs/base/utils/request.js +0 -65
- package/dist/cjs/base/utils/serverConfig.js +0 -71
- package/dist/cjs/base/utils/transformStream.js +0 -38
- package/dist/cjs/base/utils/warmup.js +0 -43
- package/dist/cjs/core/hono.js +0 -16
- package/dist/cjs/core/index.js +0 -24
- package/dist/cjs/core/render.js +0 -16
- package/dist/cjs/core/server.js +0 -22
- package/dist/esm/base/adapters/node/bff.js +0 -45
- package/dist/esm/base/adapters/node/hono.js +0 -37
- package/dist/esm/base/adapters/node/index.js +0 -6
- package/dist/esm/base/adapters/node/loadServer.js +0 -22
- package/dist/esm/base/adapters/node/middlewares/index.js +0 -3
- package/dist/esm/base/adapters/node/middlewares/mock.js +0 -79
- package/dist/esm/base/adapters/node/middlewares/serverStatic.js +0 -71
- package/dist/esm/base/adapters/node/middlewares/templates.js +0 -31
- package/dist/esm/base/adapters/node/node.js +0 -95
- package/dist/esm/base/adapters/node/polyfills/index.js +0 -2
- package/dist/esm/base/adapters/node/polyfills/install.js +0 -33
- package/dist/esm/base/adapters/node/polyfills/stream.js +0 -132
- package/dist/esm/base/constants.js +0 -29
- package/dist/esm/base/index.js +0 -32
- package/dist/esm/base/middlewares/customServer/base.js +0 -91
- package/dist/esm/base/middlewares/customServer/context.js +0 -51
- package/dist/esm/base/middlewares/customServer/index.js +0 -114
- package/dist/esm/base/middlewares/customServer/routerApi.js +0 -24
- package/dist/esm/base/middlewares/customServer/template.js +0 -36
- package/dist/esm/base/middlewares/dataHandler.js +0 -35
- package/dist/esm/base/middlewares/faviconFallback.js +0 -10
- package/dist/esm/base/middlewares/index.js +0 -4
- package/dist/esm/base/middlewares/monitor.js +0 -49
- package/dist/esm/base/middlewares/renderHandler/index.js +0 -67
- package/dist/esm/base/middlewares/renderHandler/render.js +0 -66
- package/dist/esm/base/middlewares/renderHandler/serverTiming.js +0 -19
- package/dist/esm/base/middlewares/renderHandler/ssrCache.js +0 -149
- package/dist/esm/base/middlewares/renderHandler/ssrRender.js +0 -149
- package/dist/esm/base/serverBase.js +0 -143
- package/dist/esm/base/utils/debug.js +0 -5
- package/dist/esm/base/utils/entry.js +0 -6
- package/dist/esm/base/utils/env.js +0 -20
- package/dist/esm/base/utils/error.js +0 -41
- package/dist/esm/base/utils/index.js +0 -10
- package/dist/esm/base/utils/middlewareCollector.js +0 -29
- package/dist/esm/base/utils/path.js +0 -12
- package/dist/esm/base/utils/request.js +0 -38
- package/dist/esm/base/utils/serverConfig.js +0 -35
- package/dist/esm/base/utils/transformStream.js +0 -14
- package/dist/esm/base/utils/warmup.js +0 -9
- package/dist/esm/core/hono.js +0 -0
- package/dist/esm/core/index.js +0 -2
- package/dist/esm/core/render.js +0 -0
- package/dist/esm/core/server.js +0 -1
- package/dist/types/base/adapters/node/bff.d.ts +0 -4
- package/dist/types/base/adapters/node/hono.d.ts +0 -30
- package/dist/types/base/adapters/node/index.d.ts +0 -6
- package/dist/types/base/adapters/node/loadServer.d.ts +0 -3
- package/dist/types/base/adapters/node/middlewares/index.d.ts +0 -3
- package/dist/types/base/adapters/node/middlewares/mock.d.ts +0 -5
- package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +0 -9
- package/dist/types/base/adapters/node/middlewares/templates.d.ts +0 -3
- package/dist/types/base/adapters/node/node.d.ts +0 -12
- package/dist/types/base/adapters/node/polyfills/index.d.ts +0 -2
- package/dist/types/base/adapters/node/polyfills/install.d.ts +0 -1
- package/dist/types/base/adapters/node/polyfills/stream.d.ts +0 -18
- package/dist/types/base/constants.d.ts +0 -23
- package/dist/types/base/index.d.ts +0 -9
- package/dist/types/base/middlewares/customServer/base.d.ts +0 -3
- package/dist/types/base/middlewares/customServer/context.d.ts +0 -7
- package/dist/types/base/middlewares/customServer/index.d.ts +0 -13
- package/dist/types/base/middlewares/customServer/routerApi.d.ts +0 -9
- package/dist/types/base/middlewares/customServer/template.d.ts +0 -11
- package/dist/types/base/middlewares/dataHandler.d.ts +0 -3
- package/dist/types/base/middlewares/faviconFallback.d.ts +0 -2
- package/dist/types/base/middlewares/index.d.ts +0 -4
- package/dist/types/base/middlewares/monitor.d.ts +0 -7
- package/dist/types/base/middlewares/renderHandler/index.d.ts +0 -9
- package/dist/types/base/middlewares/renderHandler/render.d.ts +0 -12
- package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +0 -7
- package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +0 -17
- package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +0 -18
- package/dist/types/base/serverBase.d.ts +0 -49
- package/dist/types/base/utils/debug.d.ts +0 -1
- package/dist/types/base/utils/entry.d.ts +0 -2
- package/dist/types/base/utils/env.d.ts +0 -2
- package/dist/types/base/utils/error.d.ts +0 -1
- package/dist/types/base/utils/index.d.ts +0 -10
- package/dist/types/base/utils/middlewareCollector.d.ts +0 -12
- package/dist/types/base/utils/path.d.ts +0 -3
- package/dist/types/base/utils/request.d.ts +0 -12
- package/dist/types/base/utils/serverConfig.d.ts +0 -14
- package/dist/types/base/utils/transformStream.d.ts +0 -2
- package/dist/types/base/utils/warmup.d.ts +0 -1
- package/dist/types/core/hono.d.ts +0 -1
- package/dist/types/core/index.d.ts +0 -2
- package/dist/types/core/render.d.ts +0 -11
- package/dist/types/core/server.d.ts +0 -71
|
@@ -1,55 +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
|
-
REPLACE_REG: () => REPLACE_REG,
|
|
23
|
-
ServerReportTimings: () => ServerReportTimings
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(constants_exports);
|
|
26
|
-
const AGGRED_DIR = {
|
|
27
|
-
mock: "config/mock",
|
|
28
|
-
server: "server",
|
|
29
|
-
api: "api",
|
|
30
|
-
shared: "shared",
|
|
31
|
-
lambda: "lambda"
|
|
32
|
-
};
|
|
33
|
-
const REPLACE_REG = {
|
|
34
|
-
before: {
|
|
35
|
-
head: "<head[^>]*>",
|
|
36
|
-
body: "<body[^>]*>"
|
|
37
|
-
},
|
|
38
|
-
after: {
|
|
39
|
-
head: "</head>",
|
|
40
|
-
body: "</body>"
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
var ServerReportTimings;
|
|
44
|
-
(function(ServerReportTimings2) {
|
|
45
|
-
ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
|
|
46
|
-
ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
|
|
47
|
-
ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
|
|
48
|
-
ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
|
|
49
|
-
})(ServerReportTimings || (ServerReportTimings = {}));
|
|
50
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
51
|
-
0 && (module.exports = {
|
|
52
|
-
AGGRED_DIR,
|
|
53
|
-
REPLACE_REG,
|
|
54
|
-
ServerReportTimings
|
|
55
|
-
});
|
package/dist/cjs/base/index.js
DELETED
|
@@ -1,73 +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 base_exports = {};
|
|
20
|
-
__export(base_exports, {
|
|
21
|
-
AGGRED_DIR: () => import_constants.AGGRED_DIR,
|
|
22
|
-
bindBFFHandler: () => import_node.bindBFFHandler,
|
|
23
|
-
bindDataHandlers: () => import_middlewares.bindDataHandlers,
|
|
24
|
-
bindRenderHandler: () => import_middlewares.bindRenderHandler,
|
|
25
|
-
connectMid2HonoMid: () => import_node.connectMid2HonoMid,
|
|
26
|
-
createErrorHtml: () => import_utils.createErrorHtml,
|
|
27
|
-
createInjectHtml: () => import_node.createInjectHtml,
|
|
28
|
-
createNodeServer: () => import_node.createNodeServer,
|
|
29
|
-
createServerBase: () => createServerBase,
|
|
30
|
-
createStaticMiddleware: () => import_node.createStaticMiddleware,
|
|
31
|
-
favionFallbackMiddleware: () => import_middlewares.favionFallbackMiddleware,
|
|
32
|
-
getRenderHandler: () => import_middlewares.getRenderHandler,
|
|
33
|
-
httpCallBack2HonoMid: () => import_node.httpCallBack2HonoMid,
|
|
34
|
-
injectLogger: () => import_middlewares.injectLogger,
|
|
35
|
-
injectReporter: () => import_middlewares.injectReporter,
|
|
36
|
-
loadServerEnv: () => import_node.loadServerEnv,
|
|
37
|
-
registerMockHandlers: () => import_node.registerMockHandlers,
|
|
38
|
-
sendResponse: () => import_node.sendResponse
|
|
39
|
-
});
|
|
40
|
-
module.exports = __toCommonJS(base_exports);
|
|
41
|
-
var import_serverBase = require("./serverBase");
|
|
42
|
-
var import_utils = require("./utils");
|
|
43
|
-
var import_constants = require("./constants");
|
|
44
|
-
var import_node = require("./adapters/node");
|
|
45
|
-
var import_middlewares = require("./middlewares");
|
|
46
|
-
function createServerBase(options) {
|
|
47
|
-
if (options == null) {
|
|
48
|
-
throw new Error("can not start server without options");
|
|
49
|
-
}
|
|
50
|
-
const server = new import_serverBase.ServerBase(options);
|
|
51
|
-
return server;
|
|
52
|
-
}
|
|
53
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
-
0 && (module.exports = {
|
|
55
|
-
AGGRED_DIR,
|
|
56
|
-
bindBFFHandler,
|
|
57
|
-
bindDataHandlers,
|
|
58
|
-
bindRenderHandler,
|
|
59
|
-
connectMid2HonoMid,
|
|
60
|
-
createErrorHtml,
|
|
61
|
-
createInjectHtml,
|
|
62
|
-
createNodeServer,
|
|
63
|
-
createServerBase,
|
|
64
|
-
createStaticMiddleware,
|
|
65
|
-
favionFallbackMiddleware,
|
|
66
|
-
getRenderHandler,
|
|
67
|
-
httpCallBack2HonoMid,
|
|
68
|
-
injectLogger,
|
|
69
|
-
injectReporter,
|
|
70
|
-
loadServerEnv,
|
|
71
|
-
registerMockHandlers,
|
|
72
|
-
sendResponse
|
|
73
|
-
});
|
|
@@ -1,115 +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 base_exports = {};
|
|
20
|
-
__export(base_exports, {
|
|
21
|
-
createBaseHookContext: () => createBaseHookContext
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(base_exports);
|
|
24
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
25
|
-
var import_cookie = require("hono/cookie");
|
|
26
|
-
var import_utils = require("../../utils");
|
|
27
|
-
function createBaseHookContext(c, logger, metrics) {
|
|
28
|
-
return {
|
|
29
|
-
request: new BaseHookRequest(c),
|
|
30
|
-
response: new BaseHookResponse(c),
|
|
31
|
-
logger,
|
|
32
|
-
metrics
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
class BaseHookRequest {
|
|
36
|
-
get url() {
|
|
37
|
-
return this.req.url;
|
|
38
|
-
}
|
|
39
|
-
get host() {
|
|
40
|
-
return (0, import_utils.getHost)(this.req.raw);
|
|
41
|
-
}
|
|
42
|
-
get pathname() {
|
|
43
|
-
return this.req.path;
|
|
44
|
-
}
|
|
45
|
-
get query() {
|
|
46
|
-
return this.req.query();
|
|
47
|
-
}
|
|
48
|
-
get headers() {
|
|
49
|
-
return this.req.header();
|
|
50
|
-
}
|
|
51
|
-
get cookies() {
|
|
52
|
-
return {
|
|
53
|
-
// FIXME: ModernRequest Type Error
|
|
54
|
-
get: (key) => {
|
|
55
|
-
return (0, import_cookie.getCookie)(this.c, key);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
get cookie() {
|
|
60
|
-
return this.req.header("cookie");
|
|
61
|
-
}
|
|
62
|
-
constructor(c) {
|
|
63
|
-
(0, import_define_property._)(this, "req", void 0);
|
|
64
|
-
(0, import_define_property._)(this, "c", void 0);
|
|
65
|
-
this.c = c;
|
|
66
|
-
this.req = c.req;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
class BaseHookResponse {
|
|
70
|
-
get(key) {
|
|
71
|
-
return this.c.res.headers.get(key);
|
|
72
|
-
}
|
|
73
|
-
set(key, value) {
|
|
74
|
-
if ([
|
|
75
|
-
"set-cookie",
|
|
76
|
-
"Set-Cookie"
|
|
77
|
-
].includes(key)) {
|
|
78
|
-
this.c.header(key, value.toString(), {
|
|
79
|
-
append: true
|
|
80
|
-
});
|
|
81
|
-
} else {
|
|
82
|
-
this.c.header(key, value.toString());
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
status(code) {
|
|
86
|
-
this.c.status(code);
|
|
87
|
-
}
|
|
88
|
-
get cookies() {
|
|
89
|
-
const setCookie = (key, value) => {
|
|
90
|
-
this.c.header("set-cookie", `${key}=${value}`, {
|
|
91
|
-
append: true
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
const clearCookie = () => {
|
|
95
|
-
this.c.header("set-cookie", void 0);
|
|
96
|
-
};
|
|
97
|
-
return {
|
|
98
|
-
set: setCookie,
|
|
99
|
-
clear: clearCookie
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
raw(body, options) {
|
|
103
|
-
this.c.res = this.c.newResponse(body, options);
|
|
104
|
-
this.private_overrided = true;
|
|
105
|
-
}
|
|
106
|
-
constructor(c) {
|
|
107
|
-
(0, import_define_property._)(this, "private_overrided", false);
|
|
108
|
-
(0, import_define_property._)(this, "c", void 0);
|
|
109
|
-
this.c = c;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
113
|
-
0 && (module.exports = {
|
|
114
|
-
createBaseHookContext
|
|
115
|
-
});
|
|
@@ -1,78 +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
|
-
createAfterMatchCtx: () => createAfterMatchCtx,
|
|
22
|
-
createAfterRenderCtx: () => createAfterRenderCtx,
|
|
23
|
-
createAfterStreamingRenderContext: () => createAfterStreamingRenderContext,
|
|
24
|
-
createCustomMiddlewaresCtx: () => createCustomMiddlewaresCtx
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(context_exports);
|
|
27
|
-
var import_routerApi = require("./routerApi");
|
|
28
|
-
var import_template = require("./template");
|
|
29
|
-
var import_base = require("./base");
|
|
30
|
-
function createAfterMatchCtx(c, entryName, logger, metrics) {
|
|
31
|
-
const baseContext = (0, import_base.createBaseHookContext)(c, logger, metrics);
|
|
32
|
-
return {
|
|
33
|
-
...baseContext,
|
|
34
|
-
router: new import_routerApi.RouterAPI(entryName)
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
async function createAfterRenderCtx(c, logger, metrics) {
|
|
38
|
-
const baseContext = (0, import_base.createBaseHookContext)(c, logger, metrics);
|
|
39
|
-
const resBody = await c.res.text();
|
|
40
|
-
return {
|
|
41
|
-
...baseContext,
|
|
42
|
-
template: new import_template.TemplateApi(resBody)
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function createCustomMiddlewaresCtx(c, logger, metrics) {
|
|
46
|
-
var _c_env_node, _c_env_node1;
|
|
47
|
-
const baseContext = (0, import_base.createBaseHookContext)(c, logger, metrics);
|
|
48
|
-
const reporter = c.get("reporter");
|
|
49
|
-
return {
|
|
50
|
-
...baseContext,
|
|
51
|
-
reporter,
|
|
52
|
-
response: {
|
|
53
|
-
...baseContext.response,
|
|
54
|
-
locals: {}
|
|
55
|
-
},
|
|
56
|
-
source: {
|
|
57
|
-
req: (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req,
|
|
58
|
-
res: (_c_env_node1 = c.env.node) === null || _c_env_node1 === void 0 ? void 0 : _c_env_node1.res
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
function createAfterStreamingRenderContext(c, logger, route, metrics) {
|
|
63
|
-
const baseContext = (0, import_base.createBaseHookContext)(c, logger, metrics);
|
|
64
|
-
return (chunk) => {
|
|
65
|
-
return {
|
|
66
|
-
...baseContext,
|
|
67
|
-
route,
|
|
68
|
-
chunk
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
-
0 && (module.exports = {
|
|
74
|
-
createAfterMatchCtx,
|
|
75
|
-
createAfterRenderCtx,
|
|
76
|
-
createAfterStreamingRenderContext,
|
|
77
|
-
createCustomMiddlewaresCtx
|
|
78
|
-
});
|
|
@@ -1,138 +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 customServer_exports = {};
|
|
20
|
-
__export(customServer_exports, {
|
|
21
|
-
CustomServer: () => CustomServer
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(customServer_exports);
|
|
24
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
25
|
-
var import_time = require("@modern-js/runtime-utils/time");
|
|
26
|
-
var import_utils = require("../../utils");
|
|
27
|
-
var import_constants = require("../../constants");
|
|
28
|
-
var import_context = require("./context");
|
|
29
|
-
const noop = () => {
|
|
30
|
-
};
|
|
31
|
-
class CustomServer {
|
|
32
|
-
getHookMiddleware(entryName, routes) {
|
|
33
|
-
return async (c, next) => {
|
|
34
|
-
const routeInfo = routes.find((route) => route.entryName === entryName);
|
|
35
|
-
const logger = c.get("logger");
|
|
36
|
-
const reporter = c.get("reporter");
|
|
37
|
-
const metrics = c.get("metrics");
|
|
38
|
-
const afterMatchCtx = (0, import_context.createAfterMatchCtx)(c, entryName, logger, metrics);
|
|
39
|
-
const getCost = (0, import_time.time)();
|
|
40
|
-
await this.runner.afterMatch(afterMatchCtx, {
|
|
41
|
-
onLast: noop
|
|
42
|
-
});
|
|
43
|
-
const cost = getCost();
|
|
44
|
-
cost && reporter.reportTiming(import_constants.ServerReportTimings.SERVER_HOOK_AFTER_MATCH, cost);
|
|
45
|
-
const {
|
|
46
|
-
// current,
|
|
47
|
-
url,
|
|
48
|
-
status
|
|
49
|
-
} = afterMatchCtx.router;
|
|
50
|
-
if (url) {
|
|
51
|
-
return c.redirect(url, status);
|
|
52
|
-
}
|
|
53
|
-
const { current } = afterMatchCtx.router;
|
|
54
|
-
if (current !== entryName) {
|
|
55
|
-
const rewriteRoute = routes.find((route) => route.entryName === current);
|
|
56
|
-
if (rewriteRoute) {
|
|
57
|
-
return this.serverBase.request(rewriteRoute.urlPath);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (c.finalized) {
|
|
61
|
-
return void 0;
|
|
62
|
-
}
|
|
63
|
-
await next();
|
|
64
|
-
if (c.finalized && !c.res.body) {
|
|
65
|
-
return void 0;
|
|
66
|
-
}
|
|
67
|
-
if (routeInfo.isStream) {
|
|
68
|
-
var _c_res_body;
|
|
69
|
-
const afterStreamingRenderContext = (0, import_context.createAfterStreamingRenderContext)(c, logger, routeInfo, metrics);
|
|
70
|
-
const injectStream = (0, import_utils.createTransformStream)((chunk) => {
|
|
71
|
-
const context = afterStreamingRenderContext(chunk);
|
|
72
|
-
return this.runner.afterStreamingRender(context, {
|
|
73
|
-
onLast: ({ chunk: chunk2 }) => chunk2
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
(_c_res_body = c.res.body) === null || _c_res_body === void 0 ? void 0 : _c_res_body.pipeThrough(injectStream);
|
|
77
|
-
const { headers, status: status2, statusText } = c.res;
|
|
78
|
-
c.res = c.body(injectStream.readable, {
|
|
79
|
-
headers,
|
|
80
|
-
status: status2,
|
|
81
|
-
statusText
|
|
82
|
-
});
|
|
83
|
-
} else {
|
|
84
|
-
const afterRenderCtx = await (0, import_context.createAfterRenderCtx)(c, logger, metrics);
|
|
85
|
-
const getCost2 = (0, import_time.time)();
|
|
86
|
-
await this.runner.afterRender(afterRenderCtx, {
|
|
87
|
-
onLast: noop
|
|
88
|
-
});
|
|
89
|
-
const cost2 = getCost2();
|
|
90
|
-
cost2 && reporter.reportTiming(import_constants.ServerReportTimings.SERVER_HOOK_AFTER_RENDER, cost2);
|
|
91
|
-
if (afterRenderCtx.response.private_overrided) {
|
|
92
|
-
return void 0;
|
|
93
|
-
}
|
|
94
|
-
const newBody = afterRenderCtx.template.get();
|
|
95
|
-
c.res = c.body(newBody);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
getServerMiddleware() {
|
|
100
|
-
return async (c, next) => {
|
|
101
|
-
const serverMiddleware = await this.serverMiddlewarePromise;
|
|
102
|
-
if (!serverMiddleware) {
|
|
103
|
-
return next();
|
|
104
|
-
}
|
|
105
|
-
const reporter = c.get("reporter");
|
|
106
|
-
const logger = c.get("logger");
|
|
107
|
-
const metrics = c.get("metrics");
|
|
108
|
-
const customMiddlewareCtx = (0, import_context.createCustomMiddlewaresCtx)(c, logger, metrics);
|
|
109
|
-
const getCost = (0, import_time.time)();
|
|
110
|
-
await serverMiddleware(customMiddlewareCtx);
|
|
111
|
-
const cost = getCost();
|
|
112
|
-
cost && reporter.reportTiming(import_constants.ServerReportTimings.SERVER_MIDDLEWARE, cost);
|
|
113
|
-
if (!c.finalized) {
|
|
114
|
-
return next();
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
constructor(runner, serverBase, pwd) {
|
|
119
|
-
(0, import_define_property._)(this, "runner", void 0);
|
|
120
|
-
(0, import_define_property._)(this, "serverMiddlewarePromise", void 0);
|
|
121
|
-
(0, import_define_property._)(this, "serverBase", void 0);
|
|
122
|
-
this.runner = runner;
|
|
123
|
-
this.serverBase = serverBase;
|
|
124
|
-
const webExtension = [];
|
|
125
|
-
this.serverMiddlewarePromise = runner.prepareWebServer({
|
|
126
|
-
pwd,
|
|
127
|
-
config: {
|
|
128
|
-
middleware: webExtension
|
|
129
|
-
}
|
|
130
|
-
}, {
|
|
131
|
-
onLast: () => null
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
136
|
-
0 && (module.exports = {
|
|
137
|
-
CustomServer
|
|
138
|
-
});
|
|
@@ -1,48 +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 routerApi_exports = {};
|
|
20
|
-
__export(routerApi_exports, {
|
|
21
|
-
RouterAPI: () => RouterAPI
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(routerApi_exports);
|
|
24
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
25
|
-
class RouterAPI {
|
|
26
|
-
redirect(url, status = 302) {
|
|
27
|
-
this.url = url;
|
|
28
|
-
this.status = status;
|
|
29
|
-
}
|
|
30
|
-
rewrite(entryName) {
|
|
31
|
-
this.current = entryName;
|
|
32
|
-
}
|
|
33
|
-
use(entryName) {
|
|
34
|
-
this.rewrite(entryName);
|
|
35
|
-
}
|
|
36
|
-
constructor(entryName) {
|
|
37
|
-
(0, import_define_property._)(this, "current", void 0);
|
|
38
|
-
(0, import_define_property._)(this, "status", void 0);
|
|
39
|
-
(0, import_define_property._)(this, "url", void 0);
|
|
40
|
-
this.current = entryName;
|
|
41
|
-
this.status = 200;
|
|
42
|
-
this.url = "";
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
-
0 && (module.exports = {
|
|
47
|
-
RouterAPI
|
|
48
|
-
});
|
|
@@ -1,60 +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 template_exports = {};
|
|
20
|
-
__export(template_exports, {
|
|
21
|
-
TemplateApi: () => TemplateApi
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(template_exports);
|
|
24
|
-
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
25
|
-
var import_constants = require("../../constants");
|
|
26
|
-
class TemplateApi {
|
|
27
|
-
set(content) {
|
|
28
|
-
this.body = content;
|
|
29
|
-
}
|
|
30
|
-
get() {
|
|
31
|
-
return this.body;
|
|
32
|
-
}
|
|
33
|
-
prependHead(fragment) {
|
|
34
|
-
const { head } = import_constants.REPLACE_REG.before;
|
|
35
|
-
this.replaceBody(new RegExp(head), (beforeHead) => `${beforeHead}${fragment}`);
|
|
36
|
-
}
|
|
37
|
-
appendHead(fragment) {
|
|
38
|
-
const { head } = import_constants.REPLACE_REG.after;
|
|
39
|
-
this.replaceBody(head, () => `${fragment}${head}`);
|
|
40
|
-
}
|
|
41
|
-
prependBody(fragment) {
|
|
42
|
-
const { body } = import_constants.REPLACE_REG.before;
|
|
43
|
-
this.replaceBody(new RegExp(body), (beforeBody) => `${beforeBody}${fragment}`);
|
|
44
|
-
}
|
|
45
|
-
appendBody(fragment) {
|
|
46
|
-
const { body } = import_constants.REPLACE_REG.after;
|
|
47
|
-
this.replaceBody(body, () => `${fragment}${body}`);
|
|
48
|
-
}
|
|
49
|
-
replaceBody(searchValue, replaceCb) {
|
|
50
|
-
this.body = this.body.replace(searchValue, replaceCb);
|
|
51
|
-
}
|
|
52
|
-
constructor(body) {
|
|
53
|
-
(0, import_define_property._)(this, "body", void 0);
|
|
54
|
-
this.body = body;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
58
|
-
0 && (module.exports = {
|
|
59
|
-
TemplateApi
|
|
60
|
-
});
|
|
@@ -1,69 +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 dataHandler_exports = {};
|
|
30
|
-
__export(dataHandler_exports, {
|
|
31
|
-
bindDataHandlers: () => bindDataHandlers
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(dataHandler_exports);
|
|
34
|
-
var import_utils = require("@modern-js/utils");
|
|
35
|
-
var import_utils2 = require("../utils");
|
|
36
|
-
const bindDataHandlers = async (server, routes, distDir) => {
|
|
37
|
-
const path = await (0, import_utils2.getPathModule)();
|
|
38
|
-
routes.sort(import_utils2.sortRoutes).forEach((route) => {
|
|
39
|
-
const bundlePath = path.join(distDir, import_utils.SERVER_BUNDLE_DIRECTORY, `${route.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
40
|
-
server.all(`${route.urlPath === "/" ? "*" : `${route.urlPath}/*`}`, createDataHandler(routes, bundlePath));
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
const createDataHandler = (serverRoutes, buildModulePath) => {
|
|
44
|
-
return async (context, next) => {
|
|
45
|
-
let buildModule;
|
|
46
|
-
try {
|
|
47
|
-
buildModule = await Promise.resolve().then(() => __toESM(require(buildModulePath)));
|
|
48
|
-
} catch (_) {
|
|
49
|
-
return next();
|
|
50
|
-
}
|
|
51
|
-
const { routes, handleRequest } = buildModule;
|
|
52
|
-
const logger = context.get("logger");
|
|
53
|
-
const reporter = context.get("reporter");
|
|
54
|
-
const response = await handleRequest({
|
|
55
|
-
request: context.req.raw,
|
|
56
|
-
serverRoutes,
|
|
57
|
-
context: {
|
|
58
|
-
logger,
|
|
59
|
-
reporter
|
|
60
|
-
},
|
|
61
|
-
routes
|
|
62
|
-
});
|
|
63
|
-
return response ? response : next();
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
67
|
-
0 && (module.exports = {
|
|
68
|
-
bindDataHandlers
|
|
69
|
-
});
|
|
@@ -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 faviconFallback_exports = {};
|
|
20
|
-
__export(faviconFallback_exports, {
|
|
21
|
-
favionFallbackMiddleware: () => favionFallbackMiddleware
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(faviconFallback_exports);
|
|
24
|
-
const favionFallbackMiddleware = async (c, next) => {
|
|
25
|
-
if (c.req.path === "/favicon.ico") {
|
|
26
|
-
return c.body(null, 204);
|
|
27
|
-
} else {
|
|
28
|
-
return next();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
-
0 && (module.exports = {
|
|
33
|
-
favionFallbackMiddleware
|
|
34
|
-
});
|