@bleedingdev/modern-js-runtime-utils 3.2.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.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/cjs/browser/deferreds.js +161 -0
  4. package/dist/cjs/browser/index.js +65 -0
  5. package/dist/cjs/browser/nestedRoutes.js +141 -0
  6. package/dist/cjs/merge.js +60 -0
  7. package/dist/cjs/node/fileReader.js +94 -0
  8. package/dist/cjs/node/index.js +99 -0
  9. package/dist/cjs/node/loaderContext/createLoaderCtx.js +51 -0
  10. package/dist/cjs/node/loaderContext/createRequestCtx.js +50 -0
  11. package/dist/cjs/node/loaderContext/index.js +41 -0
  12. package/dist/cjs/node/nestedRoutes.js +58 -0
  13. package/dist/cjs/node/sanitize.js +103 -0
  14. package/dist/cjs/node/serialize.js +49 -0
  15. package/dist/cjs/node/storer/container.js +72 -0
  16. package/dist/cjs/node/storer/index.js +44 -0
  17. package/dist/cjs/node/storer/storage.js +87 -0
  18. package/dist/cjs/parsed.js +46 -0
  19. package/dist/cjs/router.js +91 -0
  20. package/dist/cjs/rsc.js +58 -0
  21. package/dist/cjs/server/index.js +58 -0
  22. package/dist/cjs/server/nestedRoutes.js +49 -0
  23. package/dist/cjs/time.js +61 -0
  24. package/dist/cjs/universal/async_storage.js +58 -0
  25. package/dist/cjs/universal/async_storage.server.js +69 -0
  26. package/dist/cjs/universal/cache.js +381 -0
  27. package/dist/cjs/universal/request.js +86 -0
  28. package/dist/cjs/url.js +39 -0
  29. package/dist/esm/browser/deferreds.mjs +118 -0
  30. package/dist/esm/browser/index.mjs +2 -0
  31. package/dist/esm/browser/nestedRoutes.mjs +104 -0
  32. package/dist/esm/merge.mjs +26 -0
  33. package/dist/esm/node/fileReader.mjs +47 -0
  34. package/dist/esm/node/index.mjs +5 -0
  35. package/dist/esm/node/loaderContext/createLoaderCtx.mjs +14 -0
  36. package/dist/esm/node/loaderContext/createRequestCtx.mjs +16 -0
  37. package/dist/esm/node/loaderContext/index.mjs +4 -0
  38. package/dist/esm/node/nestedRoutes.mjs +1 -0
  39. package/dist/esm/node/sanitize.mjs +66 -0
  40. package/dist/esm/node/serialize.mjs +5 -0
  41. package/dist/esm/node/storer/container.mjs +38 -0
  42. package/dist/esm/node/storer/index.mjs +7 -0
  43. package/dist/esm/node/storer/storage.mjs +53 -0
  44. package/dist/esm/parsed.mjs +12 -0
  45. package/dist/esm/router.mjs +18 -0
  46. package/dist/esm/rsc.mjs +1 -0
  47. package/dist/esm/server/index.mjs +1 -0
  48. package/dist/esm/server/nestedRoutes.mjs +15 -0
  49. package/dist/esm/time.mjs +27 -0
  50. package/dist/esm/universal/async_storage.mjs +7 -0
  51. package/dist/esm/universal/async_storage.server.mjs +32 -0
  52. package/dist/esm/universal/cache.mjs +326 -0
  53. package/dist/esm/universal/request.mjs +40 -0
  54. package/dist/esm/url.mjs +5 -0
  55. package/dist/esm-node/browser/deferreds.mjs +119 -0
  56. package/dist/esm-node/browser/index.mjs +3 -0
  57. package/dist/esm-node/browser/nestedRoutes.mjs +105 -0
  58. package/dist/esm-node/merge.mjs +27 -0
  59. package/dist/esm-node/node/fileReader.mjs +48 -0
  60. package/dist/esm-node/node/index.mjs +6 -0
  61. package/dist/esm-node/node/loaderContext/createLoaderCtx.mjs +15 -0
  62. package/dist/esm-node/node/loaderContext/createRequestCtx.mjs +17 -0
  63. package/dist/esm-node/node/loaderContext/index.mjs +5 -0
  64. package/dist/esm-node/node/nestedRoutes.mjs +2 -0
  65. package/dist/esm-node/node/sanitize.mjs +67 -0
  66. package/dist/esm-node/node/serialize.mjs +6 -0
  67. package/dist/esm-node/node/storer/container.mjs +39 -0
  68. package/dist/esm-node/node/storer/index.mjs +8 -0
  69. package/dist/esm-node/node/storer/storage.mjs +54 -0
  70. package/dist/esm-node/parsed.mjs +13 -0
  71. package/dist/esm-node/router.mjs +19 -0
  72. package/dist/esm-node/rsc.mjs +2 -0
  73. package/dist/esm-node/server/index.mjs +2 -0
  74. package/dist/esm-node/server/nestedRoutes.mjs +16 -0
  75. package/dist/esm-node/time.mjs +28 -0
  76. package/dist/esm-node/universal/async_storage.mjs +25 -0
  77. package/dist/esm-node/universal/async_storage.server.mjs +33 -0
  78. package/dist/esm-node/universal/cache.mjs +327 -0
  79. package/dist/esm-node/universal/request.mjs +41 -0
  80. package/dist/esm-node/url.mjs +6 -0
  81. package/dist/types/browser/deferreds.d.ts +31 -0
  82. package/dist/types/browser/index.d.ts +2 -0
  83. package/dist/types/browser/nestedRoutes.d.ts +12 -0
  84. package/dist/types/merge.d.ts +6 -0
  85. package/dist/types/node/fileReader.d.ts +19 -0
  86. package/dist/types/node/index.d.ts +8 -0
  87. package/dist/types/node/loaderContext/createLoaderCtx.d.ts +7 -0
  88. package/dist/types/node/loaderContext/createRequestCtx.d.ts +16 -0
  89. package/dist/types/node/loaderContext/index.d.ts +4 -0
  90. package/dist/types/node/nestedRoutes.d.ts +1 -0
  91. package/dist/types/node/sanitize.d.ts +11 -0
  92. package/dist/types/node/serialize.d.ts +1 -0
  93. package/dist/types/node/storer/container.d.ts +27 -0
  94. package/dist/types/node/storer/index.d.ts +3 -0
  95. package/dist/types/node/storer/storage.d.ts +26 -0
  96. package/dist/types/parsed.d.ts +1 -0
  97. package/dist/types/router.d.ts +6 -0
  98. package/dist/types/rsc.d.ts +1 -0
  99. package/dist/types/server/index.d.ts +1 -0
  100. package/dist/types/server/nestedRoutes.d.ts +2 -0
  101. package/dist/types/time.d.ts +1 -0
  102. package/dist/types/universal/async_storage.d.ts +2 -0
  103. package/dist/types/universal/async_storage.server.d.ts +29 -0
  104. package/dist/types/universal/cache.d.ts +68 -0
  105. package/dist/types/universal/request.d.ts +17 -0
  106. package/dist/types/url.d.ts +11 -0
  107. package/package.json +197 -0
  108. package/rslib.config.mts +28 -0
  109. package/rstest.config.mts +26 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021-present Modern.js
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,26 @@
1
+ <p align="center">
2
+ <a href="https://modernjs.dev" target="blank"><img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ylaelkeh7nuhfnuhf/modernjs-cover.png" width="300" alt="Modern.js Logo" /></a>
3
+ </p>
4
+
5
+ <h1 align="center">Modern.js</h1>
6
+
7
+ <p align="center">
8
+ A Progressive React Framework for modern web development.
9
+ </p>
10
+
11
+ ## Getting Started
12
+
13
+ Please follow [Quick Start](https://modernjs.dev/en/guides/get-started/quick-start) to get started with Modern.js.
14
+
15
+ ## Documentation
16
+
17
+ - [English Documentation](https://modernjs.dev/en/)
18
+ - [中文文档](https://modernjs.dev)
19
+
20
+ ## Contributing
21
+
22
+ Please read the [Contributing Guide](https://github.com/web-infra-dev/modern.js/blob/main/CONTRIBUTING.md).
23
+
24
+ ## License
25
+
26
+ Modern.js is [MIT licensed](https://github.com/web-infra-dev/modern.js/blob/main/LICENSE).
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ AbortedDeferredError: ()=>AbortedDeferredError,
28
+ DeferredData: ()=>DeferredData,
29
+ activeDeferreds: ()=>activeDeferreds,
30
+ invariant: ()=>invariant
31
+ });
32
+ function invariant(value, message) {
33
+ if (false === value || null == value) throw new Error(message);
34
+ }
35
+ class AbortedDeferredError extends Error {
36
+ }
37
+ function isTrackedPromise(value) {
38
+ return value instanceof Promise && true === value._tracked;
39
+ }
40
+ function unwrapTrackedPromise(value) {
41
+ if (!isTrackedPromise(value)) return value;
42
+ if (value._error) throw value._error;
43
+ return value._data;
44
+ }
45
+ class DeferredData {
46
+ trackPromise(key, value) {
47
+ if (!(value instanceof Promise)) return value;
48
+ this.deferredKeys.push(key);
49
+ this.pendingKeysSet.add(key);
50
+ const promise = Promise.race([
51
+ value,
52
+ this.abortPromise
53
+ ]).then((data)=>this.onSettle(promise, key, void 0, data), (error)=>this.onSettle(promise, key, error));
54
+ promise.catch(()=>{});
55
+ Object.defineProperty(promise, '_tracked', {
56
+ get: ()=>true
57
+ });
58
+ return promise;
59
+ }
60
+ onSettle(promise, key, error, data) {
61
+ if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {
62
+ this.unlistenAbortSignal();
63
+ Object.defineProperty(promise, '_error', {
64
+ get: ()=>error
65
+ });
66
+ return Promise.reject(error);
67
+ }
68
+ this.pendingKeysSet.delete(key);
69
+ if (this.done) this.unlistenAbortSignal();
70
+ if (void 0 === error && void 0 === data) {
71
+ const undefinedError = new Error(`Deferred data for key "${key}" resolved/rejected with \`undefined\`, you must resolve/reject with a value or \`null\`.`);
72
+ Object.defineProperty(promise, '_error', {
73
+ get: ()=>undefinedError
74
+ });
75
+ this.emit(false, key);
76
+ return Promise.reject(undefinedError);
77
+ }
78
+ if (void 0 === data) {
79
+ Object.defineProperty(promise, '_error', {
80
+ get: ()=>error
81
+ });
82
+ this.emit(false, key);
83
+ return Promise.reject(error);
84
+ }
85
+ Object.defineProperty(promise, '_data', {
86
+ get: ()=>data
87
+ });
88
+ this.emit(false, key);
89
+ return data;
90
+ }
91
+ emit(aborted, settledKey) {
92
+ this.subscribers.forEach((subscriber)=>subscriber(aborted, settledKey));
93
+ }
94
+ subscribe(fn) {
95
+ this.subscribers.add(fn);
96
+ return ()=>this.subscribers.delete(fn);
97
+ }
98
+ cancel() {
99
+ this.controller.abort();
100
+ this.pendingKeysSet.forEach((v, k)=>this.pendingKeysSet.delete(k));
101
+ this.emit(true);
102
+ }
103
+ async resolveData(signal) {
104
+ let aborted = false;
105
+ if (!this.done) {
106
+ const onAbort = ()=>this.cancel();
107
+ signal.addEventListener('abort', onAbort);
108
+ aborted = await new Promise((resolve)=>{
109
+ this.subscribe((aborted)=>{
110
+ signal.removeEventListener('abort', onAbort);
111
+ if (aborted || this.done) resolve(aborted);
112
+ });
113
+ });
114
+ }
115
+ return aborted;
116
+ }
117
+ get done() {
118
+ return 0 === this.pendingKeysSet.size;
119
+ }
120
+ get unwrappedData() {
121
+ invariant(null !== this.data && this.done, 'Can only unwrap data on initialized and settled deferreds');
122
+ return Object.entries(this.data).reduce((acc, [key, value])=>Object.assign(acc, {
123
+ [key]: unwrapTrackedPromise(value)
124
+ }), {});
125
+ }
126
+ get pendingKeys() {
127
+ return Array.from(this.pendingKeysSet);
128
+ }
129
+ constructor(data, responseInit){
130
+ this.pendingKeysSet = new Set();
131
+ this.subscribers = new Set();
132
+ this.__modern_deferred = true;
133
+ this.deferredKeys = [];
134
+ invariant(data && 'object' == typeof data && !Array.isArray(data), 'defer() only accepts plain objects');
135
+ let reject;
136
+ this.abortPromise = new Promise((_, r)=>reject = r);
137
+ this.controller = new AbortController();
138
+ const onAbort = ()=>reject(new AbortedDeferredError('Deferred data aborted'));
139
+ this.unlistenAbortSignal = ()=>this.controller.signal.removeEventListener('abort', onAbort);
140
+ this.controller.signal.addEventListener('abort', onAbort);
141
+ this.data = Object.entries(data).reduce((acc, [key, value])=>Object.assign(acc, {
142
+ [key]: this.trackPromise(key, value)
143
+ }), {});
144
+ if (this.done) this.unlistenAbortSignal();
145
+ this.init = responseInit;
146
+ }
147
+ }
148
+ const activeDeferreds = new Map();
149
+ exports.AbortedDeferredError = __webpack_exports__.AbortedDeferredError;
150
+ exports.DeferredData = __webpack_exports__.DeferredData;
151
+ exports.activeDeferreds = __webpack_exports__.activeDeferreds;
152
+ exports.invariant = __webpack_exports__.invariant;
153
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
154
+ "AbortedDeferredError",
155
+ "DeferredData",
156
+ "activeDeferreds",
157
+ "invariant"
158
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
159
+ Object.defineProperty(exports, '__esModule', {
160
+ value: true
161
+ });
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./deferreds" (module) {
4
+ module.exports = require("./deferreds.js");
5
+ },
6
+ "./nestedRoutes" (module) {
7
+ module.exports = require("./nestedRoutes.js");
8
+ }
9
+ };
10
+ var __webpack_module_cache__ = {};
11
+ function __webpack_require__(moduleId) {
12
+ var cachedModule = __webpack_module_cache__[moduleId];
13
+ if (void 0 !== cachedModule) return cachedModule.exports;
14
+ var module = __webpack_module_cache__[moduleId] = {
15
+ exports: {}
16
+ };
17
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
18
+ return module.exports;
19
+ }
20
+ (()=>{
21
+ __webpack_require__.n = (module)=>{
22
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
23
+ __webpack_require__.d(getter, {
24
+ a: getter
25
+ });
26
+ return getter;
27
+ };
28
+ })();
29
+ (()=>{
30
+ __webpack_require__.d = (exports1, definition)=>{
31
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
32
+ enumerable: true,
33
+ get: definition[key]
34
+ });
35
+ };
36
+ })();
37
+ (()=>{
38
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
39
+ })();
40
+ (()=>{
41
+ __webpack_require__.r = (exports1)=>{
42
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
43
+ value: 'Module'
44
+ });
45
+ Object.defineProperty(exports1, '__esModule', {
46
+ value: true
47
+ });
48
+ };
49
+ })();
50
+ var __webpack_exports__ = {};
51
+ (()=>{
52
+ __webpack_require__.r(__webpack_exports__);
53
+ var _deferreds__rspack_import_0 = __webpack_require__("./deferreds");
54
+ var __rspack_reexport = {};
55
+ for(const __rspack_import_key in _deferreds__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_deferreds__rspack_import_0[__rspack_import_key];
56
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
57
+ var _nestedRoutes__rspack_import_1 = __webpack_require__("./nestedRoutes");
58
+ var __rspack_reexport = {};
59
+ for(const __rspack_import_key in _nestedRoutes__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_nestedRoutes__rspack_import_1[__rspack_import_key];
60
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
61
+ })();
62
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
63
+ Object.defineProperty(exports, '__esModule', {
64
+ value: true
65
+ });
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ renderNestedRoute: ()=>renderNestedRoute,
28
+ transformNestedRoutes: ()=>transformNestedRoutes
29
+ });
30
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
+ const constants_namespaceObject = require("@modern-js/utils/universal/constants");
32
+ const external_react_namespaceObject = require("react");
33
+ const external_react_router_namespaceObject = require("react-router");
34
+ const external_time_js_namespaceObject = require("../time.js");
35
+ const async_storage_js_namespaceObject = require("../universal/async_storage.js");
36
+ const external_deferreds_js_namespaceObject = require("./deferreds.js");
37
+ const privateDefer = (data)=>new external_deferreds_js_namespaceObject.DeferredData(data);
38
+ const transformNestedRoutes = (routes)=>{
39
+ const routeElements = [];
40
+ for (const route of routes){
41
+ const routeElement = renderNestedRoute(route);
42
+ routeElements.push(routeElement);
43
+ }
44
+ return (0, external_react_router_namespaceObject.createRoutesFromElements)(routeElements);
45
+ };
46
+ const renderNestedRoute = (nestedRoute, options = {})=>{
47
+ const { children, index, id, component, isRoot, lazyImport, config, handle } = nestedRoute;
48
+ const Component = component;
49
+ const { parent, props = {} } = options;
50
+ const routeProps = {
51
+ caseSensitive: nestedRoute.caseSensitive,
52
+ path: nestedRoute.path,
53
+ id: nestedRoute.id,
54
+ loader: createLoader(nestedRoute),
55
+ action: nestedRoute.action,
56
+ hasErrorBoundary: nestedRoute.hasErrorBoundary,
57
+ shouldRevalidate: nestedRoute.shouldRevalidate,
58
+ handle: {
59
+ ...handle,
60
+ ...'object' == typeof config ? config?.handle : {}
61
+ },
62
+ index: nestedRoute.index,
63
+ element: nestedRoute.element,
64
+ errorElement: nestedRoute.errorElement
65
+ };
66
+ if (nestedRoute.error) {
67
+ const errorElement = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(nestedRoute.error, {});
68
+ routeProps.errorElement = errorElement;
69
+ }
70
+ let element;
71
+ if (Component) if (parent?.loading && lazyImport) {
72
+ const Loading = parent.loading;
73
+ element = isLoadableComponent(Component) ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Component, {
74
+ fallback: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Loading, {})
75
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_namespaceObject.Suspense, {
76
+ fallback: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Loading, {}),
77
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Component, {})
78
+ });
79
+ } else element = isLoadableComponent(Component) && lazyImport ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Component, {}) : isRoot ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Component, {
80
+ ...props
81
+ }) : lazyImport ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_namespaceObject.Suspense, {
82
+ fallback: null,
83
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Component, {})
84
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Component, {});
85
+ else {
86
+ nestedRoute.loading = parent?.loading;
87
+ routeProps.element = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_router_namespaceObject.Outlet, {});
88
+ }
89
+ if (element) routeProps.element = element;
90
+ const childElements = children?.map((childRoute)=>renderNestedRoute(childRoute, {
91
+ parent: nestedRoute
92
+ }));
93
+ const routeElement = index ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_router_namespaceObject.Route, {
94
+ ...routeProps,
95
+ index: true
96
+ }, id) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_router_namespaceObject.Route, {
97
+ ...routeProps,
98
+ index: false,
99
+ children: childElements
100
+ }, id);
101
+ return routeElement;
102
+ };
103
+ function isPlainObject(value) {
104
+ return null != value && 'object' == typeof value && Object.getPrototypeOf(value) === Object.prototype;
105
+ }
106
+ function createLoader(route) {
107
+ const { loader } = route;
108
+ if (loader) return async (args)=>{
109
+ if ('function' == typeof route.lazyImport) route.lazyImport();
110
+ const end = (0, external_time_js_namespaceObject.time)();
111
+ const res = await loader(args);
112
+ let activeDeferreds = null;
113
+ activeDeferreds = "u" < typeof document ? (await (0, async_storage_js_namespaceObject.getAsyncLocalStorage)())?.useContext()?.activeDeferreds : external_deferreds_js_namespaceObject.activeDeferreds;
114
+ if (isPlainObject(res)) {
115
+ const deferredData = privateDefer(res);
116
+ activeDeferreds.set(route.id, deferredData);
117
+ }
118
+ const cost = end();
119
+ if ("u" < typeof document) {
120
+ const storage = await (0, async_storage_js_namespaceObject.getAsyncLocalStorage)();
121
+ storage?.useContext().monitors?.timing(`${constants_namespaceObject.LOADER_REPORTER_NAME}-${route.id?.replace(/\//g, '_')}`, cost);
122
+ }
123
+ return res;
124
+ };
125
+ return ()=>{
126
+ if ('function' == typeof route.lazyImport) route.lazyImport();
127
+ return null;
128
+ };
129
+ }
130
+ function isLoadableComponent(component) {
131
+ return component && 'Loadable' === component.displayName && component.preload && 'function' == typeof component.preload;
132
+ }
133
+ exports.renderNestedRoute = __webpack_exports__.renderNestedRoute;
134
+ exports.transformNestedRoutes = __webpack_exports__.transformNestedRoutes;
135
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
136
+ "renderNestedRoute",
137
+ "transformNestedRoutes"
138
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
139
+ Object.defineProperty(exports, '__esModule', {
140
+ value: true
141
+ });
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ merge: ()=>merge
28
+ });
29
+ function isObject(obj) {
30
+ return obj && 'object' == typeof obj && !Array.isArray(obj);
31
+ }
32
+ function isComplexInstance(obj) {
33
+ if (!isObject(obj)) return false;
34
+ const hasMethods = 'function' == typeof obj.init || 'function' == typeof obj.changeLanguage || 'function' == typeof obj.t;
35
+ const hasInternalProps = void 0 !== obj.isInitialized || void 0 !== obj.language || void 0 !== obj.store;
36
+ return hasMethods || hasInternalProps;
37
+ }
38
+ function merge(target, ...sources) {
39
+ if (!sources.length) return target;
40
+ const source = sources.shift();
41
+ if (isObject(target) && isObject(source)) for(const key in source)if (isComplexInstance(source[key])) Object.assign(target, {
42
+ [key]: source[key]
43
+ });
44
+ else if (isObject(source[key])) {
45
+ if (!target[key]) Object.assign(target, {
46
+ [key]: {}
47
+ });
48
+ merge(target[key], source[key]);
49
+ } else Object.assign(target, {
50
+ [key]: source[key]
51
+ });
52
+ return merge(target, ...sources);
53
+ }
54
+ exports.merge = __webpack_exports__.merge;
55
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
56
+ "merge"
57
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
58
+ Object.defineProperty(exports, '__esModule', {
59
+ value: true
60
+ });
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ FileReader: ()=>FileReader,
37
+ fileReader: ()=>fileReader
38
+ });
39
+ const fs_extra_namespaceObject = require("@modern-js/utils/fs-extra");
40
+ var fs_extra_default = /*#__PURE__*/ __webpack_require__.n(fs_extra_namespaceObject);
41
+ const index_js_namespaceObject = require("./storer/index.js");
42
+ class FileReader {
43
+ async readFile(path, encoding = 'utf-8') {
44
+ const { fs } = this;
45
+ const _readfile = this._readFileFactory(fs);
46
+ return _readfile(path, encoding);
47
+ }
48
+ async readFileFromSystem(path, encoding = 'utf-8') {
49
+ const _readfile = this._readFileFactory(fs_extra_default());
50
+ return _readfile(path, encoding);
51
+ }
52
+ _readFileFactory(fs) {
53
+ return async (path, encoding = 'utf-8')=>{
54
+ const cache = await this.storage.get(path);
55
+ if (null === cache) return null;
56
+ if (cache) return this.encodingContent(cache, encoding);
57
+ const isExistFile = await new Promise((resolve)=>{
58
+ fs.stat(path, (err, stats)=>{
59
+ if (err) return void resolve(false);
60
+ stats.isFile() ? resolve(true) : resolve(false);
61
+ });
62
+ });
63
+ if (isExistFile) {
64
+ const content = await fs.promises.readFile(path);
65
+ this.storage.set(path, content);
66
+ return this.encodingContent(content, encoding);
67
+ }
68
+ this.storage.set(path, null);
69
+ return null;
70
+ };
71
+ }
72
+ reset(fs) {
73
+ fs && (this.fs = fs);
74
+ return this.storage.clear?.();
75
+ }
76
+ encodingContent(value, encoding) {
77
+ if ('utf-8' === encoding) return value.toString();
78
+ return value;
79
+ }
80
+ constructor(storage){
81
+ this.fs = fs_extra_default();
82
+ this.storage = storage;
83
+ }
84
+ }
85
+ const fileReader = new FileReader((0, index_js_namespaceObject.createMemoryStorage)('__file__system'));
86
+ exports.FileReader = __webpack_exports__.FileReader;
87
+ exports.fileReader = __webpack_exports__.fileReader;
88
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
89
+ "FileReader",
90
+ "fileReader"
91
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
92
+ Object.defineProperty(exports, '__esModule', {
93
+ value: true
94
+ });
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "../universal/async_storage.server" (module) {
4
+ module.exports = require("../universal/async_storage.server.js");
5
+ },
6
+ "./loaderContext" (module) {
7
+ module.exports = require("./loaderContext/index.js");
8
+ },
9
+ "./nestedRoutes" (module) {
10
+ module.exports = require("./nestedRoutes.js");
11
+ },
12
+ "./sanitize" (module) {
13
+ module.exports = require("./sanitize.js");
14
+ },
15
+ "./serialize" (module) {
16
+ module.exports = require("./serialize.js");
17
+ }
18
+ };
19
+ var __webpack_module_cache__ = {};
20
+ function __webpack_require__(moduleId) {
21
+ var cachedModule = __webpack_module_cache__[moduleId];
22
+ if (void 0 !== cachedModule) return cachedModule.exports;
23
+ var module = __webpack_module_cache__[moduleId] = {
24
+ exports: {}
25
+ };
26
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
27
+ return module.exports;
28
+ }
29
+ (()=>{
30
+ __webpack_require__.n = (module)=>{
31
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
32
+ __webpack_require__.d(getter, {
33
+ a: getter
34
+ });
35
+ return getter;
36
+ };
37
+ })();
38
+ (()=>{
39
+ __webpack_require__.d = (exports1, definition)=>{
40
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
41
+ enumerable: true,
42
+ get: definition[key]
43
+ });
44
+ };
45
+ })();
46
+ (()=>{
47
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
48
+ })();
49
+ (()=>{
50
+ __webpack_require__.r = (exports1)=>{
51
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
52
+ value: 'Module'
53
+ });
54
+ Object.defineProperty(exports1, '__esModule', {
55
+ value: true
56
+ });
57
+ };
58
+ })();
59
+ var __webpack_exports__ = {};
60
+ (()=>{
61
+ __webpack_require__.r(__webpack_exports__);
62
+ __webpack_require__.d(__webpack_exports__, {
63
+ sanitizeSSRPayload: ()=>_sanitize__rspack_import_3.sanitizeSSRPayload,
64
+ serializeJson: ()=>_serialize__rspack_import_4.serializeJson,
65
+ storage: ()=>_universal_async_storage_server__rspack_import_0.storage
66
+ });
67
+ var _universal_async_storage_server__rspack_import_0 = __webpack_require__("../universal/async_storage.server");
68
+ var _loaderContext__rspack_import_1 = __webpack_require__("./loaderContext");
69
+ var __rspack_reexport = {};
70
+ for(const __rspack_import_key in _loaderContext__rspack_import_1)if ([
71
+ "sanitizeSSRPayload",
72
+ "default",
73
+ "storage",
74
+ "serializeJson"
75
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_loaderContext__rspack_import_1[__rspack_import_key];
76
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
77
+ var _nestedRoutes__rspack_import_2 = __webpack_require__("./nestedRoutes");
78
+ var __rspack_reexport = {};
79
+ for(const __rspack_import_key in _nestedRoutes__rspack_import_2)if ([
80
+ "sanitizeSSRPayload",
81
+ "default",
82
+ "storage",
83
+ "serializeJson"
84
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_nestedRoutes__rspack_import_2[__rspack_import_key];
85
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
86
+ var _sanitize__rspack_import_3 = __webpack_require__("./sanitize");
87
+ var _serialize__rspack_import_4 = __webpack_require__("./serialize");
88
+ })();
89
+ exports.sanitizeSSRPayload = __webpack_exports__.sanitizeSSRPayload;
90
+ exports.serializeJson = __webpack_exports__.serializeJson;
91
+ exports.storage = __webpack_exports__.storage;
92
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
93
+ "sanitizeSSRPayload",
94
+ "serializeJson",
95
+ "storage"
96
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
97
+ Object.defineProperty(exports, '__esModule', {
98
+ value: true
99
+ });