@bleedingdev/modern-js-server-core 3.2.0-ultramodern.99 → 3.4.0-ultramodern.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/adapters/node/helper/index.js +9 -5
- package/dist/cjs/adapters/node/helper/loadCache.js +9 -5
- package/dist/cjs/adapters/node/helper/loadConfig.js +9 -5
- package/dist/cjs/adapters/node/helper/loadEnv.js +9 -5
- package/dist/cjs/adapters/node/helper/loadPlugin.js +9 -5
- package/dist/cjs/adapters/node/helper/utils.js +12 -8
- package/dist/cjs/adapters/node/hono.js +9 -5
- package/dist/cjs/adapters/node/index.js +9 -5
- package/dist/cjs/adapters/node/node.js +9 -5
- package/dist/cjs/adapters/node/plugins/index.js +9 -5
- package/dist/cjs/adapters/node/plugins/nodeServer.js +12 -8
- package/dist/cjs/adapters/node/plugins/resource.js +10 -11
- package/dist/cjs/adapters/node/plugins/static.js +20 -190
- package/dist/cjs/adapters/node/plugins/staticModuleFederation.js +165 -0
- package/dist/cjs/adapters/node/plugins/staticPrecompressed.js +135 -0
- package/dist/cjs/constants.js +18 -13
- package/dist/cjs/context.js +9 -5
- package/dist/cjs/helper.js +12 -8
- package/dist/cjs/hono.js +9 -5
- package/dist/cjs/index.js +60 -32
- package/dist/cjs/plugins/compat/hooks.js +14 -10
- package/dist/cjs/plugins/compat/index.js +9 -5
- package/dist/cjs/plugins/default.js +9 -7
- package/dist/cjs/plugins/favicon.js +12 -8
- package/dist/cjs/plugins/index.js +11 -88
- package/dist/cjs/plugins/log.js +9 -5
- package/dist/cjs/plugins/middlewares.js +12 -8
- package/dist/cjs/plugins/monitors.js +9 -5
- package/dist/cjs/plugins/processedBy.js +12 -8
- package/dist/cjs/plugins/render/csrRscRender.js +9 -5
- package/dist/cjs/plugins/render/dataHandler.js +9 -5
- package/dist/cjs/plugins/render/index.js +12 -8
- package/dist/cjs/plugins/render/inject.js +12 -7
- package/dist/cjs/plugins/render/render.js +14 -6
- package/dist/cjs/plugins/render/renderRscHandler.js +9 -5
- package/dist/cjs/plugins/render/serverActionHandler.js +9 -5
- package/dist/cjs/plugins/render/ssrCache.js +9 -5
- package/dist/cjs/plugins/render/ssrRender.js +9 -5
- package/dist/cjs/plugins/render/utils.js +12 -8
- package/dist/cjs/plugins/route.js +9 -5
- package/dist/cjs/serverBase.js +9 -5
- package/dist/cjs/types/config/bffRuntime.js +18 -0
- package/dist/cjs/types/config/index.js +9 -5
- package/dist/cjs/types/config/serverTelemetry.js +18 -0
- package/dist/cjs/types/index.js +9 -5
- package/dist/cjs/types/plugins/index.js +9 -5
- package/dist/cjs/utils/entry.js +13 -9
- package/dist/cjs/utils/env.js +13 -9
- package/dist/cjs/utils/error.js +71 -5
- package/dist/cjs/utils/index.js +9 -5
- package/dist/cjs/utils/middlewareCollector.js +13 -9
- package/dist/cjs/utils/publicDir.js +9 -5
- package/dist/cjs/utils/request.js +16 -12
- package/dist/cjs/utils/serverConfig.js +9 -5
- package/dist/cjs/utils/storage.js +9 -5
- package/dist/cjs/utils/transformStream.js +13 -9
- package/dist/cjs/utils/warmup.js +12 -8
- package/dist/esm/adapters/node/plugins/resource.mjs +1 -6
- package/dist/esm/adapters/node/plugins/static.mjs +7 -181
- package/dist/esm/adapters/node/plugins/staticModuleFederation.mjs +96 -0
- package/dist/esm/adapters/node/plugins/staticPrecompressed.mjs +91 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/plugins/default.mjs +0 -2
- package/dist/esm/plugins/index.mjs +0 -3
- package/dist/esm/plugins/render/inject.mjs +3 -2
- package/dist/esm/plugins/render/render.mjs +7 -3
- package/dist/esm/types/config/bffRuntime.mjs +0 -0
- package/dist/esm/types/config/serverTelemetry.mjs +0 -0
- package/dist/esm/utils/error.mjs +54 -1
- package/dist/esm-node/adapters/node/plugins/resource.mjs +1 -6
- package/dist/esm-node/adapters/node/plugins/static.mjs +7 -181
- package/dist/esm-node/adapters/node/plugins/staticModuleFederation.mjs +97 -0
- package/dist/esm-node/adapters/node/plugins/staticPrecompressed.mjs +92 -0
- package/dist/esm-node/index.mjs +1 -1
- package/dist/esm-node/plugins/default.mjs +0 -2
- package/dist/esm-node/plugins/index.mjs +0 -3
- package/dist/esm-node/plugins/render/inject.mjs +3 -2
- package/dist/esm-node/plugins/render/render.mjs +5 -1
- package/dist/esm-node/types/config/bffRuntime.mjs +1 -0
- package/dist/esm-node/types/config/serverTelemetry.mjs +1 -0
- package/dist/esm-node/utils/error.mjs +54 -1
- package/dist/types/adapters/node/plugins/staticModuleFederation.d.ts +13 -0
- package/dist/types/adapters/node/plugins/staticPrecompressed.d.ts +13 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/plugins/index.d.ts +0 -3
- package/dist/types/types/config/bff.d.ts +2 -97
- package/dist/types/types/config/bffRuntime.d.ts +105 -0
- package/dist/types/types/config/server.d.ts +3 -337
- package/dist/types/types/config/serverTelemetry.d.ts +319 -0
- package/dist/types/types/plugins/base.d.ts +7 -2
- package/dist/types/types/plugins/index.d.ts +1 -1
- package/dist/types/utils/error.d.ts +16 -0
- package/package.json +12 -12
- package/dist/cjs/adapters/node/plugins/moduleFederationCss.js +0 -172
- package/dist/cjs/plugins/contractGateAutopilot.js +0 -158
- package/dist/cjs/plugins/contractGateSnapshotStore.js +0 -239
- package/dist/cjs/plugins/mfCache.js +0 -78
- package/dist/cjs/plugins/telemetry.js +0 -1283
- package/dist/esm/adapters/node/plugins/moduleFederationCss.mjs +0 -125
- package/dist/esm/plugins/contractGateAutopilot.mjs +0 -124
- package/dist/esm/plugins/contractGateSnapshotStore.mjs +0 -180
- package/dist/esm/plugins/mfCache.mjs +0 -35
- package/dist/esm/plugins/telemetry.mjs +0 -1195
- package/dist/esm-node/adapters/node/plugins/moduleFederationCss.mjs +0 -126
- package/dist/esm-node/plugins/contractGateAutopilot.mjs +0 -125
- package/dist/esm-node/plugins/contractGateSnapshotStore.mjs +0 -182
- package/dist/esm-node/plugins/mfCache.mjs +0 -36
- package/dist/esm-node/plugins/telemetry.mjs +0 -1196
- package/dist/types/adapters/node/plugins/moduleFederationCss.d.ts +0 -33
- package/dist/types/plugins/contractGateAutopilot.d.ts +0 -35
- package/dist/types/plugins/contractGateSnapshotStore.d.ts +0 -57
- package/dist/types/plugins/mfCache.d.ts +0 -12
- package/dist/types/plugins/telemetry.d.ts +0 -309
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -23,13 +27,13 @@ var __webpack_require__ = {};
|
|
|
23
27
|
})();
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
isResFinalized: ()=>isResFinalized
|
|
28
|
-
});
|
|
29
30
|
const isResFinalized = (res)=>{
|
|
30
31
|
const response = res;
|
|
31
32
|
return Boolean(response.headersSent) || Boolean(response._modernBodyPiped) || Boolean(response.writableEnded) || Boolean(response.finished) || response.socket?.writable === false;
|
|
32
33
|
};
|
|
34
|
+
__webpack_require__.d(__webpack_exports__, {}, {
|
|
35
|
+
isResFinalized: isResFinalized
|
|
36
|
+
});
|
|
33
37
|
exports.isResFinalized = __webpack_exports__.isResFinalized;
|
|
34
38
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
35
39
|
"isResFinalized"
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -30,11 +30,15 @@ function __webpack_require__(moduleId) {
|
|
|
30
30
|
};
|
|
31
31
|
})();
|
|
32
32
|
(()=>{
|
|
33
|
-
__webpack_require__.d = (exports1,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
34
|
+
var define = (defs, kind)=>{
|
|
35
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
[kind]: defs[key]
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
define(getters, "get");
|
|
41
|
+
define(values, "value");
|
|
38
42
|
};
|
|
39
43
|
})();
|
|
40
44
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -23,9 +27,6 @@ var __webpack_require__ = {};
|
|
|
23
27
|
})();
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
injectNodeSeverPlugin: ()=>injectNodeSeverPlugin
|
|
28
|
-
});
|
|
29
30
|
const injectNodeSeverPlugin = ({ nodeServer })=>({
|
|
30
31
|
name: '@modern-js/plugin-inject-node-server',
|
|
31
32
|
setup (api) {
|
|
@@ -34,6 +35,9 @@ const injectNodeSeverPlugin = ({ nodeServer })=>({
|
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
37
|
});
|
|
38
|
+
__webpack_require__.d(__webpack_exports__, {}, {
|
|
39
|
+
injectNodeSeverPlugin: injectNodeSeverPlugin
|
|
40
|
+
});
|
|
37
41
|
exports.injectNodeSeverPlugin = __webpack_exports__.injectNodeSeverPlugin;
|
|
38
42
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
39
43
|
"injectNodeSeverPlugin"
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -48,7 +52,6 @@ const utils_namespaceObject = require("@modern-js/utils");
|
|
|
48
52
|
const external_path_namespaceObject = require("path");
|
|
49
53
|
var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
|
|
50
54
|
const index_js_namespaceObject = require("../../../utils/index.js");
|
|
51
|
-
const external_moduleFederationCss_js_namespaceObject = require("./moduleFederationCss.js");
|
|
52
55
|
async function getHtmlTemplates(pwd, routes) {
|
|
53
56
|
const htmlRoutes = routes.filter((route)=>route.entryName);
|
|
54
57
|
const htmls = await Promise.all(htmlRoutes.map(async (route)=>{
|
|
@@ -103,16 +106,12 @@ async function getServerManifest(pwd, routes, monitors) {
|
|
|
103
106
|
const routeManifest = await (0, utils_namespaceObject.compatibleRequire)(routesManifestUri).catch((_)=>({}));
|
|
104
107
|
const nestedRoutesJsonPath = external_path_default().join(pwd, utils_namespaceObject.NESTED_ROUTE_SPEC_FILE);
|
|
105
108
|
const nestedRoutesJson = await (0, utils_namespaceObject.compatibleRequire)(nestedRoutesJsonPath).catch((_)=>({}));
|
|
106
|
-
const moduleFederationCssAssets = await (0, external_moduleFederationCss_js_namespaceObject.collectDirectRemoteModuleFederationCss)(pwd, {
|
|
107
|
-
monitors
|
|
108
|
-
});
|
|
109
109
|
return {
|
|
110
110
|
loaderBundles,
|
|
111
111
|
renderBundles,
|
|
112
112
|
loadableStats,
|
|
113
113
|
routeManifest,
|
|
114
|
-
nestedRoutesJson
|
|
115
|
-
moduleFederationCssAssets
|
|
114
|
+
nestedRoutesJson
|
|
116
115
|
};
|
|
117
116
|
}
|
|
118
117
|
function injectServerManifest(pwd, routes, manifestPromise) {
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -44,6 +48,8 @@ const external_path_namespaceObject = require("path");
|
|
|
44
48
|
var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
|
|
45
49
|
const index_js_namespaceObject = require("../../../utils/index.js");
|
|
46
50
|
const publicDir_js_namespaceObject = require("../../../utils/publicDir.js");
|
|
51
|
+
const external_staticModuleFederation_js_namespaceObject = require("./staticModuleFederation.js");
|
|
52
|
+
const external_staticPrecompressed_js_namespaceObject = require("./staticPrecompressed.js");
|
|
47
53
|
const serverStaticPlugin = ()=>({
|
|
48
54
|
name: '@modern-js/plugin-server-static',
|
|
49
55
|
setup (api) {
|
|
@@ -64,98 +70,13 @@ const serverStaticPlugin = ()=>({
|
|
|
64
70
|
});
|
|
65
71
|
}
|
|
66
72
|
});
|
|
67
|
-
const PRE_COMPRESSED_ASSET_EXTENSIONS = {
|
|
68
|
-
br: '.br',
|
|
69
|
-
gzip: '.gz'
|
|
70
|
-
};
|
|
71
|
-
const PRE_COMPRESSED_SUPPORTED_ENCODINGS = [
|
|
72
|
-
'br',
|
|
73
|
-
'gzip'
|
|
74
|
-
];
|
|
75
|
-
const parseAcceptEncoding = (value)=>value.split(',').map((item)=>item.trim()).filter(Boolean).map((item)=>{
|
|
76
|
-
const [rawName, ...params] = item.split(';');
|
|
77
|
-
const name = rawName.trim().toLowerCase();
|
|
78
|
-
let q = 1;
|
|
79
|
-
for (const param of params){
|
|
80
|
-
const [key, rawValue] = param.split('=').map((v)=>v.trim());
|
|
81
|
-
if ('q' !== key.toLowerCase() || null == rawValue) continue;
|
|
82
|
-
const parsedQ = Number(rawValue);
|
|
83
|
-
if (!Number.isNaN(parsedQ)) q = Math.max(0, Math.min(parsedQ, 1));
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
name,
|
|
87
|
-
q
|
|
88
|
-
};
|
|
89
|
-
});
|
|
90
|
-
const getAcceptedEncodings = (value)=>{
|
|
91
|
-
if (!value) return [];
|
|
92
|
-
const parsed = parseAcceptEncoding(value);
|
|
93
|
-
const qualityByEncoding = new Map();
|
|
94
|
-
let wildcardQuality;
|
|
95
|
-
for (const { name, q } of parsed){
|
|
96
|
-
if ('*' === name) {
|
|
97
|
-
wildcardQuality = q;
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
qualityByEncoding.set(name, q);
|
|
101
|
-
}
|
|
102
|
-
const getQuality = (encoding)=>{
|
|
103
|
-
const explicit = qualityByEncoding.get(encoding);
|
|
104
|
-
if (void 0 !== explicit) return explicit;
|
|
105
|
-
return wildcardQuality ?? 0;
|
|
106
|
-
};
|
|
107
|
-
return PRE_COMPRESSED_SUPPORTED_ENCODINGS.map((encoding)=>({
|
|
108
|
-
encoding,
|
|
109
|
-
quality: getQuality(encoding)
|
|
110
|
-
})).filter((item)=>item.quality > 0).sort((a, b)=>b.quality - a.quality).map((item)=>item.encoding);
|
|
111
|
-
};
|
|
112
|
-
const appendVaryHeader = (c, value)=>{
|
|
113
|
-
const current = c.res.headers.get('Vary');
|
|
114
|
-
if (!current) return void c.header('Vary', value);
|
|
115
|
-
const values = current.split(',').map((item)=>item.trim().toLowerCase()).filter(Boolean);
|
|
116
|
-
if (!values.includes(value.toLowerCase())) c.header('Vary', `${current}, ${value}`);
|
|
117
|
-
};
|
|
118
|
-
const resolvePreCompressedAsset = async (c, filepath)=>{
|
|
119
|
-
const brPath = `${filepath}${PRE_COMPRESSED_ASSET_EXTENSIONS.br}`;
|
|
120
|
-
const gzipPath = `${filepath}${PRE_COMPRESSED_ASSET_EXTENSIONS.gzip}`;
|
|
121
|
-
const [hasBr, hasGzip] = await Promise.all([
|
|
122
|
-
utils_namespaceObject.fs.pathExists(brPath),
|
|
123
|
-
utils_namespaceObject.fs.pathExists(gzipPath)
|
|
124
|
-
]);
|
|
125
|
-
const hasVariant = hasBr || hasGzip;
|
|
126
|
-
if (!hasVariant) return {
|
|
127
|
-
selected: null,
|
|
128
|
-
hasVariant: false
|
|
129
|
-
};
|
|
130
|
-
const acceptedEncodings = getAcceptedEncodings(c.req.header('accept-encoding'));
|
|
131
|
-
for (const encoding of acceptedEncodings){
|
|
132
|
-
if ('br' === encoding && hasBr) return {
|
|
133
|
-
selected: {
|
|
134
|
-
filepath: brPath,
|
|
135
|
-
encoding
|
|
136
|
-
},
|
|
137
|
-
hasVariant: true
|
|
138
|
-
};
|
|
139
|
-
if ('gzip' === encoding && hasGzip) return {
|
|
140
|
-
selected: {
|
|
141
|
-
filepath: gzipPath,
|
|
142
|
-
encoding
|
|
143
|
-
},
|
|
144
|
-
hasVariant: true
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
return {
|
|
148
|
-
selected: null,
|
|
149
|
-
hasVariant: true
|
|
150
|
-
};
|
|
151
|
-
};
|
|
152
73
|
function createPublicMiddleware({ pwd, routes }) {
|
|
153
74
|
return async (c, next)=>{
|
|
154
75
|
const route = matchPublicRoute(c.req, routes);
|
|
155
76
|
if (route) {
|
|
156
77
|
const { entryPath } = route;
|
|
157
78
|
const originFilename = external_path_default().join(pwd, entryPath);
|
|
158
|
-
const preCompressedAsset = await resolvePreCompressedAsset(c, originFilename);
|
|
79
|
+
const preCompressedAsset = await (0, external_staticPrecompressed_js_namespaceObject.resolvePreCompressedAsset)(c, originFilename);
|
|
159
80
|
const filename = preCompressedAsset.selected?.filepath ?? originFilename;
|
|
160
81
|
const data = await fileReader_namespaceObject.fileReader.readFile(filename, 'buffer');
|
|
161
82
|
const mimeType = (0, mime_namespaceObject.getMimeType)(originFilename);
|
|
@@ -165,8 +86,7 @@ function createPublicMiddleware({ pwd, routes }) {
|
|
|
165
86
|
Object.entries(route.responseHeaders || {}).forEach(([k, v])=>{
|
|
166
87
|
c.header(k, v);
|
|
167
88
|
});
|
|
168
|
-
|
|
169
|
-
if (preCompressedAsset.selected) c.header('Content-Encoding', preCompressedAsset.selected.encoding);
|
|
89
|
+
(0, external_staticPrecompressed_js_namespaceObject.applyPreCompressedAssetHeaders)(c, preCompressedAsset);
|
|
170
90
|
c.header('Content-Length', String(data.byteLength));
|
|
171
91
|
return c.body(body, 200);
|
|
172
92
|
}
|
|
@@ -186,91 +106,6 @@ const extractPathname = (url)=>{
|
|
|
186
106
|
return url;
|
|
187
107
|
}
|
|
188
108
|
};
|
|
189
|
-
const MODULE_FEDERATION_MANIFEST_FILE = 'mf-manifest.json';
|
|
190
|
-
const MODULE_FEDERATION_OPTIONAL_FILES = [
|
|
191
|
-
'mf-stats.json'
|
|
192
|
-
];
|
|
193
|
-
const trimLeadingSlash = (value)=>value.replace(/^\/+/, '');
|
|
194
|
-
const joinModuleFederationAssetPath = (assetPath, assetName)=>{
|
|
195
|
-
if (!assetName) return '';
|
|
196
|
-
return trimLeadingSlash(external_path_default().posix.join(assetPath || '', assetName));
|
|
197
|
-
};
|
|
198
|
-
const appendModuleFederationAsset = (set, assetPath)=>{
|
|
199
|
-
if (!assetPath) return;
|
|
200
|
-
set.add(trimLeadingSlash(assetPath));
|
|
201
|
-
};
|
|
202
|
-
const appendModuleFederationAssets = (set, assets)=>{
|
|
203
|
-
assets?.js?.sync?.forEach((asset)=>appendModuleFederationAsset(set, asset));
|
|
204
|
-
assets?.js?.async?.forEach((asset)=>appendModuleFederationAsset(set, asset));
|
|
205
|
-
assets?.css?.sync?.forEach((asset)=>appendModuleFederationAsset(set, asset));
|
|
206
|
-
assets?.css?.async?.forEach((asset)=>appendModuleFederationAsset(set, asset));
|
|
207
|
-
};
|
|
208
|
-
const hasAbsoluteProtocol = (value)=>/^https?:\/\//i.test(value) || value.startsWith('//');
|
|
209
|
-
const ensureLeadingSlash = (value)=>{
|
|
210
|
-
if ('' === value) return '/';
|
|
211
|
-
return value.startsWith('/') ? value : `/${value}`;
|
|
212
|
-
};
|
|
213
|
-
const ensureTrailingSlash = (value)=>value.endsWith('/') ? value : `${value}/`;
|
|
214
|
-
const patchModuleFederationManifestPublicPath = (c, manifestBuffer, pathPrefix)=>{
|
|
215
|
-
try {
|
|
216
|
-
const manifest = JSON.parse(manifestBuffer.toString('utf-8'));
|
|
217
|
-
const publicPath = manifest.metaData?.publicPath;
|
|
218
|
-
if (!publicPath || hasAbsoluteProtocol(publicPath)) return manifestBuffer;
|
|
219
|
-
const requestURL = new URL(c.req.url);
|
|
220
|
-
const prefixPath = ensureTrailingSlash(ensureLeadingSlash(pathPrefix || '/'));
|
|
221
|
-
manifest.metaData = {
|
|
222
|
-
...manifest.metaData,
|
|
223
|
-
publicPath: `${requestURL.origin}${prefixPath}`
|
|
224
|
-
};
|
|
225
|
-
return Buffer.from(JSON.stringify(manifest), 'utf-8');
|
|
226
|
-
} catch {
|
|
227
|
-
return manifestBuffer;
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
const patchModuleFederationRemoteEntryPublicPath = (c, remoteEntryBuffer, pathPrefix)=>{
|
|
231
|
-
const requestURL = new URL(c.req.url);
|
|
232
|
-
const prefixPath = ensureTrailingSlash(ensureLeadingSlash(pathPrefix || '/'));
|
|
233
|
-
const publicPath = `${requestURL.origin}${prefixPath}`;
|
|
234
|
-
const source = remoteEntryBuffer.toString('utf-8');
|
|
235
|
-
const patched = source.replace(/__webpack_require__\.p\s*=\s*(['"`])[^'"`]*\1;/, `__webpack_require__.p = ${JSON.stringify(publicPath)};`).replace(/__rspack_require__\.p\s*=\s*(['"`])[^'"`]*\1;/, `__rspack_require__.p = ${JSON.stringify(publicPath)};`);
|
|
236
|
-
if (patched === source) return remoteEntryBuffer;
|
|
237
|
-
return Buffer.from(patched, 'utf-8');
|
|
238
|
-
};
|
|
239
|
-
const getModuleFederationAssetList = async (pwd)=>{
|
|
240
|
-
const assets = new Set();
|
|
241
|
-
const manifestPath = external_path_default().join(pwd, MODULE_FEDERATION_MANIFEST_FILE);
|
|
242
|
-
if (!await utils_namespaceObject.fs.pathExists(manifestPath)) return {
|
|
243
|
-
assets,
|
|
244
|
-
remoteEntry: null
|
|
245
|
-
};
|
|
246
|
-
assets.add(MODULE_FEDERATION_MANIFEST_FILE);
|
|
247
|
-
const manifestBuffer = await fileReader_namespaceObject.fileReader.readFileFromSystem(manifestPath, 'buffer');
|
|
248
|
-
if (null === manifestBuffer) return {
|
|
249
|
-
assets,
|
|
250
|
-
remoteEntry: null
|
|
251
|
-
};
|
|
252
|
-
for (const filename of MODULE_FEDERATION_OPTIONAL_FILES)if (await utils_namespaceObject.fs.pathExists(external_path_default().join(pwd, filename))) assets.add(filename);
|
|
253
|
-
let remoteEntryFile = null;
|
|
254
|
-
try {
|
|
255
|
-
const manifest = JSON.parse(manifestBuffer.toString('utf-8'));
|
|
256
|
-
const remoteEntry = joinModuleFederationAssetPath(manifest.metaData?.remoteEntry?.path, manifest.metaData?.remoteEntry?.name);
|
|
257
|
-
const dtsZip = joinModuleFederationAssetPath(manifest.metaData?.types?.path, manifest.metaData?.types?.zip);
|
|
258
|
-
const dtsApi = joinModuleFederationAssetPath(manifest.metaData?.types?.path, manifest.metaData?.types?.api);
|
|
259
|
-
if (remoteEntry) {
|
|
260
|
-
assets.add(remoteEntry);
|
|
261
|
-
remoteEntryFile = remoteEntry;
|
|
262
|
-
}
|
|
263
|
-
if (dtsZip) assets.add(dtsZip);
|
|
264
|
-
if (dtsApi) assets.add(dtsApi);
|
|
265
|
-
manifest.shared?.forEach((item)=>appendModuleFederationAssets(assets, item.assets));
|
|
266
|
-
manifest.remotes?.forEach((item)=>appendModuleFederationAssets(assets, item.assets));
|
|
267
|
-
manifest.exposes?.forEach((item)=>appendModuleFederationAssets(assets, item.assets));
|
|
268
|
-
} catch {}
|
|
269
|
-
return {
|
|
270
|
-
assets,
|
|
271
|
-
remoteEntry: remoteEntryFile
|
|
272
|
-
};
|
|
273
|
-
};
|
|
274
109
|
function createStaticMiddleware(options) {
|
|
275
110
|
const { pwd, routes } = options;
|
|
276
111
|
const prefix = options.output.assetPrefix || '/';
|
|
@@ -307,30 +142,25 @@ function createStaticMiddleware(options) {
|
|
|
307
142
|
});
|
|
308
143
|
let moduleFederationAssetsPromise = null;
|
|
309
144
|
const getModuleFederationAssets = async ()=>{
|
|
310
|
-
if (!moduleFederationAssetsPromise) moduleFederationAssetsPromise = getModuleFederationAssetList(pwd);
|
|
145
|
+
if (!moduleFederationAssetsPromise) moduleFederationAssetsPromise = (0, external_staticModuleFederation_js_namespaceObject.getModuleFederationAssetList)(pwd);
|
|
311
146
|
return moduleFederationAssetsPromise;
|
|
312
147
|
};
|
|
313
148
|
const serveFile = async (c, filepath, moduleFederationAsset = false, moduleFederationRemoteEntry = false, requestPath = '')=>{
|
|
314
|
-
if (moduleFederationAsset)
|
|
315
|
-
c.header('Access-Control-Allow-Origin', '*');
|
|
316
|
-
c.header('Access-Control-Allow-Headers', '*');
|
|
317
|
-
c.header('Access-Control-Allow-Methods', 'GET,HEAD,OPTIONS');
|
|
318
|
-
}
|
|
149
|
+
if (moduleFederationAsset) (0, external_staticModuleFederation_js_namespaceObject.applyModuleFederationAssetHeaders)(c);
|
|
319
150
|
const mimeType = (0, mime_namespaceObject.getMimeType)(filepath);
|
|
320
151
|
if (mimeType) c.header('Content-Type', mimeType);
|
|
321
|
-
const shouldPatchManifest = moduleFederationAsset && requestPath
|
|
152
|
+
const shouldPatchManifest = moduleFederationAsset && (0, external_staticModuleFederation_js_namespaceObject.isModuleFederationManifestRequest)(requestPath);
|
|
322
153
|
const shouldPatchRemoteEntry = moduleFederationRemoteEntry;
|
|
323
154
|
const canUsePreCompressed = !shouldPatchManifest && !shouldPatchRemoteEntry;
|
|
324
|
-
const preCompressedAsset = canUsePreCompressed ? await resolvePreCompressedAsset(c, filepath) : {
|
|
155
|
+
const preCompressedAsset = canUsePreCompressed ? await (0, external_staticPrecompressed_js_namespaceObject.resolvePreCompressedAsset)(c, filepath) : {
|
|
325
156
|
selected: null,
|
|
326
157
|
hasVariant: false
|
|
327
158
|
};
|
|
328
159
|
const targetFilepath = preCompressedAsset.selected?.filepath ?? filepath;
|
|
329
160
|
const chunk = await fileReader_namespaceObject.fileReader.readFileFromSystem(targetFilepath, 'buffer');
|
|
330
161
|
if (null === chunk) return null;
|
|
331
|
-
const responseChunk = shouldPatchManifest ? patchModuleFederationManifestPublicPath(c, chunk, pathPrefix) : shouldPatchRemoteEntry ? patchModuleFederationRemoteEntryPublicPath(c, chunk, pathPrefix) : chunk;
|
|
332
|
-
|
|
333
|
-
if (preCompressedAsset.selected) c.header('Content-Encoding', preCompressedAsset.selected.encoding);
|
|
162
|
+
const responseChunk = shouldPatchManifest ? (0, external_staticModuleFederation_js_namespaceObject.patchModuleFederationManifestPublicPath)(c, chunk, pathPrefix) : shouldPatchRemoteEntry ? (0, external_staticModuleFederation_js_namespaceObject.patchModuleFederationRemoteEntryPublicPath)(c, chunk, pathPrefix) : chunk;
|
|
163
|
+
(0, external_staticPrecompressed_js_namespaceObject.applyPreCompressedAssetHeaders)(c, preCompressedAsset);
|
|
334
164
|
c.header('Content-Length', String(responseChunk.byteLength));
|
|
335
165
|
const body = new Uint8Array(responseChunk.buffer, responseChunk.byteOffset, responseChunk.byteLength);
|
|
336
166
|
return c.body(body, 200);
|
|
@@ -340,7 +170,7 @@ function createStaticMiddleware(options) {
|
|
|
340
170
|
const pathname = c.req.path;
|
|
341
171
|
if (pageRoute && '' === external_path_default().extname(pathname)) return next();
|
|
342
172
|
const hit = staticPathRegExp.test(pathname);
|
|
343
|
-
const requestPath =
|
|
173
|
+
const requestPath = (0, external_staticModuleFederation_js_namespaceObject.getModuleFederationRequestPath)(pathname, pathPrefix);
|
|
344
174
|
if (requestPath.includes('..')) return next();
|
|
345
175
|
const moduleFederationAssetMeta = await getModuleFederationAssets();
|
|
346
176
|
const isModuleFederationAsset = moduleFederationAssetMeta.assets.has(requestPath);
|